Speed Control

hai...I have a question about P controller for speed control. I have no idea on how to create a P controller for speed. Do I have to find the gain by doing the experiment. I develop it by using the microsoft VC++. The set point is speed of the motor in RPM and a steeping motor is used to control the rotation of the DC Brushless motor.How about the error. Do I need to find the values of error first by doing the experiment. I have no experience on designing the controller.

I am waiting for the idea from members.

Thank You.

Bye...

Parents
  • agus,

    There are certainly plenty of methods of self-tuning that would enable you to determine a gain at run-time, but given your level of expertise, I would just try to find a good one experimentally.

    A P controller (or proportional only) is one that just corrects a specified percentage of the error signal each time. For instance, imagine you have a variable called "DesiredSpeed" that represents the speed you want the motor to spin at, and "ActualSpeed" that represents the real speed of the motor that you've just gotten by some measurement method (an encoder, back-emf, etc.). Also assume you have a variable called "PropGain" that is a float from 0.0 to 1.0 and a variable called "Control" that represents the control signal you're outputting to adjust the motor speed.

    The error signal is then:

    Error = DesiredSpeed - ActualSpeed;

    After each time you check the speed, you would perform an adjustment to the control output like this:

    Control = Control + (PropGain * Error);

    So... setting a PropGain of, say, 0.5 means that you will make an adjustment to the control signal that is 50% of the magnitude of the most recent error.

    That, in a very simplified form, is all there is to a P controller.

Reply
  • agus,

    There are certainly plenty of methods of self-tuning that would enable you to determine a gain at run-time, but given your level of expertise, I would just try to find a good one experimentally.

    A P controller (or proportional only) is one that just corrects a specified percentage of the error signal each time. For instance, imagine you have a variable called "DesiredSpeed" that represents the speed you want the motor to spin at, and "ActualSpeed" that represents the real speed of the motor that you've just gotten by some measurement method (an encoder, back-emf, etc.). Also assume you have a variable called "PropGain" that is a float from 0.0 to 1.0 and a variable called "Control" that represents the control signal you're outputting to adjust the motor speed.

    The error signal is then:

    Error = DesiredSpeed - ActualSpeed;

    After each time you check the speed, you would perform an adjustment to the control output like this:

    Control = Control + (PropGain * Error);

    So... setting a PropGain of, say, 0.5 means that you will make an adjustment to the control signal that is 50% of the magnitude of the most recent error.

    That, in a very simplified form, is all there is to a P controller.

Children
More questions in this forum