Regarding motor speed PI control, there are tons of articles about it. However, I searched many and noticed that most of them just tell you how to tune Kp and Ki following different methods. But they seldom tell you how to get the very first Kp guess, i.e., for my motor, should it start with 0.1, 0.01, or 0.001?

Since we already have all the detailed parameters of the motor, back-emf constant, torque constant, inertia, rpm/v, speed range, PWM duty cycle range of the inverter, etc., and the controller spec such as sampling time, max acceleration, etc., what I want to understand is that, can we estimate at least Kp based on those parameters and give a good guess of it that could be close to the optimal value as the start point for tuning?

Edited To make it clearer, I added the picture of motor and its transfer function of voltage vs speed. (pictures from http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition&section=SystemModeling)

enter image description here

enter image description here

enter image description here

  • \$\begingroup\$ How do you define 'optimal value'? What are the design specifications/constraints? \$\endgroup\$ – Chu May 14 '16 at 6:50
  • \$\begingroup\$ Let's say we want a overshoot of less than 0.5% and settling time of 2 seconds. Can we obtain a Kp guess value then? \$\endgroup\$ – David Lin May 14 '16 at 7:13
  • 1
    \$\begingroup\$ Add a block diagram, with known parameters, to your question, otherwise we're just shooting in the dark. \$\endgroup\$ – Chu May 14 '16 at 7:25
  • \$\begingroup\$ I am not sure what kind of block diagram you need, but I added some related pictures of the DC motor principle, transfer function and speed closed loop structure. \$\endgroup\$ – David Lin May 14 '16 at 7:46
  • \$\begingroup\$ How does the mechanical time constant relate (scale-wise) to the required settling time? \$\endgroup\$ – Chu May 14 '16 at 8:44

It really depends on the load. Your load can be divided into two parts: the inertial load, requiring torque to change speed, and the load that is doing work. Decide where you are going to be speed and torque-wise. If you experience a sudden load increase (the maximum you expect), you can calculate the corresponding drop in speed. How quickly can you supply the torque to accelerate and catch back up, with the maximum available torque? If Kp is too large, you will overshoot on the voltage and experience high currents. So size Kp to give you an acceleration that won't blow your torque budget. Then you can play with it.

If you are running without braking, you may require two time constants, because if your load suddenly drops you may coast from your inertia, and thus require different constants for increasing and decreasing speed. The rate of decrease will in this case not be driven by the voltage and so Kp must be smaller for decreasing speed.

  • \$\begingroup\$ This answer is not what I expected, but I guess the answer to my question is, based on all the comments, without knowing the control spec and detailed system information, it is impossible to get proper Kp and Ki estimation purely from motor parameters. \$\endgroup\$ – David Lin May 19 '16 at 12:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.