控制系统matlab仿真实验报告4.docx
《控制系统matlab仿真实验报告4.docx》由会员分享,可在线阅读,更多相关《控制系统matlab仿真实验报告4.docx(14页珍藏版)》请在冰豆网上搜索。
![控制系统matlab仿真实验报告4.docx](https://file1.bdocx.com/fileroot1/2023-2/24/9473d520-e37f-4fae-8126-b6ae8f9cc992/9473d520-e37f-4fae-8126-b6ae8f9cc9921.gif)
控制系统matlab仿真实验报告4
控制系统仿真实验报告
实验4.基于MATLAB的时域分析
班级:
09自动化报告人:
张家明完成时间:
2012-11-16
1.已知系统传递函数如下,
1)用MATLAB建立系统模型并将所建立的系统模型相互转换为tf、zpk或ss形式。
2)通过连接函数的方式实现系统G1和G2的串联和并联
1).
程序:
z=[-2];%G1(s)
p=[-0.4,-15,-25];
k=18;
sys1=zpk(z,p,k)
[num,den]=zp2tf(z,p,k);
sys2=tf(num,den)
[A,B,C,D]=zp2ss(z,p,k)
sys3=ss(A,B,C,D)
运行结果;
Zero/pole/gain:
18(s+2)
---------------------
(s+0.4)(s+15)(s+25)
Transferfunction:
18s+36
----------------------------
s^3+40.4s^2+391s+150
a=
x1x2x3
x1-0.400
x21.6-40-19.36
x3019.360
b=
u1
x11
x21
x30
c=
x1x2x3
y1000.9295
d=
u1
y10
程序:
num=[1,2];%G2(S)
den=[1,1,10];
sys1=tf(num,den)
[z,p,k]=tf2zp(num,den)
sys2=zpk(z,p,k)
[A,B,C,D]=tf2ss(num,den)
sys3=ss(A,B,C,D)
运行结果:
Transferfunction:
s+2
------------
s^2+s+10
Zero/pole/gain:
(s+2)
---------------
(s^2+s+10)
a=
x1x2
x1-1-10
x210
b=
u1
x11
x20
c=
x1x2
y112
d=
u1
y10
程序:
A=[-40.4-139-150;100;010];
B=[1;0;0];
C=[018360];
D=0;
sys1=ss(A,B,C,D)
[num,den]=ss2tf(A,B,C,D);
sys2=tf(num,den)
[z,p,k]=ss2zp(A,B,C,D);
sys3=zpk(z,p,k)
运行结果:
a=
x1x2x3
x1-40.4-139-150
x2100
x3010
b=
u1
x11
x20
x30
c=
x1x2x3
y1018360
d=
u1
y10
Continuous-timemodel.
Transferfunction:
18s+360
----------------------------
s^3+40.4s^2+139s+150
Zero/pole/gain:
18(s+20)
---------------------------------
(s+36.73)(s^2+3.674s+4.084)
2).
程序:
clc
z=[-2];%G1(s)
p=[-0.4,-15,-25];
k=18;
sys1=zpk(z,p,k);
num=[1,2];%G2(S)
den=[1,1,10];
sys2=tf(num,den);
sys=series(sys1,sys2)
tf(sys)
sys=parallel(sys1,sys2)
tf(sys)
运行结果
Zero/pole/gain:
18(s+2)^2
-----------------------------------------------
(s+15)(s+25)(s+0.4)(s^2+s+10)
Transferfunction:
18s^2+72s+72
-----------------------------------------------------------------
s^5+41.4s^4+441.4s^3+945s^2+4060s+1500
Zero/pole/gain:
(s+50.42)(s+7.055)(s+2)(s+0.9278)
-----------------------------------------------
(s+0.4)(s+15)(s+25)(s^2+s+10)
Transferfunction:
s^4+60.4s^3+525.8s^2+1148s+660
------------------------------------------------------------------
s^5+41.4s^4+441.4s^3+945s^2+4060s+1500
2.使用2种以上的方法判断以下系统的稳定性
(1).方法一:
程序:
clc
numo=[1];
deno=[11223];
[numc,denc]=cloop(numo,deno)
[z,p,k]=tf2zp(numc,denc)
i=find(real(p)>0)
n=length(i)
ifn>0
disp('systemisunstable')
else
disp('systemisstable')
end
运行结果:
numc=
0001
denc=
11224
z=
Emptymatrix:
0-by-1
p=
-3.0000
1.0000+2.6458i
1.0000-2.6458i
k=
1
i=
2
3
n=
2
systemisunstable
(2).方法二:
程序:
clc
numo=[1];
deno=[11223];
[numc,denc]=cloop(numo,deno,-1)
pzmap(numc,denc)
运行结果:
3.已知2输入2输出系统状态方程如下,
1)试求系统的传递函数。
考虑ss2tf函数的使用方法:
[b,a]=ss2tf(A,B,C,D,iu)
2)绘制单位阶跃响应曲线。
1).
程序:
clc
A=[-1-1;6.50];
B=[11;10];
C=[11;10];
D=[00;00];
[num1,den1]=ss2tf(A,B,C,D,1)
[num2,den2]=ss2tf(A,B,C,D,2)
sys1=tf(num1(1,:
),den1)
sys2=tf(num1(2,:
),den1)
sys3=tf(num2(1,:
),den2)
sys4=tf(num2(2,:
),den2)
运行结果:
num1=
02.00006.5000
01.0000-1.0000
den1=
1.00001.00006.5000
num2=
01.00006.5000
01.00000.0000
den2=
1.00001.00006.5000
Transferfunction:
2s+6.5
-------------
s^2+s+6.5
Transferfunction:
s-1
-------------
s^2+s+6.5
Transferfunction:
s+6.5
-------------
s^2+s+6.5
Transferfunction:
s+3.553e-015
--------------
s^2+s+6.5
2).
程序:
subplot(2,2,1)
step(sys1);title('stepresponseofsys1')
subplot(2,2,2)
step(sys2);title('stepresponseofsys2')
subplot(2,2,3)
step(sys3);title('stepresponseofsys3')
subplot(2,2,4)
step(sys4);title('stepresponseofsys4')
运行结果:
4.已知系统的开环传递函数G(s)如下,使用subplot函数在同一窗口中绘制输入信号为u1和u2时,该系统的时域响应曲线。
程序:
clc
z=[];
p=[0,-4];
k=25;
[numo,deno]=zp2tf(z,p,k);
[numc,denc]=cloop(numo,deno);
t=0:
0.01:
10;
u1=1+0.2*sin(4*t);
u2=0.3*t+0.3*sin(5*t);
subplot(2,1,1)
lsim(numc,denc,u1,t);gridon
subplot(2,1,2)
lsim(numc,denc,u2,t);gridon
运行结果: