计算机仿真复习
计算机仿真复习
给定被控对象,
试利用Matlab建立其状态空间表达式;
MATLAB程序为:
num=[1 1 1];
den=[1 6 11 6];
[A,B,C,D]=tf2ss(num,den)
运行结果为:
A =
-6 -11 -6
1 0 0
0 1 0
B =
1
0
0
C =
1 1 1
D =
0
(b)在采样周期0.1时进行离散化。
MATLAB程序为:
K=1,Z=[-1/2+1/2*i*3^(1/2);-1/2-1/2*i*3^(1/2)]
P=[-1;-2;-3];,T=0.1;
[A,B,C,D]=zp2ss(Z,P,K)
运行结果为:
A =
-1.0000 0 0
1.0000 -5.0000 -2.4495
0 2.4495 0
B =
1
0
0
C =
1.0000 -4.0000 -2.0412
D =
0
(2)已知两子系统的传递函数分别为
试利用Matlab求两个子系统串联、并联时的传递函数。并用Simulink实现,两种方法进行对比分析。
用matlab求法:
Matlab程序为:
num1=1;den1=[1 3 1];num2=1;den2=[1 3];
[num3,den3]=series(num1,den1,num2,den2)
[num4,den4]=parallel(num1,den1,num2,den2)
运行结果为:
num3 =
0 0 0 1
den3 =
1 6 10 3
num4 =
0 1 4 4
den4 =
1 6 10 3
用Simulink仿真方法
Simulink编辑
(3)已知系统的方框图如下图所示,求系统的传递函数。
Matlab程序为:
num1=10;den1=[1 1];
num2=1;den2=[2 0.5];
[num5,den5]=series(num1,den1,num2,den2);
num4=0.1;den4=1;
[num6,den6]=feedback(num5,den5,num4,den4);
num3=540;den3=1;
[num7,den7]=series(num3,den3,num6,den6);
num8=1;den8=1;
[num,den]=feedback(num7,den7,num8,den8);
printsys(num,den)
运行结果为:
num/den =
5400
----------------------
2 s^2 + 2.5 s + 5401.5
(4)试用三种方法分别判断下述系统的稳定性。
(a)
(b)
代码1:A=[-1 1;2 -3];
p=poly(A);r=roots(P);ii=find(real(r)>0);n=length(ii);
if(n>0)
disp('System is Unstable');
else
disp('System is Stable');
end
显示结果:
r =-5.5064
0.4371 + 0.7643i
0.4371 - 0.7643i
-0.6839 + 0.4849i
-0.6839 - 0.4849i
System is Stable
代码2:num=[1 2 1 1 2];den=[1 5 1 1 2 1];
r=roots(den),pzmap(num,den)
显示结果:
r =-4.8196
0.4133 + 0.6826i
0.4133 - 0.6826i
-0.5035 + 0.2689i
-0.5035 - 0.2689i
有上图和运行结果可以看出在右半s平面有两个极点,所以系统不稳定。
程序段2:num=[1 2 1 1 2];den=[1 5 1 1 2 1];
[num,den]=cloop(num,den);
r=roots(den),zplane(num,den)
r =
-5.5064
0.43