You are on page 1of 9

Simulink model:

Matlab code for P controller


clear all;
qc=1;
k=0.713;
sim('design_a.mdl');
figure;
plot(q.time,q.signals.values(:,1),q.time,q.signals.values(:,2),q.time,q.signa
ls.values(:,3),'linewidth',3);grid on;zoom on;
xlabel('\bf Time (sec)');
ylabel('\bf Response q_c, q_f')
title('\bf ');
xlabel('Time (sec)','FontName','default','FontSize',14,'FontWeight','Bold');
ylabel('Response q_c, q_f (deg/s)');
title('Pitch Rate response- P controller');
legend('Response','Gust','Command');
figure;
LTF=tf(17.4*[1 1.56],[1 1.568 11.5]);
rlocus(LTF);
sys = tf([17.4 87],[1 1.568 11.5]);
S = stepinfo(sys,'RiseTimeLimits',[0.05,0.95]);

Output:
RiseTime:
SettlingTime:
SettlingMin:
SettlingMax:
Overshoot:
Undershoot:
Peak:
PeakTime:

0.3084
4.8256
2.7171
6.0284
59.3724
0
6.0284
0.7636

Response:

Respective root locus

Gust Response Matlab Code:


sys = tf([17.4 27.144], [ 1 1.568 11.5]);
sys1 = tf(.742);
f = tf (1);
sys2 = series(sys1,lag);
sys3 = series(sys2,f);
h = feedback(sys,sys3)
step(h);

Gust Response

P-controller with lag compensator:

Matlab code:
clear all;
qc=1;
k=0.713;
z1=0.6;
p1=0.02;
sim('design_b.mdl');
figure;
plot(q.time,q.signals.values(:,1),q.time,q.signals.values(:,2),q.time,q.signa
ls.values(:,3),'linewidth',3);grid on;zoom on;
xlabel('\bf Time (sec)');
ylabel('\bf Response q_c, q_f')
title('\bf ');
xlabel('Time (sec)');
ylabel('Response q_c, q_f (deg/s)');
title('Pitch Rate resoponse- Lag controller');
legend('Response','Gust','Command');
figure;
G=tf(17.4*[1 1.56],[1 1.568 11.5]);
C=zpk([-z1],-p1,k);
LTF=C*G;
rlocus(LTF);
sys = tf(LTF);
S = stepinfo(sys,'RiseTimeLimits',[0.05,0.95])

Response:
RiseTime: 0.3084
SettlingTime: 4.825
SettlingMin: 2.7171
SettlingMax: 6.0284
Overshoot: 59.3724
Undershoot: 0

Peak: 6.0284
PeakTime: 0.7636

Root locus

Response:

Gust Response:

Lag compensator with fast lag compensation


clear all;
qc=1;
k=0.713;
z1=4;
p1=0.14;
sim('design_b.mdl');
figure;
plot(q.time,q.signals.values(:,1),q.time,q.signals.values(:,2),q.time,q.signa
ls.values(:,3),'linewidth',3);grid on;zoom on;
xlabel('\bf Time (sec)');
ylabel('\bf Response q_c, q_f')
title('\bf ');
xlabel('Time (sec)');
ylabel('Response q_c, q_f (deg/s)');
title('Pitch Rate response- Lag controller');
legend('Response','Gust','Command');
figure;
G=tf([17.4 27.144],[1 1.568 11.5]);
C=zpk([-z1],-p1,k);
LTF=((C*G)/(1+(C*G)));
rlocus(LTF,[0:0.001:2]);
pause
sys = tf(LTF);
S = stepinfo(sys,'RiseTimeLimits',[0.05,0.95])
close all

Output:
RiseTime: 0.1323
SettlingTime: 1.8809
SettlingMin: 0.9016
SettlingMax: 1.0554
Overshoot: 7.7375
Undershoot: 0
Peak: 1.0554
PeakTime: 0.2428

Response

Root locus:

Matlab code for gust response


sys = tf([17.4 27.144], [ 1 1.568 11.5]);
lag= tf ([1 4],[1 .14]);
sys1 = tf(.713);
f = tf (1);
sys2 = series(sys1,lag);
sys3 = series(sys2,f);
h = feedback(sys,sys3)
step(h);

Gust Response:

You might also like