北理工:自动控制实验实验报告汇总

更新时间:2024-02-29 23:47:01 阅读量: 综合文库 文档下载

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

控制理论基础实验(基于MATLAB)

控制理论基础实验

班级:05611001 学号:1120101327 姓名:付予

实验时间:周五下午7、8节

指导教师:范哲意

1

控制理论基础实验(基于MATLAB)

实验一:控制系统的模型建立

一、实验目的

1. 掌握利用MATLAB 建立控制系统模型的方法。 2. 掌握系统的各种模型表述及相互之间的转换关系。 3. 学习和掌握系统模型连接的等效变换。

二、实验原理

1.系统模型的MATLAB描述 1)传递函数(TF)模型 2)零极点增益(ZPK)模型 3)状态空间(SS)模型 4)三种模型之间的转换

2. 系统模型的连接

在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。

三、实验内容

1. 已知控制系统的传递函数如下

2s2?18s?40G(s)?3 2S?5s?8s?6试用MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。

实验代码: >> num=[2,18,40]; >> den=[1,5,8,6];

>> gtf=tf(num,den) >> gzpk=zpk(gtf)

2

控制理论基础实验(基于MATLAB)

>> gss=ss(gtf) >> pzmap(gzpk)

实验结果: 传递函数模型: gtf =

x1 -5 -2 -1.5 x2 4 0 0 >> grid on

2 s^2 + 18 s + 40 --------------------- s^3 + 5 s^2 + 8 s + 6

零极点增益模型: gzpk =

2 (s+5) (s+4) -------------------- (s+3) (s^2 + 2s + 2)

状态空间方程模型: gss = a =

x1 x2 x3

零极点图形:

x3 0 1 0 b = u1 x1 4 x2 0 x3 0 c =

x1 x2 x3 y1 0.5 1.125 2.5 d = u1 y1 0 3

控制理论基础实验(基于MATLAB)

2.已知控制系统的状态空间方程如下

?0100??0??0010??0??x???ux???0001??0? ????-1-2-3-4???1?y??10200?x试用MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。

实验代码:

>> A=[0 1 0 0;0 0 1 0;0 0 0 1;-1 -2 -3 -4];

>> B=[0;0;0;1]; >> C=[10 2 0 0]; >> D=[0]

实验结果: 系统状态空间方程: a =

x1 x2 x3 x4 x1 0 1 0 0 x2 0 0 1 0

x3 0 0 0 1 x4 -1 -2 -3 -4 b = u1

>> Gss=ss(A,B,C,D) >> Gtf=tf(Gss) >> Gzpk=zpk(Gss) >> pzmap(Gzpk) >> grid on

4

控制理论基础实验(基于MATLAB)

x1 0 x2 0 x3 0 x4 1 c =

x1 x2 x3 x4 y1 10 2 0 0 d = u1 y1 0

零极点图:

Zero/pole/gain:

2 (s+5) ---------------------------------------------

(s+3.234) (s+0.6724) (s^2 + 0.0936s + 0.4599)

传递函数模型: 2 s + 10

----------------------------- s^4 + 4 s^3 + 3 s^2 + 2 s + 1

零极点增益模型:

3.已知三个系统的传递函数分别为

5

控制理论基础实验(基于MATLAB)

2s2?6s?5G1(s)?3s?4s2?5s?2s2?4s?1 G2(s)?32s?9s?8s5(s?3)(s?7)G3(s)?(s?1)(s?4)(s?6)试用MATLAB 求上述三个系统串联后的总传递函数。

实验代码: >> num1=[2,6,5]; >> den1=[1,4,5,2]; >> num2=[1,4,1]; >> den2=[1,9,8,0]; >> z=[-3,-7]; >> p=[-1,-4,-6];

实验结果: 总传递函数: g=

10 s^6 + 170 s^5 + 1065 s^4 + 3150 s^3 + 4580 s^2 + 2980 s + 525 -------------------------------------------------------------------------------------

s^9 + 24 s^8 + 226 s^7 + 1084 s^6 + 2905 s^5 + 4516 s^4 + 4044 s^3 + 1936 s^2 + 384 s

4.已知如图E2-1 所示的系统框图

>> k=5;

>> g1=tf(num1,den1); >> g2=tf(num2,den2); >> g3=zpk(z,p,k); >> g=g1*g2*g3

6

控制理论基础实验(基于MATLAB)

试用MATLAB 求该系统的闭环传递函数。

编写程序代码: >> num1=[1]; >> den1=[1,1]; >> num2=[1]; >> den2=[0.5,1]; >> num3=[3]; >> den3=[1,0]; >> num4=[1];

实验结果:

2.25 s^2 + 7.5 s + 6

--------------------------------------- 0.25 s^4 + 1.25 s^3 + 2 s^2 + 5.5 s + 6

5.已知如图E2-2 所示的系统框图

>> den4=[0.5,1]; >> g1=tf(num1,den1); >> g2=tf(num2,den2); >> g3=tf(num3,den3); >> g4=tf(num4,den4); >> g=feedback((g1+g2)*g3,g4)

7

控制理论基础实验(基于MATLAB)

试用MATLAB 求该系统的闭环传递函数。

实验代码: >> num1=[10]; >> den1=[1,1]; >> num2=[2]; >> den2=[1,1,0]; >> num3=[1,3]; >> den3=[1,2]; >> num4=[5,0];

>> den4=[1,6,8]; >> g1=tf(num1,den1); >> g2=tf(num2,den2); >> g3=tf(num3,den3); >> g4=tf(num4,den4); >> t1=feedback(g2,g3,1); >> t=feedback(g1*t1,g4)

实验结果: t =

20 s^3 + 160 s^2 + 400 s + 320

---------------------------------------------------- s^6 + 10 s^5 + 35 s^4 + 44 s^3 + 82 s^2 + 116 s – 48

四、实验总结及感想

1. 掌握用三种传函模型来表示一个G(s),分别为:传递函数(TF)模型、零极点增益(ZPK)模型、状态空间(SS)模型,以及三种模型之间的相互转化。

8

控制理论基础实验(基于MATLAB)

2. 三种模型应以传函形式选择最优模型。

9

控制理论基础实验(基于MATLAB)

实验 2 控制系统的暂态特性分析

一、 实验目的

1. 学习和掌握利用MATLAB 进行系统时域响应求解和仿真的方法。

2. 考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。

二、实验原理

1. 系统的暂态性能指标

控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶 跃响应定义出来,这些指标分别为:

(1)延迟时间td:响应曲线首次到达稳态值的50%所需的时间。

(2)上升时间tr:响应曲线从稳态值的10%上升到90%所需要的时间长,对于欠阻尼 系统,通常指响应曲线首次到达稳态值所需的时间。 (3)峰值时间tp :响应曲线第一次到达最大值的时间。

(4)调整时间ts:响应曲线开始进入并保持在允许的误差(±2%或±5%)范围内所 需要的时间。

(5)超调量σ:响应曲线的最大值和稳态值之差,通常用百分比表示

??y(tp)-y(?)y(?)?100%

其中y(t)为响应曲线。

在MATLAB 中求取单位阶跃响应的函数为step,其使用方法如下 step(sys) 在默认的时间范围内绘出系统响应的时域波形 step(sys,T) 绘出系统在0 – T 范围内响应的时域波形

step(sys,ts:tp:te) 绘出系统在ts – te 范围内,以tp 为时间间隔取样的响应波形 [y,t] = step(?) 该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间 向量。

系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲 线对应的数值向量中关键点来确定。

2.LTI View工具

在MATLAB 中提供了线性是不变系统仿真的工具LTI Viewer,可以方便地观察系统的

响应曲线和性能指标。在命令窗口中键入ltiview 即可启动LTI Viewer。这里简要介绍LTI Viewer 工具(如图2-1 所示)的使用方法。

10

控制理论基础实验(基于MATLAB)

图2-1 LTI Viewer工具运行界面

1)【File】菜单

Import 选项:可以从Workspace 或MAT 文件中导入系统模型。

Export 选项:将当前窗口中的对象模型保存到Workspace 或文件中。

Toolbox preferences 选项:属性设置功能,可以设置控制系统中得各种属性值。 Page Setup 选项:页面设置功能,可以对打印输出和显示页面进行设置。 2)【Edit】菜单

Plot Configuration 选项:对显示窗口及显示内容进行配置。

Line Style 选项:线型设置功能,可以对输出响应曲线的线型进行设置。

Viewer Preferences 选项:对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性 进行设置。

3)右键菜单

在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为: Plot Types:选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、

11

控制理论基础实验(基于MATLAB)

波特图、奈奎斯特图、零极点图等。 System:选择需要仿真的系统。

Characteristic:系统的性能指标选项。 Grid:显示和关闭网格。 Normalize:正常显示模式。 Full View:满界面显示模式。

Properties:性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、 性能指标等。

三、实验内容

1. 已知单位负反馈系统前向通道的传递函数为

G(s)?80 2s?2s试用MATLAB 绘制系统的单位阶跃响应曲线。 实验代码及结果如下: mum=[1 2 0]

mum =

1 2 0

den=[1 2 80]; G1=tf(mum,den)

Transfer function: s^2 + 2 s -------------- s^2 + 2 s + 80

step(G1,10) step(G1,8) 实验图形:

12

控制理论基础实验(基于MATLAB)

分析:

系统单位阶跃响应是跟据系统闭环传递函数绘制的,因此要根据开环传递函数(前向通路)及反馈类型找到系统闭环传递函数,再绘制阶跃响应曲线。

由响应曲线可以看出,二阶单位负反馈系统单位阶跃响应的稳态值为1,系统震荡逐渐衰减。

2. 已知二阶系统

2?n G(s)?22s?2??ns??n(1)?= 0.6,?n= 5,试用MATLAB 绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。 v=5; e=0.6;

t=[0:0.1:10]; num=[v^2];

den=[1,2*e*v,v^2]; G=tf(num,den); step(G,8)

图像如下:

13

控制理论基础实验(基于MATLAB)

Tp=0.785s σ=9.48%

Td=0.272s

14

控制理论基础实验(基于MATLAB)

Tr=0.554s

Ts=1.19s

15

控制理论基础实验(基于MATLAB)

(2)?n=1 ,ζ 从0 变化到2,求此系统的单位阶跃响应。

实验代码: w=1;

s=[0,0.1,0.2,0.5,1.0,1.5,2.0]; t=[0:0.1:15]; num=[w^2]; hold on

for i=1:length(s) den=[1,2*s(i)*w,w^2] sys=tf(num,den); step(sys,t) end

hold off grid on

gtext('s=0');gtext('s=0.1');gtext('s=0.2');gtext('s=0.5');gtext('s=1.0'); gtext('s=1.5');gtext('s=2.0'); 实验图形:

分析:

从上图可知,随着ζ从0增加到2,频响逐步减弱,在ζ=0时候,是无阻尼振荡,表现为等幅振荡,不稳定;随着ζ增大,进入欠阻尼状态,振荡减小。ζ=1的时候为临界阻尼振荡,>1的时候是过阻尼状态,可以看到,此时已经没有振荡产生。再观察过渡时间ts,可以发现在0.4<ζ<0.8的时候,ts很短,同时振荡也不严重,满足稳定性,所以我们在控

16

控制理论基础实验(基于MATLAB)

制工程中一般希望二阶系统工作在这个区间内。

(3)ζ = 0.5,?n 从0 变化到1(?n≠0),求此系统的单位阶跃响应。

实验代码:

w=[0.1,0.25,0.5,0.75,1.0]; t=[0:0.1:40];

hold on

for i=1:length(w) num=[w(i)^2]

den=[1,2*s*w(i),w(i)^2] sys=tf(num,den); step(sys,t) end

hold off grid on

gtext('w=0.1');gtext('w=0.25');gtext('w=0.5');gtext('w=0.75');gtext('w=1.0') 实验结果:

4.观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。

17

控制理论基础实验(基于MATLAB)

答:根据上述实验数据可以看出,阻尼比ζ的增大使得上升时间tr峰值时间tp逐渐增加,超调量降低,峰值降低,震荡逐渐减小。调整时间ts减小,即进入稳态的时间变短。表明阻尼比的增大使得系统的快速性和稳定性都有所增强。?n的增大使得调整时间ts,上升时间tr,峰值时间tp都减小,而超调量,峰值等指标不变,表明?n的增大使得系统的快速性增强,但并没有增强系统的稳定性。

四、实验总结与感想

1.通过MATLAB可以很直观对系统动态指标进行分析,十分方便。

2.更加深入的理解五个动态指标,以及阻尼比ζ和?n对这5个指标的影响。 3.深化系统的开环、闭环区别。

18

控制理论基础实验(基于MATLAB)

实验3 根轨迹分析

一、实验目的

1. 学习和掌握利用MATLAB 绘制根轨迹图的方法。 2. 学习和掌握利用系统根轨迹图分析系统的性能。

二、实验原理

1. 根轨迹分析的MATLAB实现

根轨迹是指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。在MATLAB中,提供了用于根轨迹分析的专门函数。

1)rlocus函数 2)rlocfind函数 3)sgrid函数

2. Rltool工具

三、实验内容

1. 已知系统开环传递函数为

G(s)?K(s?5)

(s?1)(s?3)(s?12)(1)使用MATLAB 绘制系统的根轨迹图。 实验代码: den=[-1,-3,-12] num=[-5]; h=[1];

G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys)

19

控制理论基础实验(基于MATLAB)

实验结果:

(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K 值。 实验结果:

20

控制理论基础实验(基于MATLAB)

由图可知:k=2.38

(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。

实验代码: a=-40:1:-5; h=[1]; hold on; for i=1:length(a); num=[-5]; den=[-1,3,a(i)]; G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys) end

实验结果:

p1=-2.12

p2=-11.8

21

控制理论基础实验(基于MATLAB)

结果分析:

随着极点的变化,根轨迹的形状一直在改变,但是一直是始于开环极点,终于开环零点或无穷远处,并且开环极点数目不变,根轨迹的分指数也不变。

2. 已知系统开环传递函数为

G(s)?K(s?8) 2s(s?2)(s?8s?32)(1)使用MATLAB 绘制系统的根轨迹图。 实验代码: num=[-8];

den=[0,-2,-4+4*j,-4-4*j]; h=[1];

G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys)

实验结果:

22

控制理论基础实验(基于MATLAB)

(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K 值。 实验结果:

由图可知:k1=52

(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。

实验代码: a=-20:5:-1; h=[1] hold on; for i=1:length(a) num=[a(i)];

den=[0,-2,-4+4*j,-4-4*j]; G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys); end

23

k2=2.07x10^3

控制理论基础实验(基于MATLAB)

实验结果:

(3)已知单位负反馈系统的开环传递函数为

G(s)?K

s(s2?4s?5)(1)使用MATLAB 绘制系统的根轨迹图。 实验代码: num=[1]; den=[1 4 5 0]; G=tf(num,den); sys=feedback(G,1); rlocus(sys)

24

控制理论基础实验(基于MATLAB)

实验结果:

(2)分析使系统稳定的K值范围和使系统无超调的K值范围,并通过观察系统的单位阶跃响应曲线加以验证。

实验代码: den=[1 4 5 0]; a=20:10:100; hold on; for i=1:length(a); num1=[a(i)]; G1=tf(num1,den); sys1=feedback(G1,1); step(sys1) end

b=1:2:20; hold on;

25

for i=1:length(b) num=[b(i)]; G2=tf(num,den); sys2=feedback(G2,1); step(sys2) end

c=0.1:0.1:1; hold on; for i=1:length(c); num3=[c(i)]; G3=tf(num3,den);

控制理论基础实验(基于MATLAB)

sys3=feedback(G3,1); step(sys3)

实验结果:

end

26

控制理论基础实验(基于MATLAB)

K>19,系统不稳定 K>1,系统有超调 K<1,系统无超调

四、实验感想:

1.本次实验可以通过两种方法完成,一种是利用MATLAB函数对所要求的指标进行设置并求取,另一种是可以通过Rltool工具进行直接调整求取。Rtool工具可以直接设置零极点,并且可以通过抓取点确定需要的指标,这些都大大的减小了编写代码的麻烦过程。

2.本次实验研究了根轨迹的绘制方法,可以看到对根轨迹的主要影响就是开环系统的零极点,零极点的不同改变根轨迹的特性,并可以通过根轨迹判断稳定的临界值,在设计中很意义。

27

控制理论基础实验(基于MATLAB)

实验四:系统的频率特性分析

一、实验目的

1.学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。 2.学习和掌握利用系统的频率特性分析系统的性能。

二、实验原理

系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图。在MATLAB中,提供了绘制Nyquist图和Bode图的专门函数。

margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率。

三、实验内容

1. 已知系统开环传递函数为

G(s)?1000

(s2?3s?2)(s?5)绘制系统的Nyquist 图,并讨论其稳定性。 实验代码: p=[-1,-2,-5]; z=[]; k=1000; g=zpk(z,p,k)

28

控制理论基础实验(基于MATLAB)

实验结果:

结果分析:

系统逆时针包围(-1,j0)0圈,顺时针包围2圈,而开环无正实部极点即P=0,所以不满足稳定判据,闭环不稳定。

2. 已知系统的开环传递函数为

5510[(s)2?s?1]44 G(s)?100.21s2(s?1)(s?1)(s?1)3340(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。 实验代码:

num=[25/16,5/4,1]; den=[1]; g1=tf(num,den); z=[];

p=[0,0,-0.3,-15,-40]; k=10;

g2=zpk(z,p,k)*180;

29

控制理论基础实验(基于MATLAB)

g=g2*g1; pzmap(g) grid on bode(g) margin(g)

实验结果:

结果分析:

可以看到系统有一对虚轴上的极点,所以处于临界稳定状态。

30

控制理论基础实验(基于MATLAB)

(2)绘制系统Bode 图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。

实验结果:

由图可知: 相位裕度60.7

幅值裕度为:-18.4dB,

3. 已知系统的开环传递函数为

G(s)?K

s(s?1)(0.1s?1)分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。

实验代码: z=[]; p=[0,-1,-10];

k=5; %第二次时改为20 g=zpk(z,p,k);

31

控制理论基础实验(基于MATLAB)

bode(g); margin(g); 实验结果: K=5:

由图可知: 相位裕度:13.6度 幅值裕度:6.85db 闭环稳定

32

控制理论基础实验(基于MATLAB)

K=20:

相位裕度:-9.66度 幅值裕度:-5.19db 闭环不稳定

四、实验总结与感想

1. 实际中闭环函数往往不好求得,但是只要通过系统的开环传递函数的耐奎斯特图和波特图就通过开环函数的特性便可以简便地判定闭环稳定性。

2.临界考试,在复习理论知识的同时,这四次实验让我对课本知识有了更立体的了解,加深了一些概念,并且对MATLAB的使用有了一定精进,其中最大的收获就是学会使用“HELP”来向软件寻求帮助,很好很强大。

3.最后感谢范老师的教导,祝范老师天天开心。

33

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

Top