机械控制理论大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 %比较试验数

相关文档
最新文档