反馈控制系统数学模型及方案工具.docx
- 文档编号:26300175
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:28
- 大小:921.44KB
反馈控制系统数学模型及方案工具.docx
《反馈控制系统数学模型及方案工具.docx》由会员分享,可在线阅读,更多相关《反馈控制系统数学模型及方案工具.docx(28页珍藏版)》请在冰豆网上搜索。
反馈控制系统数学模型及方案工具
反馈控制系统的数学模型及设计工具
反馈系统的数学模型在系统分析和设计中起着很重要的作用,基于系统的数学模型,就可以用比较系统的方法对之进行分析,同时,一些系统的方法也是基于数学模型的,这就使得控制系统的模型问题显得十分重要。
1数学模型的表示方法
线性时不变(LTI>系统模型包括传递函数模型(tf>,零极点增益模型(zpk>,状态空间模型(ss>和频率响应数据模型(frd>
1.1传递函数模型
线性系统的传递函数模型可以表示成复数变量s的有理函数式:
调用格式:
G=tf(num,den>
其中
分别是传递函数分子和分母多项式的系数向量,按照s的降幂排列.返回值G是一个tf对象,该对象包含了传递函数的分子和分母信息。
例1一个传递函数模型
可以由下面命令输入到MATLAB工作空间去.
>>num=[123];den=[12345]。
G=tf(num,den>
Transferfunction:
s^2+2s+3
----------------------------------
s^4+2s^3+3s^2+4s+5
对于传递函数的分母或分子有多项式相乘的情况,MATLAB提供了求两个向量的卷积函数—conv(>函数求多项式相乘来解决分母或分子多项式的输入。
conv(>函数允许任意地多层嵌套,从而表示复杂的计算.应该注意括号要匹配,否则会得出错误的信息与结果。
例2一个较复杂传递函数模型
该传递函数模型可以通过下面的语句输入到MATLAB工作空间去。
>>num=2*conv([12],[13]>。
den=conv(conv(conv([11],[11]>,[16]>,[1234]>。
G=tf(num,den>
Transferfunction:
2s^2+10s+12
--------------------------------------------------------------
s^6+10s^5+32s^4+60s^3+83s^2+70s+24
对于一个tf对象,它有自己的属性(域元素>,属性值既可以直接获取也可以通过函数get来获取。
另外可以用函数set设置属性值。
tf对象的属性有:
>>set(tf>
num:
Ny-by-Nucellofrowvectors(Nu=no.ofinputs>
den:
Ny-by-Nucellofrowvectors(Ny=no.ofoutputs>
Variable:
['s'|'p'|'z'|'z^-1'|'q']
Ts:
Scalar(sampletimeinseconds>
ioDelay:
Ny-by-Nuarray(I/Odelays>
InputDelay:
Nu-by-1vector
OutputDelay:
Ny-by-1vector
InputName:
Nu-by-1cellarrayofstrings
OutputName:
Ny-by-1cellarrayofstrings
InputGroup:
M-by-2cellarrayforMinputgroups
OutputGroup:
P-by-2cellarrayforPoutputgroups
Notes:
Arrayorcellarrayofstrings
UserData:
Arbitrary
将例2传递函数算子符号变为p,延迟时间设为0.5,可以使用两种MATLAB语句来实现:
G.Variable='P'。
G.Td=0.5。
或
set(G,'Variable','p','Td',0.5>。
这时再显示G时,将得到:
>>G
Transferfunction:
2p^2+10p+12
exp(-0.5*p>*---------------------------------------------------------------------
p^6+10p^5+32p^4+60p^3+83p^2+70p+24
也可用get<)语句来获取属性:
>>get(G>
num:
{[000021012]}
den:
{[1103260837024]}
Variable:
'p'
Ts:
0
ioDelay:
0
InputDelay:
0.5
OutputDelay:
0
InputName:
{''}
OutputName:
{''}
InputGroup:
{0x2cell}
OutputGroup:
{0x2cell}
Notes:
{}
UserData:
[]
1.2零极点模型
零极点模型是描述单变量线性时不变系统传递函数的另一种常用方法,一个给定传递函数的零极点模型一般可以表示为
其中
k分别是系统的零点、极点和根轨迹增益。
调用格式:
G=zpk(z,p,k>
注意:
对单变量系统来说,系统的零极点应该用列向量来表示。
同样,zpk对象有自己的属性值,该属性值可以用get<)函数来获取,用set<)来设置。
具体操作同tf对象属性的操作。
zpk对象的属性有:
>>set(zpk>
z:
Ny-by-Nucellofvectors(Nu=no.ofinputs>
p:
Ny-by-Nucellofvectors(Ny=no.ofoutputs>
k:
Ny-by-Nuarrayofdouble
Variable:
['s'|'p'|'z'|'z^-1'|'q']
DisplayFormat:
['roots'|'time-constant'|'frequency']
Ts:
Scalar(sampletimeinseconds>
ioDelay:
Ny-by-Nuarray(I/Odelays>
InputDelay:
Nu-by-1vector
OutputDelay:
Ny-by-1vector
InputName:
Nu-by-1cellarrayofstrings
OutputName:
Ny-by-1cellarrayofstrings
InputGroup:
M-by-2cellarrayforMinputgroups
OutputGroup:
P-by-2cellarrayforPoutputgroups
Notes:
Arrayorcellarrayofstrings
UserData:
Arbitrary
例3假设系统的零极点模型为
则该模型可以由下面语句输入到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>(s^2+2s+2>
-----------------------------------------------------
(s^2-7.953s+15.81>(s^2+2.828s+4>
1.3状态方程模型
状态方程式描述系统动态模型的另外一种方法,它不但适合于线性模型,也适于描述非线性模型。
由一个例子引出状态方程模型:
其微分方程为:
若令
,则有
对于线性时不变系统来说,其状态方程为
在Matlab下只需将各系数矩阵输到工作空间即可。
调用格式:
G=ss(A,B,C,D>
同样可以用set(ss>得到状态方程的所有域元素细节,get 例4双输入双输出系统的状态方程表示为 该状态方程可以由下面语句输入到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= x1x2x3x4 x11204 x23-162 x35321 x440-27 b= u1u2 x123 x210 x352 x411 c= x1x2x3x4 y10021 y22201 d= u1u2 y100 y200 Continuous-timemodel. 2模型的基本结构 在实际应用中,系统的模型通常是由相互连接的模块构成的,本节将介绍相互连接的系统结构的总模型求取方法。 2.1串联连接结构 在串联连接下<如图1(a>所示),整个系统的传递函数为 。 对单变量系统来说,这两个模块是可以互换的,对多变量系统来说,一般不具备这样的关系。 假设在MATLAB下第一个模块 的LTI对象为G1<它可以由tf,ss和zpk中任意的形式给出),而第二个模块 的LTI对象为G2,则整个串联系统的LTI模型可以由下列MATLAB命令得出 G=G1*G2; 2.2并联连接结构 在并联连接下<如图1(b>所示),整个系统的传递函数为 。 假设在MATLAB下第一个模块 的LTI对象为G1<它可以由tf,ss和zpk中任意的形式给出),而第二个模块 的LTI对象为G2,则整个串联系统的LTI模型可以由下列MATLAB命令得出 G=G1+G2。 2.3反馈连接结构 两个模块 和 正、负反馈连接后<如图2所示),系统总的模型分别为: 控制系统工具箱提供了feedback<)函数,用来求取反馈连接下总的系统模型。 调用格式: G=feedback(G1,G2,sign> 其中变量sign为-1<或+1)表示负反馈<或正反馈),缺省为负反馈结构。 G1、G2分别为前向、反向模型的LTI对象,G为总系统模型。 例5有两个模型 , ,如果采用负反馈结构可以用下面的MATLAB语句得到整个系统的传递函数模型。 >>G1=tf(1,[1,2,1]>。 G2=tf([1,2],[1,7,12]>。 G=feedback(G1,G2> Transferfunction: s^2+7s+12 --------------------------------------- s^4+9s^3+27s^2+32s+14 若采用正反馈连接结构,则得出下面结果 >>G=feedback(G1,G2,+1> Transferfunction: s^2+7s+12 --------------------------------------- s^4+9s^3+27s^2+30s+10 2.4复杂系统的传递函数求取: 控制系统工具箱提供了一个.m函数connect(>和一个.m文件blkbuild来求取含有相互连接模块的模型.具体的求取过程如下: 1.将通路排号; 2.用blkbuild文件建立原始模型的增广状态方程模型; 3.建立连接关系矩阵Q; 4.用connect建立整个系统的模型。 3不同模型对象的相互转换和模型数据的还原 3.1模型对象的相互转换 LTI对象模型可以用不同形式描述,它们之间可以相互转换,转换关系如图3所示。 3.2模型数据的还原 前面我们学习了建立连续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= 001712 den= 19273010 >>[z,p,k]=zpkdata(G,'v'> z= -4 -3 p= -3.6180 -3.4142 -1.3820 -0.5858 k= 1 4控制系统分析与设计. 4.1控制系统的线性分析 1.线性时不变系统浏览器LTIViewer介绍 在默认情况下,使用LTIViewer进行系统的线性分析时,LTIViewer浏览器窗口所显示的图形为系统在单位阶跃信号作用下的系统响应。 其实,LTIViewer浏览器提供了极其丰富的功能,它可以使用户对系统进行非常详细的线性分析。 下面以传递函数为 为例对LTIViewer进行详细的介绍与说明。 •绘制系统的不同响应曲线 在默认的情况下,LTIViewer绘制系统在单位阶跃信号输入下的系统响应曲线(即阶跃响应>。 其实使用LTIViewer可以绘制不同的系统响应,在LTIViewer图形绘制窗口中单击鼠标右键,选择弹出菜单PlotType下的子菜单,可以在LTIViewer图形绘制窗口中绘制不同的系统响应曲线,如图4所示。 如果用户选择Impulse命令,则可以绘制系统的单位脉冲响应曲线,如图5所示。 除此之外,使用LTIViewer还可以绘制系统的波特图(Bode>、波特图幅值图(BodeMag>、奈奎斯特图(Nyquist>、尼科尔斯图(Nichols>、奇异值分析(Sigma>以及零极点图(Pole/Zero>等,其方法与绘制脉冲响应一致。 •改变系统响应曲线绘制布局 在默认的情况下,LTIViewer图形绘制窗口中仅仅绘制一个系统响应曲线。 如果用户需要同时绘制多个系统响应曲线图,则可以使用LTIViewer窗口中Edit菜单下的Plotconfigurations对LTIViewer图形绘制窗口的布局进行改变,并在指定的位置绘制指定的响应曲线。 图6为响应曲线绘制布局设置对话框,以及采用图中给出的设置同时绘制6幅不同的响应曲线。 用户可以选择LTIViewer所提供的6种不同的绘制布局,在指定的区域绘制自己感兴趣的响应曲线。 •系统时域与频域性能分析 使用LTIViewer不仅可以方便地绘制系统的各种响应曲线,还可以从系统响应曲线中获得系统响应信息,从而使用户可以对系统性能进行快速地分析。 首先,通过单击系统响应曲线上任意一点,可以获得动态系统在此时刻的所有信息,包括运行系统的名称,以及其它与此响应类型相匹配的系统性能参数。 以传递函数 的控制系统的单位阶跃响应为例,单击响应曲线中的任意一点,可以获得系统响应曲线上此点所对应的系统运行时刻(Time>、系统输入值(Amplitude>等信息,如图7所示。 其次,用户可以在LTIViewer图形绘制窗口中单击鼠标右键,使用右键弹出菜单中的Characteristics子菜单获得系统不同响应的特性参数,对于不同的系统响应类型,Characteristics菜单的内容并不相同。 图8所示为阶跃响应的特性参数。 选择Characteristics右键弹出菜单中的SettingTime可以获得系统阶跃响应的调节时间。 此时在LTIViewer绘制的阶跃响应曲线中将出现调节时间标记点,单击此标记点即可获得调节时间,如图9所示。 对于不同类型的系统响应曲线而言,用来描述响应特性的参数各异。 虽然不同响应曲线的特性参数不相同,但是均可以使用类似的方法从系统响应曲线中获得相应的信息。 •LTIViewer图形界面的高级控制 前面简单介绍了LTIViewer响应曲线绘制窗口的布局设置。 Simulink最为突出的特点之一就是其强大的图形功能。 在Simulink中,任何图形都是特定的对象,用户可以对其进行强有力的操作与控制。 下面介绍如何对LTIViewer图形窗口进行更为高级的控制。 对LTIViewer图形窗口的控制有两种方式。 一是对整个浏览器窗口Viewer进行控制: 单击LTIViewer窗口的Edit菜单下的ToolboxPreferences命令对浏览器进行设置(此设置的作用范围为LTIViewer窗口以及所有系统响应曲线绘制区域>。 在此对话框中共有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对象的所有属性。 仍以 为例。 >>get(G> num: {[012]} den: {[123]} Variable: 's' Ts: 0 ioDelay: 0 InputDelay: 0 OutputDelay: 0 InputName: {''} OutputName: {''} InputGroup: [1x1struct] OutputGroup: [1x1struct] 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([12],[123]>%生成tf对象mysys_tf Transferfunction: s+2 ------------- s^2+2s+3 (2>LTl对象问的相互转换。 同样可以使用ss、tf及zpk进行LTI对象之间的相互转换,如 >>mysys_ss=ss(mysys_tf>%将tf对象转换为ss对象 a= x1x2 x1-2-0.75 x240 b= u1 x11 x20 c= x1x2 y110.5 d= u1 y10 Continuous-timemodel.%指明系统为连续时间系统 (3>线性时不变系统的并联,即LTI对象的相加,如 >>sys1=tf([12],[123]>;%生成系统1 >>sys2=tf([11],[32-1]>;%生成系统2 >>sys=sysl+sys2%并联系统1与2 Transferfunction: 4s^3+11s^2+8s+1 -------------------------------- 3s^4+8s^3+12s^2+4s-3 4.2线性控制系统设计分析 在控制系统的设计分析之中,线性系统的设计、仿真分析与实现具有重要的地位。 在MATLAB中所提供的控制系统工具箱对控制系统的设计提供了强大的支持,用户可以使用控制系统工具箱设计与分析控制系统,然后使用Simulink对所设计的控制系统进行仿真分析,并在需要的情况下修改控制系统的设计以达到特定的目的,从而使得用户快速完成系统设计的任务,大大提高设计的效率。 1.控制系统工具箱简介 控制系统下具箱是MATLAB中所提供的对控制系统进行辅助设计的功能强大的开发设计工具。 它包含了丰富的线性系统分析和设计函数,并以LTI对象为基本数据类型对线性时不变系统进行操作与控制。 控制系统工具箱能够完成系统的时域和频域分析。 在控制系统工具箱中,可以使用不同的方法设计线性反馈系统,如 (1>根轨迹设计分析法。 (2>极点配置法。 (3>H2和H∞控制。 (4>状态观测器设计。 (5>规范型实现设计。 在使用控制系统工具箱完成线性反馈系统设计之后,便可以通过Simulink进行系统的动态仿真,从而得到真实的、非线性系统的响应,进一步对控制器进行验证。 2.系统分析与设计简介 控制系统工具箱中最基本的数据类型为LTI对象。 无论LTI对象的类型如何,都可以使用相同的命令对其进行分析,因为LTI对象包含了线性时不变系统的所有信息。 这里简单介绍一下用来对由LTI对象所描述的线性时不变系统进行分析设计的命令函数。 ·动态分析函数 动态分析函数有pole(sys>、dcgain(sys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 反馈 控制系统 数学模型 方案 工具