机械控制理论大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机械工程控制理论
课程作业
一、计算题(应用MATLAB 求解)
1. 一系统由下列两个子系统并联而成,试确定该系统的整体状态方程模型、传递函数模型,并确定系统的零、极点。如取采样周期T=0.1s ,确定该系统所对应的Z 传递函数和离散状态方程,并判别系统的稳定性。
子系统1:系统状态空间模型的参数[]0,21,01,0152==⎥⎦⎤
⎢⎣⎡=⎥⎦⎤⎢⎣⎡--=D C B A
子系统2:系统的传递函数模型为3
3
)(+=s s G
答: Matlab 程序: clc;clear all;
A=[-2,-5;1,0];B=[1;0];C=[1,2];D=0;T=0.1;
ss1=ss(A,B,C,D); %子系统1的状态空间方程
[num1,den1]=ss2tf(A,B,C,D); %子系统1传递双数的分子分母各阶系数 sys1=tf(num1,den1); %子系统1转化为传递函数模型 sys2=tf([3],[1,3]); %子系统2的传递函数模型
ssa=ss1+sys2; %两系统并联,系统总体状态空间方程 sys=sys1+sys2; %两系统并联,系统总体传递函数 zero(sys) %系统的零点 pole(sys) %系统的极点 ssad=c2d(ssa,T) %系统离散状态方程 sysad=c2d(sys,T) %系统脉冲传递函数
if max(abs(pole(sysad)))>1 %判断是否稳定,通过极点我们可以判断系统稳定性 disp('系统不稳定') else
disp('系统稳定') end
2. 时不变系统 Cx y Bu Ax x =+=.
,且 ⎥⎦⎤⎢⎣⎡=⎥⎥
⎥⎦
⎤
⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=214321,001001,716531313C B A , 试计算该系统的特征值,并判别其能控性与能观性,确定系统状态方程模型(对角标准型)Jordan 标准型。 答: Matlab 程序: clc;clear all;
A=[-3,1,3;1,-3,5;6,1,7]; B=[1,0;0,1;0,0;]; C=[1,2,3;4,1,2];
D=0;
sys=ss(A,B,C,D) %建立状态方程模型 e = eig(sys) ; %求系统特征值 rank(ctrb(A,B)) %系统能控性判断 rank(obsv(A,C)) %系统能观性判断
[csys,T]=canon(sys,'modal')%化为对角标准型,T 为转化矩阵
3. 若系统的状态方程模型参数⎥
⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡-=5.34231201,0012
32130100
0010B A 选择加权矩阵Q=diag{1, 2, 3, 4}(diag = diagonal matrix 对角矩阵)及R=eye(2)(identity matrix 单位矩阵), 则设计出这一线性二次型指标的最优控制器及在最优控制下
的闭环系统极点位置。 答: Matlab 程序: clc;clear all;
A=[0 1 0 0;0 0 1 0;-3 1 2 3;2 1 0 0];B=[1 0;2 1;3 2;4 3.5];C=eye(4);D=zeros(4,2); sys1=ss(A,B,C,D);
disp('开环系统极点位置')
eig(A) %开环系统极点位置 figure(1);
step(sys1); %查看系统状态的响应 Q=diag([1:4]);R=eye(2);
[K,S,E] = LQR(A,B,Q,R); %线性二次型指标的最优控制器 sys2=ss(A-B*K,B,C,D); %加控制器后的反馈系统 disp('闭环系统极点位置')
eig(A-B*K) %闭环系统极点位置 figure(2);
step(sys2); %加控制器后系统阶跃响应
4. 已知线性离散系统的状态方程,试判断系统的稳定性: (a) )(0
5.05.01)(kT x T kT x ⎥⎦⎤⎢⎣⎡=+, (b) )(368.0632.0)(632.0632.0632.0368.0)(kT u kT x T kT x ⎥⎦
⎤
⎢⎣⎡+⎥⎦⎤⎢⎣⎡-=+
答:
Matlab 程序: clc;clear all;
A1=[1 0.5;0.5 0];A2=[0.368 0.632;-0.632 0.632]; disp('A1特征根的模')
e1=eig(A1); %求A1系统的特征值
f1=find(abs(e1)>1) %所以特征值中模大于1的个数 if f1>0 %判断系统稳定性 disp('A1不系统稳定') else
disp('A1系统稳定') end
disp('A2特征根的模')
e2=eig(A2); %同理 f2=find(abs(e2)>1) if f2>0
disp('A2系统不稳定') else
disp('A2系统稳定') end
二、编程题(选做2题)
1. 现有一组开环系统频率特性数据(G (jw i )H (jw i ), i =1,2…,n ),试编写一小程序,来判断对应的闭环系统是否稳
定.
function exe21 B=[1];
A=[1 2 1 2 1]; %假设试验传递函数
[H,W]=freqs(B,A); %试验产生开环的频率相应数据
%%%%由试验数据估计出系统开环的传递函数 disp('试验数据GH(Wj):') H
sum0=sum(H); for b=0:50
for a=(b+1):51
[B,A]=invfreqs(H,W,b,a); H1=freqs(B,A,W);
sum1=sum(H1);
if (norm((sum1)-(sum0)))<1e-5 %比较试验数据和估计数据之间的误差
G=tf(B,A); break end
end
if (norm((sum1)-(sum0)))<1e-5 %比较试验数