控制系统计算机辅助设计实验报告.docx
《控制系统计算机辅助设计实验报告.docx》由会员分享,可在线阅读,更多相关《控制系统计算机辅助设计实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
控制系统计算机辅助设计实验报告
控制系统计算机辅助
设计实验报告
姓名:
学号:
学院:
自动化学院
专业:
自动化
2013-11
实验
一、实验要求:
1、用matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分
式形式的模型参数,并分别写出其相应的数学模型表达式:
s3+7s2+24斥+24
(1)
(对=0+10辭+35辭+5伽+24’
■
■
■■
2*25
-5
-1.25
-0.5
4
2,25
-4.25
-1.25
—0,25
2
巡)=
忑亿)+
讹)
0.25
-0,5
—1.25
-1
2
1.25
-1.75
-OJ5
一0.75
0
1"(f)=
[02n
2、用欧拉法求下面系统的输出响应y(t)在0y'=-y,y(0)=1
要求保留4位小数,并将结果与真解y(t)=e-t比较。
3、用二阶龙格库塔法求解2的数值解,并于欧拉法求得的结果比较。
.、实验步骤:
1、求
(1)的M文件如下:
clear;
num=[172424];
den=[110355024];
sys=tf(num,den)
[A,B,C,D]=tf2ss(num,den)
[Z,P,K]=tf2zp(num,den)
[R,P,H]=residue(num,den)
1.1系统系数矩阵A,系统输入矩阵B,系统输出矩阵C,直接传输矩阵D分别为:
-10
■35
-50
-24
1
0
0
0
Q
1
Q
Q
0
0
I
0
B=
L
0
C
Q
D=
0
所以系统的状态方程为:
x(t)=Ax
(t)+Bu(t);y(t)=Cx(t)
1.2
P=
l二
-4.QOOO
K二
-2_73064-2.S5311
-3.0000
-2.7306-2.3531i
-2.OOCO
1
-1_5388
'1.0000
零极点增益模型:
(s)=【(s+2.7306-2.8531i)(s+2.7306+2.8531i)(s+1.5388)】/【(s+4)(s+3)(s+2)(s+1)l
1.3系统零点向量乙极点向量P,系数H分别为:
F=
R二
4.0000
-3-0000TT
-6_OCOO
H=
2-OCOO
-2.QQQQ
1.0000
-L0000口
部分分式形式:
G(s)=4/(s+4)-6/(s+3)+2/(s+2)+1/(s+1)
2.求
(2)的M文件如下:
clear;
a=[2.25,-5,-1.25,-0.5;
2.25,-4.25,-1.25,-0.25;
0.25,-0.5,-1.25,-1;
1.25,-1.75,-0.25,-0.75];b=[4;2;2;0];
c=[0,2,0,2];
d=0;
sys=ss(a,b,c,d)
[num,den]=ss2tf(a,b,c,d)
[Z,RK]=ss2zp(a,b,c,d)
[R,PH]=residue(num,den)
2.1
nixm.=
0
4.0003
14*0000
22.OO'OO
15.OQOO
den.=
LOCOO
10000
6.2B00
5.2500
2.2500
传递函数模型参数:
G(S)=(4sA3+14sA2+22s+15)/(sA4+4sA3+6.25sA2+5.25s+2.25)
2.2系统零点向量乙极点向量P,系数K分别为:
-0.5000+■0.86601
-L0000十h22471
-1.0000-1.22471
-1.5000
-O.SOOO-0.secoi
-1.5000
4.COCO
)(s+1+1.2247i
1.5000
零极点增益模型参数:
G(s)=【4(s+1-1.2247i
(s+0.5-0.866i)(s+0.5+0.866is+1.5)】
2.3
R=
p二
4.0090
'].5000
-0.oooo
-1.5000
H=
0.0000-Z3O94i
-0.5000+0.8660i
1
0.0000十2.30941
-0,5000-0.86601
[]
部分分式形式的模型参数:
:
G(s)=4/(s+1.5)-2.3094i/(s+0.5-0.866i)+2.3094i/(s+0.5+0.866i)
3原理:
把f(t,y)
M文件如下:
在[tk,yk]区间内的曲边面积用矩形面积近似代替
clear
y=1;
h=0.1;
j=0;
fori=1:
11
j=j+1;a(j)=yy=y+h*(-y);endj=0;fori=0:
0.1:
1f=exp(-i);j=j+1;b(j)=f;
endfigure
(1)x=0:
0.1:
1;abplot(x,a,'y-*')holdonplot(x,b,'--ro')得到图形:
0,
0.
0.
0.
0.
00.20.40.60飞
0.
使用欧拉法得到的结果和真值对比:
欧拉
1
0.9000
0.8100
0.7290
0.6561
0.5905
0.5314
0.4783
0.4305
0.3874
0.3487
真
1
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
值
误
0
-0.004
-0.000
-0.011
-0.014
-0.016
-0.017
-0.018
-0.018
-0.019
-0.019
差
8
7
8
2
0
4
3
8
2
2
显然误差与h2为同阶无穷小,欧拉法具有一阶计算精度,精度较低,但算法简单。
4.原理:
把f(t,y)在[tk,yQ区间内的曲边面积用上下底为fk和fk+i、高为h的梯形面积近似代替。
M文件如下:
clear;
y=i;
h=0.1;
j=0;
fori=1:
11
j=j+1;
a(j)=y
k仁_y;
k2=-(y+0.5*h*k1);
y=y+h*k2;
end
j=0;
fori=0:
0.1:
1
f=exp(-i);
j=j+1;
b(j)=f;
end
figure
(2)
x=0:
0.1:
1;
a
b
plot(x,a,'y-*')
holdon
plot(x,b,'--ro')
得到图形:
0.6
0.8
比较欧拉法与二阶龙格-库塔法求解.
直
/、
值
1
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
龙库
1
0.9050
0.8190
0.7412
0.6708
0.6071
0.5494
0.4972
0.4500
0.4072
0.3685
误差
0
0.0002
0.0003
0.0004
0.0005
0.0006
0.0006
0.0006
0.0007
0.0006
0.0006
明显误差为h3得同阶无穷小,具有二阶计算精度,而欧拉法具有以阶计算精度,
二阶龙格-库塔法比欧拉法计算精度咼。
三、实验总结:
此次实验只要平时上课认真听过课,参考课件和书本便能顺利完成实验。
由此实验也可以总结出很多问题都会有多种解法,我们要通过实践总结出最佳解法。
实验二
实验内容:
1、用四阶龙格-库塔法求解题2-3数值解,并与前两题结果相比较
2、已知二阶系统状态方程为
ii(f)
帀(0)
^20
吃(0)
(1)
写出取计算步长为h时,该系统状态变量
忑⑴=[xj(£),X2(t)H
的四阶龙格-库塔法递推关系式
(2)
令上式中u(t)=0,用试探法选取参数
带入(a)所得公式,给出仿真图形。
要求选取两组参数,一组使系统稳定,一组使系统发散。
(注:
系统稳定从仿真图形上看,可视为系统的状态曲线x(t)趋于一定的值,发散可视为系统的状态曲线x(t)趋于无穷,当时间t趋于无穷时。
)
实验步骤:
1.求四阶龙格-库塔方法求解函数数值解:
M文件:
clear;
y=1;
h=0.1;
j=0;
fori=1:
11
j=j+1;
a(j)=y
k仁_y;
k2=-(y+0.5*h*k1);
k3=-(y+0.5*h*k2);
k4=-(y+h*k3);
y=y+h/6*(k1+2*k2+2*k3+k4);
end
j=0;
fori=0:
0.1:
1f=exp(-i);j=j+1;b(j)=f;
endfigure(3)x=0:
0.1:
1;abplot(x,a,'y-*')holdonplot(x,b,'--ro')
0.3
0,7
0.6
0.5
a.4
得到图形:
对于四阶龙格-库塔方法:
真值
1
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
龙
库
1
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
误
差
0
0
0
0
0
0
0
0
0
0
0
四阶龙格-库塔法得到的结果与真值完全重合,所以四阶龙格库塔法求解精度高于二阶龙格库塔法,二阶龙格库塔法求解精度高于欧拉法。
2当u(t)=0时:
M源程序:
clear;
h=0.1;
i=1;
j=1;
x=[2;1];
A=[-1,0;2,-2]
fort=O:
h:
1O
disp(x);
k1=A*x;
k2=A*(x+k1*h/2);
k3=A*(x+k2*h/2);
k4=A*(x+k3*h);
M(i)=x(1,:
);
T(i)=x(2,:
);
i=i+1
j=j+1
m=x
X=m+h/6*(k1+2*k2+3*k3+k4);
end
eig(A)
x=0:
h:
10;
plot(x,M)
holdon
plot(x,T)
0.5616
得到结果:
特征根ans=-3.5616
图像:
将A改为卜1,0;2,-2]
得到:
特征根ans=-2,-1
图形为:
三、实验总结:
此次实验需要耐心调整矩阵A的值,并且h需要设置合适的大小,才能保证图形的圆滑。
实验三
实验内容:
1、针对2-6中问题(b),对所选取的使系统发散的一组参数,设置控制u(t)=Kx(t)使系统稳定,其中K可以设计为一个常数(一般而言是个负数)或者为一个2*2的矩阵(一般而言其特征值均为负)。
2、将上述控制系统在Matlab/Simulink平台上进行仿真,并选取不同的仿真算法,比较所得的结果。
(注:
这里的不同仿真算法是指,在Simulink仿真参数配置对话框中分别选取:
定步长和变步长进行仿真,在定步长中又可以分为欧拉法,或其他,变步长中也可以选择其他算法,并比较不同的仿真算法对仿真结果的影响。
)
二、实验步骤:
。
在Simulink下建立系统框图如下:
X[2;1];A[-1,2;2,-2];B[1;1];K=[-1,-1]
在Simulink仿真参数配置对话框中分别选取不同算法:
定步长的
Euler法、Runge-Kutta法;变步长的Adams法、Bogacki-Shampine法、Dormand-Prinee法。
其中定步长时步长为0.2。
变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。
固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
1.1定步长Euler法如图:
1.2定步长Runge-Kutta法:
对于定步长分析可知,定步长Runge-Kutta的图形比较理想,曲线比较平滑。
2.1
变步长Dormand-prinee法:
2.2变步长Bogachi-Shanpine法:
2.3变步长Adams法:
对于变步长:
通过增大步长以减少运算时间。
变步长的最大值也要设置当然越小越好,但是太小了会仿真的时间很长,浪费时间。
通过上述实验图可以发现变步长对于此系统曲线更加平滑。
实验总结:
此次实验花费的时间比较长,需要耐心地用尝试法使系统稳定。
此次实验我不仅请教了同学而且自己也通过查阅资料最终完成了实验,收获颇多。