Implementing digital PID control

Click For Summary
SUMMARY

This discussion focuses on implementing digital PID control to regulate the RPM of a brushless motor using an Electronic Speed Controller (ESC). The user aims to increase the motor speed from 2000 RPM to 5000 RPM by generating PWM signals through a 16-bit PWM module. Key equations discussed include the PID control formula C(t) = Kp*e + Ki*∫e.dt + Kd*de/dt, and the user seeks clarification on how to adjust the PWM signal based on the computed control signal. The consensus indicates that while PID control may seem excessive for simple applications, it is essential for precise control in varying load conditions.

PREREQUISITES
  • Understanding of PID control theory and parameters (Kp, Ki, Kd)
  • Familiarity with PWM signal generation and modulation techniques
  • Knowledge of brushless motor operation and Electronic Speed Controllers (ESC)
  • Basic principles of feedback control systems
NEXT STEPS
  • Research the implementation of PID control in brushless motor applications
  • Learn about tuning PID parameters for optimal performance
  • Explore advanced PWM modulation techniques for motor control
  • Investigate the impact of load variations on PID control effectiveness
USEFUL FOR

Engineers, robotics enthusiasts, and hobbyists involved in motor control applications, particularly those utilizing PID control for precise speed regulation in dynamic environments.

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 3 ·
Replies
3
Views
1K
Replies
9
Views
3K
  • · Replies 13 ·
Replies
13
Views
6K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
6K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
138
Views
26K
  • · Replies 1 ·
Replies
1
Views
3K