文档库

最新最全的文档下载
当前位置:文档库 > 自动控制原理 (1)

自动控制原理 (1)

自动控制原理上机实验指导书

王芳、杨志超编写

南京工程学院电力工程学院

二〇〇七年二月

目录

Simulink仿真集成环境简介 (2)

实验一典型环节的性能分析 (11)

实验二二阶系统的性能分析 (14)

实验三自动控制系统的稳定性和稳态误差分析 (17)

实验四自动控制系统根轨迹的分析 (22)

实验五自动控制系统的频域分析 (27)

实验六控制系统的校正及设计 (32)

实验七非线性系统的稳定性分析 (39)

Simulink仿真集成环境简介

Simulink是可视化动态系统仿真环境。1990年正式由Mathworks公司引入到MATLAB中,它是Slmutation 和Link的结合。这里主要介绍它的使用方法和它在控制系统仿真分析和设计操作的有关内容。

1、进入Simulink操作环境

双击桌面上的MATLAB图标,启动MATLAB,进入开发环境,如图0-1所示:

自动控制原理 (1)

图0-1 MATLAB开发环境

从MATLAB的桌面操作环境画面进入Simulink操作环境有多种方法,介绍如下:

①点击工具栏的Simulink图标,弹出如图0-2的图形库浏览器画面。

②在命令窗口键入“simulink”命令,可自动弹出图形库浏览器。

上述两种方法需从该画面“File”下拉式菜单中选择“New/Model”,或点击图标,得到图0-3的图形仿真操作画面。

③从“File”下拉式菜单中选择“New/Model”,弹出图0-3所示的未命名的图形仿真操

自动控制原理 (1)

作画面。从工具栏中点击图形库浏览器图标,调出图0-2的图形库浏览器画面。图0-3用于仿真操作,图0-2的图形库用于提取仿真所需的功能模块。

自动控制原理 (1)

图0-2 Simulink图形库浏览器画面

自动控制原理 (1)

图0-3 simulink仿真操作环境画面

2、提取所需的仿真模块

在提取所需仿真模块前,应绘制仿真系统框图,并确定仿真所用的参数。

图0-2中的仿真用图形库,提供了所需的基本功能模块,能满足系统仿真的需要。该图形库有多种图形子库,用于配合有关的工具箱。下面将对本书中实验可能用到的功能模块作一个简单介绍。

(1)Sources(信号源模块组)

点击图0-2图形库浏览器画面中的Sources,界面右侧会出现各种常用的输入信号,

如图0-4所示。

自动控制原理 (1)

图0-4信号源模块组

·In(输入端口模块)——用来反映整个系统的输入端子,这样的设置在模型线性化与命令行仿真时是必需的。

·Signal Generator(信号源发生器)——能够生成若干种常用信号,如方波信号、正弦波信号、锯齿波信号等,允许用户自由调整其幅值、相位及其它信号。

·From File(读文件模块)和From Workspace(读工作空间模块)——两个模块允许从文件或MATLAB工作空间中读取信号作为输入信号。

·Clock(时间信号模块)——生成当前仿真时钟,在于事件有关的指标求取中是很有意义的。

·Constant(常数输入模块)——此模块以常数作为输入,可以在很多模型中使用该模块。

·Step(阶跃输入模块)——以阶跃信号作为输入,其幅值可以自由调整。

·Ramp(斜坡输入模块)——以斜坡信号作为输入,其斜率可以自由调整。

·Sine Wave(正弦信号输入模块)——以正弦信号作为输入,其幅值、频率和初相位可以自由调整。

·Pulse Genetator(脉冲输入模块)——以脉冲信号作为输入,其幅值和脉宽可以自由调整。

(2)Continuous (连续模块组)

连续模块组包括常用的连续模块,如图0-5所示。

自动控制原理 (1)

图0-5 连续模块组

·Derivative (微分器)——此模块相当于自动控制系统中的微分环节,将其输入端的信号经过一阶数值微分,在其输出端输出。在实际应用中应该尽量避免使用该模块。 ·Integrator (积分器)——此模块相当于自动控制系统中的积分环节,将输入端信号经过数值积分,在输出端输出。

·Transfer Fcn (传递函数)——此模块可以直接设置系统的传递函数,以多项式的比值

形式描述系统,一般形式为1110

1

110()m m m m n n n b s b s b s b G s s a s a s a ----++++=++++ ,其分子分母多项式的系数可以自行设置。

·Pole-Zero (零极点)——将传递函数分子和分母分别进行因式分解,变成零极点表达形式1212()()()

()()()()

m n s z s z s z G s K s p s p s p ---=--- ,其中i z (系统的零点)、j p (系统的极点)可以

自行设置。

·Transport Delay (时间延迟)——此模块相当于自动控制系统中的延迟环节,用于将输入信号延迟一定时间后输出,延迟时间可以自行调整。 (3)Math Operations (数学函数模块组)

数学函数模块组包含各种数学函数运算模块,如图0-6所示。

·Gain (增益函数)——此模块相当于自动控制系统中的比例环节,输出信号等于输入信号的乘以模块中种指定的数值,此数值可以自行调整。

·Sum (求和模块)——此模块相当于自动控制系统中的加法器,将输入的多路信号进

行求和或求差。

·其它数学函数,如Abs(绝对值函数)、Sign(符号函数)、Rounding Function(取整模块)等。

自动控制原理 (1)

图0-6 数学函数模块组

(4)Sinks(输出池模块组)

输出池模块组包含那些能显示计算结果的模块,如图0-7所示。

自动控制原理 (1)

图0-7 输出池模块组

·Out(输出端口模块)——用来反映整个系统的输出端子,这样的设置在模型线性化与命令行仿真时是必需的,另外,系统直接仿真时这样的输出将自动在MATLAB工作空间中生成变量。

·Scope(示波器模块)——将其输入信号在示波器中显示出来。

·x-y Graph(x-y示波器)——将两路输入信号分别作为示波器的两个坐标轴,将信号

的相轨迹显示出来。

·To Workspace(工作空间写入模块)——将输入的信号直接写到MATLAB的工作空间中。

·To File(写文件模块)——将输入的信号写到文件中。

·Display(数字显示模块)——将输入的信号以数字的形式显示出来。

·Stop Simulation(仿真终止模块)——如果输入的信号为非零时,将强行终止正在进行的仿真过程。

·Terminator(信号终结模块)——可以将该模块连接到闲置的未连接的模块输出信号上,避免出现警告。

从图0-2中用鼠标点击打开所需子图形库,用鼠标选中所需功能模块,将其拖曳到图0-3中的空白位置,重复上述拖曳过程,直到将所需的全部功能模块拖曳到图0-3中。

拖曳时应注意下列事项:

(1)根据仿真系统框图,选择合适的功能模块进行拖曳,放到合适的位置,以便于连接。

(2)对重复的模块,可采用复制和粘贴操作,也可以反复拖曳。

(3)功能模块和图0-3的大小可以用鼠标移动到图标或图边,在出现双向箭头后进行放大或缩小的操作。

(4)选中功能模块的方法是直接点击模块,用鼠标选定所需功能模块区域来选中区域内所有功能模块和连接线,点击选中,并按下“shift”键,再点击其它

功能模块。

3、功能模块的连接

根据仿真系统框图,用鼠标点击并移动所需功能模块到合适的位置,将鼠标移到有关功能模块的输出端,选中该输出端并移动鼠标到另一个功能模块的输入端,移动时出现虚线,到达所需输入端时,释放鼠标左键,相应的连接线出现,表示该连接已完成。重复以上的连接过程,直到完成全部连接,组成仿真系统。

4、功能模块参数设置

使用者需设置功能模块参数后,方可进行仿真操作。不同功能模块的参数是不同的,用鼠标双击该功能模块自动弹出相应的参数设置对话框。

例如,图0-8是Transfer Fcn(传递函数)功能模块的对话框。功能模块对话框由功能模块说明和参数设置框组成。功能模块说明框用于说明该功能模块使用的方法和功能,参数框用于设置该模块的参数。Transfer Fcn的参数框由分子和分母多项式两个编辑框组成,在分子多项式框中,用户可输入系统模型的分子多项式,在分母多项式框中,输入系统模型的分母多项式。设置功能模块的参数后,点击OK进行确认,将设置的参数送仿真操作画面,并关闭对话框。

自动控制原理 (1)

图0-8 Transfer Fcn(传递函数)模块参数设置对话框

5、仿真器参数设置

点击图0-3操作画面“Simulation”下拉式菜单“Simulation Parameters…”选项,弹出如图0-9所示的仿真参数设置画面。共有Solver、Workspace I/O、Diagnostics、Advanced和Real-Time Workshop等五个页面。在Solver中设置Solver Type、Solver(步长)等。仿真操作时,可根据仿真曲线设置终止时间和最大步长,以便得到较光滑的输出曲线。

6、示波器参数设置

当采用示波器显示仿真曲线时,需对示波器参数进行设置。双击Scope模块,弹出如图0-10所示的示波器显示画面,点击画面的图标,弹出如图0-11所示的示波器属性对话框,分2个页面,用于设置显示坐标窗口数、显示时间范围、标记和显示频率或采样时间等。时间范围可以在示波器属性对话框里的General页中的Time range设置,

设置值应与仿真器终止时间一致,以便最大限度显示仿真操作数据。鼠标右键点击示波器显示窗口,从弹出菜单选择“Autoscale”,或直接点击图标,可在响应曲线显示后自动调整纵坐标范围;从弹出菜单选择“Save current axes settings”,或直接点击图标,将当前坐标轴范围的设置数据存储。此外,还有打印、放大或恢复等操作。

自动控制原理 (1)

图0-9 仿真参数设置画面

自动控制原理 (1)

图0-10 示波器显示画面图0-11 示波器属性对话框

7、运行仿真

模型编辑好后,点击图0-3操作画面“Simulation”下拉式菜单“start”或“start

Simulation”按钮运行,双击Scope模块,显示输出曲线。

8、对数据作后续处理

当仿真任务比较复杂时,需要将Simulation生成的数再导入到工作空间进行处理和分析,仿真结束后,输出结果通过“To workspace”传送到工作空间中,在工作空间窗口中能看到这些变量,使用“whos”命令能看到这些变量的详细信息。另外,“To file”、“From file”模块能实现文件与Simulink的数据传输。

实验一典型环节的性能分析

一、实验目的

1、熟悉各种典型环节的阶跃响应曲线;

2、了解参数变化对典型环节动态特性的影响。

二、实验任务

1、比例环节(K)

从图0-2的图形库浏览器中拖曳Step(阶跃输入)、Gain(增益模块)、Scope(示波器)模块到图0-3仿真操作画面,连接成仿真框图。

改变增益模块的参数,从而改变比例环节的放大倍数K,观察它们的单位阶跃响应曲线变化情况。可以同时显示三条响应曲线,仿真框图如图1-1所示。

自动控制原理 (1)

图1-1比例环节仿真框图

2、积分环节(1

Ts

将图1-1仿真框图中的Gain(增益模块)换成Transfer Fcn(传递函数)模块,设

置Transfer Fcn(传递函数)模块的参数,使其传递函数变成1

Ts

型。

改变Transfer Fcn(传递函数)模块的参数,从而改变积分环节的T,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-2所示。

自动控制原理 (1)

图1-2 积分环节仿真框图

3、一阶惯性环节(

1

1

Ts +) 将图1-2中Transfer Fcn (传递函数)模块的参数重新设置,使其传递函数变成

11

Ts +型,改变惯性环节的时间常数T ,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-3所示。

自动控制原理 (1)

图1-3 惯性环节仿真框图

4、实际微分环节(

1

Ks

Ts +) 将图1-2中Transfer Fcn (传递函数)模块的参数重新设置,使其传递函数变成1

Ks Ts +型,(参数设置时应注意1T )。

令K 不变,改变Transfer Fcn (传递函数)模块的参数,从而改变T ,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-4所示。

自动控制原理 (1)

图1-4 实际微分环节仿真框图

5、二阶振荡环节(2

22

2n

n n

s s ωξωω++) 将图1-2中Transfer Fcn (传递函数)模块的参数重新设置,使其传递函数变成

222

2n

n n

s s ωξωω++型(参数设置时应注意01ξ<<),仿真框图如图1-5所示。 (1)令n ω不变,ξ取不同值(01ξ<<),观察其单位阶跃响应曲线变化情况; (2)令ξ=0.2不变,n ω取不同值,观察其单位阶跃响应曲线变化情况。

自动控制原理 (1)

图1-5 二阶振荡环节仿真框图

6、延迟环节(s e τ-)

将图1-2仿真框图中的Transfer Fcn (传递函数)模块换成Transport Delay (时间延迟)模块,改变延迟时间τ,观察单位阶跃响应曲线变化情况。仿真框图如图1-6所示。

自动控制原理 (1)

图1-6 延迟环节仿真框图

三、实验要求

1、完成实验任务所有的仿真分析;

2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;

(3) 各环节的仿真框图和阶跃响应曲线; (4) 讨论各环节中参数变化对阶跃响应的影响; (5) 实验的体会。

实验二 二阶系统的性能分析

一、实验目的

1、研究二阶系统的两个重要参数阻尼比ξ和自然振荡频率n ω对系统动态性能的影响;

2、比较比例微分控制的二阶系统和典型二阶系统的性能;

3、比较输出量速度反馈控制的二阶系统和典型二阶系统的性能。

二、实验任务

1、典型二阶系统

二阶系统的传递函数为()s Φ=222

2n

n n

s s ωξωω++,仿真框图如图1-5所示。 (1)令n ω=10不变,ξ取不同值:1ξ=0,2ξ、3ξ(01ξ<<),4ξ=1,5ξ>1,观察其单位阶跃响应曲线变化情况;

(2)令ξ=0不变,n ω取不同值,观察其单位阶跃响应曲线变化情况;

(3)令ξ=0.2不变,n ω取不同值,观察其单位阶跃响应曲线变化情况,并计算超调量%Mp 和s t ;

(4)令n ω=10不变,ξ取不同值(01ξ<<),观察其单位阶跃响应曲线变化情况,并计算超调量%Mp 和s t 。

2、比例微分控制的二阶系统

比例微分控制的二阶系统的结构图如图2-1。

自动控制原理 (1)

图2-1 比例微分控制的二阶系统的结构图

系统中加入比例微分控制,使系统阻尼比增加,并增加一个闭环零点,可以通过仿

真比较典型二阶系统和比例微分控制的二阶系统的单位阶跃响应的性能指标。

上图所示的控制系统,令

225

(2)(2)

n

n

s s s s

ω

ξω

=

++

,0.1

d

T=,其中5,0.2

n

ωξ

==,从

Simulink图形库浏览器中拖曳Step(阶跃输入)、Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图2-2所示。图中Pole-Zero(零极点)模块建立()

G s。

自动控制原理 (1)

图2-2 典型二阶系统和比例微分控制的二阶系统比较仿真框图

3、输出量速度反馈的二阶系统

输出量速度反馈的二阶系统的结构图如图2-3。

自动控制原理 (1)

图2-3 输出量速度反馈的二阶系统的结构图

系统中加入输出量的速度反馈控制,使系统阻尼比增加,可以通过仿真比较典型二阶系统和输出量速度反馈控制的二阶系统的单位阶跃响应的性能指标。

图2-3所示的控制系统,令

225

(2)(2)

n

n

s s s s

ω

ξω

=

++

,0.1

f

K=,其中5,0.2

n

ωξ

==,

建立仿真框图如图2-4所示。图中

0.11

0.11 0.0011

s

s

s

+

≈+

+

自动控制原理 (1)

图2-4 典型二阶系统和输出量速度反馈控制的二阶系统比较仿真框图

三、实验要求

1、完成实验任务所有的仿真分析;

2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;

(3) 实验任务中要求的所有仿真框图和阶跃响应曲线; (4) 讨论下列问题:

a) 试讨论欠阻尼时参数n ω对二阶系统阶跃响应曲线及性能指标%Mp 和s t 的

影响;

b) 试讨论欠阻尼时参数ξ对二阶系统阶跃响应曲线及性能指标%Mp 和s t 的影

响;

c) 试讨论二阶系统加入比例微分控制后性能指标的变化; d) 试讨论二阶系统加入带输出量速度反馈控制后性能指标的变化。

(5)实验体会。

实验三自动控制系统的稳定性和稳态误差分析

一、实验目的

1、研究高阶系统的稳定性,验证稳定判据的正确性;

2、了解系统增益变化对系统稳定性的影响;

3、观察系统结构和稳态误差之间的关系。

二、实验任务

1、稳定性分析

欲判断系统的稳定性,只要求出系统的闭环极点即可,而系统的闭环极点就是闭环传递函数的分母多项式的根,可以利用MATLAB中的tf2zp函数求出系统的零极点,或者利用root函数求分母多项式的根来确定系统的闭环极点,从而判断系统的稳定性。

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

0.2( 2.5)

()

(0.5)(0.7)(3)

s

G s

s s s s

+

=

+++

,用

MATLAB编写程序来判断闭环系统的稳定性,并绘制闭环系统的零极点图。

在MATLAB命令窗口写入程序代码如下:

z=-2.5

p=[0,-0.5,-0.7,-3]

k=0.2

Go=zpk(z,p,k)

Gc=feedback(Go,1)

Gctf=tf(Gc)

dc=Gctf.den

dens=ploy2str(dc{1},'s')

运行结果如下:

dens=

s^4 + 4.2 s^3 + 3.95 s^2 + 1.25 s + 0.5

dens是系统的特征多项式,接着输入如下MATLAB程序代码:den=[1,4.2,3.95,1.25,0.5]

p=roots(den)

运行结果如下:

p =

-3.0058

-1.0000

-0.0971 + 0.3961i

-0.0971 - 0.3961i

p为特征多项式dens的根,即为系统的闭环极点,所有闭环极点都是负的实部,因此闭环系统是稳定的。

下面绘制系统的零极点图,MATLAB程序代码如下:

z=-2.5

p=[0,-0.5,-0.7,-3]

k=0.2

Go=zpk(z,p,k)

Gc=feedback(Go,1)

Gctf=tf(Gc)

[z,p,k]=zpkdata(Gctf,'v')

pzmap(Gctf)

grid

运行结果如下:

z =

-2.5000

p =

-3.0058

-1.0000

-0.0971 + 0.3961i

-0.0971 - 0.3961i

k =