《现代控制工程》试卷解答
《现代控制工程》试卷
1 考虑图1所示质量-弹簧-阻尼系统,参数如下:
M=100 kg, b=10 N.s/m, k=20 N/m, F(s)=10N
(1) 建立系统数学模型,并求解其时域响应。 (2) 试
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
PID控制器,使系统响应满足较快的上升时间和过渡过程时间、较小的超调量、静态误差尽
可能小。
(3) 构建所设计系统的simulink模型并在模型中通过鼠标对PID控制器的三个参数分别进行调节以进一
步改善系统性能。
x
b
F
k M
图1质量-弹簧-阻尼系统
解:
(1)数学模型如下:
根据牛顿运动定律可以得到系统的运动方程:
f(t)=k*x+b*x'+m*x'' 对其进行Laplace变换后:
F(s)=k*X(s)+b*s*X(s)+m*s*s*X(s)
可得到系统的传递函数:
G(s)=X(s)/F(s)=1/(100s*s*+10s*+20)
据题意,用MATLAB编写程序如下: num=1;
den=[100 10 20];
sys=tf(num,den);
step(sys)
title('加PID控制器前的开环阶跃响应曲线') grid on
pause
由程序得其时域响应如图1所示:
图1 加PID控制器前的开环阶跃响应曲线
(2) 用解析方法,给定系统的技术指标要求如下: 单位斜坡输入稳态误差=0.1
超调量=10%
过渡过程时间=2s
因为原系统为0型系统,加入PID调节后变为1型系统,可以求得加入PID控制器后的稳态误差常数
K1iK,KG(s),,,10,K,2002is,0i200.1 由超调量与过渡过程两项技术指标,可以确定希望的闭环阻尼系数与自然振荡频率ζ=0.6,ωn=4rad/s。
因此,给定ωgc =4rad/s,PM=80?
编写程序如下:
ng=1;
dg=[100 10 20];
ki=200;
wgc=4;pm=80;
ngv=polyval(ng,j*wgc);dgv=polyval(dg,j*wgc);
g=ngv/dgv;
thetar=(pm-180)*pi/180;
ejtheta=cos(thetar)+j*sin(thetar);
eqn=(ejtheta/g)+j*(ki/wgc);
x=imag(eqn);
r=real(eqn);
kp=r
kd=x/wgc
if ki~=0
dk=[1 0];nk=[kd kp ki]; else dk=1;nk=[kd kp];
end
pause
nd=conv(nk,ng),dd=conv(dk,dg) [n1,d1]=feedback(ng,dg,1,1) [n2,d2]=feedback(nd,dd,1,1) pause
[g1m,p1m,wpc1,wgc1]=margin(ng,dg) [g2m,p2m,wpc2,wgc2]=margin(nd,dd) w=logspace(-1,2,200);
pause
figure
bode(ng,dg,w)
grid
hold on
bode(nd,dd,w)
hold off
figure
step(n1,d1)
grid
%hold on
pause
figure
step(n2,d2)
hold off
调整前后单位阶跃响应运行结果分别如图2、3所示:
图2 调整前单位阶跃响应 图3 调整后单位阶跃响应
运行参数得kp =313.7564 kd =399.7626
由图3可见,阶跃响应的过渡过程时间大约为2s,超调量为12%,故满足题目要求。
(3)simulink模型如图4所示,其仿真结果如图5所示,在模型中通过鼠标对PID控制器的三个参数分别进行调节,当系统的性能比较好时(仿真结果如图6所示),Kp=650、Ki=30、Kd=320。
图4 加入PID控制器的simulink模型
图5 系统仿真结果 图6 三个系数调整后的仿真结果
,X,AX,Bu2 已知一个气动位置控制系统,其状态空间方程为
Y,CX
式中
0100,,,,
,,,,A,001,B,0,C,,,100 ,,,,
,,,,0,978,31.333708,,,,
(1) 取采样周期,将系统状态方程离散化。 T,0.004
(2) 判断系统的可控性与可观测性。
(3) 用极点配置法设计一离散的状态反馈器,使系统闭环极点位置为
,,P,,0.6,0.5,0.5i,0.5,0.5i
并求闭环系统的阶跃响应。
(4) 为上述极点配置后的系统设计一状态观测器,并比较系统与观测器的状态输出。
(5) 取加权矩阵
100,,
,,Q,010,R,10 ,,
,,001,,
设计离散二次型最优调节器并求系统的阶跃响应。 解:
A=[0 1 0;0 0 1;0 -978 -31.33];
B=[0;0;3708];
C=[1 0 0];
D=0;
T=0.004;
[p,q]=size(A);
(1)用MATLAB对系统状态方程进行离散:
[Ad,Bd]=c2d(A,B,T);Ad,Bd
pause
得出:
离散后Ad、Bd分别为:
Ad = 1.0000 0.0040 0.0000 Bd =0.0000
0 0.9925 0.0037 0.0284
0 -3.6672 0.8750 13.9039
(2)MATLAB程序设计如下:
M=ctrb(A,B);
m=rank(M)
if(m==min(p,q))
disp('系统是可控的') else
disp('系统是不可控的') end
N=obsv(A,C);
n=rank(N)
if(n==min(p,q))
disp('系统是可观的') else
disp('系统是不可观的') end
pause;
由程序运行结果知:
m=3, 系统是可控的
n=3,系统是可观的
(3)MATLAB程序设计如下: [ZT1,PT1,gain1]=ss2zp(A,B,C,D)
t=0:0.1:20;
figure
rlocus(A,B,C,D);
title('极点配置前的根轨迹曲线') pause
figure
s1=step(A,B,C,D,1,t);
plot(t,s1)
title('极点配置前的阶跃响应曲线')
grid on
disp('由阶跃响应图可知此时系统是发散的')
pause
P=[-0.6 -0.5+0.5i -0.5-0.5i];
K=place(A,B,P)
At=A-B*K;
[ZT2,PT2,gain2]=ss2zp(At,B,C,D);
figure
rlocus(At,B,C,D);
title('极点配置后的根轨迹曲线') pause
figure
s2=step(At,B,C,D,1,t);
x=dcgain(At,B,C,D);
plot(t,s2/x)
title('极点配置后的阶跃响应曲线')
grid on
disp('极点配置后由阶跃响应图可知系统是收敛的')
pause
由程序运行结果知:
配置前:
ZT1 = Empty matrix: 0-by-1
PT1 =0
-15.6650 +27.0667i
-15.6650 -27.0667i
gain1 =3708
根轨迹如图1所示:
图1 极点配置前的要轨迹
极点配置前、后的阶跃响应分别如图2、图3所示,且由图2可知极点配置前系统是发散的,而由图3
可知极点配置后系统是收敛的。极点配置后,反馈增益阵:K= 0.0001 -0.2635 -0.0080
图2 极点配置前的阶跃响应曲线 图3 极点配置后的阶跃响应曲线
(4)MATLAB程序设计如下:
dimf=size(B);noinp=dimf(2);dimc=size(C);
noout=dimc(1);
q0=1;w=sqrt(q0)*randn(100,noinp);
r0=0.01;nu=sqrt(r0)*randn(100,noout);
t=[0:0.1:(100-1)*0.1]';
[y,x]=lsim(At,B,C,D,w,t);
y=x*C'+nu;
[L,P,E]=lqe(At,B,C,q0,r0);L,P,E;
[ae,be,ce,de]=estim(At,B,C,D,L);
xh=lsim(ae,be,ce,de,y,t);
subplot(2,2,1);
plot(t,x(:,1),t,xh(:,2))
title('(1) x1 & xh1 versus t')
subplot(2,2,2);
plot(t,x(:,2),t,xh(:,3))
title('(2) x2 & xh2 versus t')
subplot(2,2,3);
plot(t,x(:,3),t,xh(:,4))
title('(3) x3 & xh3 versus t')
xerr=x-xh(:,2:4);
subplot(2,2,4),
plot(t,xerr)
title('(4) xerr versus t')
pause
由程序计算出其Kalman增益矩阵L及Riccati方程的正定角P分别为: L =1.0e+004 * P = 1.0e+005 * 0.0065 0.0000 0.0002 0.0034 0.2119 0.0002 0.0104 0.2245 3.3618 0.0034 0.2245 7.4935 则由此可构成一个如下的观测器:
::xtALCxtLytBut(),[,](),(),():ytC:(),,,,xt :,()xtI,,,,(),,,,
1.0e,004,,
,,0.0065其中,,:L,,,0.2119,,3.3618,,
:::图4为系统与观测器的状态输出对照曲线,图(1)、(2)、(3)分别为x、x,x、x,x、x的对照,112233
:(4)为估计误差,,x,x的情况。
图4 状态与估计值的对照曲线
(5)
MATLAB程序设计如下:
Q=[1 0 0;0 1 0;0 0 1];
R=10;
K1=dlqr(A,B,Q,R)
AA=A-B*K1;
t=0:0.01:20;
figure
[y,x,t]=step(A,B,C,D,1,t);
plot(t,y)
title('最优调节前的阶跃响应曲线')
grid
pause
figure
[yo,xo,to]=step(AA,B,C,D,1,t);
plot(to,yo)
title('最优调节后的阶跃响应曲线')
grid
由程序运行结果得:
最优反馈增益矩阵K1为:K1=0 -0.2638 -0.0084 则二次型最优调节器为:
u(k),,Kx(k) 1
其中:K1=0 -0.2638 -0.0084
最优调节前、后的阶跃响应曲线如图5所示。
图5 最优调节前、后的阶跃响应曲线