控制工程(MATLAB)实验

更新时间:2023-03-09 06:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《机电控制工程基础》

实验指导书

适用专业:机械设计制造及其自动化

机械电子工程

太原工业学院机械工程系

实验一 系统时间响应分析

实验课时数:2学时 实验性质:设计性实验 实验室名称:数字化实验室(机械工程系)

一、实验项目设计内容及要求

1. 实验目的

本实验的内容牵涉到教材的第3、4、5章的内容。本实验的主要目的是通过试验,能够使学生进一步理解和掌握系统时间响应分析的相关知识,同时也了解频率响应的特点及系统稳定性的充要条件。

2. 实验内容

完成一阶、二阶和三阶系统在单位脉冲和单位阶跃输入信号以及正弦信号作用下的响应,求取二阶系统的性能指标,记录试验结果并对此进行分析。

3. 实验要求

系统时间响应分析试验要求学生用MATLAB软件的相应功能,编程实现一阶、二阶和三阶系统在几种典型输入信号(包括单位脉冲信号、单位阶跃信号、单位斜坡信号和正弦信号)作用下的响应,记录结果并进行分析处理:对一阶和二阶系统,要求用试验结果来分析系统特征参数对系统时间响应的影响;对二阶系统和三阶系统的相同输入信号对应的响应进行比较,得出结论。

4. 实验条件

利用数字化实验室的计算机,根据MATLAB软件的功能进行简单的编程来进行试验。

二、具体要求及实验过程

1.系统的传递函数及其MATLAB表达 (1)一阶系统 传递函数为:G(s)?K Ts?1传递函数的MATLAB表达: num=[k];den=[T,1];G(s)=tf(num,den) (2)二阶系统

(s)?2传递函数为:G 2s?2?ws?wnn

2

wn2传递函数的MATLAB表达: num=[wn];den=[1,2?wn,wn];G(s)=tf(num,den)

(3)任意的高阶系统

mm?1bs?bs???bs?b01m?1m传递函数为:G (s)?nn?1as?as???as?a01n?1n22传递函数的MATLAB表达:

num=[b];den=[a];G(s)=tf(num,den) ,b,?b,b,a,?a,a01m?1m01n?1n(s?z)(s?z)?(s?z)1m(s)?K0若传递函数表示为:G

(s?p)(s?p)?(s?p)01n则传递函数的MATLAB表达:

z=[z];p=[p];K=[K];G(s)=zpk(z,p,k) ,z,?,z,p,?,p01m01n2.各种时间输入信号响应的表达

(1)单位脉冲信号响应:[y,x]=impulse[sys,t] (2)单位阶跃信号响应:[y,x]=step[sys,t] (3)任意输入信号响应:[y,x]=lsim[sys,u,t]

其中,y为输出响应,x为状态响应(可选);sys为建立的模型;t为仿真时间区段(可选)

实验方案设计可参考教材相关内容,相应的M程序可参考教材(杨叔子主编的《机械工程控制基础》第五版)提供的程序,在试验指导教师的辅导下掌握M程序的内容和格式要求,并了解M程序在MATLAB软件中的加载和执行过程。

3.实验的具体内容

(1)完成一阶(选用不同的时间常数T)、二阶系统(选择不同的阻尼比?和无阻尼固有频率wn,而且阻尼比?要有欠阻、临界阻尼和过阻尼三种情况)在典型输入信号(单位脉冲、单位阶跃、正弦信号)作用下所对应的时间响应实验;

(2)完成二节系统性能指标的求取(设计的二阶系统必须是欠阻尼的二阶系统)。

3

(2)完成一稳定三阶系统的单位阶跃响应的实验;

(3)完成一个稳定的三阶系统和一个不稳定的三阶系统的单位脉冲响应,比较两响应曲线的差别并说明原因。

4.实验分析内容

(1)分析时间常数对一阶系统时间响应的影响; (2)分析参数对二阶系统的时间响应的性能指标的影响; (3)分析系统稳定性与系统特征值的关系; (4)了解系统频率响应的特点。 三、实验报告 1、编写程序: 3、结果分析

4

科目 :控制工程 姓名 :颜人帅 班级学号:102012237

5

1:完成一阶系统,二阶系统在典型输入信号作用下所对应的时间响应实验 (1)一阶系统

传递函数为:G(s)?K ;其中K=10;T1=10,T2=20,T3=30; Ts?11-1:一阶单位阶跃响应: 1、编写程序:

2、>> num1=[10];den1=[10 1];step(num1,den1) >> hold on

>> num2=num1;den2=[20 1];step(num2,den2) >> num3=num1;den3=[30 1];step(num3,den3) >> gtext('一阶系统单位阶跃响应') >> gtext(['图 1-1'])

gtext(['T1=10';'T2=20';'T3=30']) 运行结果:

结论:由图1-1 可知,随着时间常数T的增大,一阶系统响应时间增大; 1-2:一阶单位脉冲响应:

num1=[10];den1=[10 1];impulse(num1,den1) >> hold on

>> num2=num1;den2=[20 1];impulse(num2,den2) >> num3=num1;den3=[30 1];impulse(num3,den3) >> gtext('一阶系统单位脉冲响应') >> gtext(['图 1-2'])

6

gtext(['T1=10';'T2=20';'T3=30']) 运行结果:

1-3:一阶正弦信号响应:

num1=[10];den1=[10 1];t=(0:0.02:10);u=sin(2*t);lsim(num1,den1,u,t) hold on

num2=num1;den2=[20 1];t=(0:0.02:10);u=sin(2*t);lsim(num1,den2,u,t) num3=num1;den3=[30 1];t=(0:0.02:10);u=sin(2*t);lsim(num1,den3,u,t) gtext('一阶系统正弦信号响应') gtext(['T1=10';'T2=20';'T3=30';]) gtext(['图 1-3']) 运行结果:

7

(2):二阶系统 传递函数为:G(s)?wn222s?2?wns?wn

2

2传递函数的MATLAB表达: num=[wn];den=[1,2?wn,wn]; Wn1=10';'Wn2=20';'Wn3=30;欠阻尼?=0.5,零界阻尼?=1,过阻尼?=2; 2-1-1:二阶系统欠阻尼状态下的单位阶跃响应

num1=[10*10];den1=[1 2*0.5*10 10*10];step(num1,den1) hold on

>> num2=[20*20];den2=[1 2*0.5*20 20*20];step(num2,den2) >> num3=[30*30];den3=[1 2*0.5*30 30*30];step(num3,den3) gtext('二阶系统欠阻尼状态下的单位阶跃响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext(['图 2-1-1']) 运行结果:

2-1-2:二阶系统欠阻尼状态下的单位脉冲响应

>> num1=[10*10];den1=[1 2*0.5*10 10*10];impulse(num1,den1) hold on

>> num2=[20*20];den2=[1 2*0.5*20 20*20];impulse(num2,den2) >> num3=[30*30];den3=[1 2*0.5*30 30*30];impulse(num3,den3) >> gtext('二阶系统欠阻尼状态下的单位脉冲响应') >> gtext(['Wn1=10';'Wn2=20';'Wn3=30']) >> gtext(['图 2-1-2'])

8

运行结果:

2-1-3:二阶系统欠阻尼状态下的正弦信号响应

num1=[10*10];den1=[1 2*0.5*10 10*10];t=(0:0.1:8);u=sin(t);lsim(num1,den1,u,t) hold on

num2=[20*20];den2=[1 2*0.5*20 20*20];t=(0:0.1:8);u=sin(t);lsim(num2,den2,u,t) num3=[30*30];den3=[1 2*0.5*30 30*30];t=(0:0.1:8);u=sin(t);lsim(num3,den3,u,t) gtext('二阶系统欠阻尼状态下的的正弦信号响应') gtext(['图 2-1-3']) 运行结果:

9

2-2-1:二阶系统临界阻尼状态下的单位阶跃响应'

>> num1=[10*10];den1=[1 2*1*10 10*10];step(num1,den1) hold on

num2=[20*20];den2=[1 2*1*20 20*20];step(num2,den2) num3=[30*30];den3=[1 2*1*30 30*30];step(num3,den3) gtext('二阶系统临界阻尼状态下的单位阶跃响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext(['图 2-2-1']) 运行结果:

2-2-2:二阶系统临界阻尼状态下的单位脉冲响应

>> num1=[10*10];den1=[1 2*1*10 10*10];impulse(num1,den1) hold on

num2=[20*20];den2=[1 2*1*20 20*20];impulse(num2,den2) >> num3=[30*30];den3=[1 2*1*30 30*30];impulse(num3,den3) >> gtext('二阶系统临界阻尼状态下的单位脉冲响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext(['图 2-2-2']) 运行结果:

10

2-2-3:二阶系统临界阻尼状态下的正弦信号响应

num1=[10*10];den1=[1 2*1*10 10*10];t=(0:0.1:8);u=sin(t);lsim(num1,den1,u,t) hold on

num2=[20*20];den2=[1 2*1*20 20*20];t=(0:0.1:8);u=sin(t);lsim(num2,den2,u,t) num3=[30*30];den3=[1 2*1*30 30*30];t=(0:0.1:8);u=sin(t);lsim(num3,den3,u,t) gtext('二阶系统临界阻尼状态下的正弦信号响应') gtext(['图 2-2-3'])

运行结果:

2-3-1:二阶系统过阻尼状态下的单位阶跃响应'

>> num1=[10*10];den1=[1 2*2*10 10*10];step(num1,den1) hold on

num2=[20*20];den2=[1 2*2*20 20*20];step(num2,den2) num3=[30*30];den3=[1 2*2*30 30*30];step(num3,den3) gtext('二阶系统过阻尼状态下的单位阶跃响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext(['图 2-3-1']) 运行结果:

11

2-3-2:二阶系统过阻尼状态下的单位脉冲响应

>> num1=[10*10];den1=[1 2*2*10 10*10];impulse(num1,den1) hold on

>> num2=[20*20];den2=[1 2*2*20 20*20];impulse(num2,den2) >> num3=[30*30];den3=[1 2*2*30 30*30];impulse(num3,den3) >> gtext('二阶系统过阻尼状态下的单位脉冲响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext(['图 2-3-2']) 运行结果:

2-3-3:二阶系统过阻尼状态下的正弦信号响应

num1=[10*10];den1=[1 2*1*10 10*10];t=(0:0.1:8);u=sin(t);lsim(num1,den1,u,t) hold on

num2=[20*20];den2=[1 2*1*20 20*20];t=(0:0.1:8);u=sin(t);lsim(num2,den2,u,t) num3=[30*30];den3=[1 2*1*30 30*30];t=(0:0.1:8);u=sin(t);lsim(num3,den3,u,t) gtext('二阶系统过阻尼状态下的正弦信号响应') gtext(['图 2-3-3']) 运行结果:

12

2:完成二节系统性能指标的求取(设计的二阶系统必须是欠阻尼的二阶系统)。

(1)二阶系统在欠阻尼状态下以Wn=10为频率的单位阶跃响应;

传递函数为:G(s)?运行程序:

num=[10*10];den=[1 2*0.2*10 10*10];step(num,den) hold on

num=[10*10];den=[1 2*0.4*10 10*10];step(num,den) num=[10*10];den=[1 2*0.6*10 10*10];step(num,den) num=[10*10];den=[1 2*0.8*10 10*10];step(num,den)

gtext('二阶系统在欠阻尼状态下以Wn=10为频率的单位阶跃响应') gtext(['§=0.2';'§=0.4';'§=0.6';'§=0.8']) gtext('图 3-1') gtext(§为阻尼比')

运行结果:

(1)结果分析:参数:(点击图像可获得数值)

上升时间:Tr1=0.181 Tr2=0.217 Tr13=0.277 Tr4=0.422 峰值时间:Tp1=0.318 Tp2=0.344 Tp3=0.4 Tp4=0.529 最大超调量:Mp=0.53 Mp2=0.25 Mp3=0.09 Mp4=0.02 调整时间:Ts1=2.43 Ts2=1.28 Ts3=0.95 Ts4=0.77

由上面参数可知:当Wn一定时,阻尼比?增大;上升时间Tr增大,Tp增大,Ts也减小,Mp减小;

13

wn222s?2?wns?wn;阻尼比§=0.2, 0.4,0.6 ,0.8

(2)二阶系统在欠阻尼状态下不同频率的单位阶跃响应;

传递函数为:G(s)?wn222s?2?wns?wn;阻尼比?=0.5;Wn=10 , 20 , 30

运行程序:

num=[10*10];den=[1 2*0.5*10 10*10];step(num,den) hold on

num=[20*20];den=[1 2*0.5*20 20*20];step(num,den) num=[30*30];den=[1 2*0.5*30 30*30];step(num,den) gtext('二阶系统在欠阻尼状态下不同频率的单位阶跃响应') gtext(['Wn1=10';'Wn2=20';'Wn3=30']) gtext('图 3-2') 运行结果:

结果分析:

(2)参数:(点击图像可获得数值)

上升时间:Tr1=0.242 Tr2=0.121 Tr13=0.081 峰值时间:Tp1=0.363 Tp2=0.179 Tp3=0.121 最大超调量:Mp=0.16 Mp2=0.16 Mp3=0.16 调整时间:Ts1=0.935 Ts2=0.497 Ts=0.311

结论:由上面参数可知:当阻尼比?一定时,Wn增大;上升时间Tr减

14

3:完成一稳定三阶系统的单位阶跃响应的实验

传递函数为:

稳定G(s)?s9 3?2s2?6s?9阻尼比?=0.5;Wn=3

(1)判断三阶系统函数G(s), F(s)的稳定性: 程序1:判断G(s) den=[1 2 6 9];roots(den) ans =

-0.1715 + 2.3243i -0.1715 - 2.3243i -1.6570 由上可知G(s) 稳定

(2)G(s)单位阶跃响应的实验:

运行程序:>> num=[9]; den=[1 2 6 9];step(num,den) gtext('G(s)单位阶跃响应') 运行结果:

15

4:完成一个稳定的三阶系统和一个不稳定的三阶系统的单位脉冲响应,比较两响

应曲线的差别并说明原因。

稳定G(s)?s9 32?2s?6s?9不稳定 F(s)?s9 3?2s2?3s?9程序2:判断F(s) den=[1 2 3 9];roots(den) ans = -2.3517 0.1758 + 1.9484i 0.1758 - 1.9484i 由上可知F(s)不稳定

(1)G(s)单位脉冲响应

程序:

num=[9];den=[1 2 6 9];impulse(num,den) >> gtext('G(s)单位脉冲响应')

(2):F(s)单位脉冲响应

程序:num=[9];den=[1 2 3 9];impulse(num,den) gtext('F(s)单位脉冲响应') 运行结果:

16

结论分析:G(s)和F(s)的脉.冲图像可知,随着时间的增大,稳定函数

趋于稳定值,而不稳定函数的图像幅值不断增大。

17

本文来源:https://www.bwwdw.com/article/5hyp.html

Top