Experiment 9 - PID Design Method For DC Motor Speed Control
Experiment 9 - PID Design Method For DC Motor Speed Control
Proportional control
PID control
Tuning the gains
From the main problem, the dynamic equations and the open-loop transfer function of the DC Motor are:
For the original problem setup and the derivation of the above equations, please refer to the Modeling a DC Motor page.
Now let's design a PID controller and add it into the system. First create a new m-file and type in the following commands (refer to the Modeling page
for the details of getting these commands).
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
Proportional control
Let's first try using a proportional controller with a gain of 100. Add the following code to the end of your m-file:
Kp=100;
numa=Kp*num;
dena=den;
To determine the closed-loop transfer function, we use the cloop command. Add the following line to your m-file:
[numac,denac]=cloop(numa,dena);
Note that numac and denac are the numerator and the denominator of the overall closed-loop transfer function.
Now let's see how the step response looks, add the following to the end of your m-file, and run it in the command window:
t=0:0.01:5;
step(numac,denac,t)
title('Step response with Proportion Control')
You should get the following plot:
PID control
From the plot above we see that both the steady-state error and the overshoot are too large. Recall from the PID tutorial page that adding an integral
term will eliminate the steady-state error and a derivative term will reduce the overshoot. Let's try a PID controller with small Ki and Kd. Change your
m-file so it looks like the following. Running this new m-file gives you the following plot.
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
Kp=100;
Ki=1;
Kd=1;
numc=[Kd, Kp, Ki];
denc=[1 0];
numa=conv(num,numc);
dena=conv(den,denc);
[numac,denac]=cloop(numa,dena);
step(numac,denac)
title('PID Control with small Ki and Kd')
Kp=100,
Ki=200,
Kd=10,
User feedback
We would like to hear about suggestions you have for improvement, difficulties you had with the tutorials, errors that you found, or any other comments
that you have. This feedback is anonymous.
PID Examples
Cruise Control | Motor Speed | Motor Position | Bus Suspension | Inverted Pendulum | Pitch Controller | Ball and Beam
Tutorials
Basics | PID | Modeling | Root Locus | Frequency Response | State Space | Digital Control | Examples
8/7/97 BRN
8/24/97 WM