一阶系统及二阶系统时域特性MatLab仿真实验实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一一阶系统及二阶系统时域特性MatLab仿真实验(2学时)
一、概述:系统时域特性常用的Matlab仿真函数
1、传递函数两种形式
传递函数通常表达为s的有理分式形式及零极点增益形式。
A、有理分式形式
分别将分子、分母中、多项式的系数按降幂排列成行矢量,缺项的系数用0补齐。
上述函可表示为num1=[2 1](注意:方括号,同一行的各元素间留空格或逗号)。
den1=[1 2 2 1]
syss1=tf(num1,den1)
运行后,返回传递函数G1(s)的形式。
这种形式不能直接进行符号运算!
B.零极点增益形式
[Z,P,K]=tf2zp(num1,den1)
sys2=zpk(Z,P,K)
返回零、极点、增益表达式,其Z,P分别将零点和极点表示成列向量,若无零点或极点用[ ](空矩阵)代替。
运行得到G(s)的零点Z=-0.5,极点P=-1,-0.5±j0.866,增益K=2。
指令zp2tf(Z,P,K)将零极点增益变换成有理分式形式,见程序:
传递函数的有理分式及零极,点增益模型
num1=[2 1]%传递函数的分子系数向量
den1=[1 2 2 1]%传递函数的分母系数向量
sys1=tf(num1,den1)%传递函数的有理分式模型
[Z,P,K]=tf2zp(num1,den1)%有理分式模型转换成零极点增益模型 [num2,den2]=zp2tf(Z,P,K)%零极点增益模型转换成有理分式模型 sys2=zpk(Z ,P ,K)%传递函数的零极点增益模型
[A1,B1,C1,D1]=tf2ss(num1,den1)%有理分式模型转换成状态空间模型 [A2,B2,C2,D2]=zp2ss(Z,P,K)%零极点及增益模型转换成状态空间模型 [num1,den1]=ss2tf(A1,B1,C1,D1)%状态空间模型转换成有理分式模型 [Z,P,K]=ss2zp(A2,B2,C2,D2)%状态空间模型转换成零极点增益模型
程序中,命令tf2ss ,zp2ss 及ss2tf ,ss2zp 是状态空间模型与有理分式及零、极点、增益模型之间的相互转换。
C 、复杂传递函数的求取。
在MATLAB 中,可用conv 函数实现复杂传递函数求取。
conv 函数是标准的MATLAB 函数,用来求取两个向量的卷积,也可用来求取多项式乘法。
conv 函数允许多重嵌套,从而实现复杂的计算。
例:用MATLAB 表示传递函数为)
2)(356()13(152
3
2
2
2++++++++s s s s s s s s )
(的系统。
num=5*[1 1 1]
den=conv(conv(conv([1 3 1],[1 3 1]),[1 6 5 3]),[1 2]) G=tf(num,den)
2、传递函数框图的处理
用框图可以方便地表示传递函数的并联,串联及反馈。
为简洁,仅以有理分式模型为例。
a. 并联
Sysp=parallel(sys1,sys2)
[num,den]=parallel(num1,den1,num2,den2) b.串联
syss=series(sys1,sys2)
[nums,dens]=series(num1,den1,num2,den2)
c、反馈
sysc=feedback(syss,sys3, 1)默决值(-1)
[numc,denc]=feedback(nums,dens,num3,den3)
3、系统的时域特性曲线
impulse函数用于生成单位脉冲响应。
参考程序:系统的单位脉冲响应
num1=[42];
den1=[2 8 14 11 4];
sys1=tf(num1,den1);
num2=[2 1];
den2=[1 4 6 7 3];
sys2=tf(num2,den2);
[y1,t1]=impulse(sys1);%系统G1(s)的单位脉冲响应数据
[y2,t2]=impulse(sys2);%系统G2(s)的单位脉冲响应数据
impulse(sys1,sys2)%系统G1(s)、G2(s)的单位脉冲响应曲线
figure,impulse(sys1,sys2,20)
%系统G1(s)、G2(s)在自选时间(20秒)内的单位脉冲响应曲线
figure,plot(t1,y1)%系统G1(s)的单位脉冲响应曲线
figure,plot(t2,y2)%系统G2(s)的单位脉冲响应曲线
hold on,step(sys2)%系统G2(s)的单位阶跃和单位脉冲响应曲线
程序的最后一句hold on是当前图形保护模式。
当要将新图形作在当前图形上时,必须使用hold on。
而figure的含意是另开一个新的图形窗口,如果不用figure或hold on,则新的图形会占用原图形窗口,始终只保留一个最新的图形窗口。
step函数用于生成单位阶跃响应。
参考程序:系统的单位阶跃响应
num1=[42];
den1=[2 8 14 11 4];
sys1=tf(num1,den1);%系统G1(s)
num2=[2 1];
den2=[1 4 6 7 3];
sys2=tf(num2,den2);%系统G2(s)
[y1,t1]=step(sys1);%系统G1(s)的单位阶跃响应数据
[y2,t2]=step(sys2);%系统G2(s)的单位阶跃响应数据
step(sys1,sys2);%系统G1(s)、G2(s)的单位阶跃响曲线
figure,step(sys1,sys2,20);
%系统G1(S)、G2(s)在自选时间(20秒)内的单位阶跃响曲线 figure ,plot(t1,y1);%系统G1(s)的单位阶跃响应曲线 figure ,plot(t2,y2);%系统G2(s)的单位阶跃响应曲线
lsim 函数用于生成任意输入的时间响应。
二、实验目的
1、使学生通过实验中的系统设计及理论分析方法,帮助学生进一步理解自动控制系统的设计与分析方法。
2、熟悉仿真分析软件。
3、利用Matlab 对一、二阶系统进行时域分析。
4、掌握一阶系统的时域特性,理解常数T 对系统性能的影响。
5、掌握二阶系统的时域特性,理解二阶系统重要参数对系统性能的影响。
三、实验设备
计算机和Matlab 仿真软件。
四、实验内容 1、一阶系统时域特性
一阶系统1
1
)(+=
Ts s G ,影响系统特性的参数是其时间常数T ,T 越大,系统的惯性越大,系统响应越慢。
Matlab 编程仿真T=0.4,1.2,2.0,2.8,3.6,4.4系统单位阶跃响应。
2、二阶系统时域特性
a 、二阶线性系统 16
416
)(2++=s s s G 单位脉冲响应、单位阶跃响应、单位正弦输
入响应的 Matlab 仿真。
b 、下图为具有一微分负反馈的位置随动系统框图,求出系统的闭环传递函数,根据系统瞬态性能指标的定义利用Matlab 分别计算微分反馈时间常数τ为0,0.0125,0.025时系统的上升时间、峰值时、最大超调量和调整时间。
C 、二阶线性系统
36
1236
2++s s ξ,当ξ为0.1,0.2,0.5,0.7,1.0,2.0时,完成
单位阶跃响应的Matlab 仿真,分析ξ值对系统响应性能指标的影响。
五、实验要求
1、进入机房,学生要严格遵守实验室规定。
2、学生独立完成上述实验,出现问题,教师引导学生独立分析和解决问题。
3、完成相关实验内容,记录程序,观察记录响应曲线,响应曲线及性能指标进行比较,进行实验分析
4、分析系统的动态特性。
5、并撰写实验报告,按时提交实验报告。
六、Matlab 编程仿真并进行实验分析
1. 一阶系统时域特性
一阶系统1
1
)(+=
Ts s G ,影响系统特性的参数是其时间常数T ,T 越大,系统的惯性越大,系统响应越慢。
Matlab 编程仿真T=0.4,1.2,2.0,2.8,3.6,4.4系统单位阶跃响应。
1) 源代码
num = 1;
for del = 0.4:0.8:4.4 den = [del 1]; step(tf(num,den)) hold on end
legend('T=0.4','T=1.2','T=2.0','T=2.8','T=3.6','T=4.4')
2) 输出曲线
输出的 不同时间常数的一阶系统的反应曲线如下
3) 实验分析
随着一阶系统的时间常数增大,一阶系统输出达到稳定值所需要的时间越长,即时间常数越大,系统的快速性越差。
4) 收获与感想
通过对不同时间常数的一阶系统的图像的观察,了解了时间常数对于一阶系统的影响效果:时间常数越大,系统快速性越差,从而深化了对课本知识的理解与体会。
2. 二阶系统时域特性
a. 二阶线性系统 16
416
)(2
++=
s s s G 单位脉冲响应、单位阶跃响应、单
位正弦输入响应的Matlab仿真。
1)源代码
num1 = [16];
den1 = [1,4,16];
t = 0:0.1:6*pi;
impulse(tf(num1,den1));
hold on;
step(tf(num1,den1));
hold on;
legend('impulse','step');
figure,lsim(tf(num1,den1),sin(t),t);
hold on;
2)输出曲线
3)实验分析
与一阶系统相比,二阶系统具有更短的过渡过程时间,并且同时能满足对振荡性的要求。
4)收获与感想
通过对图像的管擦,了解到了二阶系统相对于一阶系统的优点:具有更短的过渡时间和满足对振荡性的要求。
b.下图为具有一微分负反馈的位置随动系统框图,求出系统的闭环
传递函数,根据系统瞬态性能指标的定义利用Matlab分别计算微分反馈时间常数τ为0,0.0125,0.025时系统的上升时间、峰值时、最大超调量和调整时间。
1)源代码
t = 0:0.001:1;
yss = 1;
dta = 0.02;
num = [0 0 50];
den1 = [0.05 1 50];
den2 = [0.05 1+50*0.0125 50];
den3 = [0.05 1+50*0.025 50];
y1 = step(tf(num,den1),t);
y2 = step(tf(num,den2),t);
y3 = step(tf(num,den3),t);
r = 1;
while y1(r) < yss;
r=r+1;
end
tr1 = (r-1)*0.001;
[ymax,tp] = max(y1);tp1 = (tp - 1)*0.001;
mp1 = (ymax - yss)/yss;
s = 1001;
while y1(s)>1 - dta & y1(s)<1+dta;
s = s-1;
end
ts1 = (s-1)*0.001;
r = 1;
while y2(r) < yss;
r = r+1;
end
tr2 = (r-1)*0.001;[ymax,tp] = max(y2);
tp2 = (tp-1)*0.001;mp2 = (ymax - yss)/yss;
s = 1001;
while y2(s)>1 - dta & y3(s) < 1 + dta;
s = s - 1;
end
ts2 = (s - 1)*0.001;
r = 1;
while y3(r) < yss;
r = r+1;
end
tr3 = (r-1)*0.001;[ymax,tp] = max(y3);
tp3 = (tp-1)*0.001;mp3 = (ymax - yss)/yss;
s = 1001;
while y3(s)>1 - dta & y3(s) < 1 + dta;
s = s - 1;
end
ts3 = (s - 1)*0.001;
[tr1 tp1 mp1 ts1;tr2 tp2 mp2 ts2;tr3 tp3 mp3 ts3]
2) 输出结果
ans =
0.0640 0.1050 0.3509 0.3530
0.0780 0.1160 0.1523 0.2500
0.1070 0.1410 0.0415 0.1880
即
3) 实验分析
由求得的数据可知,微分反馈上升时间和峰值时间随时间常数τ增大而增大,最大超调量和调整时间随时间常数τ增大而减小。
4) 收获与感想
通过这个实验,能更加直观的感受到微分反馈时间常数τ对系统上升时间、峰值时、最大超调量和调整时间的影响。
c. 二阶线性系统361236
2++s s ξ,当ξ为0.1,0.2,0.5,0.7,1.0,2.0
时,完成单位阶跃响应的Matlab仿真,分析 值对系统响应性能指标的影响。
1)源代码
num1 = [36];
for del = [0.1,0.2,0.5,0.7,1.0,2.0]
den1 = [1 12*del 36];
step(tf(num1,den1));
hold on;
end
legend('ζ=0.1','ζ=0.2','ζ=0.5','ζ=0.7','ζ=1.0','ζ=2.0')
2)输出结果
3)实验分析
由实验曲线图像可得,当ζ<1时,ζ越大,系统输出曲线的上升时间越大,峰值时间越大,最大超调量越小,调整时间越小,振荡次数减少。
4)收获与感想
通过本次实验,更加直观的感受了ζ对系统响应的上升时间,峰值时间,最大超调量,调整时间,振荡次数这些性能指标的影响,深化了对课本理论知识的理解。