P,PD, PI & PID Control System
Tutorial
Spring-Mass-Damper System
Assuming m=1kg,b=10 Ns/m & k=20 N/m
MATLAB Program
%%Transfer Function For Spring Mass System
G=tf(1,[1 10 20]);
figure(1)
title('Step response without controllers')
step(G);
A=stepinfo(G);
%Proportional Control with Proportional Gain Kp=500
figure(2)
title('Step response with Proportional controller')
Kp=500;
C = pid(Kp)
P=tf(1,[1 10 20])
T = feedback(C*P,1)
t = 0:0.01:2;
step (T,t) _
B=stepinfo(T)
%Proportional derivative Control with Kp=500 & Derivative Gain Kd=10
figure(3)
title('Step response with Proportional Derivative controller')
Kp = 500;
Kd=10;
C = pid(Kp,0,Kd);
P=tf(1,[1 10 20]);
T1 = feedback(C*P,1)
step(T1);
C=stepinfo(T1)
%Proportional Integral Control with Kp=500 & ki=70
figure(4)
title('Step response with Proportional Integral controller')
Kp = 30;
Ki=70;
C = pid(Kp,Ki);
P=tf(1,[1 10 20]);
T2 = feedback(C*P,1);
step(T2);
D=stepinfo(T2)
%Proportional Integral Derivative Control with Kp=500, Kd=50 & ki=400
figure(5)
title('Step response with Proportional Integral Derivative controller')
Kp=500;
Kd=50;
Ki=400;
G=tf(1,[1 10 20]);
C=pid(Kp,Ki,Kd);
T3=feedback(C*G,1);
t=0:0.01:2;
step(T3,t);
E=stepinfo(T3)
MATLAB Program (with subplots)
%%Transfer Function for Spring Mass System
G=tf(1,[1 10 20]);
title('Step response without controllers')
subplot(5,1,1)
step(G);
A=stepinfo(G);
%Proportional Control with Proportional Gain Kp=500
title('Step response with Proportional controller')
Kp=500;
C = pid(Kp)
P=tf(1,[1 10 20])
T = feedback(C*P,1)
t = 0:0.01:2;
subplot(5,1,2)
step (T,t) _
B=stepinfo(T)
%Proportional derivative Control with Kp=500 & Derivative Gain Kd=10
title('Step response with Proportional Derivative controller')
Kp = 500;
Kd=10;
C = pid(Kp,0,Kd);
P=tf(1,[1 10 20]);
T1 = feedback(C*P,1)
subplot(5,1,3)
step(T1);
C=stepinfo(T1)
%Proportional Integral Control with Kp=500 & ki=70
title('Step response with Proportional Integral controller')
Kp = 30;
Ki=70;
C = pid(Kp,Ki);
P=tf(1,[1 10 20]);
T2 = feedback(C*P,1);
subplot(5,1,4)
step(T2);
D=stepinfo(T2)
%Proportional Integral Derivative Control with Kp=500, Kd=50 & ki=400
title('Step response with Proportional Integral Derivative controller')
Kp=500;
Kd=50;
Ki=400;
G=tf(1,[1 10 20]);
C=pid(Kp,Ki,Kd);
T3=feedback(C*G,1);
t=0:0.01:2;
subplot(5,1,5)
step(T3,t);
E=stepinfo(T3)
Matlab Program of PID control with toot locus
%%Transfer Function For Spring Mass System
G=tf(1,[1 10 20]);
figure(1)
title('Step response without controllers')
step(G);
A=stepinfo(G);
figure(2)
title('root locus for spring mass system')
rlocus(G)
grid on
%Proportional Control with Proportional Gain Kp=500
figure(3)
title('Step response with Proportional controller')
Kp=500;
C = pid(Kp)
P=tf(1,[1 10 20])
T = feedback(C*P,1)
t = 0:0.01:2;
step (T,t)
B=stepinfo(T)
figure(4)
title('root locus with proportional control')
rlocus(T)
grid on
%Proportional derivative Control with Kp=500 & Derivative Gain Kd=10
figure(5)
title('Step response with Proportional Derivative controller')
Kp = 500;
Kd=10;
C = pid(Kp,0,Kd);
P=tf(1,[1 10 20]);
T1 = feedback(C*P,1)
step(T1);
C=stepinfo(T1)
figure(6)
title('root locus with proportional derivative control')
rlocus(T1)
grid on
%Proportional Integral Control with Kp=500 & ki=70
figure(7)
title('Step response with Proportional Integral controller')
Kp = 30;
Ki=70;
C = pid(Kp,Ki);
P=tf(1,[1 10 20]);
T2 = feedback(C*P,1);
step(T2);
D=stepinfo(T2)
figure(8)
title('root locus with Proportional Integral controller')
rlocus(T2)
grid on
%Proportional Integral Derivative Control with Kp=500, Kd=50 & ki=400
figure(9)
title('Step response with Proportional Integral Derivative controller')
Kp=500;
Kd=50;
Ki=400;
G=tf(1,[1 10 20]);
C=pid(Kp,Ki,Kd);
T3=feedback(C*G,1);
t=0:0.01:2;
step(T3,t);
E=stepinfo(T3)
figure(10)
title('root locus with Proportional Integral derivative controller')
rlocus(T3)
grid on