资源描述
机械工程控制理论
课程作业2015。12。121
中国石油大学机电工程学院 研15级
一、计算题(应用MATLAB求解)
1。 一系统由下列两个子系统并联而成,试确定该系统的整体状态方程模型、传递函数模型,并确定系统的零、极点.如取采样周期T=0。1s,确定该系统所对应的Z传递函数和离散状态方程,并判别系统的稳定性。
子系统1:系统状态空间模型的参数
子系统2:系统的传递函数模型为
解:分别求出两个子系统的传递函数和状态空间方程再并联,就可以求出整体模型。
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传递函数
连续系统的稳定性判断准则是系统全部极点均有负实部,从极点的结果看出,所有结果均有负实部,所以该系统是稳定的。
2. 时不变系统,且, 试计算该系统的特征值,并判别其能控性与能观性,确定系统状态方程模型(对角标准型)。
解: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’) %系统状态方程模型(对角标准型)
3. 若系统的状态方程模型参数选择加权矩阵Q=diag{1, 2, 3, 4}及R=eye(2), 则设计出这一线性二次型指标的最优控制器及在最优控制下的闭环系统极点位置。
MATLAB语句:
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];
Q=[1 0 0 0;0 2 0 0;0 0 3 0;0 0 0 4];
R=eye(2);
[K,S,E]=lqr(A,B,Q,R); %求解里卡蒂方程
disp(K); %最优控制器
disp(S); %反馈增益矩阵
disp(E); %闭环系统极点
结果是:
K=
E=
4。 已知线性离散系统的状态方程,试判断系统的稳定性:
(a) , (b)
(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(jwi)H(jwi), 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{:};
a=roots(num0);
flag=0;
for i=1:length(a)
if real(a(i))〉0
flag=flag+1;
end
end
if flag>0
disp(’闭环系统不稳定’)
else
disp(’闭环系统稳定’)
end
2. 现通过实验取得一线性系统的频率特性参量,相关数据存在文件FredataA。mat,应用invfreqs语句估计该系统参数(传递函数分子、分母系数)。
load FredataA.mat
n=20; e1=1e-7; e2=1e-5;
for i=1:n
flag=0;
for j=i:n
[b,a]=invfreqs(h,w,i,j);
h1=freqs(b,a,w);
e=norm(h1—h);
if e〈=e1&b(1)〉=e2
flag=1;
disp('分子解为:’)
B=b
disp('分母解为:’)
A=a
disp('传递函数为:’)
tf(b,a)
break
end
end
if flag==1
break;
end
end
3. 编写求解线性时变系统的时域响应的子程序。
4。 编写一个小程序计算闭环系统的稳态误差,输入参数包括:开环传递函数与输入信号.
5 应用符号运算工具包和ode45等相关语句编写基于变分法求解最优控制的一个小程序。
6. 其它课内布置的编程题。
三、仿真及综合题
任选1题,要求写1 篇小论文,论述仿真模型及仿真结果。所递交仿真程序代码应能实际运行,并能动画演示。
1。 开发一个普通倒立摆控制的自动仿真系统。(n〈11)
2. 建立1—4阶倒立摆控制模型,并进行仿真,考虑小车的线性磨擦(小车磨擦力同速度成反比)。
3。 建立1—3阶倒立摆控制模型,并进行仿真,考虑小车的非线性磨擦。
4. 建立1—3阶倒立摆非线性控制模型,并进行仿真.
5. 建立1—3阶倒立摆控制模型,并进行仿真,考虑小车运行的轨道高度为一曲线f(Z)。
6. 建立6自由度下的1-3阶倒立摆控制模型,并进行仿真。(离散)
7 以一个工程实际应用例子为对象,建立其控制系统模型、并进行仿真,对系统及参数进行优化。
作业在2016年1月10日前完成.统一交郑健。所有文件压缩打包,文件名对应于本人姓名。不要重复多发!
4
展开阅读全文