#自动控制原理实验(万方)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 典型环节的MATLAB 仿真
一、实验目的
1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

3.定性了解各参数变化对典型环节动态特性的影响。

二、SIMULINK 的使用
MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。

利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。

1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真环境下。

2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。

3.在simulink 仿真环境下,创建所需要的系统。

以图1-2所示的系统为例,说明基本设计步骤如下:
1)进入线性系统模块库,构建传递函数。

点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。

2)改变模块参数。

在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变
传递函数。

其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系
图1-1 SIMULINK 仿真界面 图1-2 系统方框图
数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。

3)建立其它传递函数模块。

按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。

例:比例环节用“Math ”右边窗口“Gain ”的图标。

4)选取阶跃信号输入函数。

用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。

5)选择输出方式。

用鼠标点击simulink 下的“Sinks ”,就进入输出方式模块库,通常选用“Scope ”的示波器图标,将其用左键拖至新建的“untitled ”窗口。

6)选择反馈形式。

为了形成闭环反馈系统,需选择“Math ”模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式<改变正负号)。

7)连接各元件,用鼠标划线,构成闭环传递函数。

8
)运行并观察响应曲线。

用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。

运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。

三、实验原理
1.比例环节的传递函数为
K R K R R R Z Z s G 200,1002)(211212==-=-=-=
其对应的模拟电路及SIMULINK 图形如图1-3所示。

2.惯性环节的传递函数为
uf C K R K R s C R R R Z Z s G
1,200,10012.021)(121121212===+-=+-=-=
其对应的模拟电路及SIMULINK 图形如图1-4所示。

3.积分环节(I>的传递函数为
uf C K R s s C R Z Z s G 1,1001.011)(111112==-=-=-=
其对应的模拟电路及SIMULINK 图形如图1-5所示。

图1-3 比例环节的模拟电路及SIMULINK 图形
4.微分环节(D>的传递函数为
uf C K R s s C R Z Z s G 10,100)(111112==-=-=-=uf C C 01.012=<<
其对应的模拟电路及SIMULINK 图形如图1-6所示。

5.比例+微分环节<PD )的传递函数为
)11.0()1()(111
212+-=+-=-=s s C R R R Z Z s G uf C C uf C K R R 01.010,10012121=<<===
其对应的模拟电路及SIMULINK 图形如图1-7所示。

6.比例+积分环节<PI )的传递函数为
)11(1)(11212s
R s C R Z Z s G +-=+-=-=uf C K R R 10,100121===
其对应的模拟电路及SIMULINK 图形如图1-8所示。

四、实验内容
按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。

①比例环节1)(1=s G 和2)(1=s G ; ②惯性环节11)(1+=s s G 和1
5.01)(2+=s s G ③积分环节s
s G 1)(1= ④ 微分环节s s G =)(1
⑤比例+微分环节<PD )2)(1+=s s G 和1)(2+=s s G
⑥比例+积分环节<PI )s s G 11)(1+=和s
s G 211)(2+= 五、实验报告
图1-5 积分环节的模拟电路及及SIMULINK 图形 图1-6 微分环节的模拟电路及及SIMULINK 图形 图1-7 比例+微分环节的模拟电路及SIMULINK 图形
图1-8 比例+积分环节的模拟电路及SIMULINK 图形
1.画出各典型环节的SIMULINK 仿真模型。

2. 记录各环节的单位阶跃响应波形,并分析参数对响应曲线的影响。

3. 写出实验的心得与体会。

六、预习要求
1.熟悉各种控制器的原理和结构,画好将创建的SIMULINK 图形。

2.预习MATLAB 中SIMULINK 的基本使用方法。

实验二 数学模型的建立与转换
一、实验目的
1.了解MATLAB 软件的基本特点和功能;
2.掌握线性系统被控对象传递函数数学模型在MATLAB 环境下的表示方法及转换;
3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法。

二、实验指导
1、传递函数模型——有理多项式分式表达式
1110111......)()()(a s a s a s a b s b s b s b s R s C s G n n n n m m m m ++++++++==---- 在MATLAB 中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用num 和den 表示。

num=[b m ,b m-1,…,b 1,b 0]den=[a n ,a n-1,…,a 1,a 0]
注意:它们都是按s 的降幂进行排列的。

分子应为m 项,分母应为n 项,若有空缺项<系数为零的项),在相应的位置补零。

然后写上传递函数模型建立函数:sys=tf(num,den>,并可以在屏幕上显示出来。

例1:已知系统的传递函数:2
2642202412)(23423++++++=s s s s s s s G 在MATLAB 命令窗口<Command Window )键入以下程序:
>> num=[12,24,0,20]。

>> den=[24 6 2 2]。

>> sys=tf(num,den>
回车后显示结果:
Transfer function:
12 s^3 + 24 s^2 + 20
---------------------------------------
2 s^4 + 4 s^
3 + 6 s^2 + 2 s + 2
并同时在MATLAB 中建立了这个相应的有理多项式分式形式的传递函数模型。

传递函数模型——零极点增益模型
)
)...()(())...()(()(2121n m p s p s p s z s z s z s K s G ------= 其中:K 为零极点增益,z i 为零点,p j 为极点。

该模型在MATLAB 中,可用[z,p,k]矢量组表示,即z=[z 1,z 2,…,z m ]。

p=[p 1,p 2,...,p n ]。

k=[K]。

然后在MATLAB 中写上零极点增益形式的传递函数模型建立函数:sys=zpk(z,p,k>。

这个零极点增益模型便在MATLAB 平台中被建立,并可以在屏幕上显示出来。

例2已知系统的零极点增益模型:)
5)(2)(1()3(6)(++++=s s s s s G 在MATLAB 命令窗口<Command Window )键入以下程序:
>> z=[-3]。

p=[-1,-2,-5]。

k=6。

>> sys=zpk(z,p,k>
回车后显示结果:Zero/pole/gain:
6 (s+3>
-----------------则在MATLAB 中建立了这个零极点增益的模型。

(s+1> (s+2> (s+5>
2、不同形式模型之间的相互转换
不同形式之间模型转换的函数:
(1> tf2zp :多项式传递函数模型转换为零极点增益模型。

格式为:[z,p,k]=tf2zp(num,den>
(2> zp2tf :零极点增益模型转换为多项式传递函数模型。

格式为:[num,den]=zp2tf(z,p,k>3、环节串联、并联、反馈连接时等效的整
体传递函数的求取
1、串联
在MATLAB 中求取整体传递函数的功能,采用如下的语句或函数来实现。

. ① G=G1*G2
② G=series(G1,G2>
③ [num,den]=series(num1,den1,num2,den2>
例3两环节G 1、G 2串联,求等效的整体传递函数G
32)(1+=s s G 1
27)(22++=s s s G 解:①实现的程序:
>> n1=2。

d1=[1 3]。

n2=7。

d2=[1 2 1]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=G1*G2运行结果:
Transfer function:
14
---------------------
s^3 + 5 s^2 + 7 s + 3
②实现的程序:
>>n1=2。

d1=[13]。

n2=7。

d2=[1 2 1]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=series(G1,G2>运行结果:
Transfer function:
14
---------------------
s^3 + 5 s^2 + 7 s + 3
③实现的程序:
>>n1=2。

d1=[13]。

n2=7。

d2=[121]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

>> [n,m]=series(n1,d1,n2,d2>
运行结果:
n =
0 0 0 14
m =
1 5 7 3
2、并联
两环节G 1(s>与G 2(s>并联,则等效的整体传递函数为
G(s>=G 1(s>+G 2(s>
在MATLAB 中求取整体传递函数的功能,采用如下的语句或函数来实现。

① G=G1+G2
② G=parallel (G1,G2>
③[num,den]=parallel (num1,den1,num2,den2>
例4 两环节G 1、G 2并联,求等效的整体传递函数G(s>
32)(1+=s s G 1
27)(22++=s s s G 解:①实现的程序:
>> n1=2。

d1=[1 3]。

n2=7。

d2=[1 2 1]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G1+G2运行结果:
Transfer function:
2 s^2 + 11 s + 23
----------------------------
s^3 + 5 s^2 + 7 s + 3
②实现的程序:
>> n1=2。

d1=[1 3]。

n2=7。

d2=[1 2 1]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=parallel(G1,G2>运行结果:
Transfer function:
2 s^2 + 11 s + 23
---------------------------
s^3 + 5 s^2 + 7 s + 3
③实现的程序:
>> n1=2。

d1=[1 3]。

n2=7。

d2=[1 2 1]。

[n,d]=parallel(n1,d1,n2,d2>运行结果:
n =
0 2 11 23
d =
1 5 7 3

则G(s>=G 1(s>-G 2(s>
相应的语句为
G=G1-G2
例5程序如下
>> n1=2。

d1=[1 3]。

n2=7。

d2=[1 2 1]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=G1-G2运行结果:
Transfer function:
2 s^2 -
3 s - 19
------------------------------
s^3 + 5 s^2 + 7 s + 3
3.反馈:feedback

在MATLAB 中采用如下的语句或函数来求取闭环传递函数)(s G 闭环
① G=feedback(G1,G2,sign>
②[num,den]=feedback(num1,den1,num2,den2,sign>
③G=cloop (G1, sign>
④[numc,denc]=cloop(num,den,sign>
这里,sign=1时采用正反馈;当sign= -1时采用负反馈;sign 缺省时,默认为负反馈。

其中G2;num2,den2;对应H (s >。

③④只用于单位反馈系统。

例6 已知 求闭环传递函数。

两环节G 1、G 2分别为
81
21003)(21+++=s s s s G 522)(2+=s s G 解:① a:
>> n1=[3 100] 。

d1=[1 2 81]。

n2=2。

d2=[2 5]。

>>G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=feedback(G1,G2,-1>
结果;
Transfer function:
6 s^2 + 215 s + 500
------------------------------------
2 s^
3 + 9 s^2 + 178 s + 605
b:
>> n1=[3 100] 。

d1=[1 2 81]。

n2=2。

d2=[2 5]。

G1=tf(n1,d1>。

G2=tf(n2,d2>。

G=feedback(G1,G2,1>
结果:
Transfer function:
6 s^2 + 215 s + 500
---------------------------
2 s^
3 + 9 s^2 + 166 s + 205

num1=[3 100] 。

den1=[1 2 81]。

num2=2。

den2=[2 5]。

[num,den]=feedback(num1,den1,num2,den2,-1>
结果:
num =
0 6 215 500
den =
2 9 178 605
三、实验内容
1.自确定2个传递函数,实现传递函数的录入和求取串联、并联、反馈连接时等效的整体传递函数。

要求分别采用有理多项式模型和零极点增益模型两种传递函数形式。

2.进行2例有理多项式模型和零极点增益模型间的转换。

四、实验报告要求
1.写明实验目的和实验原理。

实验原理中简要说明求取传递函数的途径和采用的语句或函数。

2.在实验过程和结果中,要求按项目写清楚自定的传递函数,从屏幕上复制程序和运行结果,打印报告或打印粘贴在报告上。

3.简要写出实验心得和问题或建议。

实验三线性系统时域响应分析
一、实验目的
1.熟练掌握step( >函数和impulse( >函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。

ω对二阶系统性能的影响。

2.通过响应曲线观测特征参量ζ和
n
3.熟练掌握系统的稳定性的判断方法。

二、基础知识及MATLAB 函数
<一)基础知识
时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。

为了研究控制系统的时域特性,经常采用瞬态响应<如阶跃响应、脉冲响应和斜坡响应)。

本次实验从分析系统的性能指标出发,给出了在MATLAB 环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。

用MATLAB 求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s 的降幂排列写为两个数组num 、den 。

因为控制系统分子的阶次m 一般小于其分母的阶次n ,所以num 中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。

1.用MATLAB 求控制系统的瞬态响应
1)阶跃响应
求系统阶跃响应的指令有:
step(num,den>时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出
step(num,den,t>时间向量t 的范围可以由人工给定<例如t=0:0.1:10)
[y ,x]=step(num,den> 返回变量y 为输出向量,x 为状态向量
在MATLAB 程序中,先定义num,den 数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。

考虑下列系统:
25
425)()(2++=s s s R s C 该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s 的降幂排列。

则MATLAB 的调用语句:num=[0 0 25]。

%定义分子多项式
den=[1 4 25]。

%定义分母多项式
step(num,den>%调用阶跃响应函数求取单位阶跃响应曲线
grid %画网格标度线
xlabel(‘t/s’>,ylabel(‘c(t>’> %给坐标轴加上说明
title(‘Unit-step Respinse of G(s>=25/(s^2+4s+25>’>%给图形加上标题名则该单位阶跃响应曲线如图2-1所示:
为了在图形屏幕上书写文本,可以用text 命令在图上的任何位置加标注。

例如: text(3.4,-0.06,’Y1’> 和text(3.4,1.4,’Y2’>
第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’Y1’。

类似地,第二个语句告诉计算机,在坐标点x=3.4,y=1.4上书写出’Y2’。

若要绘制系统t 在指定时间<0-10s )内的响应曲线,则用以下语句:
num=[0 0 25]。

den=[1 4 25]。

t=0:0.1:10。

step(num,den,t>
即可得到系统的单位阶跃响应曲线在0-10s 间的部分,如图2-2所示。

2)脉冲响应
①求系统脉冲响应的指令有:
impulse (num,den> 时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出 impulse (num,den,t> 时间向量t 的范围可以由人工给定<例如t=0:0.1:10) [y,x]=impulse(num,den> 返回变量y 为输出向量,x 为状态向量 [y,x,t]=impulse(num,den,t>向量t 表示脉冲响应进行计算的时间 例:试求下列系统的单位脉冲响应:
1
2.01
)()()(2++==s s s G s R s C 在MATLAB 中可表示为
num=[0 0 1]。

den=[1 0.2 1]。

impulse(num,den> grid
t itle(‘Unit -impulse Response of G(s>=1/(s^2+0.2s+1>’>由此得到的单位脉冲响应曲线如图2-3所示:
②求脉冲响应的另一种方法
应当指出,当初始条件为零时,G(s>的单位脉冲响应与sG(s>的单位阶跃响应相同。

考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s>=1所以s
s s s s s s G s C s R s C 1
12.012.01)()()()(22⨯++=++=== 因此,可以将G(s>的单位脉冲响应变换成sG(s>的单位阶跃响应。

向MATLAB 输入下列num 和den ,给出阶跃响应命令,可以得到系统的单位脉冲响应曲线如图2-4所示。

num=[0 1 0]。

den=[1 0.2 1]。

step(num,den> grid
title(‘Unit -step Response of sG(s>=s/(s^2+0.2s+1>’>
3)斜坡响应
MATLAB 没有直接调用求系统斜
坡响应的功能指令。

在求取斜坡响应时,通常利用阶跃响应的指令。

基于单位阶跃信号的拉氏变换为1/s ,而单位斜坡信号的拉氏变换为1/s 2。

因此,当求系统G(s>的单位斜坡响应时,可以先用s 除G(s>,再利用阶跃响应命令,就能求出系统的斜坡响应。

例如,试求下列闭环系统的单位斜坡响应。

1
1
)()(2++=s s s R s C 对于单位斜坡输入量,R(s>=1/s 2,因此
s
s s s s s s s C 1
)1(1111)(222⨯++=⨯++=
在MATLAB 中输入以下命令,得到如图2-5所示的响应曲线: num=[0 0 0 1]。

den=[1 1 1 0]。

step(num,den>
title(‘Unit -Ramp Response Cuve for System G(s>=1/(s^2+s+1>’>
2. 特征参量ζ和n ω对二阶系统性能的影响 标准二阶系统的闭环传递函数为:
2
222)()
(n
n n s s s R s C ωζωω++= 二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。

1)ζ对二阶系统性能的影响
设定无阻尼自然振荡频率)/(1s rad n =ω,考虑5种不同的ζ值:ζ=0,0.25,0.5,1.0
图2-4 单位脉冲响应的另一种表示法
和 2.0,利用MATLAB 对每一种ζ求取单位阶跃响应曲线,分析参数ζ对系统的影响。

为便于观测和比较,在一幅图上绘出5条响应曲线<采用“hold ”命令实现)。

num=[0 01]。

den1=[1 01]。

den2=[1 0.5 1]。

den3=[1 1 1]。

den4=[1 2 1]。

den5=[1 4 1]。

t=0:0.1:10。

step(num,den1,t>
grid
text(4,1.7,’Zeta=0’>。

hold
step(num,den2,t> text (3.3,1.5,’0.25’> step(num,den3,t> text (3.5,1.2,’0.5’> step(num,den4,t> text (3.3,0.9,’1.0’> step(num,den5,t> text (3.3,0.6,’2.0’>
title(‘Step-Response Curves for G(s>=1/[s^2+2(zeta>s+1]’>由此得到的响应曲线如图2-6所示:
2)n ω对二
阶系统性能的
影响
同理,设定阻尼比25.0=ζ时,当n ω分别取1,2,3时,利用MATLAB 求取单位阶跃响应曲线,分析
参数n ω对系统的影响。

num1=[0
0 1]。

den1=[1 0.5 1]。

t=0:0.1:10。

step(num1,den1,t>。

grid 。

hold on text(3.1,1.4,’wn =1’>
num2=[0 0 4]。

den2=[1 14]。

step(num2,den2,t>。

hold on
图2-6 ζ不同时系统的响应曲线
text(1.7,1.4,’wn=2’>
num3=[0 0 9]。

den3=[1 1.59]。

step(num3,den3,t>。

hold on text(0.5,1.4,’wn=3’>
由此得到的响应曲线如图2-7所示:
3.系统稳定性判断
1)直接求根判稳roots(>
控制系统稳定的充要条件是其特征方程的根均具有负实部。

因此,为了判别系统的稳定性,就要求出系统特征方程的根,并检验它们是否都具有负实部。

MATLAB 中对多项式求根的函数为roots(>函数。

若求以下多项式的根24503510234++++s s s s ,则所用的MATLAB 指令为:
>> roots([1,10,35,50,24]>
ans = -4.0000 -3.0000 -2.0000 -1.0000
特征方程的根都具有负实部,因而系统为稳定的。

2)劳斯稳定判据routh<)
劳斯判据的调用格式为:[r, info]=routh(den>
该函数的功能是构造系统的劳斯表。

其中,den 为系统的分母多项式系数向量,r 为返回的routh 表矩阵,info 为返回的routh 表的附加信息。

以上述多项式为例,由routh 判据判定系统的稳定性。

den=[1,10,35,50,24]。

[r,info]=routh(den> r=
1 35 24 10 50 0 30 24 0 4
2 0 0 24 0 0 info=
图2-7
n ω不同时系统的响应曲线
[ ]
由系统返回的routh 表可以看出,其第一列没有符号的变化,系统是稳定的。

3)赫尔维茨判据hurwitz<)
赫尔维茨的调用格式为:H=hurwitz<den )。

该函数的功能是构造hurwitz 矩阵。

其中,den 为系统的分母多项式系数向量。

以上述多项式为例,由hurwitz 判据判定系统的稳定性。

>>den=[1,10,35,50,24]。

H=hurwitz(den> H=
10 50 0 0 1 35 24 0 0 10 50 0 0 1 35 24
由系统返回的hurwitz 矩阵可以看出,系统是稳定的。

与前面的分析结果完全一致。

注意:routh<)和hurwitz<)不是MATLAB 中自带的功能函数,(公共信箱有>。

三、实验内容
1.观察函数step( >和impulse( >的调用格式,假设系统的传递函数模型为
1
4647
3)(2
342++++++=s s s s s s s G 可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。

2.对典型二阶系统
2
22
2)(n
n n s s s G ωζωω++= 1)分别绘出)/(2s rad n =ω,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标ss s p r p e t t t ,,,,σ。

2)绘制出当ζ=0.25, n ω分别取1,2,4,6时单位阶跃响应曲线,分析参数n ω对系统的影响。

3.系统的特征方程式为010532234=++++s s s s ,试用三种判稳方式判别该系统的稳定性。

4.单位负反馈系统的开环模型为
)
256)(4)(2()(2++++=
s s s s K
s G
试分别用劳斯稳定判据和赫尔维茨稳定判据判断系统的稳定性,并求出使得闭环系统稳定的K 值范围。

四、实验报告
1.根据内容要求,写出调试好的MATLAB 语言程序,及对应的MATLAB 运算结果。

2. 记录各种输出波形,根据实验结果分析参数变化对系统的影响。

3.总结判断闭环系统稳定的方法,说明增益K 对系统稳定性的影响。

4.写出实验的心得与体会。

五、预习要求
1.预习实验中基础知识,运行编制好的MATLAB 语句,熟悉MATLAB 指令及step( >和impulse( >函数。

2.结合实验内容,提前编制相应的程序。

3.思考特征参量ζ和n ω对二阶系统性能的影响。

4.熟悉闭环系统稳定的充要条件及学过的稳定判据。

实验四 线性系统的根轨迹
一、实验目的
1. 熟悉MATLAB 用于控制系统中的一些基本编程语句和格式。

2. 利用MATLAB 语句绘制系统的根轨迹。

3. 掌握用根轨迹分析系统性能的图解方法。

4. 掌握系统参数变化对特征根位置的影响。

二、基础知识及MATLAB 函数
根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在s 平面上的变化轨迹。

这个参数一般选为开环系统的增益K 。

课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。

而用MATLAB 可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。

假设系统的对象模型可以表示为
n
n n n
m m m m a s b s a s b s b s b s b K s KG s G ++++++++==--+-11
11
1210)()(
系统的闭环特征方程可以写成
0)(10=+s KG
对每一个K 的取值,我们可以得到一组系统的闭环极点。

如果我们改变K 的数值,则可以得到一系列这样的极点集合。

若将这些K 的取值下得出的极点位置按照各个分支连接起来,则可以得到一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。

1)绘制系统的根轨迹rlocus<)
MATLAB 中绘制根轨迹的函数调用格式为:
rlocus(num,den> 开环增益k 的范围自动设定。

rlocus(num,den,k> 开环增益k 的范围人工设定。

rlocus(p,z> 依据开环零极点绘制根轨迹。

r=rlocus(num,den> 不作图,返回闭环根矩阵。

[r,k]=rlocus(num,den> 不作图,返回闭环根矩阵r 和对应的开环增益向量
k 。

其中,num,den 分别为系统开环传递函数的分子、分母多项式系数,按s 的降幂排列。

K 为根轨迹增益,可设定增益范围。

例3-1:已知系统的开环传递函数9
24)
1()(2
3++++=*
s s s s K s G ,绘制系统的根轨迹的MATLAB 的调用语句如下: num=[1 1]。

%定义分子多项式 den=[1 4 2 9]。

%定义分母多项式 rlocus (num,den>%绘制系统的根轨迹 grid %画网格标度线
xlabel(‘Real Axis ’>,ylabel(‘Imaginary Axis ’> %给坐标轴加上说明title(‘Root Locus ’> %给图形加上标题名
则该系统的根轨迹如图3-1所示:
若上例要绘制K 在<1,10)的根轨迹图,则此时的MATLAB 的调用格式如下,对应的根轨迹如图3-2所示。

num=[1 1]。

den=[1 4 2 9]。

k=1:0.5:10。

rlocus (num,den,k>
2)确定闭环根位置对应增益值K 的函数rlocfind<)
在MATLAB 中,提供了rlocfind 函数获取与特定的复根对应的增益K 的值。

在求出的根轨迹图上,可确定选定点的增益值K 和闭环根r<向量)的值。

该函数的调用格式为:[k,r]=rlocfind(num,den>
执行前,先执行绘制根轨迹命令rlocus<num,den ),作出根轨迹图。

执行rlocfind 命令时,出现提示语句“Select a point in the graphics window ”,即要求在根轨迹图上选定闭环极点。

将鼠标移至根轨迹图选定的位置,单击左键确定,根轨迹图上出现“+”标记,即得到了该点的增益K 和闭环根r 的返回变量值。

例3-2:系统的开环传递函数为25
386
5)(232+++++=*
s s s s s K s G ,试求:<1)系统的根
轨迹;<2)系统稳定的K 的范围;<3)K=1时闭环系统阶跃响应曲线。

则此时的MATLAB 的调用格式为:G=tf([1,5,6],[1,8,3,25]>。

rlocus (G>。

%绘制系统的根轨迹
[k,r]=rlocfind(G>%确定临界稳定时的增益值k 和对应的极点r G_c=feedback(G ,1>。

%形成单位负反馈闭环系统 step(G_c>%绘制闭环系统的阶跃响应曲线
则系统的根轨迹图和闭环系统阶跃响应曲线如图3-2所示。

其中,调用rlocfind<)函数,求出系统与虚轴交点的K 值,可得与虚轴交点的K 值为0.0264,故系统稳定的K 的范围为),0264.0(∞∈K 。

3)绘制阻尼比ζ和无阻尼自然频率n ω的栅格线sgrid( >
当对系统的阻尼比ζ和无阻尼自然频率n ω有要求时,就希望在根轨迹图上作等ζ或等n ω线。

MATLAB 中实现这一要求的函数为sgrid( >,该函数的调用格式为:sgrid(ζ,n ω> 已知ζ和n ω的数值,作出等于已知参数的等值线。

sgrid(‘new’> 作出等间隔分布的等ζ和n ω网格线。

例3-3:系统的开环传递函数为)2)(1(1
)(++=
s s s s G ,由rlocfind 函数找出能产
生主导极点阻尼ζ=0.707的合适增益,如图3-3(a>所示。

G=tf(1,[conv([1,1],[1,2]>,0]>。

<a )根轨迹图形 <b )K=1时的阶跃响应曲线
图3-2 系统的根轨迹和阶跃响应曲线
zet=[0.1:0.2:1]。

wn=[1:10]。

sgrid(zet,wn>。

hold on。

rlocus(G>
[k,r]=rlocfind(G>
Select a point in the graphics window
selected_point =
-0.3791 + 0.3602i
k =
0.6233
r =
-2.2279
-0.3861 + 0.3616i
-0.3861 - 0.3616i
同时我们还可以绘制出该增益下闭环系统的阶跃响应,如图3-3(b>所示。

事实ω线在设计系补偿器中是相当实用的,这样设计出的增益K=0.6233将上,等ζ或等
n
使得整个系统的阻尼比接近0.707。

由下面的MATLAB语句可以求出主导极点,即r(2.3>点的阻尼比和自然频率为
G_c=feedback(G,1>。

step(G_c>
dd0=poly(r(2:3,:>>。

wn=sqrt(dd0(3>>。

zet=dd0(2>/(2*wn>。

[zet,wn]
ans =
0.7299 0.5290
我们可以由图3-3(a>中看出,主导极点的结果与实际系统的闭环响应非常接近,设计的效果是令人满意的。

4)基于根轨迹的系统设计及校正工具rltool
MATLAB中提供了一个系统根轨迹分析的图形界面,在此界面可以可视地在整个前向通路中添加零极点<亦即设计控制器),从而使得系统的性能得到改善。

实现这一要求的工具为rltool,其调用格式为:
rltool 或 rltool(G>
例3-4:单位负反馈系统的开环传递函数
)
50)(20)(5(125
.0)(2
++++=
s s s s s s G 输入系统的数学模型,并对此对象进行设计。

den=[conv([1,5],conv([1,20],[1,50]>>,0,0]。

num=[1,0.125]。

G=tf(num,den>。

rltool(G>
该命令将打开rltool 工具的界面,显示原开环模型的根轨迹图,如图3-4<a )所示。

单击该图形菜单命令Analysis 中的Response to Step Command 复选框,则将打开一个新的窗口,绘制系统的闭环阶跃响应曲线,如图3-4<b )所示。

可见这样直接得出的系统有很强的振荡,就需要给这个对象模型设计一个控制器来改善系统的闭环性能。

单击界面上的零点和极点添加的按钮,可以给系统添加一对共轭复极点,两个稳定零点,调整它们的位置,并调整增益的值,通过观察系统的闭环阶跃响应效果,则可以试凑地设计出一个控制器)
84.03.61)(84.03.61()
26.10)(31.38(29
.181307)(j s j s s s s G C -+++++=
在此控制器下分别观察系统的根轨迹和闭环系统阶跃响应曲线。

可见,rltool 可以作为系统综合的实用工具,在系统设计中发挥作用。

三、实验内容 1.请绘制下面系统的根轨迹曲线
)
136)(22()(22++++=
s s s s s K
s G
)
10)(10012)(1()
12()(2
+++++=
s s s s s K s G 2(0.051)
()(0.07141)(0.0120.11)
K s G s s s s s +=
+++
同时得出在单位阶跃负反馈下使得闭环系统稳定的K 值的范围。

2. 在系统设计工具rltool 界面中,通过添加零点和极点方法,试凑出上述系统,并观察增加极、零点对系统的影响。

a )原对象模型的根轨迹 <b )闭环系统阶跃响应
图3-4 根轨迹设计工具界面及阶跃响应分析
四、实验报告
1.根据内容要求,写出调试好的MATLAB 语言程序,及对应的结果。

2. 记录显示的根轨迹图形,根据实验结果分析根轨迹的绘制规则。

3. 根据实验结果分析闭环系统的性能,观察根轨迹上一些特殊点对应的K 值,确定闭环系统稳定的范围。

4.根据实验分析增加极点或零点对系统动态性能的影响。

5.写出实验的心得与体会。

五、预习要求
1. 预习实验中的基础知识,运行编制好的MATLAB 语句,熟悉根轨迹的绘制函数rlocus(>及分析函数rlocfind(>,sgrid(>。

2. 预习实验中根轨迹的系统设计工具rltool ,思考该工具的用途。

3. 掌握用根轨迹分析系统性能的图解方法,思考当系统参数K 变化时,对系统稳定性的影响。

4.思考加入极点或零点对系统动态性能的影响。

实验五 线性系统的频域分析
一、实验目的
1.掌握用MATLAB 语句绘制各种频域曲线。

2.掌握控制系统的频域分析方法。

二、基础知识及MATLAB 函数
频域分析法是应用频域特性研究控制系统的一种经典方法。

它是通过研究系统对正弦信号下的稳态和动态响应特性来分析系统的。

采用这种方法可直观的表达出系统的频率特性,分析方法比较简单,物理概念明确。

1.频率曲线主要包括三种:Nyquist 图、Bode 图和Nichols 图。

1)Nyquist 图的绘制与分析
MATLAB 中绘制系统Nyquist 图的函数调用格式为:
nyquist(num,den> 频率响应w 的范围由软件自动设定
nyquist(num,den,w> 频率响应w 的范围由人工设定
[Re,Im]=nyquist(num,den> 返回奈氏曲线的实部和虚部向量,不作图
例4-1:已知系统的开环传递函数为2
5262)(23++++=s s s s s G ,试绘制Nyquist 图,
并判断系统的稳定性。

num=[2 6]。

den=[1 2 5 2]。

[z,p,k]=tf2zp(num,den>。

p
nyquist(num,den>
极点的显示结果及绘制的Nyquist 图如图4-1所示。

因为系统的开环右根数P=0,系统的Nyquist 曲线没有逆时针包围<-1,j0)点,所以闭环系统稳定。

p =
-0.7666 + 1.9227i
-0.7666 - 1.9227i
-0.4668
若上例要求绘制)10,10(32-∈ω间的Nyquist 图,则对应的MATLAB 语句为:
num=[2 6]。

den=[1 2 5 2]。

w=logspace(-1,1,100>。

即在10-1和101之间,产生100个等距离的点
nyquist(num,den,w>
2)Bode 图的绘制与分析
系统的Bode 图又称为系统频率特性的对数坐标图。

Bode 图有两张图,分别绘制开环频率特性的幅值和相位与角频率ω的关系曲线,称为对数幅频特性曲线和对数相频特性曲线。

MATLAB 中绘制系统Bode 图的函数调用格式为:
bode(num,den> 频率响应w 的范围由软件自动设定
bode(num,den,w> 频率响应w 的范围由人工设定
[mag,phase,w]=bode(num,den,w> 指定幅值范围和相角范围的伯德图
例4-2:已知开环传递函数为)
10016()12.0(30)(2+++=s s s s s G ,试绘制系统的伯德图。

num=[0 0 15 30]。

den=[116100 0]。

w=logspace(-2,3,100>。

bode(num,den,w>
grid
图4-1 开环极点的显示结果及Nyquist 图。

相关文档
最新文档