1、215反馈控制系统的数学模型及设计工具反馈系统的数学模型在系统分析和设计中起着很重要的作用,基于系统的数学模型,就可以用比较系统的方法对之进行分析,同时,一些系统的方法也是基于数学模型的,这就使得控制系统的模型问题显得十分重要。1 数学模型的表示方法线性时不变(LTI)系统模型包括传递函数模型( tf ),零极点增益模型( zpk ),状态空间模型( ss )和频率响应数据模型 ( frd ) 1.1 传递函数模型线性系统的传递函数模型可以表示成复数变量 s 的有理函数式: nnnmmasasbbG121)(调用格式: G =tf (num, den)其中 , 分别是传递函数分子和分母多项nu
2、121mbb de121n式的系数向量,按照 s 的降幂排列.返回值 G 是一个 tf 对象,该对象包含了传递函数的分子和分母信息。例 1 一个传递函数模型5432)(24ssG可以由下面命令输入到 MATLAB 工作空间去. num=1 2 3;den=1 2 3 4 5;G=tf(num,den)Transfer function:s2 + 2 s + 3-s4 + 2 s3 + 3 s2 + 4 s + 5对于传递函数的分母或分子有多项式相乘的情况, MATLAB 提供了求两个向量的卷积函数conv( )函数求多项式相乘来解决分母或分子多项式的输入。conv( )函数允许任意地多层嵌套,
3、从而表示复杂的计算.应该注意括号要匹配,否则会得出错误的信息与结果。例 2 一个较复杂传递函数模型)432)(61() 242sssG该传递函数模型可以通过下面的语句输入到 MATLAB 工作空间去。 num=2*conv(1 2,1 3);den=conv(conv(conv(1 1,1 1),1 6),1 2 3 4);216G=tf(num,den)Transfer function:2 s2 + 10 s + 12-s6 + 10 s5 + 32 s4 + 60 s3 + 83 s2 + 70 s + 24对于一个 tf 对象,它有自己的属性 (域元素),属性值既可以直接获取也可以通过
4、函数 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:
5、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,延迟时间设为 0.5,可以使用两种 MATLAB 语句
6、来实现:G.Variable=P;G.Td=0.5;或set(G,Variable,p,Td,0.5);这时再显示 G 时,将得到: GTransfer function:2 p2 + 10 p + 12exp(-0.5*p) * -p6 + 10 p5 + 32 p4 + 60 p3 + 83 p2 + 70 p + 24 也可用 get()语句来获取属性: get(G)num: 0 0 0 0 2 10 12den: 1 10 32 60 83 70 24Variable: p Ts: 0 ioDelay: 0 InputDelay: 0.5 OutputDelay: 0 InputNam
7、e: OutputName: InputGroup: 0x2 cell OutputGroup: 0x2 cell 217Notes: UserData: 1.2 零极点模型零极点模型是描述单变量线性时不变系统传递函数的另一种常用方法,一个给定传递函数的零极点模型一般可以表示为)()()(21nmpsspzzksG其中 , , k 分别是系统的零点、极点和根轨迹增益。izi调用格式: G=zpk (z,p,k)注意 :对单变量系统来说,系统的零极点应该用列向量来表示。同样,zpk 对象有自己的属性值,该属性值可以用 get()函数来获取,用 set()来设置。具体操作同 tf 对象属性的操作。
8、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 Variable: 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) In
9、putDelay: 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 假设
10、系统的零极点模型为)0432.9765.3)(2()12) jsjsG则该模型可以由下面语句输入到 MATLAB 工作空间去。 k=2;z=-2;-1+j;-1-j;p=-1.4142+1.4142*j;-1.4142-1.4142*j;3.9765+0.0432*j;3.9765-0.0432*j;G=zpk(z,p,k)Zero/pole/gain:2 (s+2) (s2 + 2s + 2)218-(s2 - 7.953s + 15.81) (s2 + 2.828s + 4)1.3 状态方程模型状态方程式描述系统动态模型的另外一种方法,它不但适合于线性模型,也适于描述非线性模型。由一个例子
11、引出状态方程模型: 93)(2sGsUY其微分方程为: uy93若令 ,则有yx21, uxx903910221y21对于线性时不变系统来说,其状态方程为 DuCxyBA在 Matlab 下只需将各系数矩阵输到工作空间即可。调用格式: G=ss(A,B,C,D)同样可以用 set(ss)得到状态方程的所有域元素细节, get( G)得到模型的域值。例 4 双输入双输出系统的状态方程表示为,uxx12503720435614y1该状态方程可以由下面语句输入到 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
12、=0,0,2,1;2,2,0,1;D=zeros(2,2);G=ss(A,B,C,D)a = 219x1 x2 x3 x4x1 1 2 0 4x2 3 -1 6 2x3 5 3 2 1x4 4 0 -2 7b = u1 u2x1 2 3x2 1 0x3 5 2x4 1 1c = x1 x2 x3 x4y1 0 0 2 1y2 2 2 0 1d = u1 u2y1 0 0y2 0 0Continuous-time model.2 模型的基本结构在实际应用中,系统的模型通常是由相互连接的模块构成的,本节将介绍相互连接的系统结构的总模型求取方法。2.1 串联连接结构图 1 模块的信号连接在串联连接下
13、(如图 1(a)所示) ,整个系统的传递函数为 。对单变量系统来说,)()(12sGs这两个模块是可以互换的,对多变量系统来说,一般不具备这样的关系。假设在 MATLAB 下第一个模块 的 LTI 对象为 G1(它可以由 tf,ss 和 zpk 中任意的形式给出))(1sG,而第二个模块 的 LTI 对象为 G2,则整个串联系统的 LTI 模型可以由下列 MATLAB 命令得出)(2s220G=G1*G2;2.2 并联连接结构在并联连接下(如图 1(b)所示) ,整个系统的传递函数为 。)()(21sGs假设在 MATLAB 下第一个模块 的 LTI 对象为 G1(它可以由 tf,ss 和 z
14、pk 中任意的形式给出))(1sG,而第二个模块 的 LTI 对象为 G2,则整个串联系统的 LTI 模型可以由下列 MATLAB 命令得出)(2sG=G1+G2;2.3 反馈连接结构两个模块 和 正、负反馈连接后(如图)(1sG22 所示) ,系统总的模型分别为: )()(21ss控制系统工具箱提供了 feedback()函数,用来求取反馈连接下总的系统模型。调用格式:G=feedback (G1,G2,sign)其中变量 sign 为-1(或+1)表示负反馈(或正反馈) ,缺省为负反馈结构。G1、G2 分别为前向、反向模型的 LTI 对象,G 为总系统模型。例 5 有两个模型 , ,如果采
15、用负反馈结构可以用下面的21)(sG)4(32)(ssMATLAB 语句得到整个系统的传递函数模型。 G1=tf(1,1,2,1);G2=tf(1,2,1,7,12);G=feedback(G1,G2)Transfer function:s2 + 7 s + 12-s4 + 9 s3 + 27 s2 + 32 s + 14若采用正反馈连接结构,则得出下面结果G=feedback(G1,G2,+1)Transfer function:s2 + 7 s + 12-s4 + 9 s3 + 27 s2 + 30 s + 10图 13.2 反馈连接结构2212.4 复杂系统的传递函数求取:控制系统工具箱
16、提供了一个.m 函数 connect( )和一个.m 文件 blkbuild 来求取含有相互连接模块的模型.具体的求取过程如下:1. 将通路排号;2. 用 blkbuild 文件建立原始模型的增广状态方程模型;3. 建立连接关系矩阵 Q;4. 用 connect 建立整个系统的模型。3 不同模型对象的相互转换和模型数据的还原3.1 模型对象的相互转换LTI 对象模型可以用不同形式描述,它们之间可以相互转换,转换关系如图 3 所示。3.2 模型数据的还原前面我们学习了建立连续 LTI 系统模型的 tf ,zpk,ss 函数,MATLAB 还提供了相应的函数可以把建立模型时的数据(输入参数)还原出
17、来.这些函数的用法如下,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 12den =1 9 27 30 10图 3 模型对象之间转换关系222 z,p,k=zpkdata( G ,v)z =-4-3p =-3.6180-3.4142-1.3820-0.5858k
18、 =14 控制系统分析与设计 .4.1 控制系统的线性分析1. 线性时不变系统浏览器 LTI Viewer 介绍在默认情况下,使用 LTI Viewer 进行系统的线性分析时,LTI Viewer 浏览器窗口所显示的图形为系统在单位阶跃信号作用下的系统响应。其实,LTI Viewer 浏览器提供了极其丰富的功能,它可以使用户对系统进行非常详细的线性分析。下面以传递函数为 为例对32)(ssGLTI Viewer 进行详细的介绍与说明。 绘制系统的不同响应曲线在默认的情况下,LTI Viewer 绘制系统在单位阶跃信号输入下的系统响应曲线(即阶跃响应 )。其实使用 LTI Viewer 可以绘制
19、不同的系统响应,在 LTI Viewer 图形绘制窗口中单击鼠标右键,选择弹出菜单 Plot Type 下的子菜单,可以在 LTI Viewer 图形绘制窗口中绘制不同的系统响应曲线,如图 4 所示。如果用户选择 Impulse 命令,则可以绘制系统的单位脉冲响应曲线,如图 5 所示。除此之外,使用 LTI Viewer 还可以绘制系统的波特图(Bode) 、波特图幅值图(Bode Mag)、奈奎斯特图(Nyquist)、尼科尔斯图(Nichols)、奇异值分析(Sigma)以及零极点图(Pole Zero)等,其方法与绘制脉冲响应一致。 改变系统响应曲线绘制布局在默认的情况下,LTI Vie
20、wer 图形绘制窗口中仅仅绘制一个系统响应曲线。如果用户需要同时绘制多个系统响应曲线图,则可以使用 LTI Viewer 窗口中 Edit 菜单下的 Plot configurations 对 LTI Viewer图形绘制窗口的布局进行改变,并在指定的位置绘制指定的响应曲线。图 6 为响应曲线绘制布局设置图 4 系统响应曲线绘制选择图 5 控制系统单位脉冲响应曲线223对话框,以及采用图中给出的设置同时绘制 6 幅不同的响应曲线。用户可以选择 LTI Viewer 所提供的 6种不同的绘制布局,在指定的区域绘制自己感兴趣的响应曲线。 系统时域与频域性能分析使用 LTI Viewer 不仅可以方
21、便地绘制系统的各种响应曲线,还可以从系统响应曲线中获得系统响应信息,从而使用户可以对系统性能进行快速地分析。首先,通过单击系统响应曲线上任意一点,可以获得动态系统在此时刻的所有信息,包括运行系统的名称,以及其它与此响应类型相匹配的系统性能参数。以传递函数 的控制系统的单位阶跃响应为例,单击响应曲线中的任意一点,可以获32)(ssG得系统响应曲线上此点所对应的系统运行时刻(Time) 、系统输入值 (Amplitude)等信息,如图 7 所示。LTI Viewer 相应曲线绘制布局不同绘制区域的相应曲线类型选择图 6 响应曲线布局设计及绘制结果224其次,用户可以在 LTI Viewer 图形绘
22、制窗口中单击鼠标右键,使用右键弹出菜单中的 Characteristics 子菜单获得系统不同响应的特性参数,对于不同的系统响应类型,Characteristics 菜单的内容并不相同。图 8 所示为阶跃响应的特性参数。选择 Characteristics 右键弹出菜单中的 Setting Time可以获得系统阶跃响应的调节时间。此时在 LTI Viewer绘制的阶跃响应曲线中将出现调节时间标记点,单击此标记点即可获得调节时间,如图 9 所示。图 7 从系统响应曲线获得系统运行信息图 8 阶跃响应的特性参数图 9 阶跃响应的调节时间225对于不同类型的系统响应曲线而言,用来描述响应特性的参数各
23、异。虽然不同响应曲线的特性参数不相同,但是均可以使用类似的方法从系统响应曲线中获得相应的信息。 LTI Viewer 图形界面的高级控制前面简单介绍了 LTI Viewer 响应曲线绘制窗口的布局设置。Simulink 最为突出的特点之一就是其强大的图形功能。在Simulink 中,任何图形都是特定的对象,用户可以对其进行强有力的操作与控制。下面介绍如何对 LTI Viewer 图形窗口进行更为高级的控制。对 LTI Viewer 图形窗口的控制有两种方式。一是对整个浏览器窗口 Viewer 进行控制:单击 LTI Viewer 窗口的 Edit 菜单下的 Toolbox Preference
24、s 命令对浏览器进行设置( 此设置的作用范围为 LTI Viewer 窗口以及所有系统响应曲线绘制区域)。在此对话框中共有 4 个选项卡,如图 10所示: (1) Units 选项卡:设置图形显示时频率、幅值以及相位的单位。(2) Style 选项卡: 设置图形显示时的字体、颜色以及绘图网格。(3) Characteristics 选项卡:设置系统响应曲线的特性参数。(4) Parameters 选项卡:设置系统响应输出的时间变量与频率变量。二是对某一系统响应曲线绘制窗口进行操作:在系统响应曲线绘制窗口中单击鼠标右键,选择弹出菜单中的 Properties 对指定响应曲线的显示进行设置。此对话
25、框中共有 5 个选项卡,如图11 所示:(1)Labels 选项卡:设置系统响应曲线图形窗口的坐标轴名称、窗口名称。(2)Limits 选项卡:设置坐标轴的输出范围。(3)Units 选项卡:设置系统响应曲线图形窗口的显示单位。(4)Style 选项卡:设置系统响应曲线图形窗口的字体、颜色以及绘制网格。(5)Characteristics 选项卡:设置系统响应曲线的特性参数。注意:对于不同的系统响应曲线,其特性参数不相同,故Characteristics 选项卡中内容也不相同。2. LTI 线性时不变系统对象介绍LTI 对象有如下的三种方式:(1) ss 对象:封装了由状态空间模型描述的线性时
26、不变系统的所有数据。(2) tf 对象:封装了由传递函数模型描述的线性时不变系统的所有数据。(3) zpk 对象:封装了由零极点模型描述的线性时不变系统的所有数据。 LTl 对象的属性不同的 LTI 对象除了拥有某些共同的属性之外,还有属于每种对象本身的特殊属性。使用 get 命令,可以获得 LTI 对象的所有属性。仍以 为例。32)(ssGget(G)num: 0 1 2 图 10 Toolbox Preferences 对话框图 11 Properties 对话框226den: 1 2 3 Variable: s Ts: 0 ioDelay: 0 InputDelay: 0 OutputD
27、elay: 0 InputName: OutputName: InputGroup: 1x1 structOutputGroup: 1x1 structNotes: UserData: 其中从 Ts 开始之后的属性为所有 LTI 对象均具有的属性,分别用来描述 LTI 系统的采样时间、输入输出延迟、输入输出端口名称以及其它用户自定义的数据等等。而在 Ts 之前的属性则属于不同对象本身所特有的,用来描述线性时不变系统, 相应地,使用 set 命令可以对 LTI 对象的指定属性进行修改,其使用方法与设置系统模型或其中的系统模块的属性相类似。 对 LTI 对象的基本操作由于 LTI 对象是控制工具箱
28、中最基本的数据类型,因而 MATLAB 支持对 LTI 对象的直接操作。用户可以使用控制工具箱中的系统分析设计命令对这些 LTI 对象进行操作,而且由于 LTI 对象包括线性系统是连续还是离散的信息,因此可以使用同样的命令对连续系统与离散系统进行操作。这里仅介绍 LTI对象本身的一些简单操作。(1) 生成 LTI 对象。使用 ss、tf 及 tpk 可以建立不同类型的 LTI 对象,如使用 tf 命令建立使用传递函数描述的线性时不变系统对象。mysys_tf=tf(1 2, 1 2 3) 生成 tf 对象 mysys_tfTransferfunction:s + 2-s2 + 2 s + 3(
29、2) LTl 对象问的相互转换。同样可以使用 ss、tf 及 zpk 进行 LTI 对象之间的相互转换,如mysys_ss=ss(mysys_tf) 将 tf 对象转换为 ss 对象a = x1 x2x1 -2 -0.75x2 4 0b = u1x1 1x2 0c = x1 x2y1 1 0.5d = u1227y1 0Continuous-time model 指明系统为连续时间系统 (3) 线性时不变系统的并联,即 LTI 对象的相加,如 sys1=tf(1 2,1 2 3); 生成系统 1 sys2=tf(1 1,3 2 -1); 生成系统 2sys=sysl+sys2 并联系统 1 与
30、 2Transfer function:4 s3 + 11 s2 + 8 s + 1-3 s4 + 8 s3 + 12 s2 + 4 s - 34.2 线性控制系统设计分析在控制系统的设计分析之中,线性系统的设计、仿真分析与实现具有重要的地位。在 MATLAB 中所提供的控制系统工具箱对控制系统的设计提供了强大的支持,用户可以使用控制系统工具箱设计与分析控制系统,然后使用 Simulink 对所设计的控制系统进行仿真分析,并在需要的情况下修改控制系统的设计以达到特定的目的,从而使得用户快速完成系统设计的任务,大大提高设计的效率。1. 控制系统工具箱简介控制系统下具箱是 MATLAB 中所提供的
31、对控制系统进行辅助设计的功能强大的开发设计工具。它包含了丰富的线性系统分析和设计函数,并以 LTI 对象为基本数据类型对线性时不变系统进行操作与控制。控制系统工具箱能够完成系统的时域和频域分析。在控制系统工具箱中,可以使用不同的方法设计线性反馈系统,如(1) 根轨迹设计分析法。(2) 极点配置法。(3) H2 和 H 控制。(4) 状态观测器设计。(5) 规范型实现设计。在使用控制系统工具箱完成线性反馈系统设计之后,便可以通过 Simulink 进行系统的动态仿真,从而得到真实的、非线性系统的响应,进一步对控制器进行验证。2. 系统分析与设计简介控制系统工具箱中最基本的数据类型为 LTI 对象
32、。无论 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 =-1.0000 + 1.4142i-1.0
33、000 - 1.4142i dcgain(mysys_tf) 求取系统直流增益228ans =0.6667 时域与频域分析函数时域-与频域分析函数有 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 的单位阶跃响应与 nyqu
34、ist 图,与 LTI Viewer 中系统响应曲线的操作相类似,用户可以使用右键弹出式菜单获得系统的时域(或频域) 的动态响应(或动态性能) ,如图 12 所示。 补偿器设计使用控制系统工具箱中的函数还可以进行各种系统的补偿设计,如 LQG(Linear-Quadratic-Gaussian,线性二次型设计)、 Root Locus(线性系统的根轨迹设计)、Pole placement(线性系统的极点配置)以及 Observer-based regulator(线性系统观测器设计)等。由于这些内容涉及较多的知识,在此不作介绍。在实际的系统设计中,只要系统经过线性化处理,使用 LTI 线性时不
35、变系统模型来表示,用户都可以使用若干个线性系统控制器的设计方法来进行设计。3. 单输入单输出系统设计工具在对非线性系统的线性分析技术进行介绍时,线性时不变系统浏览器 LTI Viewer 是进行系统线性分析的最为直观的图形界面,使用 LTI Viewer 使得用户对系统的线性分析变得简单而直观。其实 LTI Viewer 只是控制系统工具箱中所提供的较为简单的工具,主要用来完成系统的分析与线性化处理,而并非系统设计。SISO 设计器是控制系统工具箱所提供的一个非常强大的单输入单输出线性系统设计器,它为用户设计单输入单输出线性控制系统提供了非常友好的图形界面。在 SISO 设计器中,用户可以同时
36、使用根轨迹图与波特图,通过修改线性系统零点、极点以及增益等传统设计方法进行 SISO 线性系统设计。下面仍以 tf 对象 mysys_tf 为例说明 SISO 设计器的使用。 启动 SlSO 设计器在 MATLAB 命令窗口中键入如下的命令启动 SISO 设计器:sisotool启动后的 SISO 设计器如图 13 所示。在默认的情况下 SISO 设汁器同时启用系统根轨迹编辑器与开环波特图编辑器,如图 13.13 所示。图 12 线性时不变系统 mysys_tf 的阶跃响应曲线与 nyquist 图229当然,此时尚未进行系统设计,故不显示根轨迹与开环波特图。 输入系统数据(Import Sy
37、stem Data)在启动 SISO 设计器之后,需要为所设计的线性系统输入数据,选择 SISO 设计器中 File 菜单下的Import 命令输入系统数据,此时将打开如图 14 所示的对话框。使用此对话框可以完成线性系统的数据输入。注意,如果数据来源为 Simulink 系统模型框图,则必须对其进行线性化处理以获得系统的 LTI 对象描述。这是因为 SISO 线性系统中的所有对象(G 执行结构、H 传感器、F 预滤波器、 C 补偿器) 均为 LTI 对象。另外,用户可以单击控制系统结构右下方的 Other 按钮以改变控制系统结构。使用 SISO 默认的控制系统结构,并设置控制系统的执行结构(
38、即控制对象) 数据 G 为 mysys_tf,其它的参数 H、F 、C 均使用默认的取值( 常数 1)。然后单击 OK 按钮,此时在 SISO 设计器中会自动绘制此负反馈线性系统的根轨迹图以及系统开环波特图,如图 15 所示。图 13 SISO 设计器图 14 系统数据输入对话框230说明:在系统的根轨迹图中,蓝色和 O 表示控制对象 G 的零极点,而红色表示系统补偿器 C 的零极点。用户可以在根轨迹编辑器中对系统的根轨迹进行控制与操作:增加补偿器的零极点、移动零极点改变其分布、移动根轨迹图中的紫色方块改变系统增益等等,这些操作均可以改变系统的动态性能。另外,在波特图中除了显示当前补偿器下的系
39、统增益与相位裕度之外,还显示了零点与极点的位置。 设计与分析系统在完成线性系统数据的输入之后,用户便可以使用诸如零极点配置、根轨迹分析以及系统波特图分析等传统的方法对线性系统进行设计。除了前面介绍的对系统零极点的各种操作(增加、删除以及改变分布)之外, SISO 中对线性系统的设计提供了诸多的支持,如:单击补偿器增益及传递函数区域可以弹出补偿器设置对话框,使用此对话框可以设置补偿器 C 的增益、零点及极点等,如图 16 所示。在此系统设计中,仅仅为补偿器增加一个极点,如图 17 所示。图 15 系统数据输入后的 SISO 设计界面图 16 补偿器 C 的增益、零点及极点设置231从系统的根轨迹
40、图与系统波特图可以明显看出增加补偿器极点的影响。当然,任何的设计都不是随心所欲的,都必须按照指定的性能参数以及控制系统本身的规律进行设计,这里仅仅举例说明其设计的方法而已。在系统设计完成后,需要对其做进一步的分析:分析反馈系统的开环和闭环响应,以确保系统是否满足特定的设计要求。用户可以选择 SISO 设计器中 Analysis 菜单下的 Other Loop Responses 绘制指定的开环响应(或闭环响应)曲线。此时将打开 LTI 浏览器,用户可在 LTI 浏览器中对系统的性能如过渡时间、峰值响应、上升时间等等进行分析,如图 18 所示。如果用户需要设计线性离散控制系统,可以选择 Tool
41、s 菜单下的 ContinuousDiscrete Conversions选项,以对离散控制系统的采样时间、连续信号的离散化方法等进行设置,如图 19 所示。图 17 为系统增加极点图 18 使用 LTI 对系统的设计进行分析验证232 SISO 设计器与 Simulink 的集成:系统验证 在使用 SISO 完成系统的设计之后,在系统实现之前必须对设计好的系统进行仿真分析,以确保系统设计的正确性。如果直接按照系统设计逐步建立系统的 Simulink,将是一件很麻烦的工作:庆幸的是,SISO 提供了与 Simulink 集成的方法,用户可以直接使用 SISO 设计器 Tools 菜单下的 Dr
42、aw Simulink Diagram 直接由设计好的系统生成相应的 Simulink 系统框图。在生成 Simulink 系统模型之前,必须保存线性系统的执行结构、补偿器以及传感器等 LTI 对象至 MATLAB 工作空间中。图 20 所示为此系统相应的 Simulink 系统模型以及 MATLAB 工作空间变量列表。注意:生成的 Simulink 系统模型的实现均采用了 MATLAB 工作空间中的 LTI 模块。在生成Simulink 系统模型之后,便可以对设计好的系统进行仿真分析以验证系统设计的正确性。使用 Sources模块库中的 Step 模块为系统提供单位阶跃输入信号 (设置阶跃时刻为 0),然后运行仿真。图 19 离散控制系统设置:采样时间与离散化方法图 20 由设计好的系统直接生成相应的 Simulink 模型