Nyquist PlotFrom: U(1)0.40.30.2Imaginary Axis0.1To: Y(1)0-0.1-0.2-0.3-0.4-2.5-2-1.5-1-0.50Real Axis 回目录
4. 极点配置和观测器设计
例8_30
系统开环传递函数为
G(s)?16.7s
(0.8s?1)(0.25s?1)(0.0625s?1)绘制出Nickols图。 k1=16.7/0.0125; z1=[0];
p1=[-1.25 -4 -16];
[num,den]=zp2tf(z1,p1,k1); figure(1);
nichols(num,den);
axis([-360,0,-40,40]); ngrid('New');
title('Nickols Plot'); Nickols PlotFrom: U(1)40200Open-Loop Gain (dB)-20To: Y(1)-40-60-80-100-200-150-100-50050100Open-Loop Phase (deg) 回目录
例8_31
被控对象
H(s)?10
(s?1)(s?2)(s?3)设计反馈控制器u=-kx,使闭环系统的极点为?1??2?j23,?2??2?j23,
?3?10。
%Pole Placement--using transformation matrix %
disp('Pole placement--using transformation matrix'); a=[0,1,0;0,0,1;-6,-11,-6]; b=[0;0;10]; %Step1
cam=ctrb(a,b);
disp('The rank of controllability matrix'); rc=rank(cam); %Step2
beta=poly(a); %Step3
a1=beta(2); a2=beta(3); a3=beta(4);
w=[a2,a1,1;a1,1,0;1,0,0]; t=cam*w; %Step4
j=[-2+2*sqrt(3)*i, 0, 0; 0,-2-2*sqrt(3)*i,0; 0,0,-10]; alph=poly(j); aa1=alph(2); aa2=alph(3); aa3=alph(4); %Step 5
k=[aa3-a3,aa2-a2,aa1-a1]*(inv(t)) %
%Pole Placement ---using Ackermann's formula %
disp('Pole Placement ---using Ackermann''s formula'); a=[0,1,0;0,0,1;-6,-11,-6]; b=[0;0;10]; %Step1
cam=ctrb(a,b);
disp('The rank of controllability matrix'); rc=rank(cam); %Step2
j=[-2+2*sqrt(3)*i, 0, 0; 0,-2-2*sqrt(3)*i,0; 0,0,-10]; alph=poly(j); %Step3
phi=polyvalm(alph,a); %step 4
k=[0,0,1]*(inv(cam))*phi %
%Pole Placement --using place function in Matlab
%
disp('Pole Placement --using place function in Matlab'); p=[-2+2*sqrt(3)*i,-2-2*sqrt(3)*i,-10]; k=place(a,b,p)
Pole placement--using transformation matrix The rank of controllability matrix k =
15.4000 4.5000 0.8000
Pole Placement ---using Ackermann's formula The rank of controllability matrix k =
15.4000 4.5000 0.8000
Pole Placement --using place function in Matlab k =
15.4000 4.5000 0.8000 回目录
例8_32
含积分环节的类型1伺服系统,设对象为
H(s)?1
s(s?1)(s?2)设计控制器u=-kx+k1r,使闭环系统具有极点?2?j23,-10。
%Pole Placement--using transformation matrix %
disp('Pole placement--using transformation matrix');
disp('Pole Placement --using place function in Matlab'); a=[0,1,0;0,0,1;0,-2,-3]; b=[0;0;1]; c=[1 0 0]; d=[0];
disp('The rank of controllability matrix'); rc=rank(ctrb(a,b))
p=[-2+2*sqrt(3)*i,-2-2*sqrt(3)*i,-10]; k=place(a,b,p) a1=a-b*k; b1=b*k(1); c1=c; d1=d;
figure(1);
step(a1,b1,c1,d1);
title('Step Response of Designed Servoi System'); figure(2);
[y,x,t]=step(a1,b1,c1,d1); plot(t,x);
title('Step Response curves for x1,x1,x3'); grid on;
Pole placement--using transformation matrix
Pole Placement --using place function in Matlab The rank of controllability matrix rc = 3
place: ndigits= 15 k =
160.0000 54.0000 11.0000