1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
// Exercise B-2-4
// Plotting the response of different types of controllers
// to unit step and unit ramp input.
clear; clc; xdel(winsid());
Kp = 4; //proportional gain
Ki1 = 2; //integral gain
Td = 0.8; //differential time
Ti = 2; //integral time
Ki2 = Kp / Ti;
s = %s;
Gi = syslin('c',Ki1/s);
t = 0:0.05:3;
ramp = t;
subplot(3,2,1);
p1 = Kp * ones(1,length(t));
p2 = Kp * t;
plot2d(t ,p1 , style=2);
plot2d(t ,p2 , style=3);
xtitle('Proportional control','t','y');
legend('step input','ramp input');
xgrid(color('gray'));
subplot(3,2,2);
i1 = csim("step",t,Gi);
i2 = csim(ramp,t,Gi);
plot2d(t ,i1, style=2);
plot2d(t ,i2, style=3) ;
xtitle('Integral control','t','y');
xgrid(color('gray'));
i1 = i1 * Ki2 / Ki1; //change of gain
i2 = i2 * Ki2 / Ki1;
subplot(3,2,3);
plot2d(t ,p1 + i1, style=2);
plot2d(t ,p2 + i2, style=3);
xtitle('Proportional integral control','t','y');
xgrid(color('gray'));
subplot(3,2,4);
pd1 = p1;
pd2 = p2 + Kp*Td*ones(1,length(t)); //derivative term
plot2d(t ,pd1, style=2);
plot2d(t ,pd2, style=3);
xtitle('Proportional plus derivative control','t','y');
xgrid(color('gray'));
subplot(3,2,5);
plot2d(t ,pd1 + i1, style=2);
plot2d(t ,pd2 + i2, style=3,leg='ramp input') ;
xtitle('P.I.D. control','t','y');
xgrid(color('gray'));
|