自动控制原理Matlab仿真应用

自动控制原理Matlab仿真应用
自动控制原理Matlab仿真应用

控制系统的MATLAB 仿真

1 MATLAB 简介

MATLAB 是Mathworks 公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB 不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。从而能够很好的帮助工程师及科学家解决实际的技术问题。

MATLAB 的含义是矩阵实验室(Matrix Laboratory ),最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。经过十几年的扩充和完善,现已发展成为包含大量实用工具箱(Toolbox )的综合应用软件,不仅成为线性代数课程的标准工具,而且适合具有不同专业研究方向及工程应用需求的用户使用。

MATLAB 最重要的特点是易于扩展。它允许用户自行建立完成指定功能的扩展MATLAB 函数(称为M 文件),从而构成适合于其它领域的工具箱,大大扩展了MATLAB 的应用范围。目前,MATLAB 已成为国际控制界最流行的软件,控制界很多学者将自己擅长的CAD 方法用MATLAB 加以实现,出现了大量的MATLAB 配套工具箱,如控制系统工具箱(control systems toolbox ),系统识别工具箱(system identification toolbox ),鲁棒控制工具箱(robust control toolbox ),信号处理工具箱(signal processing toolbox )以及仿真环境SIMULINK 等。

(1) MATLAB 的安装

本节将讨论操作系统为Microsoft Windows 环境下安装MATLAB6的过程。

将MATLAB6的安装盘放入光驱,系统将自动运行auto-run.bat 文件,进行安装;也可以执行安装盘内的setup.exe 文件启动MATLAB 的安装程序。启动安装程序后,屏幕将显示安装MATLAB 的初始界面,根据Windows 安装程序的常识,不断单击[Next],输入正确的安装信息,具体操作过程如下:

输入正确的用户注册信息码; 选择接收软件公司的协议; 输入用户名和公司名;

选择MATLAB 组件(Toolbox ); 选择软件安装路径和目录;

单击[Next]按钮进入正式的安装界面。安装过程界面如图1所示。

图1 MATLAAB 安装过程界面

图2 MATLAAB 启动过程界面

安装完毕后,选择[Restart my computer now]选项以重新启动计算机。 重新启动计算机后,用户就可以点击图标使用MATLAB6了。MA TLAB 启动过程界面如

图2所示。

(2) MATLAB 桌面系统

MATLAB 的桌面系统由桌面平台以及桌面组件共同构成,如图3。桌面平台是各桌面组件的展示平台,它提供了一系列的菜单操作以及工具栏操作,而不同功能的桌面组件构成了整个MATLAB 操作平台。其组件主要包含如下8个组件部分:

①命令窗口(Command Window )②历史命令窗口(Command History )③组件平台(Launch Pad )④路径浏览器(Current Directory Browser )⑤帮助浏览器(Help Browser )⑥工作空间浏览器(Workspace Browser )⑦数组编辑器(Array Editor )⑧M 文件编辑调试器(Editor-Debugger )。

用户可以在View 菜单下选择打开或关闭某个窗口。

(3) MATLAB 命令窗口

MATLAB 可以认为是一种解释性语言。在MATLAB 命令窗口中,标志>>为命令提示符,在命令提示符后面键入一个MATLAB 命令时,MATLAB 会立即对其进行处理,并显示处理结果。

这种方式简单易用,但在编程过程中要修改整个程序比较困难,并且用户编写的程序不容易保存。如果想把所有的程序输入完再运行调试,可以用鼠标点击快

File|New|M-file 菜单,在弹出的编程窗口中逐行输入命令,输入完毕后点击Debug|Run(或F5)运行整个程序。运行过程中的错误信息和运行结果显示在命令窗口中。整个程序的源代码可以保存为扩展名为“.m ”的M 文件。

在介绍MATLAB 的强大计算和图象处理功能前,我们可以先运行一个简单的程序。 设系统的闭环传递函数为:

8

24

)(2+++=

s s s s G

求系统的时域响应图,可输入下面的命令:

图3 MA TLAB 桌面平台

>> num=[1,4]; den=[1,2,8]; step(num,den)

程序运行后会在一个新的窗口中显示出系统的时域动态响应曲线,如图4。用鼠标左键点击动态响应曲线的某一点,系统会提示其响应时间和幅值。按住左键在曲线上移动鼠标的位置可以很容易的根据幅值观察出上升时间、调节时间、峰值及峰值时间,进而求出超调量。如果想求根轨迹,可将程序的第三行变为rlocus(num,den),求伯德图可改为bode(num,den)。所不同的是,在根轨迹和伯德图中,G(s)为开环传递函数。

MATLAB 的语法规则类似于C 语言,变量名、函数名都与大小写有关,即变量A 和a 是两个完全不同的变量。应该注意所有的函数名均由小写字母构成。

MATLAB 是一个功能强大的工程应用软件,它提供了相当丰富的帮助信息,同时也提供了多种获得帮助的方法。如果用户第一次使用MATLAB ,则建议首先在>>提示符下键入DEMO 命令,它将启动MATLAB 的演示程序。用户可以在此演示程序中领略MATLAB 所提供的强大的运算和绘图功能。

2 MATLAB 基本操作命令

本节简单介绍与本书内容相关的一些基本知识和操作命令。

(1)简单矩阵的输入

MATLAB 是一种专门为矩阵运算设计的语言,所以在MATLAB 中处理的所有变量都是矩阵。这就是说,MATLAB 只有一种数据形式,那就是矩阵,或者数的矩形阵列。标量可看作为1×1的矩阵,向量可看作为n ×1或1×n 的矩阵。这就是说,MATLAB

语言对矩阵的维数及类

图4 动态响应时域图

型没有限制,即用户无需定义变量的类型和维数,MATLAB 会自动获取所需的存储空间。

输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下: (1) 元素之间用空格或逗号间隔;

(2) 用中括号([])把所有元素括起来; (3) 用分号(;)指定行结束。

例如,在MATLAB 的工作空间中,输入:

>> ]9654 3 2[a ; 

= 则输出结果为:

9

654

32 a =

矩阵a 被一直保存在工作空间中,以供后面使用,直至修改它。

MATLAB 的矩阵输入方式很灵活,大矩阵可以分成n 行输入,用回车符代替分号或用续行符号(…)将元素续写到下一行。例如:

]987654321[a , , ; , , ; , , =

9]

8 7 6 5 4 3 2 1 [a = ]

987654321[a , , ; , , ; , , ?

??=

以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号(…)。

在MATLAB 中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:

(1) 利用内部语句或函数产生矩阵; (2) 利用M 文件产生矩阵;

(3) 利用外部数据文件装入到指定矩阵。

(2)MATLAB 图形窗口

当调用了一个产生图形的函数时,MATLAB 会自动建立一个图形窗口。这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。

图形窗口中的图形可通过打印机打印出来。若想将图形导出并保存,可用鼠标点击菜单File|Export,导出格式可选emp 、bmp 、jpg 等。命令窗口的内容也可由打印机打印出来:如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。

(3)剪切板的使用

利用Windows 的剪切板可在MATLAB 与其它应用程序之间交换信息。

(1) 要将MATLAB 的图形移到其它应用程序,首先按Alt-Print Screen 键,将图形复制到剪切板中,然后激活其它应用程序,选择edit (编辑)中的paste (粘贴),就可以

在应用程序中得到MATLAB中的图形。当然还可以借助于copy to Bitmap 或copy to Metafile 选项来传递图形信息。

(2)要将其它应用程序中的数据传递到MATLAB,应先将数据放入剪切板,然后在MATLAB中定义一个变量来接收。

如键入:q=[

然后选择Edit中的paste,最后加上“]”,这样可将应用程序中的数据送入MATLAB 的q变量中。

(4)MATLAB编程指南

MATLAB的编程效率比BASIC、C、FORTRAN和PASCAL等语言要高,且易于维护。在编写小规模的程序时,可直接在命令提示符>>后面逐行输入,逐行执行。对于较复杂且经常重复使用的程序,可按7.1.3介绍的方法进入程序编辑器编写M文件。

M文件是用MATLAB语言编写的可在MATLAB环境中运行的磁盘文件。它为脚本文件(Script File)和函数文件(Function File),这两种文件的扩展名都是.m。

(1)脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。脚本文件的语句可以访问MATLAB工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。例如下述语句如果以.m为扩展名存盘,就构成了M脚本文件,我们不妨将其文件名取为“S tep_Response”。

% 用于求取一阶跃响应。

num=[1 4];

den=[1 2 8];

step(num,den)

当你键入help Step_Response时,屏幕上将显示文件开头部分的注释:

用于求取一阶跃响应。

很显然,在每一个M文件的开头,建立详细的注释是非常有用的。由于MATLAB提供了大量的命令和函数,想记住所有函数及调用方法一般不太可能,通过联机帮助命令help可容易地对想查询的各个函数的有关信息进行查询。该命令使用格式为:

help 命令或函数名

注意:若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在MATLAB 的搜索路径上。当调用时,只需输入文件名,MATLAB就会自动按顺序执行文件中的命令。

(2)函数文件是用于定义专用函数的,文件的第一行是以function作为关键字引导的,后面为注释和函数体语句。

函数就像一个黑箱,把一些数据送进去,经加工处理,再把结果送出来。在函数体内使用的除返回变量和输入变量这些在第一行functon语句中直接引用的变量外,其它所有变量都是局部变量,执行完后,这些内部变量就被清除了。

函数文件的文件名与函数名相同(文件名后缀为.m),它的执行与命令文件不同,不能键入其文件名来运行函数,M函数必须由其它语句来调用,这类似于C语言的可被其它函数调用的子程序。M函数文件一旦建立,就可以同MATLAB基本函数库一样加以使用。

例1求一系列数的平均数,该函数的文件名为“mean.m”

function y=mean(x)

% 这是一个用于求平均数的函数

w=length(x); % length函数表示取向量x的长度

y=sum(x)/w; % sun函数表示求各元素的和

该文件第一行为定义行,指明是mean函数文件,y 是输出变量,x是输入变量,其后的%开头的文字段是说明部分。真正执行的函数体部分仅为最后二行。其中变量w是局部变

量,程序执行完后,便不存在了。

在MATLAB 命令窗口中键入

>> r=1:10; % 表示r 变量取1到10共10个数 mean(r)

运行结果显示 ans =

5.5000

该例就是直接使用了所建立的M 函数文件,求取数列r 的平均数。

3 MATLAB 在控制系统中的应用

MATLAB 是国际控制界目前使用最广的工具软件,几乎所有的控制理论与应用分支中都有MATLAB 工具箱。本节结合前面所学自控理论的基本内容,采用控制系统工具箱(Control Systems Toolbox )和仿真环境(Simulink ),学习MATLAB 的应用。

(1) 用MATLAB 建立传递函数模型

1.有理函数模型

线性系统的传递函数模型可一般地表示为:

m n a s a s a s b s b s b s b s G n

n n n m m m m ≥++???++++???++=--+- )(11

11

121 (1) 将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num 和den ,就可以轻易地将传递函数模型输入到MATLAB 环境中。命令格式为:

],,,,[121+???=m m b b b b num ; (2) ],,,,,1[121n n a a a a den -???=; (3)

在MATLAB 控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加方便。

该函数的调用格式为:

G =tf(num ,den); (4)

例2 一个简单的传递函数模型:

5

4325

)(2

34+++++=

s s s s s s G 可以由下面的命令输入到MATLAB 工作空间中去。 >> num=[1,5];

den=[1,2,3,4,5]; G=tf(num ,den) 运行结果:

Transfer function:

s + 5

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

这时对象G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。

例3 一个稍微复杂一些的传递函数模型:

)

6()13()

5(6)(22++++=

s s s s s G

该传递函数模型可以通过下面的语句输入到MATLAB 工作空间。 >> num=6*[1,5];

den=conv(conv([1,3,1],[1,3,1]),[1,6]); tf(num,den) 运行结果

Transfer function: 6 s + 30

----------------------------------------- s^5 + 12 s^4 + 47 s^3 + 72 s^2 + 37 s + 6

其中conv()函数(标准的MATLAB 函数)用来计算两个向量的卷积,多项式乘法当然也可以用这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。 2.零极点模型

线性系统的传递函数还可以写成极点的形式:

)

())(()

())(()(2121n m p s p s p s z s z s z s K

s G +???+++???++= (5)

将系统增益、零点和极点以向量的形式输入给三个变量KGain 、Z 和P ,就可以将系统的零极点模型输入到MATLAB 工作空间中,命令格式为:

;K KGain = (6)

;;;;][21m z z z Z -???--= (7) ;;;;][21n p p p P -???--= (8) 在MATLAB 控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB 变量构造出

零极点对象,用于简单地表述零极点模型。该函数的调用格式为: 3. 反馈系统结构图模型

设反馈系统结构图如图5所示。

控制系统工具箱中提供

了feedback()函数,用来求

取反馈连接下总的系统模

型,该函数调用格式如下:

G=feedback(G1,G2,sign); (10)

其中变量sign 用来表示正反馈或负反馈结构,若sign=-1

表示负反馈系统的模型,若

图5 反馈系统结构图

省略sign 变量,则仍将表示负反馈结构。G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。

例5 若反馈系统图5中的两个传递函数分别为: 2

1)1(1

)(+=

s s G , 11)(2

+=s s G 则反馈系统的传递函数可由下列的MATLAB 命令得出

>> G1=tf(1,[1,2,1]); G2=tf(1,[1,1]); G=feedback(G1,G2) 运行结果:

Transfer function:

s + 1

--------------------- s^3 + 3 s^2 + 3 s + 2

若采用正反馈连接结构输入命令

>> G=feedback(G1,G2,1) 则得出如下结果:

Transfer function: s + 1

----------------- s^3 + 3 s^2 + 3 s

5. Simulink 建模方法

在一些实际应用中,如果系统的结构过于复杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的Simulink 程序可以用来建立新的数学模型。Simulink 是由Math Works 软件公司1990年为MATLAB 提供的新的控制系统模型图形输入仿真工具。它具有两个显著的功能:Simul(仿真)与Link(连接),亦即可以利用鼠标在模型窗口上“画”出所需的控制系统模型。然后利用SIMULINK 提供的功能来对系统进行仿真或线性化分析。与MATLAB 中逐行输入命令相比,这样输入更容易,分析更直观。下面简单介绍SIMULINK 建立系统模型的基本步骤:

(1) SIMULINK 的启动:在MATLAB 命令窗口的工具栏中单击按钮

或者在命令提示符>>

下键入simulink 命令,回车后即可启动Simulink 程序。启动后软件自动打开Simullink 模型库窗口,如图 7所示。这一模型库中含有许多子模型库,如Sources(输入源模块库)、Sinks(输出显示模块库)、Nonlinear(非线性环节)等。若想建立一个控制系统结构框图,则应该选择File| New 菜单中的Model 选项,或选择工具栏上new Model 按钮,打开一个

空白的模型编辑窗口如图 8所示。

(2) 画出系统的各个模块:打开相应的子模块库,选择所需要的元素,用鼠标左键点中后拖

到模型编辑窗口的合适位置。 (3) 给出各个模块参数:由于选中的各个模块只包含默认的模型参数,如默认的传递函数模

型为1/(s+1)的简单格式,必须通过修改得到实际的模块参数。要修改模块的参数,可以用鼠标双击该模块图标,则会出现一个相应对话框,提示用户修改模块参数。

(4) 画出连接线:当所有的模块都画出来之后,可以再画出模块间所需要的连线,构成完整

的系统。模块间连线的画法很简单,只需要用鼠标点按起始模块的输出端(三角符号),再拖动鼠标,到终止模块的输入端释放鼠标键,系统会自动地在两个模块间画出带箭头的连线。若需要从连线中引出节点,可在鼠标点击起始节点时按住Ctrl 键,再将鼠标拖动到目的模块。

(5) 指定输入和输出端子:在Simulink 下允许有两类输入输出信号,第一类是仿真信号,

可从source(输入源模块库)图标中取出相应的输入信号端子,从Sink(输出显示模块库)图标中取出相应输出端子即可。第二类是要提取系统线性模型,则需打开Connection(连接模块库)图标,从中选取相应的输入输出端子。

例9 典型二阶系统的结构图如图9所示。用SIMULINK 对系统进行仿真分析。

按前面步骤,启动simulink 并打开一个空白的模型编辑窗口。

(1) 画出所需模块,并给出正确的参数:

● 在sources 子模块库中选中阶跃输入(step )图标,将其拖入编辑窗口,并用鼠标

左键双击该图标,打开参数设定的对话框,将参数step time(阶跃时刻)设为0。 ● 在Math(数学)子模块库中选中加法器(sum )图标,拖到编辑窗口中,并双击该图

标将参数List of signs(符号列表)设为|+-(表示输入为正,反馈为负)。

● 在continuous(连续)子模块库中、选积分器(Integrator )和传递函数(Transfer

Fcn )图标拖到编辑窗口中,并将传递函数分子(Numerator )改为〔900〕,分母(Denominator )改为〔1,9〕。

图 7 simulink 模型库

图8 模型编辑窗口

图9 典型二阶系统结构图

在sinks(输出)子模块库中选择scope(示波器)和Out1(输出端口模块)图标并将之拖到编辑窗口中。

(3)将画出的所有模块按图9用鼠标连接起来,构成一个原系统的框图描述如图10所示。(4)选择仿真算法和仿真控制参数,启动仿真过程。

●在编辑窗口中点击Simulation|Simulation parameters菜单,会出现一个参数对话框,

在solver模板中设置响应的仿真范围StartTime(开始时间)和StopTime(终止时间),仿真步长范围Maxinum step size(最大步长)和Mininum step size(最小步长)。对于本例,StopTime可设置为2。最后点击Simulation|Start菜单或点击相应的热键启动仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果如图11所示。

在命令窗口中键入whos命令,会发现工作空间中增加了两个变量――tout和yout,这是因为Simulink中的Out1 模块自动将结果写到了MATLAB的工作空间中。利用MATLAB命令plot(tout,yout),可将结果绘制出来,如图12所示。比较11和12,可以发现这两种输

图10二阶系统的simulink实现

出结果是完全一致的。

图11仿真结果示波器显示

(2) 利用MATLAB进行时域分析

1. 线性系统稳定性分析

线性系统稳定的充要条件是系统的特征根均位于S 平面的左半部分。系统的零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB 语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。

例11 设传递函数为:

6

1166

352)(2

323++++++=s s s s s s s G 该传递函数的部分分式展开由以下命令获得: >> num=[2,5,3,6]; den=[1,6,11,6];

[r,p,k]=residue(num,den) 命令窗口中显示如下结果

r= p= k= -6.0000 -3.0000 2 -4.0000 -2.0000 3.0000 -1.0000

中留数为列向量r ,极点为列向量p ,余项为行向量k 。 由此可得出部分分式展开式:

21

3

2436)(++++-++-=

s s s s G

例12 设传递函数为:

1

333

2)1(32)(2

3

232+++++=+++=s s s s s s s s s G 则部分分式展开由以下命令获得:

>> v=[-1,-1,-1] num=[0,1,2,3];

den=poly(v);

[r,p,k]=residue(num,den)

结果显示

r=

1.0000 0.0000

2.0000 p=

-1.0000 -1.0000 -1.0000 k=

[ ]

其中由poly()命令将分母化为标准降幂排列多项式系数向量den, k=[]为空矩阵。 由上可得展开式为:

0)

1(2)1(011)(3

2++++++=

s s s s G (5)由传递函数求零点和极点。

在MATLAB 控制系统工具箱中,给出了由传递函数对象G 求出系统零点和极点的函数,其调用格式分别为:

Z=tzero(G) (18) P=G.P{1} (19) 注意:式19中要求的G 必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号{}表示的矩阵元素,详细内容参阅后面章节。

例13 已知传递函数为:

s

s s s s s s G 5.19225.72

.952.618.6)(2

342+++++= 输入如下命令:

num=[6.8,61.2,95.2]; den=[1,7.5,22,19.5,0]; G=tf(num,den); G1=zpk(G);

Z=tzero(G) P=G1.P{1}

结果显示 Z =

-7 -2 P =

0 -3.0000 + 2.0000i

-3.0000 - 2.0000i -1.5000

其结果与例8完全一致。 (6)零极点分布图。

在MATLAB 中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数调用格式为:

pzmap(num,den) (20) 例 14 给定传递函数:

2

72436

4523)(2345234+++++++++=s s s s s s s s s s G

利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图13所示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2];

pzmap(num,den)

title(1Pole-Zero Map 1) % 图形标题。

2. 系统动态特性分析。

(1)时域响应解析算法――部分分式展开法。

用拉氏变换法求系统的单位阶跃响应,可直接得出输出c(t)随时间t 变化的规律,对于高阶系统,输出的拉氏变换象函数为:

s

den num s s G s C 11)()(?=?

= (21) 对函数c(s)进行部分分式展开,我们可以用num,[den,0]来表示c(s)的分子和分母。 例 15 给定系统的传递函数:

24

50351024

247)(23423+++++++=s s s s s s s s G

用以下命令对

s

s G )

(进行部分分式展开。 >> num=[1,7,24,24] den=[1,10,35,50,24]

[r,p,k]=residue(num,[den,0])

输出结果为

r= p= k=

-1.0000 -4.0000 [ ] 2.0000 -3.0000 -1.0000 -2.0000

-1.0000 -1.0000

1.0000 0

输出函数c(s)为:

图13 MATLAB 函数零、极点分布图

01

11213241)(+++-+-+++-=

s

s s s s s C 拉氏变换得:

12)(234+--+-=----t t t t e e e e t c

(2)单位阶跃响应的求法:

控制系统工具箱中给出了一个函数step()来直接求取线性系统的阶跃响应,如果已知传递函数为:

den

num

s G =

)( 则该函数可有以下几种调用格式:

step(num,den) (22) step(num,den,t) (23)

step(G) (24)

step(G,t) (25)

该函数将绘制出系统在单位阶跃输入条件下的动态响应图,同时给出稳态值。对于式23和25,t 为图像显示的时间长度,是用户指定的时间向量。式22和24的显示时间由系统根据输出曲线的形状自行设定。

如果需要将输出结果返回到MATLAB 工作空间中,则采用以下调用格式:

c=step(G) (26) 此时,屏上不会显示响应曲线,必须利用plot()命令去查看响应曲线。plot 可以根据两 个或多个给定的向量绘制二维图形,详细介绍可以查阅后面的章节。

例16 已知传递函数为: 25

425

)(2

++=

s s s G 利用以下MATLAB 命令可得阶跃响应曲线如图14所示。

>> num=[0,0,25];

den=[1,4,25];

图14 MATLAB 绘制的响应曲线

step(num,den)

grid % 绘制网格线。

title(1Unit-Step Response of G(s)=25/(s^2+4s+25) 1) % 图像标题 我们还可以用下面的语句来得出阶跃响应曲线 >> G=tf([0,0,25],[1,4,25]);

t=0:0.1:5; % 从0到5每隔0.1取一个值。 c=step(G,t); % 动态响应的幅值赋给变量c

plot(t,c) % 绘二维图形,横坐标取t,纵坐标取c 。 Css=dcgain(G) % 求取稳态值。

系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果

Css= 1

例21 给定单位负反馈系统的开环传递函数为:

)

7()

1(10)(++=

s s s s G

试画出伯德图。

利用以下MATLAB 程序,可以直接在屏幕上绘出伯德图如图20。 >> num=10*[1,1]; den=[1,7,0]; bode(num,den) grid

title(′Bode Diagram of G(s)=10*(s+1)/[s(s+7)] ′) 该程序绘图时的频率范围是自动确定的,从0.01弧度/秒到30弧度/秒,且幅值取分贝值,ω轴取对数,图形分成2个子图,均是自动完成的。

图20 自动产生频率点画出的伯德图

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

控制系统MATLAB仿真基础

系统仿真 § 4.1控制系统的数学模型 1、传递函数模型(tranfer function) 2、零极点增益模型(zero-pole-gain) 3、状态空间模型(state-space) 4、动态结构图(Simulink结构图) 一、传递函数模型(transfer fcn-----tf) 1、传递函数模型的形式 传函定义:在零初始条件下,系统输出量的拉氏变换C(S)与输入量的拉氏变换R(S)之比。 C(S) b1S m+b2S m-1+…+b m G(S)=----------- =- -------------------------------- R(S) a1S n + a2S n-1 +…+ a n num(S) = ------------ den(S) 2、在MATLAB命令中的输入形式 在MATLAB环境中,可直接用分子分母多项式系数构成的两个向量num、den表示系统: num = [b1, b2, ..., b m]; den = [a1, a2, ..., a n]; 注:1)将系统的分子分母多项式的系数按降幂的方式以向量的形式输入两个变量,中间缺项的用0补齐,不能遗漏。 2)num、den是任意两个变量名,用户可以用其他任意的变量名来输入系数向量。 3)当系统种含有几个传函时,输入MATLAB命令状态下可用n1,d1;n2,d2…….。 4)给变量num,den赋值时用的是方括号;方括号内每个系数分隔开用空格或逗号;num,den方括号间用的是分号。 3、函数命令tf( ) 在MATLAB中,用函数命令tf( )来建立控制系统的传函模型,或者将零极点增益模型、状态空间模型转换为传函模型。 tf( )函数命令的调用格式为: 圆括号中的逗号不能用空格来代替 sys = tf ( num, den ) [G= tf ( num, den )]

自动控制原理课程设计报告

《自动控制原理》 课程设计报告 姓名:高陆及__________ 学号: 1345533107______ 班级: 13电气 1班______ 专业:电气工程及其自动化学院:电气与信息工程学院

江苏科技大学(张家港) 2015年9月

目录 一、设计目的 (3) 二、设计任务 (3) 三、具体要求 (4) 四、设计原理概述 (4) 4.1校正方式的选择 (4) 4.2集中串联校正简述 (5) 4.2.1串联超前校正 (5) 4.2.2串联滞后校正 (5) 4.2.3串联滞后-超前校正 (5) 4.2.4串联校正装置的一般性设计步骤 (5) 五、设计方案及分析 (6) 5.1高阶系统的频域分析 (6) 5.1.1 原系统的频率响应特性及阶跃响应 (7) 5.1.2使用Simulink观察系统性能 (9) 5.1.3 搭建模拟实际电路 (10) 5.1.4 对原系统的性能分析 (12) 5.2校正方案确定与校正结果分析 (13) 5.2.1 采用串联超前网络进行系统校正 (13) 5.2.3 采用串联滞后—超前网络系统进行校正 (18) 5.2.4 使用EWB搭建校正后模拟实际电路 (23) 六、总结 (26)

一、设计目的 1.通过课程设计熟悉频域法分析系统的方法原理 2.通过课程设计掌握滞后—超前校正作用与原理 3.通过在实际电路中校正设计的运用,理解系统校正在实际中的意义 二、设计任务 控制系统为单位负反馈系统,开环传递函数为) 1025.0)(11.0()(++= s s s K s G , 设计滞后-超前串联校正装置,使系统满足下列性能指标: 1、开环增益100K ≥

自动控制原理习题全解及MATLAB实验 第6章习题解答

第6章控制系统的校正 本章主要讨论利用频率法对单输入-单输出的线性定常系统的综合和设计。在介绍控制系统校正的基本概念、控制系统的基本控制规律的基础上,介绍了各种串联校正装置(超前校正装置、滞后校正装置、滞后-超前校正装置)的特性及按分析进行相应设计的基本步骤和方法;还介绍了期望设计法的基本概念、常见的期望特性和设计步骤;另外还介绍了根轨迹法的串联校正和反馈校正的基本概念和方法;最后介绍了利用MATLAB进行控制系统校正。 教材习题同步解析 试分别说明系统的固有频率特性与系统期望频率特性的概念。 答:系统本身固有元件所具有的频率特性称为固有频率特性。设计者希望系统所能达到的频率特性称为系统期望频率特性。 试比较串联校正和反馈校正的优缺点。 答:a、校正装置和未校正系统的前向通道环节相串联,这种叫串联校正,串联校正是最常用的设计方法,设计与实现比较简单,通常将串联装置安置在前向通道的前端。 b、并联校正也叫反馈校正,它是和前向通道的部分环节按反馈方式连接构成局部反馈回路,设计相对较为复杂。并联校正一般不需要加放大器,它可以抑制系统的参数波动及非线性因素对系统性能的影。 PD控制为什么又称为超前校正?串联PD控制器进行校正为什么能提高系统的快速性和稳定性? 答:加入PD控制相当于在系统中加入一个相位超前的串联校正装置,使之在穿越频率处有较大的相位超前角。因此,PD控制称为超前控制。PD控制的传递函数为G s Kp sτ =+,由比例控制和微分控制组合而成。增大比例系数Kp,可以展宽系统的()(1) 通频带,提高系统的快速性。微分控制反映信号的变化率的预报作用,在偏差信号变化前给出校正信号,防止系统过大地偏离期望值和出现剧烈振荡倾向,有效地增强系统的相对稳定性。 PI控制为什么又称为滞后校正?串联PI控制器进行校正为什么能提高系统的稳态性能?如何减小它对系统稳定性的影响? 答:PI控制在低频段产生较大的相位滞后,所以滞后校正。PI控制的比例部分可以提高系统的无差度,改善系统的稳态性能。在串入系统后应使其转折频率在系统幅值穿越频率

matlab控制系统仿真.

课程设计报告 题目PID控制器应用 课程名称控制系统仿真院部名称龙蟠学院 专业自动化 班级M10自动化 学生姓名 学号 课程设计地点 C208 课程设计学时一周 指导教师应明峰 金陵科技学院教务处制成绩

一、课程设计应达到的目的 应用所学的自动控制基本知识与工程设计方法,结合生产实际,确定系统的性能指标与实现方案,进行控制系统的初步设计。 应用计算机仿真技术,通过在MATLAB软件上建立控制系统的数学模型,对控制系统进行性能仿真研究,掌握系统参数对系统性能的影响。 二、课程设计题目及要求 1.单回路控制系统的设计及仿真。 2.串级控制系统的设计及仿真。 3.反馈前馈控制系统的设计及仿真。 4.采用Smith 补偿器克服纯滞后的控制系统的设计及仿真。 三、课程设计的内容与步骤 (1).单回路控制系统的设计及仿真。 (a)已知被控对象传函W(s) = 1 / (s2 +20s + 1)。 (b)画出单回路控制系统的方框图。 (c)用MatLab的Simulink画出该系统。

(d)选PID调节器的参数使系统的控制性能较好,并画出相应的单位阶约响应曲线。注明所用PID调节器公式。PID调节器公式Wc(s)=50(5s+1)/(3s+1) 给定值为单位阶跃响应幅值为3。 有积分作用单回路控制系统PID控制器取参数分别为:50 2 5 有积分作用单回路控制系统PID控制器取参数分别为:50 0 5

大比例作用单回路控制系统PID控制器取参数分别为:50 0 0 (e)修改调节器的参数,观察系统的稳定性或单位阶约响应曲线,理解控制器参数对系统的稳定性及控制性能的影响? 答:由上图分别可以看出无积分作用和大比例积分作用下的系数响应曲线,这两个PID调节的响应曲线均不如前面的理想。增大比例系数将加快系统的响应,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏;

MATLAB与系统仿真

学习中心/函授站_ 成都学习中心 姓名赵洪学号7020140122093 西安电子科技大学网络与继续教育学院 2015学年上学期 《MATLAB与系统仿真》期末考试试题 (综合大作业) 考试说明: 1、大作业于2015年4月3日公布,2015年5月9日前在线提交; 2、考试必须独立完成,如发现抄袭、雷同、拷贝均按零分计。 3、程序设计题(三(8,10))要求写出完整的程序代码,并在matlab软件环境调试并运行通过,连同运行结果一并附上。 一、填空题(1? ×25=25?) 1、Matlab的全称为矩阵实验室。 2、在Matlab编辑器中运行程序的快捷键是:F5 。 3、Matlab的工作界面主要由以下五个部分组成,它们分别是:菜单栏、 工具栏、当前工作目录窗口、工作空间管理窗口和命令窗口。 4、在Matlab中inf表示:无穷大;clc表示:清空命令窗口中的显示内容;more表示:在命令窗口中控制其后每页的显示内容行数;who表示:查阅Matlad内存变量名;whos表示:列出当前工作空间所有变量。 5、在Matlab命令窗口中运行命令Simulink 可以打开Simulink模块库浏览器窗口。 6、求矩阵行列式的函数:det ;求矩阵特征值和特征向量的函数eig 。 7、Matlab预定义变量ans表示:没有指定输出变量名;eps表示:系统精度 ;nargin表示:函数输入参数的个数。 8、Matlab提供了两种方法进行程序分析和优化,分别为:通过Profiler工具优化和通过tic和toc函数进行优化。 9、建立结构数组或转换结构数组的函数为:struct ; 实现Fourier变换在Matlab中的对应函数为:fourier() ;Laplace变换的函数:Laplace() 。

自动控制原理课程设计报告

成绩: 自动控制原理 课程设计报告 学生姓名:黄国盛 班级:工化144 学号:201421714406 指导老师:刘芹 设计时间:2016.11.28-2016.12.2

目录 1.设计任务与要求 (1) 2.设计方法及步骤 (1) 2.1系统的开环增益 (1) 2.2校正前的系统 (1) 2.2.1校正前系统的Bode图和阶跃响应曲线 (1) 2.2.2MATLAB程序 (2) 3.3校正方案选择和设计 (3) 3.3.1校正方案选择及结构图 (3) 3.3.2校正装置参数计算 (3) 3.3.3MATLAB程序 (4) 3.4校正后的系统 (4) 3.4.1校正后系统的Bode图和阶跃响应曲线 (4) 3.4.2MATLAB程序 (6) 3.5系统模拟电路图 (6) 3.5.1未校正系统模拟电路图 (6) 3.5.2校正后系统模拟电路图 (7) 3.5.3校正前、后系统阶跃响应曲线 (8) 4.课程设计小结和心得 (9) 5.参考文献 (10)

1.设计任务与要求 题目2:已知单位负反馈系统被控制对象的开环传递函数 ()() 00.51K G s s s =+用串联校正的频率域方法对系统进行串联校正设计。 任务:用串联校正的频率域方法对系统进行串联校正设计,使系统满足如下动态及静态性能 指标: (1)在单位斜坡信号作用下,系统的稳态误差0.05ss e rad <; (2)系统校正后,相位裕量45γ> 。 (3)截止频率6/c rad s ω>。 2.设计方法及步骤 2.1系统的开环增益 由稳态误差要求得:20≥K ,取20=K ;得s G 1s 5.0201)s(0.5s 20)s (20+=+=2.2校正前的系统 2.2.1校正前系统的Bode 图和阶跃响应曲线 图2.2.1-1校正前系统的Bode 图

自动控制原理MATLAB仿真实验

自动控制原理MATLAB仿真实验 实验一典型环节的MATLAB仿真 一、实验目的 1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK的使用 MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。 2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。 图1-1 SIMULINK仿真界面图1-2 系统方框图

3.在simulink 仿真环境下,创建所需要的系统。 以图1-2所示的系统为例,说明基本设计步骤如下: 1)进入线性系统模块库,构建传递函数。点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。 2)改变模块参数。在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。 3)建立其它传递函数模块。按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math ”右边窗口“Gain ”的图标。 4)选取阶跃信号输入函数。用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。 5)选择输出方式。用鼠标点击simulink 下的“Sinks ”,就进入输出方式模块库,通常选用“Scope ”的示波器图标,将其用左键拖至新建的“untitled ”窗口。 6)选择反馈形式。为了形成闭环反馈系统,需选择“Math ” 模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号)。 7)连接各元件,用鼠标划线,构成闭环传递函数。 8)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。 三、实验原理 1.比例环节的传递函数为 221211()2100,200Z R G s R K R K Z R =-=-=-== 其对应的模拟电路及SIMULINK 图形如图1-3所示。

MatLab与控制系统仿真(重点编程)

第 4 章 MatLab 的程序设计 MatLab 是一个工具、开发平台,同时它也是一门编程语言。与在命令窗口用交互的方式工作相比,通过程序运行来解决实际问题,其效率更高,因此,凡是复杂的、大型的应用都是以程序的方式执行。相对其它高级语言, MatLab 更简单、编程的效率更高、调试过程也更容易。 MatLab 中的程序文件是以 m 为后缀,所以通常将 MatLab 的程序文件称为 m 文件。MatLab提供了两种形式的m文件,即:脚本(Script)式m文件(就简称m文件)、函数型 m 文件。在 MatLab 中已经嵌入了一个功能强大的集成开发环境—— m 文件编辑器,用它来进行程序的编辑、修改、调试、运行等,完成应用开发工作。 4.1 MatLab 程序设计基础 通过前面内容的学习,大家对 MatLab 已经有了一个初步的认识和印象,到目前为止,我们都是在“命令”窗口中,以交互的方式运行,完成我们的工作。实际上简单的m 文件,就是一个批处理程序,它是若干条命令的集合。 例: 4.1.1 M 文件规则和属性 函数 M 文件必须遵循一些特定的规则。除此之外,它们有许多的重要属性,这其中包括: 1. 函数名和文件名必须相同。例如,函数 fliplr 存储在名为 fliplr.m 文件中。 2. MATLAB 头一次执行一函数个 M 文件时,它打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它函 数 M 文件的引用,它们也同样被编译到存储器。普通的脚本 M 文件不被编译,即使它们是从函数 M 文件内调用;打开脚本 M 文件,调用一次就逐行进行注释。 3. 在函数 M 文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如, ? help fliplr 返回上述前八行注释。 4. 第一行帮助行,名为 H1 行,是由 lookfor 命令搜索的行。 5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。

自动控制设计(自动控制原理课程设计)

自动控制原理课程设计 本课程设计的目的着重于自动控制基本原理与设计方法的综合实际应用。主要内容包括:古典自动控制理论(PID)设计、现代控制理论状态观测器的设计、自动控制MATLAB 仿真。通过本课程设计的实践,掌握自动控制理论工程设计的基本方法与工具。 1 内容 某生产过程设备如图1所示,由液容为C1与C2的两个液箱组成,图中Q 为稳态液体流量)/(3s m ,i Q ?为液箱A 输入水流量对稳态值的微小变化)/(3s m ,1Q ?为液箱A 到液箱B 流量对稳态值的微小变化)/(3s m ,2Q ?为液箱B 输出水流量对稳态值的微小变化)/(3s m ,1h 为液箱A 的液位稳态值)(m ,1h ?为液箱A 液面高度对其稳态值的微小变化)(m ,2h 为液箱B 的液位稳态值)(m ,2h ?为液箱B 液面高度对其稳态值的微小变化)(m ,21,R R 分别为A,B 两液槽的出水管液阻))//((3s m m 。设u 为调节阀开度)(2m 。 已知液箱A 液位不可直接测量但可观,液箱B 液位可直接测量。 图1 某生产过程示意图

要求 1. 建立上述系统的数学模型; 2. 对模型特性进行分析,时域指标计算,绘出bode,乃示图,阶跃反应曲线 3. 对B 容器的液位分别设计:P,PI,PD,PID 控制器进行控制; 4. 对原系统进行极点配置,将极点配置在-1+j 与-1-j;(极点可以不一样) 5. 设计一观测器,对液箱A 的液位进行观测(此处可以不带极点配置); 6. 如果要实现液位h2的控制,可采用什么方法,怎么更加有效?试之。 用MATLAB 对上述设计分别进行仿真。 (提示:流量Q=液位h/液阻R,液箱的液容为液箱的横断面积,液阻R=液面差变化h ?/流量变化Q ?。) 2 双容液位对象的数学模型的建立及MATLAB 仿真过程 一、对系统数学建模 如图一所示,被控参数2h ?的动态方程可由下面几个关系式导出: 液箱A:dt h d C Q Q i 111?=?-? 液箱B:dt h d C Q Q 22 21?=?-? 111/Q h R ??= 222/Q h R ??= u K Q u i ?=? 消去中间变量,可得: u K h dt h d T T dt h d T T ?=?+?++?222122221)( 式中,21,C C ——两液槽的容量系数 21,R R ——两液槽的出水端阻力 111C R T =——第一个容积的时间常数 222C R T =——第二个容积的时间常数 2R K K u =_双容对象的放大系数

增量式PID控制算法的MATLAB仿真

增量式PID 控制算法的MATLAB 仿真 PID 控制的原理 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID 控制,又称PID 调节。PID 控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID 控制技术。PID 控制,实际中也有PI 和PD 控制。PID 控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。 一、 题目:用增量式PID 控制传递函数为G(s)的被控对象 G (s )=5/(s^2+2s+10), 用增量式PID 控制算法编写仿真程序(输入分别为单位阶跃、正弦信号,采样时间为1ms ,控制器输出限幅:[-5,5],仿真曲线包括系统输出及误差曲线,并加上注释、图例)。程序如下 二、 增量式PID 原理 { U(k)= ?u(k)+ U(k-1) 或 { U(k)= ?u(k)+ U(k-1) 注:U(k)才是PID 控制器的输出 三、 分析过程 1、对G(s)进行离散化即进行Z 变换得到Z 传递函数G(Z); 2、分子分母除以z 的最高次数即除以z 的最高次得到; )]}2()1(2)([)()]1()({[)(-+--++ --=?n n n T T n T T n n K n U D I P O εεεεεε)] 2()1(2)([)(i )]1()([)(-+--++--=?n n n Kd n K n n K n U P O εεεεεε

自动控制原理Matlab程序作业(精)

自控控制原理 MATLAB 程序设计作业 指导老师:汪晓宁 目录 一、题目 (2) 二、运行结果 (3) 三、程序说明 (8) 四、附录 ............................................ 9 代码 . ............................................. 9 参考文献 .. (17) 一、题目 用 Matlab 创建用户界面,并完成以下功能 a 将产生未综合系统的根轨迹图以及 0.707阻尼比线, 你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差 b 显示未综合系统的阶跃响应 c 输入控制器的参数, 绘制综合后系统的根轨迹图以及显示综合的设计点 (主导极点 , 允许不断改变控制器参数,知道所绘制的根轨迹通过设计点 d 对于综合后的系统, 显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数 e 显示综合后系统的阶跃响应 二、运行结果

输入传递函数分子分母 生成根轨迹图

选择点并得到该点各项参数在下方输出面板输出 获得阶跃响应图 用 rltool(辅助,选择合适的插入零点

输入零点,并得到根轨迹图

选择根轨迹图上的任一点,得到数据,在下方输出面板输出得到阶跃响应图 三、运行说明

第一步, 在请输入分子后的输入框输入传递函数分子的矩阵, 在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹 第二步, 按选择点并显示各参数获得根轨迹图上任一点的各项数据, 数据全部输出在下方输出面板 第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应 第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图” 按钮产生根轨迹 (可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值 第五步,按“选择点并显示各参数(综合后系统”选取各点,查阅参数,数据输出在下方输出面板上 第六步,按“生成阶跃响应图(综合后系统”可以得到综合后系统的阶跃响应 最后,点击“退出”结束程序 四、附录 代码: function varargout = Liushuai20122510(varargin % LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig % LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing % singleton*. %

MATLAB控制系统各种仿真例题(包括simulink解法)

一、 控制系统的模型与转换 1. 请将下面的传递函数模型输入到matlab 环境。 ]52)1)[(2(24)(322 33++++++=s s s s s s s G ) 99.02.0)(1(568 .0)(22+--+=z z z z z H ,T=0.1s >> s=tf('s'); G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5)); G Transfer function: s^3 + 4 s + 2 ------------------------------------------------------ s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3 >> num=[1 0 0.56]; den=conv([1 -1],[1 -0.2 0.99]); H=tf(num,den,'Ts',0.1) Transfer function: z^2 + 0.56 ----------------------------- z^3 - 1.2 z^2 + 1.19 z - 0.99 2. 请将下面的零极点模型输入到matlab 环境。请求出上述模型的零极点,并绘制其位置。 )1)(6)(5()1)(1(8)(22 +++-+++=s s s s j s j s s G ) 2.8() 6.2)(2.3()(1 511-++=----z z z z z H ,T=0.05s >>z=[-1-j -1+j]; p=[0 0 -5 -6 -j j]; G=zpk(z,p,8) Zero/pole/gain: 8 (s^2 + 2s + 2) -------------------------- s^2 (s+5) (s+6) (s^2 + 1) >>pzmap(G)

自控-二阶系统Matlab仿真

自动控制原理 二阶系统性能分析Matlab 仿真大作业附题目+ 完整报告内容

设二阶控制系统如图1所示,其中开环传递函数 ) 1(10 )2()(2+=+=s s s s s G n n ξωω 图1 图2 图3 要求: 1、分别用如图2和图3所示的测速反馈控制和比例微分控制两种方式改善系统的性能,如果要求改善后系统的阻尼比ξ =0.707,则和 分别取多少? 解: 由)1(10 )2()(2 += +=s s s s s G n n ξωω得10 21,10,102===ξωωn t K d T

对于测速反馈控制,其开环传递函数为:) 2()s (2 2n t n n K s s G ωξωω++=; 闭环传递函数为:2 2 2)2 (2)(n n n t n s K s s ωωωξωφ+++= ; 所以当n t K ωξ2 1+=0.707时,347.02)707.0(t =÷?-=n K ωξ; 对于比例微分控制,其开环传递函数为:)2()1()(2 n n d s s s T s G ξωω++=; 闭环传递函数为:) )2 1(2)1()(2 22 n n n d n d s T s s T s ωωωξωφ++++=; 所以当n d T ωξ2 1 +=0.707时,347.02)707.0(=÷?-=n d T ωξ; 2、请用MATLAB 分别画出第1小题中的3个系统对单位阶跃输入的响应图; 解: ①图一的闭环传递函数为: 2 22 2)(n n n s s s ωξωωφ++=,10 21 ,10n ==ξω Matlab 代码如下: clc clear wn=sqrt(10); zeta=1/(2*sqrt(10)); t=0:0.1:12; Gs=tf(wn^2,[1,2*zeta*wn,wn^2]); step(Gs,t)

MATLAB控制系统与仿真设计

MATLAB控制系统与仿真 课 程 设 计 报 告 院(系):电气与控制工程学院 专业班级:测控技术与仪器1301班 姓名:吴凯 学号:1306070127

指导教师:杨洁昝宏洋 基于MATLAB的PID恒温控制器 本论文以温度控制系统为研究对象设计一个PID控制器。PID控制是迄今为止最通用的控制方法,大多数反馈回路用该方法或其较小的变形来控制。PID控制器(亦称调节器)及其改进型因此成为工业过程控制中最常见的控制器(至今在全世界过程控制中用的84%仍是纯PID调节器,若改进型包含在内则超过90%)。在PID控制器的设计中,参数整定是最为重要的,随着计算机技术的迅速发展,对PID参数的整定大多借助于一些先进的软件,例如目前得到广泛应用的MATLAB仿真系统。本设计就是借助此软件主要运用Relay-feedback法,线上综合法和系统辨识法来研究PID控制器的设计方法,设计一个温控系统的PID控制器,并通过MATLAB中的虚拟示波器观察系统完善后在阶跃信号下的输出波形。 关键词:PID参数整定;PID控制器;MATLAB仿真。 Design of PID Controller based on MATLAB Abstract This paper regards temperature control system as the research object to design a pid controller. Pid control is the most common control method up until now; the great majority feedback loop is controlled by this method or its small deformation. Pid controller (claim regulator also) and its second generation so become the most common controllers in the industry process control (so far, about 84% of the controller being used is the pure pid controller, it’ll exceed 90% if the second generation included). Pid parameter setting is most important in pid controller designing, and with the rapid development of the computer technology, it mostly recurs to some advanced software, for example, mat lab simulation software widely used now. this design is to apply that soft mainly use Relay feedback law and synthetic method on the line to study pid

《MATLAB与控制系统。。仿真》实验报告剖析

《MATLAB与控制系统仿真》 实验报告 班级: 学号: 姓名: 时间:2013 年 6 月

目录实验一 MATLAB环境的熟悉与基本运算(一)实验二 MATLAB环境的熟悉与基本运算(二)实验三 MATLAB语言的程序设计 实验四 MATLAB的图形绘制 实验五基于SIMULINK的系统仿真 实验六控制系统的频域与时域分析 实验七控制系统PID校正器设计法 实验八线性方程组求解及函数求极值

实验一 MATLAB环境的熟悉与基本运算(一) 一、实验目的 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验基本原理 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MA TLAB常用命令 表1 MA TLAB常用命令 3.MATLAB变量与运算符 3.1变量命名规则 3.2 MATLAB的各种常用运算符 表3 MATLAB关系运算符 表4 MATLAB逻辑运算符

| Or 逻辑或 ~ Not 逻辑非 Xor 逻辑异或 符号功能说明示例符号功能说明示例 :1:1:4;1:2:11 . ;分隔行.. ,分隔列… ()% 注释 [] 构成向量、矩阵!调用操作系统命令 {} 构成单元数组= 用于赋值 4.MATLAB的一维、二维数组的寻访 表6 子数组访问与赋值常用的相关指令格式 三、主要仪器设备及耗材 计算机 四.实验程序及结果 1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符) 2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。 3、学习使用help命令。

系统仿真的MATLAB实现.

第七章系统仿真的MATLAB实现 由于计算机技术的高速发展,我们可以借助计算机完成系统的数字仿真。综前所述,数字仿真实质上是根据被研究的真实系统的模型,利用计算机进行实验研究的一种方法。仿真的主要过程是:建立模型、仿真运行和分析研究仿真结果。仿真运行就是借助一定的算法,获得系统的有关信息。 MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。MATLAB是一个高度集成的系统,MATLAB提供的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统。在过去几年里,Simulink已经成为数学和工业应用中对动态系统进行建模时使用得最为广泛的软件包。 MATLAB仿真有两种途径:(1)MATLAB可以在SIMULINK窗口上进行面向系统结构方框图的系统仿真;(2)用户可以在MATLAB的COMMAND窗口下,用运行m文件,调用指令和各种用于系统仿真的函数,进行系统仿真。这两种方式可解决任意复杂系统的动态仿真问题,前者编辑灵活,而后者直观性强,实现可视化编辑。 下面介绍在MATLAB上实现几类基本仿真。 7.1 计算机仿真的步骤 在学习计算机仿真以前,让我们先总结一下计算机仿真的步骤。 计算机仿真,概括地说是一个“建模—实验—分析”的过程,即仿真不单纯是对模型的实验,还包括从建模到实验再到分析的全过程。因此进行一次完整的计算机仿真应包括以下步骤:

(1)列举并列项目 每一项研究都应从说明问题开始,问题由决策者提供或由熟悉问题的分析者提供。 (2)设置目标及完整的项目计划 目标表示仿真要回答的问题、系统方案的说明。项目计划包括人数、研究费用以及每一阶段工作所需时间。 (3)建立模型和收集数据 模型和实际系统没有必要一一对应,模型只需描述实际系统的本质或者描述系统中所研究部分的本质。因此,最好从简单的模型开始,然后进一步建立更复杂的模型。 (4)编制程序和验证 利用数学公式、逻辑公式和算法等来表示实际系统的内部状态和输入/输出的关系。建模者必须决定是采用通用语言如MATLAB、FORTRAN、C还是专用仿真语言来编制程序。在本教材中,我们选择的是MATLAB和其动态仿真工具Simulink。 (5)确认 确认指确定模型是否精确地代表实际系统。它不是一次完成,而是比较模型和实际系统特性的差异,不断对模型进行校正的迭代过程。 (6)实验设计 确定仿真的方案、初始化周期的长度、仿真运行的长度以及每次运行的重复次数。 (7)生产性运行和分析 通常用于估计被仿真系统设计的性能量度。利用理论定性分析、经验定性分析或系统历史数据定量分析来检验模型的正确性,利用灵敏度分析等手段来检验模型的稳定性。 (8)文件清单和报表结果 (9)实现

自控专业设计的方法和步骤

.自控工程设计的任务 自控工程专业设计的任务基本上有以下几个方面: 1.1负责生产装置、辅助工程和公用工程系统的检测、控制、报警、联锁/ 停车, 以及监控/ 管理计算机系统的设计; 1.2负责检测仪表、控制系统及其辅助设备和安装材料的选型设计; 1.3负责监测仪表和控制系统的安装设计; 1.4负责DCS PLC自控系统的配置、功能要求和设备选型,并负责或参加软 件的编制工作; 1.5负责现场仪表的环境防护措施的设计; 1.6负责控制室的设计; 1.7负责生产过程计量系统的设计。 自控工程设计常用的方法是由工艺专业提出条件,自控与工艺专业一起讨论确定控制方案,确定必要的中间储槽及其容量,确定合适的设备余量,确定开、停车以及紧急事故处理方案等。这种设计方法对合理确定控制方案,充分发挥自控专业的主观能动性是有益的。但是在实际设计过程中,尤其对一些新工艺,主要是由工艺专业提出条件并确定控制方案,自控专业进行设计,我们当前基本采用这种方法。 2.自控工程设计的阶段划分和设计内容 当前工程设计的阶段划分,一般分为两个阶段,即初步设计和施工图设计 2.1初步设计 初步设计的主要目的是为了上报有关部门作为审批的依据,并为订货做好必要的准备。它应完成的主要内容为: 设计说明书:给出设计依据、设计原则,提出项目实施的必要性,拟定控制系统的技术方案、仪表选型规定、DCS空制系统的选型及控制策略,并从节能、消防、环境保护以及劳动安全卫生等方面作出设计概述。 工艺控制流程图:在工艺专业流程图的基础上,正确选定所需的检测点及其安装位置,选择必要的被控变量和恰当的操纵变量,绘制于工艺流程图上。图例符号应符合化工部标准《过程检测和控制系统用文字代号和图形符号(HG 20505)》或国标《过程检测和控制流程图用图形符号和文字代号(GB 2625) 》。 主要仪表设备、材料汇总表:汇总所有控制系统所需设备及相应材料,给出名称、数量,为订货以及概算提供依据。 初步设计概算:从建筑工程、设备、安装工程、工器具费等方面进行综合概算。 2.2施工图设计施工图设计是直接应用于施工的图纸设计。当前我们常用的施工图 设计文 件由以下内容组成: 1)图纸目录 2)设计说明书 3)材料表 4)设备明细表 5)工艺专业提资表

某温度控制系统的MATLAB仿真

课程设计报告 题目某温度控制系统的MATLAB仿真(题目C)

过程控制课程设计任务书 题目C :某温度控制系统的MATLAB 仿真 一、 系统概况: 设某温度控制系统方块图如图: 图中G c (s)、G v (s)、G o (s)、G m (s)、分别为调节器、执行器、过程对象及温度变送器的传递函数;,且电动温度变送器测量范围(量程)为50~100O C 、输出信号为4~20mA 。G f (s)为干扰通道的传递函数。 二、系统参数 二、 要求: 1、分别建立仿真结构图,进行以下仿真,并求出主要性能指标: (1)控制器为比例控制,其比例度分别为δ=10%、20%、50%、100%、200%时,系统广义对象输出z(t)的过渡过程; (2)控制器为比例积分控制,其比例度δ=20%,积分时间分别为T I =1min 、3min 、5min 、10min 时,z(t)的过渡过程; 0m v o 0f o o =5min =2.5min =1.5(kg/min)/mA =5.4C/(kg/min) =0.8 C C T T K K K x(t)=80f(t)=10; ;;; ;给定值; 阶跃扰动

(3)控制器为比例积分微分控制,其比例度δ=10%,积分时间T I=5min,微分时间T D = 0.2min时,z(t)的过渡过程。 2、对以上仿真结果进行分析比对,得出结论。 3、撰写设计报告。 注:调节器比例带δ的说明 比例控制规律的输出p(t)与输入偏差信号e(t)之间的关系为 式中,K c叫作控制器的比例系数。 在过程控制仪表中,一般用比例度δ来表示比例控制作用的强弱。比例度δ定义为 式中,(z max-z min)为控制器输入信号的变化范围,即量程;(p max-p min)为控制器输出信号的变化范围。 = c p(t)K e(t) max min ( ) =100% ) max min e z z p(p-p δ - ?

《自动控制原理》MATLAB分析与设计

《自动控制原理》MATLAB分析与设计 仿真实验报告 第三章线性系统的时域分析法 1、教材P136.3-5系统进行动态性能仿真,并与忽略闭环零点的系统动态性能进行比较,分析仿真结果; (1)原系统的动态性能 SIMULINK仿真图: 仿真结果: 分析:从图中可以看出:峰值时间:tp=3.2s,超调量18.0%,调节时间ts=7.74s。 (2)忽略闭环零点的系统动态性能 SIMULINK仿真图:

仿真结果: 分析:从图中可以看出:峰值时间:tp=3.6s,超调量16.7%,调节时间ts=7.86s。 (3)两种情况动态性能比较 SIMULINK仿真图: 仿真结果:

原系统 忽略闭环零点 分析:通过比较可以看出闭环零点对系统动态性能的影响为:减小峰值时间,使系统响应速度加快,超调量增大。这表明闭环零点会减小系统阻尼。 3-9系统 SIMULINK仿真图: 仿真结果:

Scope0 分析:从图中可以看出:峰值时间:tp=1.05s,超调量35.1%,调节时间ts=3.54s(△=2%)。 Scope1 分析:从图中可以看出:峰值时间:tp=0.94s,超调量37.1%,调节时间ts=3.44s(△=2%)。

Scope2 分析:由于计算机在计算的过程也存在误差,因此,不同的参数时,两条线重合,需将闭环传递函数计算出来再作比较。 计算出闭环传递函数 SIMULINK仿真图:

分析:从图中可以看出:峰值时间:tp=1.05s,超调量35.1%,调节时间ts=3.54s(△=2%)。 Scope4 分析:从图中可以看出:峰值时间:tp=0.94s,超调量37.1%,调节时间ts=3.44s(△=2%)。

相关文档
最新文档