Motor Speed Control for MCD + MCU
PID control is used to implement closed-loop control through motor speed feedback to achieve target
speed in case MCD controlled by Arduino UNO.
7.14.1. PID Algorithm
Apply incremental PI control, and D is not used for standard PID calculation.
CV(t) = Kp*E(t)+Ki*∫E(t)dt+Kd*(dE(t)/dt
simplified incremental PI calculation
CV(t) = CV(t-1) + Kp*(E(t)-E(t-1)) + Ki*E(t)
E(t) = Set point – Input
Input – Process variable
Motor rotation speed detected by hall sensor (HP signal)
Output – Control variable
PWM duty (0-255, low active) (PWM IN signal)
Target speed set by tuning potentiometer.
7.14.2. PID Control
P (Proportional term): CV(t) = Kp*E(t)
If Proportion Gain Kp is fixed, controller output (CV) is proportional to error E (t). If error is bigger, CV will
become bigger automatically. If Kp is too big, the system will become unstable, on the other, if Kp is too small,
the system will become less responsive.
Because the control output (CV) of Proportional term depends on error between SP and PV, a steady-state
error (droop) is exist if use Proportional control only. To mitigate the droop, a compensating bias term (called
offset) need to be set in advance. The best measures is add an Integral term into system.
Toshiba Electronic Devices & Storage Corporation
Figure 7-12 PID Control
21 / 31