机械工程控制理论大作业_2015
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
......
机械工程控制理论
课程作业2015.12.121
中国石油大学机电工程学院研15级
一、计算题 (应用 MATLAB 求解 )
1. 一系统由下列两个子系统并联而成,试确定该系统的整体状态方程模型、传递函数模型,并确定系统的零、极点。如取采样周期 T=0.1s ,确定该系统所对应的传递函数和离散状态方程,并判别
Z
系统的稳定性。
子系统 1:系统状态空间模型的参数
251
, C 12,D 0 A
, B
10
子系统 2:系统的传递函数模型为G( s)
3
s 3
解:分别求出两个子系统的传递函数和状态空间方程再并联,就可以求出整体模型。
MATLAB 语句:
A=[-2 -5;1 0];
B=[1;0];
C=[1 2];
D=0;
ss1=ss(A,B,C,D) ;%建立子系统1的状态空间模型
sys1=tf(ss1) ;%建立子系统1的传递函数
sys2=tf(3,[1 3]) ;%建立子系统2的传递函数
sys=parallel(sys1,sys2)%建立整体系统传递函数
结果为:
ss=ss(sys)%建立整体系统的状态空间模型
pole(sys)%求系统的极点
zero(sys)%求系统的零点
sd=c2d(sys,0.1,'zoh')%建立T=0.1时,系统的z传递函数
ssd=c2d(ss,0.1)%建立T=0.1时,系统的z传递函数
连续系统的稳定性判断准则是系统全部极点均有负实部
,从极点的结果看出 ,所有结果均有负
实部,所以该系统是稳定的 。
.
3 1
3 1 0 2 3
2. 时不变系统
x
Ax Bu , 且 A
1
3 5 , B
0 1
1 , C 1 , 试计算该系统
y
Cx
4 2
6 1
7
0 0
的特征值 ,并判别其能控性与能观性
,确定系统状态方程模型 (对角标准型 )。
解: 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;
ss=ss(A,B,C,D)
eig(ss) % 求系统特征值
n=rank(ctrb(A,B)); % 能控性判断
if n==3
disp(' 系统能控 ')
else
disp(' 系统不能控 ')
end
结果是 n=3, 系统能控
h=rank(obsv(A,C));
%
能观性判断
if h==3
disp(' 系统能观 ')
else
disp(' 系统不能观 ')
end;
结果是 h=3 ,系统能观 sys=canon(ss,'modal')
%
系统状态方程模型 (对角标准型 )
0 1 0 0 1 0
0 0 1 0
2 1
2, 3, 4}
3. 若系统的状态方程模型参数A
1 2 3 , B
选择加权矩阵 Q=diag{1,
3 3 2
2 1 0 0 4 3.5
及 R=eye(2), 则设计出这一线性二次型指标的最优控制器及在最优控制下的闭环系统极点位置
。
MATLAB 语句 :
A=[0100;0010;-3123;2100];
B=[1 0;2 1;3 2;4 3.5];
Q=[1000;0200;0030;0004];
R=eye(2);
[K,S,E]=lqr(A,B,Q,R);%求解里卡蒂方程disp(K);%最优控制器
disp(S);%反馈增益矩阵
disp(E);%闭环系统极点
结果是:
K=
E=
4.已知线性离散系统的状态方程,试判断系统的稳定性:
(a) x(kT
10.50.3680.6320.632
T )x(kT ) , (b) x(kT T )
0.632
x( kT)u(kT )
0.500.6320.368
( a) MATLAB 语句:
A=[1 0.5;0.5 0];
e=eig(A);
f=find(abs(e)>1);
if (length(f)==0)
disp('系统稳定 ')
else
disp('系统不稳定 ')
end
(b )MATLAB 语句:
A=[0.368 0.632;-0.632 0.632];
e=eig(A);
f=find(abs(e)>1);
if (length(f)==0)
disp('系统稳定')
else
disp('系统不稳定')
end
二、编程题 (选做 2题 )
1. 现有一组开环系统频率特性数据(G(j w i)H(j w i),i=1,2⋯,n),试编写一小程序,来判断对应的闭环系统是否稳定.
%假设试验传递函数
num=[2];
den=[1 3 5 6];
%试验产生开环的频率响应数据
[h,w]=freqs(num,den)
%由试验数据估计系统开环传递函数
disp(' 试验数据 GH(jw)')
h
sum0=sum(h);
for b1=0:50
for den1=(num+1):51
[num,den]=invfreqs(h,w,num1,den1);
h1=freqs(num,den,w);
sum1=sum(h1);
%比较试验数据和估计数据之间的误差
if(norm((sum1)-(sum0)))<1e-5
g=tf(num,den);
break
end
end
if(norm((sum1)-(sum0)))<1e-5
g=tf(num,den);
break
end
end
%开环传递函数
g;
%闭环传递函数
gg=1+g;
[num0,den0]=tfdata(gg);
num0=num0{:};