MATLAB根轨迹绘制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统的计算机辅助设计从成为一门专门的学科以来已有20 多年的历史,它一直受到控制界的普遍重视,在其发展过程中出现了各种各样的实用工具和理论成果。
本论文借助于国际上流行的控制系统计算机辅助设计软件MATLAB6.5 对连续控制系统进行分析,首先,以自动控制原理为基础,对连续控制系统进行分析和设计,主要是系统的传函,零极点和状态空间表达式之间的转换;然后进行连续控制系统辅助设计及编程,包括系统的单位脉冲,单位阶跃,零输入和任意输入下的响应,还有系统的频率响应和特性的分析,如Nyquist 图,Bode 图,Nichols 图和根轨迹的绘制。
最后用GUI 编制控制系统用户界面实现上述功能。
关键词:连续控制系统;系统模型;时域回应;频域回应;根轨迹;GUI
Abstract
Control the calculator assistance of system a design from become a specialized academics have already there is the history for more than 20 years, it has been subjected to a widespread value of control the boundary and appeared practical tool and theories result of various each kind in it the development the process.
This disquisition uses the software named MATLAB 6.5 edition to analyses the continuous system. Firstly, it takes automatic control principle as foundation, and carry on analysis and design the continuous control system. It mainly contain Transfer function, the conversion of zero extremities and the appearance space expression types; Then carry on continuous control system assistance design and plait distance, include the unit pulse of system, the unit rank jump, zero importation with arbitrarily input next respond to, return systematic frequency to respond to with the analysis of the characteristic, like Nyquist diagram, Bode diagram, draw of Nichols diagram and root track. Finally draw up customer's interface of the control system to carry out the above-mentioned function with the GUI.
Key words:continuous control system;system's model;time response;frequency response; root locus; GUI
第1 章连续控制系统的计算机辅助设计和分析的概述 (1)
1.1控制系统的数学模型与建立 (1)
1.2控制系统的模型转换 (4)
第2 章基于MATLAB 的连续控制系统的设计与分析 (6)
2.1连续控制系统的时域分析 (6)
2.2连续控制系统的频域分析 (11)
2.3连续控制系统的根轨迹分析与设计 (16)
第3 章图形用户接口(GUI)制作 (25)
3.1图形用户接口的创建概述 (25)
3.2控制系统分析与设计的GUI (33)
3.3控制系统的综合分析与设计 (39)
结论 (44)
参考文献 (45)
致谢 (46)
第1 章连续控制系统的计算机辅助设计和分析的概述
1.1控制系统的数学模型与建立
控制理论分析,设计控制系统的第一步是建立实际系统的数学模型.所谓数
学模型就是根据系统运动过程的物理,化学等规律,所写出的描述系统运动规律,特性,输出与输入关系的数学表达式。
在控制系统中,常用的数学模型有微分方程模型,传递函数模型,状态空间模型以及零极点模型等。
在一些场合下需要用到其中一种模型,而在其他场合则可能又需要其他模型,所以掌握模型之间的转换很重要。
本章就控制系统常用的一些数学模型如微分方程模型、传递函数模型、状态空间模型和零极点模型的基本概念,包括模型的建立、转换作出说明,作为连续控制系统的计算机辅助设计的预备知识,为下面的设计及编程打下基础。
1.1.1系统的时域模型
连续时间系统用微分方程描述。
对于单输入单输出(SISO)系统数学模的一般形式为:
a n y (t)+a n-1y (t)++a0y (t) =
b m u (t)+b m-1u (t)++b0u (t)
其中,y 和u 分别为系统的输入与输出,a i与b i分别表示输入和输出各导数项系数。
一、系统的传递函数模型
1、模型介绍
对于一个SISO 连续系统,系统相应的微分方程如上式所示,对此微分方程作Laplace 变换,则该连续系统的传递函数为
mm-1
Y(S) b1s+b2s+ +b m+1
G( S ) ==
nn-1
U(S)a1s+a2s++a n s+a n+1
2、模型建立
在MATLAB 中,用函数TF 可以建立一个连续系统传递函数模型,其调用格式为
sys=tf(num,den)
其中,num 为传递函数分子系统向量,den为传递函数分母系数向量。
3、程序举例 连续系统的传递函数为
用 MATLAB 建立该系统传递函数模型和运行结果如下:
%MATLAB PROGRAM num=[1,2]; den=[1,1,10]; sys=tf(num,den) >>amp101 Transfer function:
s^2 + s + 10
若系统的输入和输出量不是一个,而是多个,则称多输入多输出系统 (MIMO )。
和 SISO 系统类似,MIMO 系统的数学模型形式也有微分方程,传递 函数,矩阵状态空间和零极点。
二、系统的状态空间模型
1 、模型介绍
LTI (线性时不变)系统总是能用一阶微分方程组来表示,写成矩阵或者说 是状态空间的形式,这些方程可以表示为:
x (t ) = Ax (t )+ Bu (t ) y (t ) = Cx (t )+ Du (t )
用状态空间表示的系统在 MATLAB 中用(A,B,C,D)形式表示,A,B,C,D 都是 矩阵,并且被当作独立变量来对待。
状态空间描述是 MATLAB 中对 LTI 系统最 为自然的一种模型描述方法其中 u 是 nu 维控制输入向量,x 是 nx 维状态向 量,y 是 ny 维输出向量。
,而对多输入多输出 MIMO 系统而言,状态空间描述 是唯一的模型描述方法。
2、模型建立:
在 MATLAB 中,用函数 SS 可以建立一个连续系统传递函数模型,其调用 格式为
sys=ss(A,B,C,D)
其中 A ,B ,C ,D 为系统状态方程系数矩阵。
3、程序举例
若给定系统的状态方程系数矩阵为
G (s )= s +2 s 2 + s + 10
-40 4 -139 -150
A = 1
0 0 0 1 0 用 MATLAB 建立系统的程序模型
如下:
%MATLAB PROGAM
a=[-40.4, -139, -150;1,0,0; 0,1,0];
b=[1;0;0]; c=[0,18,360];
d=0; sys=ss(a,b,c,d);
三、系统的零极点增益模型
1 、模型介绍 零极点模型实际上是传递函数模型的另一种形式,其方法是对原系统传递函 数的分子和分母多项式进行分解,以获得系统的零极点表达形式。
对于 SISO 系 统来说,其零极点模型如下:
m
i =1(s + z i ) (s + z 1)(s + z 2)(s + zm )
(s + p )
(s + p 1)(s + p 2)(s + p n ) 式中,z (i=1,2,…,m)和 p (i=1,2,…,n)分别为系统的零点和极点,K 为系统增 益。
2、模型建立 在 MATLAB 中,用函数 SS 可以建立一个连续系统传递函数模型,其调用 格式为 :
sys=zpk(Z,P,K)
其中 Z ,P ,K 分别为系统的零点向量、极点向量和增益。
3、程序举例
已知系统传函为
18(s +2)
(s +0.4)(s +15)(s + 25)
用 MATLAB 建立系统模型程序和运行结果如下: %MATLAB PROGRAM
z=-2;
p=[-0.4,-15,-25]; sys=zpk(z,p,18);
>>amp105
Zero/pole/gain: (s +0.4)(s +15)(s +25)
1.2 控制系统的模型转换
对系统的数学模型描述主要有微分方程模型,传递函数模型,状态空间模型
C = 0 18 360 ,
D = 0 G (s )=
和零极点模型等形式,而这些模型之间确实存在着内在的等效关系。
在一些场合下,需要用其中一种形式的模型,而在另一种场合下可能又需要另外形式的模型,所以模型之间的相互转换是十分重要的。
对于LIT 系统,其状态空间模型由拉氏变换可得对应的传递函数模型为
H(s)=C(sI- A)-1B + D
因此,当已知系统的状态空间模型(A,B,C,D),经矩阵运算,可求得系统的传递函数G(s)。
在MATLAB 中,用函数SS自动完成上面运算。
MATLAB 提供了十分简单的模型转换方式。
函数tf,zpk,ss不仅用于系统模型的建立,也可用于模型形式之间的转换。
一、将非传递函数形式的系统模型sys转换成传递函数模型:
Newsys=tf(sys)
二、将非零极点增益形式的系统模型sys转换成零极点增益模型
Newsys=zpk(sys)
三、将非状态空间的系统模型sys转换成状态空间模型。
Newsys=ss(sys)
四、传递函数模型转换为状态空间模型:
[A B C D]=tf2ss(num,den)
五、传递函数模型转换成零极点模型
[z,p,k]=tf2zp(num,den)
六、状态空间模型装换为传递函数模型
[num,den]=ss2tf(A,B,C,D,iu)
系统的状态方程可以表示为:x(t) = Ax(t)+Bu(t)
y(t) =Cx(t ) +Du(t )
相应的传递函数为:G(s) =C sI -A B+D
七、[例1.1] 将系统G(z)=(0.04z+0.04)/(z^3-z^2+81z+0.9)转换为零极点增益形式,
采样周期为0.01s。
用MATLAB 编写程序和运行结果如下:%MATLAB PROGRAM 1-1
num=[0.04 0.04];
den=[1 -2 81 0.9]; sys-tf=tf(num,den,0.01) sys-zpk=zpk(sys-tf)
>>amp101
Transfer function:
0.04z + 0.04
z^3 -2z^2+81z+0.9 Sampling time:0.01
Zero/pole/gain:
0.04(z+1)
(z=0.01111)(z^2-2.011z+81.02)
第2章 基于 MATLAB 的连续控制系统的设计与分析
2.1 连续控制系统的时域分析
系统的时间响应是指系统在输入信号或初始状态作用下,系统的输出随时间 变化的情况。
系统的时间相应反映了系统的特征和性能,如系统的快速性,稳定 性及阻尼性能等。
充分了解和分析系统的响应,以及与系统结构,参数之间关系, 是我们设计和校正系统的基础。
在对控制系统进行时域分析时,通常使输入信号为单位阶跃函数或单位脉冲 函数,由此求得系统的输出响应即控制系统的单位阶跃响应(step )和单位脉冲 响应(impulse )。
MATLAB6.5 提供了丰富的函数用以对连续控制系统进行时域分析,这些函 数是:
1、单位阶跃响应函数 step
2、单位脉冲响应函数 impulse
3、零输入响应函数 initial
4、任一输入下的仿真函数 lsim
2.1.1 连续控制系统的单位阶跃响应
函数 STEP 用来计算 LIT 的单位阶跃响应。
适用于连续时间系统,也适用于 离散时间系统;适用于 SISO 系统,也可用于MIMO 系统。
一、 单位阶跃响应函数调用方式:
Step(sys)
Step(sys,Tfinal) Step(sys,T) Step(sys1,sys2,…,T)
其中,sys 为系统模型;Tfinal 为仿真终止时间;T 为用户指定的仿真时间向 量,Ts 为采样周期,对于连续时间系统 T=[To:dt:Tfinal],dt 为连续系统离散化的 采样周期,To 为仿真开始时间。
二、 程序举例
已知控制系统传递函数:
编程绘制其阶跃响应曲线。
程序如下:
G (s )=
s s +2s +8s
num=1;
den=[1,2,8];
step(num,den) 结果如图2-1-1 所示
图2-1-1 阶跃响应曲线
2.1.2连续控制系统的单位脉冲响应
函数IMPULSE 用来计算LTI 系统的单位脉冲响应。
它适用连续时间系统,也适用于离散时间系统;既适用于SISO系统,也适用于MIMO 系统。
一、脉冲响应的调用格式:
Impulse(sys)
Impulse(sys,Tfinal)
Impulse(sys,T) Impulse(sys1,sys2,…,
T)
[Y,T]=impulse(sys) [Y,T,X]=impulse(sys)
、程序举例:已知系统:
x=-1 2x+1u
-3 -4
0编写程序绘制其单位脉冲响应曲线
程序如下所示:a=[-1,2;-3,-4]; b=[1;0]; c=[0,1];d=0; impulse(a,b,c,d); 结果如图2-1-2 所示
y=[0,1]x+[0]u
图2-1-2 单位脉冲响应曲线
2.1.3连续控制系统的零输入响应
函数INITIAL 用来计算零输入条件下,初始状态Xo所引起的响应。
该函数仅适用于状态空间模型所描述的系统。
一、函数调用格式:
Initial(sys,X0)
Initial(sys,X0,Tfinal)
Initial(sys,X0,T)
Initial(sys1,sys2,…,X0,T)
[Y,T,X]=initial(sys,X0) 其中x0 为初始状态向量。
二、程序举例:系统如下:
求初始状态: x 0=
10时的零输入响应。
程序如下: a=[-1,7;-22,-4]; b=[1;0];
c=[0,1];
d=0;
x0=[1;0]; initial(a,b,c,d,x0);
结果如图 2-1-3 所示
图 2-1-3 零输入响应
2.1.4 连续控制系统在任一输入下的仿真函数 信号发生器函数GENSIG 用以产生周期输入信号供系统时间响应函数 LSIM 使用。
一、 函数调用格式
[U,T]=gensig(Type,Tau)
[U,T]=gensig(Type,Tau,Tf,Ts)
其中,Type 为信号模型,sin-正弦波,square-方波,pulse-周期脉冲波;Tau 为信号周期;Tf 为信号的时间区间;Ts 为采样周期;U 为信号值向量;T 为和U 对应的时间向量。
在大量的应用领域中,人们经常面临用一个解析函数描述数据 (通常是测量值)的任务。
对这个问题有两种方法。
在插值法里,数据假定是正确 的,要求以某种方法描述数据点之间所发生的情况。
这里讨论的方法是曲线拟合 或回归。
人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数 据点。
其中,t 是采样时间向量,矩阵 u 的每一列表示一个输入,每一行对应一个 采样时刻,因此它的列数应该与系统 sys 的输入个数相同,它的行数应该与向量 t 的长度相同。
x = -1 -22 7 x
+
1u ; y=[0,1]x+[0]u
任意输入响应函数LSIM 是用来仿真系统对任意输入信号的响应,基本调用格式用来绘制任意输入响应图。
Lsim(sys,U,T)
其中,sys 为仿真系统;U为输入信号向量;T为和输入U对应的时间向量。
对于状态空间模型,调用时可加入初始状态值X0,调用格式为:
Lsim(sys,U,T,X0)
绘制多个系统对同一个任意输入响应图的调用格式为
Lsim(sys1,sys2,… ,U,T,X0)
返回响应数据但不绘制响应图的调用格式为
[Ys,Ts]=lsim(sys,U,T)
其中,Ys 相应值向量;Ts 为和Ys 相对应的时间向量。
对于状态空间模型,另一个调用格式为
[Ys,Ts,Xs]=lsim(sys,U,T,X0) 其中,Xs为仿真过程中系统状态的轨迹。
二、程序举例
计算一模型对三种不同输入信号的响应数据,并画图。
t=0:0.01:20;
s1=sin(t);
s2=randn(size(t));
[s3,tt]=gensig(‘square',10,20,0.01);
sys=tf(10,[1 2 10]);
[y1,t1]=lsim(sys,s1,t);
[y2,t2]=lsim(sys,s2,t);
[y3,t3]=lsim(sys,s3,tt);
subplot(2,2,1),plot(t1,y1),title(‘Input:Sine Sig')
subplot(2,2,2),plot(t3,y3),title(‘Input:Square Sig')
subplot(2,1,2),plot(t2,y2),title(‘Input:Rand Sig')
结果如图2-1-4 所示
图 2-1-4 三种不同输入信号响应图
2.2连续控制系统的频域分析
系统的时域分析是分析系统的直接方法,比较直观,但离开计算机仿真,分析高阶系统是困难的。
系统频域分析是工程广为应用的系统分析和综合的间接方法。
频率分析不仅可以了解系统的频率特性,如截止频率、谐振频率等,而且可以间接了解系统时域特性,如快速性、稳定性等,因此,频率响应分析是分析和设计系统非常简便和可靠的方法。
2.2.1频率响应和频率特性根据频率响应的基本原理,若一个线性系统受到频率为w 的正弦信号时,它的输出仍然为正弦信号,其幅值与输入信号成M (w)比例关系,而且输出与输入信号之间有一个相位差K(w)和M(w)是关于w 的有理函数,这样就可以通过M(w) 和K(w)来表示系统的特征。
选用MATLAB 控制工具箱中的伯德响应、尼柯尔斯响应、奈奎斯特响应等分析函数可以得到带宽、增益、转折频率、闭环稳定性等系统特征。
一、一般概念频率响应是指系统对正弦输入的稳态响应。
考虑传递函数为G(s)的线性系统,若输入正弦信号
x (t) = X sin t
根据微分方程解的理论,系统的稳态输出仍然为与输入信号同频率的正弦信号,只是其幅值和相位发生了变化。
输出幅值正比于输入的幅值X i,而且是输入正弦频率的函数。
输出的相位与X i无关,只与输入信号产生一个相位差而且也是输入信号的函数。
即线性系统的稳态输出是:
x (t) = X ()sin[t + ()]
由此可知,输出信号与输入信号的幅值比是的函数,成为系统的幅频特性,记为A。
输出信号与输入信号的相位差也是的函数,记为系统的相频特性()。
幅频特性:
A()= x0()
x1()
相频特性:
() = () -() 频率特性是指系统在正弦信号作用下,稳态输出与稳态输入之比对频率的关系特性,可表示为:
G(j)= x0(j)
x i( j)
MATLAB 控制工具箱中,函数FREQRESP 用于计算LTI 系统的频率相应,它既适用于连续时间系统,也适用于离散时间系统。
函数调用格式为
H=freqresp(sys,w) 其中,sys 为系统模型;w 为指定的实频率向量,单位为rad/s。
二、频率特性是传递函数的一种特殊形式任何线性连续时间系统的频率特性都可以由系统传递函数中的s 以j代替而求的。
频率特性图标法在经典控制论中,常用图标法来描述系统的频率特性,他们是:
(1)---------------------- 幅相频特性Nyquist 图,由0 → 表示极坐标上的G( j)的幅值
和相角的的关系。
(2)对数幅相特性---Bode 图有两个图组成:对数幅频特性图和对数相频设计图。
(3)------------------------ 对数幅相特性Nichols 图,它是以为参变量来表示对数幅值和相
角。
MATLAB 工具箱中的函数可以轻松实现绘制。
2.2.2Nyquist 图的绘制
一、函数调用格式
频率特性G( j)是频率的复变函数,可以在复平面上用一个向量来表示。
该向量的幅值A() = G(j) ,相角() = G( j) 。
当频率从0 →变化时,G( j)矢端的轨迹即为频率特性。
因此,把频率特性在复平面上用极坐标表因此,把频率特性在复平面上用极坐标表示的几何图形,称为频率特性的极坐标图,或称Nyquist 图。
MATLAB 控制工具箱中有绘制Nyquist图的函数NYQUIST,调用格式为
Nyquist(sys) Nyquist(sys,)
Nyquist(sys1,sys2,…,sysN) Nyquist(sys1,sus2,…,sysN,
) [Re,Im,]=nyquist(sys)
其中sys 为系统模型;为频率向量;Re 为频率响应的实部;Im 为频率响应虚部。
MATLAB 中,频率范围可由两个函数给定:logspace( , ,N)产生频率在
和2之间N 个对数分布频率点;linspace(1,2,N)产生频率在1和2之间1
N 个线性分布的频率点;N 可以缺省。
函数NYQUIST用于计算LTI系统的Nyquist 频率响应。
调用时,若不包含
左边输出变量,函数NYQUIST 绘制系统的nyquist 图;调用时,若包含左边输出变量,只输出变量的向量,这常用语分析系统频率特性。
此外,MATLAB 控制工具箱中还有绘制Nichols 图的函数NICHOLS,其调用格式为:
Nyquist(sys) Nyquist(sys,) Nyquist(sys1,sus2,…,sysN,
) [mag,phase, ]=nyquist(sys)
函数nichols(sys)用于计算LTI 系统的频率响应并绘制Nichols 图,分析系统的开环和死循环特性。
二、程序举例
2s2+5s+1 绘制系统G k(s)=
2s+5s+1 k s2+2s+3
的Nyquist 图和Nichols 图。
程序如下:sys=tf([2 5 1],[1 2 3]);
figure(1)
nyquist(sys);
figure(2)
ngrid
nichols(sys);
结果如下
2.2.3Bode 图的绘制
一、函数的调用方式图 2-2-2 Nichols 图图 2-2-1 Nyquist 图
Bode 是由两幅图组成,分别称作对数幅频特性和对数相频特性。
它在频率响应法中应用最为广泛。
它的横坐标是频率(rad/s) ,对数幅频特性的纵坐标是幅值
20lg|G(j)| ,单位dB;对数相频特性的纵坐标为() ,单位deg。
Bode 图便于对系统中不同环节的作用以及整个系统进行分析。
MATLAB 控制系统工具箱中,用于Bode绘制的函数是BODE。
函数BODE 用于计算线性时不变系统(LTI)的频率响应、幅值和相位,绘制Bode 图。
调用方式:
Bode(sys) Bode(sys,w) Bode(sys1,sys2,…,sysN) [mag,phase,w]=bode(sys) 其中,sys 为系统模型;mag 为幅值;phase 为相位;
为频率范围。
函数BODE 可用于任意LTI 系统,即单输入单输出(SISO)系统,多输入多输出(MIMO)系统,连续时间系统,离散时间系统。
本节就连续时间系统进行分析。
用函数BODE 绘制系统的Bode 图时,频率范围将根据系统零极点自动确
定。
Bode(sys,) 是根据给定的频率范围绘制系统sys 的频率特性曲线。
Bode(sys1,sys2,,sysN,) 用于在给定的频率范围绘制多个系统频率特性曲线。
当函数调用带有左边输出变量时,函数将返回频率响应的幅值mag,相位
phase 和频率值。
二、程序举例
2s2+5s+1
绘制系统G k (s) = 2s + 5s +1的Bode图。
用MATLAB 编写绘图程序如下;
%MATLAB PROGRAM
%A example:Computation of frequency response %Create model of a discrete
system
Ts=0.1;
sys=tf([2 5 1],[1 2 3]);
%Draws the Bode plot of the system figure(1)
bode(sys);
结果如下
图 2-2-3 Bode 图
比较图2-2-3和2-2-1 可知,在MATLAB 中,可用不同方法求得系统的频率响应特性。
2.3连续控制系统的根轨迹分析与设计
经典控制系统经常用传递函数来描述,系统设计往往借助于系统频率特性,根轨迹法是最常用的方法。
本节将就连续控制系统的根轨迹方程,根轨迹图的绘制以及根轨迹在MATALAB 中的实现来分析连续控制系统的根轨迹设计。
2.3.1根轨迹方程控制系统的动态特性和稳定性都是由死循环极点来决定的。
因此在分析系统时,需要确定死循环极点在S 平面上的分布,而在设计系统时,则希望按性能指针要求将系统死循环极点设置在S平面的期望位置上。
根轨迹的一般定义是:当系统中某参数(通常指开环增益)由0→时,系统死循环极点在S 平面上运动的轨迹。
2.3.1.1根轨迹方程
若系统开环传递函数为G(s)H(s),则系统死循环特征方程为
1+G(s)H(s)=0
或改写成
G(s)H(s)=-1
以零极点的形式,上式可写成
m
(s + Zi )
G (s )=K i n =1
(s +Pi )
i =1 此即为根轨迹方程。
式中Z i (i=1,2,…,m )为系统的开环零点,
P i (i=1,2,…,n )为系统的开环极点;
K 为系统的根轨迹增益(本论文统称开环增益)。
满足根轨迹方程的所有 s 值必然都是系统可能的死循环极点;对于每一个死 循环极点,系统都有相应的增益值。
2.3.1.2 根轨迹图的绘制
根轨迹图描述了当系统开环增益 K 由 0→变化时,死循环特征根在 S 平 面上移动的轨迹。
用人工逐点绘制,方法繁杂不适用。
往往根据根轨迹的一些性 质、规则和特殊点进行绘制。
绘制根轨迹时,往往先要确定开环的极点和零点, 并在 S 平面上分别用和o 表示。
根轨迹起始于开环极点,终止与开环零点。
如 果开环零点数 m 小于开环极点数 n ,则有(n-m )条轨迹终止于无穷远。
根轨迹 对称于实轴、分支数等于死循环极点数。
2.3.1.3 根轨迹的 MATLAB 实现
MATLAB 中 有三 个 函 数 用于 根 轨 迹 绘制和 分 析 , 它们 时 RLOCUS 、 RLOCFIND 和 SGRID 。
函数RLOCUS 的调用格式为:
Rlocus(sys)
R= Rlocus(sys)
[R,K]= Rlocus(sys)
其中 sys 为系统的开环模型;rlocus(sys)自动绘制根轨迹图;R=rlocus(sys) 运行后,返回系统死循环特征根值 R ;[R ,K]=rlocus(sys)运行后返回系统增益。
函数 RLOCFIND 用于由给定死循环极点求解对应的开环增益大小,调用格 式为
[K,POLES]=Rlocfind(SYS)
[K,POLES]=Rlocfind(SYS,P)
用户可用鼠标在根轨迹图上选定极点或设置极点P 两种方式。
函数返回极点 实际值 POLES 和开环增益 K 值。
函数sgrid 用来在根轨迹平面上绘制阻尼比和等固有频率网格,阻尼比从0.1 至 1.0 ,间隔 0.1 ;固有频率从 0 至 10rad/s ,间隔 1rad/s 。
网格图也为根轨迹的设 计提供了方便。
(s + Z 1)(s + Z 2)(s + Zm ) K (s +P 1)(s + P 2)(s +
Pn )
根轨迹绘制程式举例:
并求系统在任意给定极点的增益。
MATLAB 程序如下:
num=[2 5 1];
den=[1 2 3];
sys=tf(num,den);
subplot(221);
rlocus(sys);
[r,k]=rlocus(sys);
[gain,poles]=rlocfind(sys) 运行结果:
Select a point in the graphics window selected_point =-2.2568 - 0.0556i gain =14.5128
poles =-2.2207
-0.2626 根轨迹图及选定极点位置如图2-3-1 所示。
图中,x 为开环极点;o 为开环零点;+ 为所选定的死循环极点。
图 2-3-1 根轨迹图键入[r,k]后,MATLAB COMMAND 窗口显示一组与相对应的死循环增益K 值和特征根r。
2.3.1.4根轨迹设计法
基于根轨迹的系统设计通常有增益设计法和补偿设计法。
一、增益设计法
增益设计法是根据系统的性能指针,确定希望死循环的极点位置,然后求出对应的开环增益K。
该设计法利用MATLAB 控制工具箱函数很容易实现。
对于二阶系统,根据性能指针选择希望极点位置有成熟理论依据。
对于高阶系统,期望极点必须是系统的一对共轭的主导极点,若系统不存在这样的主导极点,增益设计法不能被简单地应用。
根轨迹设计法程序举例:
[例2-1]已知系统开环传递函数G(s)=
2s2+5s+1
s+2s+3
,试绘制该系统的根轨迹,
[例2-2]已知单位回馈系统的开环传递函数为G(s)= K
s(s+3)(s2+2s+2) 求阻尼比=0.5 时系统的极点和对应的开环增益K 值解。
MATLAB 程序如下示:
sys=zpk([],[0 –3 –1+i –1-i],1);
rlocus(sys);
sgrid;
[gain,poles]=rlocfind(sys)
运行结果:
Select a point in the graphics window
selected_point =-0.8341 + 0.4444i
gain =1.7616
poles =-2.8623
-0.7146 + 0.5983i
-0.7146 - 0.5983i
-0.7086
图 2-3-2 根轨迹图
系统的根轨迹如图2-3-2 所示,图中“+”是根据系统期望极点用鼠标选定的位置。
为了检验所设计系统是否满足期望性能指针,编写一个MATLAB 程序和运行结果如下:
sys=zpk([],[0 –3 –1+i –1-i],1);
sys_old=feedback(sys, -1);
disp(‘Natural frequency and damping of the Old system') [wn,damping]=damp(sys) sys_new=zpk([],[-2.7667 –1.4299 –0.4017+0.7148i –0.4017-0.7148i],2.6600);
disp(‘Natural frequency and damping of the new system')
[wn,damping]=damp(sys_new)
step(sys_new);
程序运行结果:
Natural frequency and damping of the Old system
wn =0
1.4142
1.4142
3.0000
damping =
-1.0000
0.7071
0.7071
0.0000
Natural frequency and damping of the new system
wn =0.8199
0.8199
1.4299
2.7667
damping =
0.4899
0.4899
1.0000
1.0000
运行结果表明,原系统有正极点,不稳定,阶跃响应发散;新的系统死循环极点全在左半平面,系统稳定,具有一对离虚轴最近的极点,阻尼比为0.5 附近,满足设计要求。
系统阶跃响应如图2-3-3 所示
图 2-3-3 系统阶跃响应图
二、补偿设计法实际上,许多系统单用改变系统增益的办法是不能获得理想的性能指针的,必须在原系统中增加校正环节使死循环根轨迹满足性能指针的要求。
这就是补偿设计法。
众所周知,校正环节通常有:串联校正和并联校正两种。
串联校正装置又分为超前校正装置、滞后校正装置和滞后-超前校正装置。
并联校正装置常用回馈校正。
最简单的串联校正装置的传递函数为G c(s)=K c s+a
cc s+b 其中a、b 均大于0。
若a<b,G c(s)为超前校正装置;若a>b,G c(s)为滞后校正装置;将两装置串联
起来就得到滞后-超前校正装置。
补偿设计法就是根据系统的性能指针确定校正装置参数,即K c,a,b。
根轨迹补偿设计方法是通过补偿装置的零点和极点的引入改变系统根轨迹的形状,使根轨迹通过s 平面所期望的点。
三、用根轨迹法设计校正装置的步骤:
1、根据系统性能指针,确定期望死循环主导极点S d的位置;
2、确定校正装置零极点的位置,写出校正装置传递函数,
s+Z
G c(s)=K c s+Zc
cc s+ P c
Z c和P c的确定方法应根据所选用的校正装置类型采用相应的方法;
3、绘制根轨迹图,确定K c的值;
4、校验,验算主导极点位置和校正后的系统性能。
四、程序举例:
[例2-3]已知具有单位回馈控制系统的开环传递函数为
G c(s)= K
c s(s+5)(s+15)
试设计超前校正装置,使系统满足;最大超调量M p30%,调整时间t s0.5s并绘制校正前后系统的根轨迹,求出校正后系统的阶跃响应。
1、绘制校正前的原系统根轨迹
sys=zpk([],[0 –5 –15],1);
rlocus(sys);
sgrid;
damp(sys);
原系统根轨迹图形示于图2-3-4
图 2-3-4 原系统根轨迹图
2、根据给定的性能指针确定死循环期望主导极点
M p =e 1-2由 4 t s =n =0.5
解得 =0.357 =22.41rad/s 因此,期望主导极点为:S d = -n j d =-8 j 20.9
3、由相位条件确定需要超前校正装置提供的超前角: 20.9 20.9 =-180-[(-180+arctan 20.9)+(-180+arctan 20.9)- 83
4、确定超前校正装置的零点Z c 和P c 图解法:
re=8.0;
im=20.9;
sd=sqrt(Re*Re+Im*Im);
phi=82*pi/180;
gama=14.5*pi/180;
alpha=atan(Im/Re);
Z=Sd*sin(gama)/sin(pi-alpha-gama)
P=Sd*sin(phi+gama)/sin(pi-alpha-gama-phi) 结果:
5.6388
P =
89.1320
校正后系统的开环传递函数为
G c (s )=s (s +5)K (s (+s +155).(6s )+89.1)
校正后系统的根轨迹:
sys=zpk([-5.6],[0 –5 –15 –89.1],1); rlocus(sys);
sgrid;
damp(sys)
5、 确定系统增益 K
用rlocfind 选择与S d 接近的主导极点值并求出相应的增益K 值。
6、检验系统主导极点并验证校正后的死循环系统特性
Disp(‘Open loop system:')
Sys1=zpk(-5.6,[0 -5 -15 -89.1],31471) Disp(‘Closed loop system with a lead compensater:')
Sys=feedback(sys1,1)
arctan 20.9] = 82 7。