- #1
beserk
- 13
- 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 ?
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 ?