反馈控制系统的数学模型与设计工具
反馈控制系统的数学模型及设计工具
反馈系统的数学模型在系统分析和设计中起着很重要的作用,基于系统的数学模型,就可以用比较系统的方法对之进行分析,同时,一些系统的方法也是基于数学模型的,这就使得控制系统的模型问题显得十分重要。
1数学模型的表示方法
线性时不变(LTI)系统模型包括传递函数模型( tf ),零极点增益模型( zpk ),状态空间模型( ss )和频率响应数据模型 ( frd )
传递函数模型
线性系统的传递函数模型可以表示成复数变量s 的有理函数式:
n
n n n n m m m m a s a s a s a s b s b s b s b s G +++++++++=---+-122111121)( 调用格式: G =tf (num, den)
其中][num 121+=m m b b b b ,]1[den 121n n a a a a -= 分别是传递函数分子和分母多项式的系数向量,按照s 的降幂排列.返回值G 是一个tf 对象,该对象包含了传递函数的分子和分母信息。 例1 一个传递函数模型
5
43232)(2342++++++=s s s s s s s G 可以由下面命令输入到MATLAB 工作空间去.
>> num=[1 2 3];den=[1 2 3 4 5];G=tf(num,den)
Transfer function:
s^2 + 2 s + 3
----------------------------------
s^4 + 2 s^3 + 3 s^2 + 4 s + 5
对于传递函数的分母或分子有多项式相乘的情况, MATLAB 提供了求两个向量的卷积函数—conv( )函数求多项式相乘来解决分母或分子多项式的输入。conv( )函数允许任意地多层嵌套,从而表示复杂的计算.应该注意括号要匹配,否则会得出错误的信息与结果。
例2 一个较复杂传递函数模型
)
432)(6()1()3)(2(2)(2342+++++++=s s s s s s s s G 该传递函数模型可以通过下面的语句输入到MATLAB 工作空间去。
>> num=2*conv([1 2],[1 3]);
den=conv(conv(conv([1 1],[1 1]),[1 6]),[1 2 3 4]);
G=tf(num,den)
Transfer function:
2 s^2 + 10 s + 12
--------------------------------------------------------------
s^6 + 10 s^5 + 32 s^4 + 60 s^3 + 83 s^2 + 70 s + 24
对于一个tf 对象,它有自己的属性(域元素),属性值既可以直接获取也可以通过函数get来获取。另外可以用函数set设置属性值。tf对象的属性有:
>> set(tf)
num: Ny-by-Nu cell of row vectors (Nu = no. of inputs)
den: Ny-by-Nu cell of row vectors (Ny = no. of outputs)
Variable: [ 's' | 'p' | 'z' | 'z^-1' | 'q' ]
Ts: Scalar (sample time in seconds)
ioDelay: Ny-by-Nu array (I/O delays)
InputDelay: Nu-by-1 vector
OutputDelay: Ny-by-1 vector
InputName: Nu-by-1 cell array of strings
OutputName: Ny-by-1 cell array of strings
InputGroup: M-by-2 cell array for M input groups
OutputGroup: P-by-2 cell array for P output groups
Notes: Array or cell array of strings
UserData: Arbitrary
将例2传递函数算子符号变为p,延迟时间设为,可以使用两种MATLAB语句来实现:
='P';=;或
set(G,'Variable','p','Td',;
这时再显示G时,将得到:
>> G
Transfer function:
2 p^2 + 10 p + 12
exp*p) * ---------------------------------------------------------------------
p^6 + 10 p^5 + 32 p^4 + 60 p^3 + 83 p^2 + 70 p + 24
也可用get()语句来获取属性:
>> get(G)
num: {[0 0 0 0 2 10 12]}
den: {[1 10 32 60 83 70 24]}
Variable: 'p'
Ts: 0
ioDelay: 0
InputDelay:
OutputDelay: 0
InputName: {''}
OutputName: {''}
InputGroup: {0x2 cell}
OutputGroup: {0x2 cell}
Notes: {}
UserData: []
零极点模型
零极点模型是描述单变量线性时不变系统传递函数的另一种常用方法,一个给定传递函数的零极点模型一般可以表示为
)
())(()())(()(2121n m p s p s p s z s z s z s k s G ++++++= 其中i z -, i p -, k 分别是系统的零点、极点和根轨迹增益。
调用格式: G=zpk (z,p,k)
注意:对单变量系统来说,系统的零极点应该用列向量来表示。
同样,zpk 对象有自己的属性值,该属性值可以用 get ()函数来获取,用set ()来设置。具体操作同tf 对象属性的操作。zpk 对象的属性有:
>> set(zpk)
z: Ny-by-Nu cell of vectors (Nu = no. of inputs)
p: Ny-by-Nu cell of vectors (Ny = no. of outputs)
k: Ny-by-Nu array of double
V ariable: [ 's' | 'p' | 'z' | 'z^-1' | 'q' ]
DisplayFormat: [ 'roots' | 'time-constant' | 'frequency' ]
Ts: Scalar (sample time in seconds)
ioDelay: Ny-by-Nu array (I/O delays)
InputDelay: Nu-by-1 vector
OutputDelay: Ny-by-1 vector
InputName: Nu-by-1 cell array of strings
OutputName: Ny-by-1 cell array of strings
InputGroup: M-by-2 cell array for M input groups
OutputGroup: P-by-2 cell array for P output groups
Notes: Array or cell array of strings
UserData: Arbitrary
例3 假设系统的零极点模型为
)0432.09765.3)(22()
11)(2(2)(j s j s j s s s G ±-±+±++=
则该模型可以由下面语句输入到MA TLAB 工作空间去。
>> k=2;
z=[-2;-1+j;-1-j];
p=[+*j; Zero/pole/gain:
2 (s+2) (s^2 + 2s + 2)
-----------------------------------------------------
(s^2 - + (s^2 + + 4)
状态方程模型
状态方程式描述系统动态模型的另外一种方法,它不但适合于线性模型,也适于描述非线性模型。 由一个例子引出状态方程模型:
9
39)()()(2++==s s s G s U s Y 其微分方程为:
u y y y
993=++ 若令y
x y x ==21,,则有 u x x x x ??????+???????????
?--=??????9039102121 []u x x y 00121+??
????= 对于线性时不变系统来说,其状态方程为
?
??+=+=Du Cx y Bu Ax x 在Matlab 下只需将各系数矩阵输到工作空间即可。
调用格式: G=ss(A,B,C,D)
同样可以用set(ss)得到状态方程的所有域元素细节,get (G )得到模型的域值。
例4 双输入双输出系统的状态方程表示为
u x x ?????
???????+????????????--=112501327204123526134021 , x y ??
????=10221200 该状态方程可以由下面语句输入到MATLAB 工作空间去。
>> A=[1,2,0,4;3,-1,6,2;5,3,2,1;4,0,-2,7];
B=[2,3;1,0;5,2;1,1];
C=[0,0,2,1;2,2,0,1];
D=zeros(2,2);
G=ss(A,B,C,D)
a =
x1 x2 x3 x4
x1 1 2 0 4
x2 3 -1 6 2
x3 5 3 2 1
x4 4 0 -2 7
b =
u1 u2
x1 2 3
x2 1 0
x3 5 2
x4 1 1
c =
x1 x2 x3 x4
y1 0 0 2 1
y2 2 2 0 1
d =
u1 u2
y1 0 0
y2 0 0
Continuous-time model.
2 模型的基本结构
在实际应用中,系统的模型通常是由相互连接的模块构成的,本节将介绍相互连接的系统结构的总模型求取方法。
串联连接结构
在串联连接下(如图1(a)所示),整个系统的传递函数为)
(
)
(
)
(
1
2
s
G
s
G
s
G 。对单变量系统来说,这两个模块是可以互换的,对多变量系统来说,一般不具备这样的关系。
假设在MA TLAB下第一个模块)
(
1
s
G的LTI对象为G1(它可以由tf,ss和zpk中任意的形式给出),而第二个模块)
(
2
s
G的LTI对象为G2,则整个串联系统的LTI模型可以由下列MATLAB命令得出G=G1*G2;
图1 模块的信号连接
并联连接结构
在并联连接下(如图1(b)所示),整个系统的传递函数为)()()(21s G s G s G +=。
假设在MA TLAB 下第一个模块)(1s G 的LTI 对象为G1(它可以由tf ,ss 和zpk 中任意的形式给出),而第二个模块)(2s G 的LTI 对象为G2,则整个串联系统的LTI 模型可以由下列MATLAB 命令得出 G=G1+G2;
反馈连接结构
两个模块)(1s G 和)(2s G 正、负反馈连接后(如图2
所示),系统总的模型分别为:
)
()(1)()(211s G s G s G s G = 控制系统工具箱提供了feedback ()函数,用来求
取反馈连接下总的系统模型。
调用格式:G=feedback (G1,G2,sign) 其中变量sign 为-1(或+1)表示负反馈(或正反馈),缺
省为负反馈结构。G1、G2分别为前向、反向模型的LTI 对象,G 为总系统模型。
例5 有两个模型21)
1(1)(+=s s G ,)4)(3(2)(2+++=s s s s G ,如果采用负反馈结构可以用下面的MA TLAB 语句得到整个系统的传递函数模型。
>> G1=tf(1,[1,2,1]);
G2=tf([1,2],[1,7,12]);
G=feedback(G1,G2)
Transfer function:
s^2 + 7 s + 12
---------------------------------------
s^4 + 9 s^3 + 27 s^2 + 32 s + 14
若采用正反馈连接结构,则得出下面结果
>>G=feedback(G1,G2,+1)
Transfer function:
s^2 + 7 s + 12
---------------------------------------
s^4 + 9 s^3 + 27 s^2 + 30 s + 10
图 反馈连接结构
复杂系统的传递函数求取:
控制系统工具箱提供了一个.m函数connect( )和一个.m文件blkbuild来求取含有相互连接模块的模型.具体的求取过程如下:
1. 将通路排号;
2. 用blkbuild文件建立原始模型的增广状态方程模型;
3. 建立连接关系矩阵Q;
4. 用connect建立整个系统的模型。
3 不同模型对象的相互转换和模型数据的还原
模型对象的相互转换
LTI对象模型可以用不同形式描述,它们之间可以相互转换,转换关系如图3所示。
模型数据的还原
前面我们学习了建立连续LTI系统模型的tf ,zpk,ss函数,MATLAB还提供了相应的函数可以把建立模型时的数据(输入参数)还原出来.这些函数的用法如下,
[num,den]=tfdata( G )
[z,p,k]=zpkdata( G )
[A,B,C,D]=ssdata(G)
显示还原变量的数据用
[num,den]=tfdata( G ,’v’)
[z,p,k]=zpkdata( G ,’v’)
[A,B,C,D]=ssdata(G,’v’)
例6 还原例5负反馈模型数据,可用下面的MATLAB语句
>> [num,den]=tfdata( G ,'v')
num =
0 0 1 7 12
den =
1 9 27 30 10
图3 模型对象之间转换关系
>> [z,p,k]=zpkdata( G ,'v')
z =
-4
-3
p =
k =
1
4 控制系统分析与设计.
控制系统的线性分析
1. 线性时不变系统浏览器LTI Viewer 介绍
在默认情况下,使用LTI Viewer 进行系统的线性分析
时,LTI Viewer 浏览器窗口所显示的图形为系统在单位阶跃
信号作用下的系统响应。其实,LTI Viewer 浏览器提供了极
其丰富的功能,它可以使用户对系统进行非常详细的线性分
析。下面以传递函数为3
22)(2+++=s s s s G 为例对LTI Viewer 进行详细的介绍与说明。
? 绘制系统的不同响应曲线
在默认的情况下,LTI Viewer 绘制系统在单位阶跃信号
输入下的系统响应曲线(即阶跃响应)。其实使用LTI Viewer 可以绘制不同的系统响应,在LTI Viewer 图形绘制窗口中单
击鼠标右键,选择弹出菜单Plot Type 下的子菜单,可以在LTI Viewer 图形绘制窗口中绘制不同的系统响应曲线,如图4所示。
如果用户选择Impulse 命令,则可以绘制系统的
单位脉冲响应曲线,如图5所示。
除此之外,使用LTI Viewer 还可以绘制系统的波
特图(Bode)、波特图幅值图(Bode Mag)、奈奎斯特图
(Nyquist)、尼科尔斯图(Nichols)、奇异值分析(Sigma)
以及零极点图(Pole /Zero)等,其方法与绘制脉冲响应
一致。
? 改变系统响应曲线绘制布局
在默认的情况下,LTI Viewer 图形绘制窗口中仅
仅绘制一个系统响应曲线。如果用户需要同时绘制多
个系统响应曲线图,则可以使用LTI Viewer 窗口中
Edit 菜单下的Plot configurations 对LTI Viewer 图形绘
制窗口的布局进行改变,并在指定的位置绘制指定的
图4 系统响应曲线绘制选择
图5 控制系统单位脉冲响应曲线
响应曲线。图6为响应曲线绘制布局设置对话框,以及采用图中给出的设置同时绘制6幅不同的响应曲线。用户可以选择LTI Viewer所提供的6种不同的绘制布局,在指定的区域绘制自己感兴趣的响应曲线。
?系统时域与频域性能分析
使用LTI Viewer不仅可以方便地绘制系统的各种响应曲线,还可以从系统响应曲线中获得系统响应信息,从而使用户可以对系统性能进行快速地分析。首先,通过单击系统响应曲线上任意一点,可以获得动态系统在此时刻的所有信息,包括运行系统的名称,以及其它与此响应类型相匹配的系统性能参数。
以传递函数
3
2
2
)
(
2+
+
+
=
s
s
s
s
G的控制系统的单位阶跃响应为例,单击响应曲线中的任意一点,可以获得系统响应曲线上此点所对应的系统运行时刻(Time)、系统输入值(Amplitude)等信息,如图7所示。
LTI Viewer相应
曲线绘制布局
不同绘制区域的
相应曲线类型选择
图6 响应曲线布局设计及绘制结果
其次,用户可以在LTI Viewer图形绘制窗口中单击鼠
标右键,使用右键弹出菜单中的Characteristics子菜单获得
系统不同响应的特性参数,对于不同的系统响应类型,
Characteristics菜单的内容并不相同。图8所示为阶跃响应
的特性参数。
选择Characteristics右键弹出菜单中的Setting Time可
以获得系统阶跃响应的调节时间。此时在LTI Viewer绘制
的阶跃响应曲线中将出现调节时间标记点,单击此标记点
即可获得调节时间,如图9所示。
图7 从系统响应曲线获得系统运行信息
图8 阶跃响应的特性参数
图9 阶跃响应的调节时间
对于不同类型的系统响应曲线而言,用来描述响应特性的参数各异。虽然不同响应曲线的特性参数不相同,但是均可以使用类似的方法从系统响应曲线中获得相应的信息。
? LTI Viewer 图形界面的高级控制
前面简单介绍了LTI Viewer 响应曲线绘制窗口的布局设
置。Simulink 最为突出的特点之一就是其强大的图形功能。在
Simulink 中,任何图形都是特定的对象,用户可以对其进行强
有力的操作与控制。下面介绍如何对LTI Viewer 图形窗口进行
更为高级的控制。
对LTI Viewer 图形窗口的控制有两种方式。
一是对整个浏览器窗口Viewer 进行控制:单击LTI Viewer
窗口的Edit 菜单下的Toolbox Preferences 命令对浏览器进行设
置(此设置的作用范围为LTI Viewer 窗口以及所有系统响应曲线
绘制区域)。在此对话框中共有4个选项卡,如图10所示:
(1) Units 选项卡:设置图形显示时频率、幅值以及相位的
单位。
(2) Style 选项卡: 设置图形显示时的字体、颜色以及绘
图网格。
(3) Characteristics 选项卡:设置系统响应曲线的特性参数。
(4) Parameters 选项卡:设置系统响应输出的时间变量与频率变量。
二是对某一系统响应曲线绘制窗口进行操作:在系统响应曲
线绘制窗口中单击鼠标右键,选择弹出菜单中的Properties 对指定
响应曲线的显示进行设置。此对话框中共有5个选项卡,如图11
所示:
(1)Labels 选项卡:设置系统响应曲线图形窗口的坐标轴名称、
窗口名称。
(2)Limits 选项卡:设置坐标轴的输出范围。
(3)Units 选项卡:设置系统响应曲线图形窗口的显示单位。
(4)Style 选项卡:设置系统响应曲线图形窗口的字体、颜色以
及绘制网格。
(5)Characteristics 选项卡:设置系统响应曲线的特性参数。
注意:对于不同的系统响应曲线,其特性参数不相同,故
Characteristics 选项卡中内容也不相同。
2. LTI 线性时不变系统对象介绍
LTI 对象有如下的三种方式:
(1) ss 对象:封装了由状态空间模型描述的线性时不变系统的所有数据。
(2) tf 对象:封装了由传递函数模型描述的线性时不变系统的所有数据。
(3) zpk 对象:封装了由零极点模型描述的线性时不变系统的所有数据。
· LTl 对象的属性
不同的LTI 对象除了拥有某些共同的属性之外,还有属于每—种对象本身的特殊属性。使用get 命令,可以获得LTI 对象的所有属性。仍以3
22)(2+++=
s s s s G 为例。 >>get(G)
num: {[0 1 2]}
图10 Toolbox Preferences 对话框 图11 Properties 对话框
den: {[1 2 3]}
Variable: 's'
Ts: 0
ioDelay: 0
InputDelay: 0
OutputDelay: 0
InputName: {''}
OutputName: {''}
InputGroup: [1x1 struct]
OutputGroup: [1x1 struct]
Notes: {}
UserData: []
其中从Ts开始之后的属性为所有LTI对象均具有的属性,分别用来描述LTI系统的采样时间、输入输出延迟、输入输出端口名称以及其它用户自定义的数据等等。而在Ts之前的属性则属于不同对象本身所特有的,用来描述线性时不变系统,
相应地,使用set命令可以对LTI对象的指定属性进行修改,其使用方法与设置系统模型或其中的系统模块的属性相类似。
·对LTI对象的基本操作
由于LTI对象是控制工具箱中最基本的数据类型,因而MATLAB支持对LTI对象的直接操作。用户可以使用控制工具箱中的系统分析设计命令对这些LTI对象进行操作,而且由于LTI对象包括线性系统是连续还是离散的信息,因此可以使用同样的命令对连续系统与离散系统进行操作。这里仅介绍LTI对象本身的一些简单操作。
(1) 生成LTI对象。使用ss、tf及tpk可以建立不同类型的LTI对象,如使用tf命令建立使用传递函数描述的线性时不变系统对象。
>>mysys_tf=tf([1 2], [1 2 3]) %生成tf对象mysys_tf
Transferfunction:
s + 2
-------------
s^2 + 2 s + 3
(2) LTl对象问的相互转换。同样可以使用ss、tf及zpk进行LTI对象之间的相互转换,如
>>mysys_ss=ss(mysys_tf) %将tf对象转换为ss对象
a =
x1 x2
x1 -2
x2 4 0
b =
u1
x1 1
x2 0
c =
x1 x2
y1 1
d =
u1
Continuous-time model.%指明系统为连续时间系统
(3) 线性时不变系统的并联,即LTI对象的相加,如
>> sys1=tf([1 2],[1 2 3]);%生成系统1
>> sys2=tf([1 1],[3 2 -1]);%生成系统2
>>sys=sysl+sys2 %并联系统1与2
Transfer function:
4 s^3 + 11 s^2 + 8 s + 1
--------------------------------
3 s^
4 + 8 s^3 + 12 s^2 + 4 s - 3
线性控制系统设计分析
在控制系统的设计分析之中,线性系统的设计、仿真分析与实现具有重要的地位。在MA TLAB中所提供的控制系统工具箱对控制系统的设计提供了强大的支持,用户可以使用控制系统工具箱设计与分析控制系统,然后使用Simulink对所设计的控制系统进行仿真分析,并在需要的情况下修改控制系统的设计以达到特定的目的,从而使得用户快速完成系统设计的任务,大大提高设计的效率。
1.控制系统工具箱简介
控制系统下具箱是MATLAB中所提供的对控制系统进行辅助设计的功能强大的开发设计工具。它包含了丰富的线性系统分析和设计函数,并以LTI对象为基本数据类型对线性时不变系统进行操作与控制。控制系统工具箱能够完成系统的时域和频域分析。在控制系统工具箱中,可以使用不同的方法设计线性反馈系统,如
(1) 根轨迹设计分析法。
(2) 极点配置法。
(3) H2和H∞控制。
(4) 状态观测器设计。
(5) 规范型实现设计。
在使用控制系统工具箱完成线性反馈系统设计之后,便可以通过Simulink进行系统的动态仿真,从而得到真实的、非线性系统的响应,进一步对控制器进行验证。
2.系统分析与设计简介
控制系统工具箱中最基本的数据类型为LTI对象。无论LTI对象的类型如何,都可以使用相同的命令对其进行分析,因为LTI对象包含了线性时不变系统的所有信息。这里简单介绍一下用来对由LTI对象所描述的线性时不变系统进行分析设计的命令函数。
·动态分析函数
动态分析函数有pole(sys)、dcgain(sys)、tzero(sys)、damp(sys)及norm(sys)等等。对于由如下命令:>> mysys_tf=tf([1 2],[1 2 3]);
生成的LTI对象mysys_tf所描述的线性时不变系统,可以使用下述函数对其进行分析,
例如:
>>pole(mysys_tf) %求取系统极点
ans =
+
-
>>dcgain(mysys_tf) %求取系统直流增益
·时域与频域分析函数
时域-与频域分析函数有step(sys)、bode(sys)、impulse(sys)、nichols(sys)、initial(sys,x0)、nyquist(sys)、lsim(sys,u,t)以及sigma(sys)等。例如:
>>step(mysys_tf) %绘制系统的单位阶跃响应曲线
>>figure,nyquist(mysys_tf) %在新的图形窗口绘制系统的nyqmst图
使用这两个命令分别绘制线性时不变系统mysys_tf的单位阶跃响应与nyquist图,与LTI Viewer中系统响应曲线的操作相类似,用户可以使用右键弹出式菜单获得系统的时域(或频域)的动态响应(或动态性能),如图12所示。
·补偿器设计
使用控制系统工具箱中的函数还可以进行各种系统的补偿设计,如LQG(Linear-Quadratic-Gaussian,线性二次型设计)、Root Locus(线性系统的根轨迹设计)、Pole placement(线性系统的极点配置)以及Observer-based regulator(线性系统观测器设计)等。由于这些内容涉及较多的知识,在此不作介绍。
在实际的系统设计中,只要系统经过线性化处理,使用LTI线性时不变系统模型来表示,用户都可以使用若干个线性系统控制器的设计方法来进行设计。
3.单输入单输出系统设计工具
在对非线性系统的线性分析技术进行介绍时,线性时不变系统浏览器LTI Viewer是进行系统线性分析的最为直观的图形界面,使用LTI Viewer使得用户对系统的线性分析变得简单而直观。其实LTI Viewer 只是控制系统工具箱中所提供的较为简单的工具,主要用来完成系统的分析与线性化处理,而并非系统设计。
SISO设计器是控制系统工具箱所提供的一个非常强大的单输入单输出线性系统设计器,它为用户设计单输入单输出线性控制系统提供了非常友好的图形界面。在SISO设计器中,用户可以同时使用根轨迹图与波特图,通过修改线性系统零点、极点以及增益等传统设计方法进行SISO线性系统设计。下面仍以tf对象mysys_tf为例说明SISO设计器的使用。
·启动SlSO设计器
在MA TLAB命令窗口中键入如下的命令启动SISO设计器:
>>sisotool
启动后的SISO设计器如图13所示。
在默认的情况下SISO设汁器同时启用系统根轨迹编辑器与开环波特图编辑器,如图所示。当然,此图12 线性时不变系统mysys_tf的阶跃响应曲线与nyquist图
时尚未进行系统设计,故不显示根轨迹与开环波特图。
·输入系统数据(Import System Data)
在启动SISO设计器之后,需要为所设计的线性系统输入数据,选择SISO设计器中File菜单下的Import命令输入系统数据,此时将打开如图14所示的对话框。
使用此对话框可以完成线性系统的数据输入。注意,如果数据来源为Simulink系统模型框图,则必须对其进行线性化处理以获得系统的LTI对象描述。这是因为SISO线性系统中的所有对象(G执行结构、H传感器、F预滤波器、C补偿器)均为LTI对象。另外,用户可以单击控制系统结构右下方的Other按钮以改变控制系统结构。
使用SISO默认的控制系统结构,并设置控制系统的执行结构(即控制对象)数据G为mysys_tf,其它的参数H、F、C均使用默认的取值(常数1)。然后单击OK按钮,此时在SISO设计器中会自动绘制此负反馈线性系统的根轨迹图以及系统开环波特图,如图15所示。
图13 SISO设计器
图14 系统数据输入对话框
说明:在系统的根轨迹图中,蓝色×和O表示控制对象G的零极点,而红色表示系统补偿器C的零极点。用户可以在根轨迹编辑器中对系统的根轨迹进行控制与操作:增加补偿器的零极点、移动零极点改变其分布、移动根轨迹图中的紫色方块改变系统增益等等,这些操作均可以改变系统的动态性能。另外,在波特图中除了显示当前补偿器下的系统增益与相位裕度之外,还显示了零点与极点的位置。
·设计与分析系统
在完成线性系统数据的输入之后,用户便可以使用诸如零极点配置、根轨迹分析以及系统波特图分析等传统的方法对线性系统进行设计。除了前面介绍的对系统零极点的各种操作(增加、删除以及改变分布)之外,SISO中对线性系统的设计提供了诸多的支持,如:单击补偿器增益及传递函数区域可以弹出补偿器设置对话框,使用此对话框可以设置补偿器C的增益、零点及极点等,如图16所示。
在此系统设计中,仅仅为补偿器增加一个极点,如图17所示。
图15 系统数据输入后的SISO设计界面
图16 补偿器C的增益、零点及极点设置
从系统的根轨迹图与系统波特图可以明显看出增加补偿器极点的影响。当然,任何的设计都不是随心所欲的,都必须按照指定的性能参数以及控制系统本身的规律进行设计,这里仅仅举例说明其设计的方法而已。
在系统设计完成后,需要对其做进一步的分析:分析反馈系统的开环和闭环响应,以确保系统是否满足特定的设计要求。用户可以选择SISO设计器中Analysis 菜单下的Other Loop Responses绘制指定的开环响应(或闭环响应)曲线。此时将打开LTI浏览器,用户可在LTI浏览器中对系统的性能如过渡时间、峰值响应、上升时间等等进行分析,如图18所示。
如果用户需要设计线性离散控制系统,可以选择Tools菜单下的Continuous/Discrete Conversions选项,以对离散控制系统的采样时间、连续信号的离散化方法等进行设置,如图19所示。
图17 为系统增加极点
图18 使用LTI对系统的设计进行分析验证
·SISO设计器与Simulink的集成:系统验证
在使用SISO完成系统的设计之后,在系统实现之前必须对设计好的系统进行仿真分析,以确保系统设计的正确性。如果直接按照系统设计逐步建立系统的Simulink,将是一件很麻烦的工作:庆幸的是,SISO提供了与Simulink集成的方法,用户可以直接使用SISO设计器Tools菜单下的Draw Simulink Diagram直接由设计好的系统生成相应的Simulink系统框图。在生成Simulink系统模型之前,必须保存线性系统的执行结构、补偿器以及传感器等LTI对象至MATLAB工作空间中。图20所示为此系统相应的Simulink系统模型以及MATLAB工作空间变量列表。
注意:生成的Simulink系统模型的实现均采用了MATLAB工作空间中的LTI模块。在生成Simulink 系统模型之后,便可以对设计好的系统进行仿真分析以验证系统设计的正确性。使用Sources模块库中的Step模块为系统提供单位阶跃输入信号(设置阶跃时刻为0),然后运行仿真。
图19 离散控制系统设置:采样时间与离散化方法
图20 由设计好的系统直接生成相应的Simulink模型