实验二 控制系统的数学模型、转换及连续系统的数字仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 控制系统的数学模型、转换及连续系统的数字仿真
1、实验目的与基本要求
(1)利用MA TLAB 描述控制系统的各种数学模型; (2)利用MA TLAB 实现系统数学模型间的相互转换;
(3)利用MA TLAB 实现控制系统的串联、并联和反馈连接。 (4)掌握面向系统微分方程的连续系统的数字仿真方法及程序; (5)掌握面向系统结构图的连续系统的数字仿真方法及程序; (6)连续系统的快速仿真。 2、实验环境
(1) 微机一台
(2) MATLAB6.5或者MATLAB7软件
3、实验内容
1、MA TLAB 描述控制系统的各种数学模型 例1 若给定系统的传递函数为
将其用MATLAB 语句表示。 num=4*conv([1,2],[1,6,6])
den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5])))) printsys(num,den)
num/den =
4 s^3 + 32 s^2 + 72 s + 48
----------------------------------------------------- s^7 + 6 s^6 + 14 s^5 + 21 s^4 + 24 s^3 + 17 s^2 + 5 s
例2 设系统的状态空间表达式为 将其用MATLAB 语句表示。
>> a=[0 0 1;-3/2 -2 -1/2;-3 0 -4];b=[1 1;-1 -1;-1 -3];c=[1 0 0;0 1 0]; >> a=[0 0 1;-3/2 -2 -1/2;-3 0 -4],b=[1 1;-1 -1;-1 -3],c=[1 0 0;0 1 0],d=zeros(2,2)
)
523()1()
66)(2(4)(2332+++++++=
s s s s s s s s s G ⎪⎪⎪
⎩⎪⎪⎪⎨⎧⎥⎦
⎤⎢⎣⎡=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡----+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=)(01000
1)()(311111
)(4032/122/3100)(t x t y t u t x t x
a =
0 0 1.0000
-1.5000 -2.0000 -0.5000
-3.0000 0 -4.0000
b =
1 1
-1 -1
-1 -3
c =
1 0 0
0 1 0
d =
0 0
0 0
>>
2、利用MATLAB实现系统数学模型间的转换
将例2状态空间表达式转换为传递函数;[num,den]=ss2tf(a,b,c,d,1)
num =
0 1.0000 5.0000 6.0000
0 -1.0000 -5.0000 -6.0000 den =
1 6 11 6
>> [num,den]=ss2tf(a,b,c,d,2)
num =
0 1.0000 3.0000 2.0000
0 -1.0000 -4.0000 -3.0000
den =
1 6 11 6
3、利用MATLAB实现控制系统的串联、并联和反馈连接
图2-7
已知系统的方框图如图2-7所示,求系统的传递函数。
num1=[1];den1=[2 0.5];num2=[10];den2=[1 1];num3=[0.1];den3=[1];num4=[540];den4=[1];num5=[1];den5=[1];
>> [n1,d1]=series(num2,den2,num1,den1);[n2,d2]=feedback(n1,d1,num3,den3);
>> [n3,d3]=series(num4,den4,n2,d2);[n4,d4]=feedback(n3,d3,num5,den5);
>> printsys(n4,d4)
num/den =
5400
----------------------
2 s^2 + 2.5 s + 5401.5
例3假设单变量系统如教材图3-5所示。
试根据四阶龙格库塔法,熟悉MATLAB仿真程序,求输出量y的动态响应曲线。
r=2;num=8;den=[1 3 0];num2=[1];den2=[1];
[no,do]=feedback(num,den,num2,den2);
[a,b,c,d]=tf2ss(no,do);
tf=input('仿真时间tf: ');h=input('计算步长h: ');
x=zeros(length(a),1);y=0;t=0;
for i=1:tf/h
k1=a*x+b*r;
k2=a*(x+h*k1/2)+b*r;
k3=a*(x+h*k2/2)+b*r;
k4=a*(x+h*k3/2)+b*r;
x=x+h*(k1+2*k2+2*k3+k4)/6;
y=[y;c*x];
t=[t;t(i)+h];
end
plot(t,y)
00.51 1.52 2.53 3.54 4.55
0.5
1
1.5
2
2.5
例4 假设某一系统由四个典型环节组成,如图3-11所示。
1、给出典型环节的参数矩阵P
2、给出连接矩阵W 、W 0和W c ;
3、熟悉 MATLAB 仿真程序,求输出量y 的动态响应曲线。 %ex3_2.m r=10;
p=[0.1 1 0.5 1;0 1 1 0;2 1 2 0;10 1 10 0]; W=[0 0 0 -1;1 0 0 0;0 1 0 0;0 0 1 0]; W0=[1;0;0;0];Wc=[0 0 0 1];
Tf=input('仿真时间Tf = ');h=input('计算步长h = ');
A1=diag(p(:,1));B1=diag(p(:,2));C1=diag(p(:,3));D1=diag(p(:,4)); H=B1-D1*W;Q=C1*W-A1; A=inv(H)*Q;B=inv(H)*C1*W0;
x=[zeros(length(A),1)];y=[zeros(length(Wc(:,1)),1)]; t=0;
for i = 1:Tf/h
K1=A*x+B*r;
K2=A*(x+h*K1/2) + B*r; K3=A*(x+h*K2/2) + B*r;
r
图3-11
Ⅰ
Ⅱ
Ⅲ
Ⅳ