Implementing digital PID control

AI Thread Summary
The discussion focuses on implementing PID control to adjust the RPM of a brushless motor using an ESC. The user seeks guidance on how to calculate the new PWM signal based on PID parameters Kp, Ki, and Kd, given the current and desired RPM values. There is debate on whether PID control is necessary, with some suggesting that a simpler proportional control might suffice for basic applications. However, others argue that PID is beneficial in robotics due to varying loads. The conversation highlights the importance of understanding the specific application to determine the appropriate control strategy.
beserk
Messages
13
Reaction score
0
I want to control the rpm of a brushless motor with ESC(Electronic speed controller) using PID control.
Suppose my motor is rotating at 2000 rpm detecting using hall sensor setup.Now I want it to run at 5000 rpm.The speed will be controlled by PWM signals generated by PWM module( 16-bit i.e. 65536 divisions in 0%-100% duty cycle, which we specify) in hardware which is fed to ESC.
How am I going use the PID parameters Kp, Ki and Kd to drive the motor to desired rpm?
desired rpm = 5000
measured rpm = 2000
error = desired - measured = + 3000
C(t) = Kp*e + Ki*∫e.dt + Kd*de/dt in digital form

Suppose somehow I find out PID constants, then how do I modify new PWM based on C(t) and error signal ?

Is New PWM = Old PWM*C(t)*error or New PWM = Old PWM+C(t)*error ?
 
Engineering news on Phys.org
A decent review of control is Reviews of Modern Physics vol 77, p783.
 
Thanks for replying. i have a simpler query now : Suppose I use a proportional control to drive a motor. Measured rpm = 2000, Required rpm = 5000, Error = +3000. Control signal = K * Error. Now how should I apply this control signal to increase in voltage so as to attain the required rpm ?
 
For a motor I think PID is little over kill. A giving input should correspond to a giving rpm for the motor. Look up the value of the input that corresponds to the output that you want. That will give you a rough agreement. You might need some type of PID for ultra fine control or if the load isn't constant.
 
http://www.engin.umich.edu/group/ctm/PID/PID.html#characteristics
 
For a motor I think PID is little over kill. A giving input should correspond to a giving rpm for the motor. Look up the value of the input that corresponds to the output that you want. That will give you a rough agreement. You might need some type of PID for ultra fine control or if the load isn't constant.
Actually, it really depends on the situation which he unfortunately did not tell us what he is doing. In robotics PID loops generally are not overkill or at least a partial PID loop is because the load is always changing.
 
Ivan Seeking said:
http://www.engin.umich.edu/group/ctm/PID/PID.html#characteristics
Great find Ivan! A fitting tutorial on PID control of a mechanical system..
 

Similar threads

Replies
2
Views
5K
Replies
2
Views
5K
Replies
2
Views
3K
Replies
4
Views
16K
Replies
1
Views
3K
Back
Top