MATLAB课件6.5线性化模型_第1页
MATLAB课件6.5线性化模型_第2页
MATLAB课件6.5线性化模型_第3页
MATLAB课件6.5线性化模型_第4页
MATLAB课件6.5线性化模型_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 6.5 仿真系统的线性化模型 主要内容概述主要内容概述 一般的非线性系统分析中,常需要在一般的非线性系统分析中,常需要在平衡点平衡点处求系统的线性化模型。处求系统的线性化模型。 利用利用SimulinkSimulink提供的基本函数,可对非线性提供的基本函数,可对非线性系统进行线性化处理。系统进行线性化处理。 用数学方法描述,用数学方法描述,平衡点是系统状态导数为平衡点是系统状态导数为零的点。零的点。 1. 1. 系统平衡点的确定系统平衡点的确定 在大多数的系统设计中,设计者都需要进行在大多数的系统设计中,设计者都需要进行稳定性分析,因为绝大多数的系统在运行之中,稳定性分析,因为绝大多数的系

2、统在运行之中,都需要按照某种方式收敛到指定的平衡点处。都需要按照某种方式收敛到指定的平衡点处。 这里所谓的平衡点一般指的是这里所谓的平衡点一般指的是系统的稳定工系统的稳定工作点作点,此时系统中所有的,此时系统中所有的状态变量的导数均为状态变量的导数均为0 0,系统处于稳定的工作状态。系统处于稳定的工作状态。 可以使用命令可以使用命令trimtrim对系统的稳定性与平衡点对系统的稳定性与平衡点进行分析。进行分析。 利用利用SimulinkSimulink提供的提供的trim( )trim( )函数可根据系统函数可根据系统的模型文件来求出系统的平衡点。的模型文件来求出系统的平衡点。 该函数的调用格

3、式如下该函数的调用格式如下 x,u,y,dxx,u,y,dx=trim(model,x0,u0,y0,ix,iu,iy)=trim(model,x0,u0,y0,ix,iu,iy) 其中,参数其中,参数modelmodel是模型文件名。是模型文件名。 初始状态初始状态x0 x0、初始输入、初始输入u0u0与初始输出与初始输出y0y0。 ix,iu,iyix,iu,iy都是整数向量,它们的元素指示初始向都是整数向量,它们的元素指示初始向量量x0,u0,y0 x0,u0,y0中哪些分量固定不变,即为固定输出。中哪些分量固定不变,即为固定输出。 注意:模型的输入和输出用输入注意:模型的输入和输出用输

4、入/ /输出接口模块输出接口模块(In1/Out1In1/Out1)来表示。)来表示。 详细功能描述详细功能描述 根据系统的输入、初始状态(也可以说是根据系统的输入、初始状态(也可以说是初始的工作点),按照一定的方法求取系统中初始的工作点),按照一定的方法求取系统中距离此工作点最近的平衡点,以及在达到平衡距离此工作点最近的平衡点,以及在达到平衡点时的系统输入与输出。如果系统中不存在平点时的系统输入与输出。如果系统中不存在平衡点,则衡点,则trimtrim命令会返回系统状态变量最接近命令会返回系统状态变量最接近0 0的工作点。的工作点。 2. 2. 连续系统的线性化模型连续系统的线性化模型 利用

5、利用SimulinkSimulink提供的函数提供的函数linmodlinmod( )( )和和linmod2( ) linmod2( ) 可以根据模型文件(同上系统的输入和输出必须由可以根据模型文件(同上系统的输入和输出必须由 ConnectionsConnections库中的库中的In1In1和和Out1Out1模块来定义)得到线性模块来定义)得到线性化模型的状态参数化模型的状态参数A A、B B、C C和和D D,它们的调用格式为,它们的调用格式为 A,B,C,D=linmod(model,x,u,) A,B,C,D=linmod2(model,x,u,) 在指定的系统状态在指定的系统状

6、态x x与系统输入与系统输入u u下对系统下对系统modelmodel进行进行线性化处理,线性化处理,x x和和u u分别为平衡点处的状态向量和输入分别为平衡点处的状态向量和输入向量向量,缺省值为,缺省值为0 0。A A、B B、C C与与D D为线性化后的系统状为线性化后的系统状态空间描述矩阵。态空间描述矩阵。 由由linmod2( ) linmod2( ) 所得线性模型比所得线性模型比linmodlinmod( )准确)准确, ,当然所需的运行时间也更多。当然所需的运行时间也更多。 对于线性系统上面的调用格式可简写为对于线性系统上面的调用格式可简写为 A A, ,B B, ,C C, ,D

7、 D=linmod(model=linmod(model) A A, ,B B, ,C C, ,D D=linmod2(model)=linmod2(model) 3. 3. 离散系统的线性化模型离散系统的线性化模型 SimulinkSimulink提供的函数提供的函数dlinmoddlinmod( )( ) 能够从非线性能够从非线性多频率采样离散多频率采样离散-连续混和系统中提取一个在任何连续混和系统中提取一个在任何给定的采样周期给定的采样周期TsTs下的近似线性模型。下的近似线性模型。 当当TsTs取零时取零时, ,可得近似的连续线性模型,否则可得近似的连续线性模型,否则, ,得得到离散线

8、性模型。该指令的一般调用格式为到离散线性模型。该指令的一般调用格式为Ad,Bd,Cd,Dd=dlinmod(model,Ts,x,u,) 其中其中 TsTs为指定的采样周期为指定的采样周期, ,其它参数同连续系统中其它参数同连续系统中。例6-14 求图6-57 所示非线性系统的平衡工作点,及在平衡工作点附近的线性模型 。 图图6-57 单输入单输入双输出非线性系统双输出非线性系统解 (1)饱和非线性模块(Saturation) 图6-58 饱和非线性模块参数对话框 在在MATLABMATLAB指令方式下,运行以下指令可求出平衡点。指令方式下,运行以下指令可求出平衡点。 x=0;0;0;u=0;

9、y=1;1; x=0;0;0;u=0;y=1;1; ix= ; % ix= ; %不固定任何状态不固定任何状态 iu iu= ; %= ; %不固定输入不固定输入 iy iy=1;2; %=1;2; %固定输出固定输出y(1)y(1)和和y(2)y(2)x,u,y,dx=trim(ex6_14, x,u,y,ix,iu,iyx,u,y,dx=trim(ex6_14, x,u,y,ix,iu,iy) )以上几行命令等同于以上几行命令等同于 x,u,y,dx=trim(ex6_14,1;1, x,u,y,dx=trim(ex6_14,1;1, 1;2) 1;2) % %寻找输出固定为寻找输出固定为

10、1 1的平衡点的平衡点 结果显示:结果显示:x =x = -0.0000 -0.0000 0.5380 0.5380 0.5000 0.5000u =u = 1.0380 1.0380y =y = 0.5000 0.5000 0.5380 0.5380dx =dx = 1.0e-024 1.0e-024 * * 0 0 -0.2467 -0.2467 0 0 在在MATLABMATLAB指令方式下运行以下命令可得到系统在平衡工作点指令方式下运行以下命令可得到系统在平衡工作点附近的线性模型附近的线性模型A,B,C,D=linmod(ex6_14);A,B,C,D=linmod(ex6_14);n

11、um,dennum,den=ss2tf(A,B,C,D);=ss2tf(A,B,C,D); printsys(num,den,s printsys(num,den,s)结果显示:结果显示: num(1)/den = -8.8818e-016 s2 + 1 s + 1 - s3 + 2.4 s2 + 2.4 s + 2 num(2)/den = s3 + 2.4 s2 + 2.4 s + 1 - s3 + 2.4 s2 + 2.4 s + 2 2Out21Out11s+1Transfer Fcn11s +1.4s+12Transfer Fcn1In1模型模型cadp155b.mdl比较比较 x,

12、u,y,dx=trim(cadp155b,1;1,1;2) % %寻找输出固定为寻找输出固定为1 1的平衡点的平衡点x =x = -0.0000 -0.0000 1.0000 1.0000 1.0000 1.0000u =u = 2 2y =y = 1.0000 1.0000 1.0000 1.0000dx =dx = 1.0e-015 1.0e-015 * * -0.2220 -0.2220 -0.0227 -0.0227 0.3331 0.3331x,u,y,dx=trim(cadp155b,3,1;1,1,1;2) % %寻找输入为寻找输入为3 3,输出固定为,输出固定为1 1的平衡点的

13、平衡点x =x = -0.0000 -0.0000 1.3333 1.3333 1.3333 1.3333u =u = 2.6667 2.6667y =y = 1.3333 1.3333 1.3333 1.3333dx = 1.0e-015 * 0.4441 -0.0000 0例例6-15 6-15 在滑艇的运行过程中,滑艇主要受到如下在滑艇的运行过程中,滑艇主要受到如下作用力的控制:滑艇自身的牵引力作用力的控制:滑艇自身的牵引力F F,滑艇受到,滑艇受到的水的阻力的水的阻力f f。其中水的阻力。其中水的阻力 ,v v为为滑艇的运动速度。由运动学的相关定理可知,此滑艇的运动速度。由运动学的相关

14、定理可知,此滑艇系统的动力学方程为滑艇系统的动力学方程为: 其中其中,m,m为滑艇的质量。由滑艇系统的动力学方程为滑艇的质量。由滑艇系统的动力学方程可知,此系统为一非线性系统。假设滑艇的质量可知,此系统为一非线性系统。假设滑艇的质量m=1000kgm=1000kg,滑艇牵引力为,滑艇牵引力为10001000。下面来建立此系。下面来建立此系统的统的SimulinkSimulink模型并进行线性分析模型并进行线性分析。vvf2)(12vvFmv解解 (1)滑艇速度控制系统的模型建立与仿真根据上式建立图6-59所示仿真框图;图6-59 滑艇速度控制系统模型ex6_15ex6_15StepScopes

15、1Integrator1/1000Gainu2-uFcnFv2-vv)(12vvFmv使用下面的使用下面的SimulinkSimulink模块建立滑艇速度控制系统的模型:模块建立滑艇速度控制系统的模型: (1) Sources(1) Sources模块库中的模块库中的StepStep模块:产生滑艇的牵引力模块:产生滑艇的牵引力F F。 StepStep的的Final ValueFinal Value值设置为值设置为10001000(即滑艇牵引力)(即滑艇牵引力) (2) Continuous(2) Continuous模块库中的模块库中的IntegratorIntegrator模块。模块。 (

16、3) (3) SinksSinks模块库中的模块库中的ScopeScope模块:输出滑艇的速度模块:输出滑艇的速度v v 。 (4)Functions(4)Functions & Tables & Tables模块库中的函数模块库中的函数FcnFcn模块。模块。 expressionexpression设置为设置为u u2-2-u u,求取水的阻力。求取水的阻力。 函数函数FcnFcn模块的输入总是用模块的输入总是用u u表示的。表示的。 (5) Math(5) Math模块库中的模块库中的GainGain模块。取值为模块。取值为1/10001/1000(即(即1/1/m m)图6-60 滑艇

17、系统仿真结果 由仿真曲线可知,滑艇在牵引力F(值1000)的作用下,速度在经过80s左右的时间后,由0上升并稳定在33km/h。(2 2)滑艇速度控制器系统的线性化)滑艇速度控制器系统的线性化 对于滑艇速度控制器系统而言,如果要在比赛对于滑艇速度控制器系统而言,如果要在比赛中获得胜利,则滑艇必须在尽可能短的时间内达到中获得胜利,则滑艇必须在尽可能短的时间内达到最大速度。最大速度。 设此速度控制器所能达到的最大速度将为设此速度控制器所能达到的最大速度将为100km/h100km/h。而在前面所提供的滑艇牵引力为。而在前面所提供的滑艇牵引力为10001000时,时,能达到的最大速度仅为能达到的最大

18、速度仅为33km/h33km/h,故需要重新设置合,故需要重新设置合适的牵引力对滑艇速度控制器进行操纵。适的牵引力对滑艇速度控制器进行操纵。 既然滑艇速度最大值要求为既然滑艇速度最大值要求为100km/h100km/h,因此对,因此对滑艇速度控制系统进行线性化时,希望此系统能够滑艇速度控制系统进行线性化时,希望此系统能够使滑艇的速度基本稳定在最大速度处。换句话说,使滑艇的速度基本稳定在最大速度处。换句话说,系统的工作点应该选择为使速度达到系统的工作点应该选择为使速度达到100km/h100km/h时的时的系统输入与系统状态系统输入与系统状态。 由于对非线性系统进行线性化表示需要给出系由于对非线

19、性系统进行线性化表示需要给出系统所在的操作点(即平衡点),因此在对滑艇速度统所在的操作点(即平衡点),因此在对滑艇速度控制系统进行线性化之前,需要获得滑艇速度稳定控制系统进行线性化之前,需要获得滑艇速度稳定在在100km/h100km/h处的系统平衡点。处的系统平衡点。 系统状态的确定系统状态的确定 动态系统仿真时,经常需要对系统中的状态动态系统仿真时,经常需要对系统中的状态变量进行分析。特别要清楚系统中的某个状态变变量进行分析。特别要清楚系统中的某个状态变量究竟由哪个模块产生,从而确定此状态变量的量究竟由哪个模块产生,从而确定此状态变量的实际意义。实际意义。 sizes, x0, xords

20、izes, x0, xord= mod8= mod8 % mod8 % mod8为系统模型框图的文件名为系统模型框图的文件名sizes, x0, xord=ex6_15sizes = 1 0 0 0 0 0 1x0 = 0 xord = ex6_15/Integrator按照如下步骤可以获得滑艇速度控制系统的平衡点:按照如下步骤可以获得滑艇速度控制系统的平衡点: 修改系统模型修改系统模型ex6_15ex6_15,并另存为,并另存为ex6_15_1ex6_15_1,如图所,如图所示。其中示。其中In1In1、Out1Out1分别表示系统的输入与输出。分别表示系统的输入与输出。V 求取滑艇速度控制

21、系统在此工作点处的平衡点求取滑艇速度控制系统在此工作点处的平衡点在在 MATLABMATLAB命令窗口中,利用以下命令获得系统在命令窗口中,利用以下命令获得系统在输出为输出为100 km/h100 km/h时的平衡状态:时的平衡状态:x,u,y,dx=trim(ex6_15_1, , ,100, , ,1)x,u,y,dx=trim(ex6_15_1, , ,100, , ,1) % %寻找输出固定为寻找输出固定为100100的平衡点的平衡点结果显示:结果显示:x=x= 100 100u=u= 9900 9900y=y= 100 100dxdx= = 0 0 x=100 x=100表示滑艇控制系统中的状态表示滑艇控制系统中的状态变量,即滑艇速度变量,即滑艇速度v=100v=100;u=9900u=9900表示滑艇在平衡点处的系表示滑艇在平衡点处的系统输入值,即滑艇牵引力统输入值,即滑艇牵引力F=9900F=9900;y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论