资源描述
1例例6对下列非线性系统建立其simulink模型,然后用simulink进行小偏差线性化。并对线性化前后的系统的单位阶跃响应进行比较。6.6 非线性系统模型的小偏差线性化非线性系统模型的小偏差线性化(续续)2解解在Simulink中搭建模型如下图所示。3假设该模型的Simulink文件名定为simu006.mdl。则可在Matlab的工作空间中输入下列语句:x0,u0,y,dx=trim(simu006,0)其运行结果如下:4x0=-1.5708 0.0000u0=4.9589e-004y=-1.5708dx=1.0e-010*-0.4463 0.02045输入下列语句得出线性化状态空间模型:A,B,C,D=linmod2(simu006);G=ss(A,B,C,D)运行结果如下:6a=x1 x2 x1 0 0 x2 0 -5 b=u1 x1 0 x2 1 7c=x1 x2 y1 1 1 d=u1 y1 0 Continuous-time model.8即得小偏差线性化模型:其中:9对原非线性系统做单位阶跃响应仿真试验。在Simulink模型中将输入信号换成单位阶跃信号,将输出信号换成示波器。在Simulink中将模型改成如下图所示。1011Simulink运行结果如下图所示。非线性系统的单位阶跃响应12对线性化系统做单位阶跃响应仿真试验。在MATLAB的工作空间中输入命令:step(G,0.5)grid;The final time.MATLAB运行结果如下图所示。13线性化系统的单位阶跃响应14 可见两个系统的单位阶跃响应差别很明显。这说明小偏差线性化的精度不高;另一方面,也说明原非线性系统的非线性程度较高。15例例7考虑时滞系统的小偏差线性化问题16初始状态为先对这个时滞系统进行单位阶跃响应仿真研究。搭建Simulink模型如下:1718运行该Simulink模型得结果如下:19现在对该时滞系统进行小偏差线性化。首先建立simulink模型如下图。2021定义该simulink模型的文件名为sim_010.mdl。在MATLAB的工作空间中输入命令:A,b,c,d=linmod2(sim_010);G=ss(A,b,c,d)22结果如下:a=x1 x2 x3 x1 -3 0.5 0 x2 0 -5 0 x3 -1 2 0 b=u1 x1 0 x2 1 x3 023c=x1 x2 x3 y1 1 0 0d=u1 y1 0 Continuous-time model.24小偏差线性化模型为其中:25 现在对这个时滞系统的小偏差线性化模型进行单位阶跃响应仿真研究。在MATLAB的工作空间中输入命令:step(G,10);grid;26运行结果如下:27应用linmod函数,运行结果如下:28 显然,这个时滞系统和它的小偏差线性显然,这个时滞系统和它的小偏差线性化模型的单位阶跃响应曲线相差很大。说明:化模型的单位阶跃响应曲线相差很大。说明:虽然时滞系统也可以看作一种非线性系统,虽然时滞系统也可以看作一种非线性系统,但是它的小偏差线性化模型一般来说却是不但是它的小偏差线性化模型一般来说却是不可信赖的。可信赖的。29例例8考虑多变量非线性系统的小偏差线性化问题30初始状态为首先建立simulink模型如下图。3132定义该simulink模型的文件名为sim_012.mdl。在MATLAB的工作空间中输入命令:A,b,c,d=linmod2(sim_012);G=ss(A,b,c,d)33结果如下:a=x1 x2 x3 x1 -3 0 1.953e-009 x2 0 -16 0 x3 -1 0 2 b=u1 u2 x1 0 0 x2 1 0 x3 0 134c=x1 x2 x3 y1 1 0 0 y2 0 1 0 d=u1 u2 y1 0 0 y2 0 0 Continuous-time model.35小偏差线性化模型为其中:36 为了将原非线性模型和小偏差线性化模型作比较,假定两个输入信号均取为单位阶跃。在Simulink环境下对这两个系统分别进行仿真。先对非线性系统进行仿真,结果如下:37非线性系统单位阶跃响应38非线性系统单位阶跃响应39 再对线性化系统进行仿真,搭建simulink模型如下:40结果如下:线性化系统单位阶跃响应41线性化系统单位阶跃响应42 显然,这个非线性系统和它的小偏差线性化模型的单位阶跃响应曲线相差很大。说明:小偏差线性化模型一般来说却是不可信赖的。可见,对于非线性很严重的系统,小偏差线性化不是首选的方法。在这种情况下,我们应当考虑非线性系统的大范围线性化精确线性化。这涉及到非线性系统的微分几何理论。43复复 习习44第一章第一章 绪论绪论系统的三要素实体实体、属性属性、活动活动模型可分为两大类物理模型物理模型数学模型数学模型模型描述的详细程度行为水平行为水平分解结构水平分解结构水平状态结构水平状态结构水平45仿真的基本概念框架建模-实验-分析仿真是一种基于模型的活动仿真是一种基于模型的活动“系统系统、模型模型、仿真仿真”三者之间有着密切的关系系统是研究的对象模型是系统的抽象仿真是通过对模型的实验以达到研究系统的目的46系统仿真的三个基本的活动系统建模、仿真建模和仿真实验系统仿真的三要素系统、模型、计算机(包括硬件和软件)4748系统仿真的分类系统仿真的分类物理仿真、数学仿真、半实物仿真模拟计算机仿真、数字计算机仿真、数字模拟混合仿真实时仿真亚实时仿真超实时仿真连续系统仿真、离散事件系统仿真49系统仿真的一般步骤系统仿真的一般步骤 系统仿真的一般步骤可用图1.3来描述。50第二章第二章 经典建模方法经典建模方法数学建模的信息源1目标和目的 2先验知识 3试验数据 物理和化学的知识!51建模途径建模途径演绎法建模 归纳法建模 实用法建模52模型的可信性分为(1)在行为水平上的可信性;(2)在状态结构水平上的可信性;(3)在分解结构水平上的可信性。53有自衡能力的单容对象的数学模型有纯滞后的单容对象的数学模型无自衡能力的单容对象的数学模型54带有纯滞后的无自衡能力的单容对象的数学模型有自衡能力的多容对象的数学模型55无自衡能力的多容对象的数学模型带有纯滞后的无自衡能力的多容对象的数学模型56图2.11 响应曲线 2.3.2 求取对象数学模型的实验方法求取对象数学模型的实验方法 57 矩形脉冲可以看成是由两个方向相反的、有时差的阶跃信号的合成。矩形脉冲响应曲线可以看成是由两个方向相反的、有时差的阶跃响应曲线的合成。5859式(2.62)就是由矩形脉冲响应曲线 画出阶跃响应曲线 的依据。图2.13 阶跃响应曲线的分段作图法示意图 60根据阶跃响应曲线求放大系数、时间常数的方法:616263线性差分模型最小二乘离线算法正定正定646566递推最小二乘算法67为了进行递推计算,需要给出 和 的初值 和,有两种给出初值的办法。(1)设 为N的初始值,则可算出初值 (2)假定 ,c是充分大的常数,I为 单位矩阵 递推之后能得到较好的参数估计。,则经过若干次68第三章第三章 连续系统的数字仿真连续系统的数字仿真 经典的数值积分法单步法多步法线性多步法欧拉法梯形法预报校正法龙格-库塔法69欧拉法用矩形面积近似表示积分结果,也就是当 时,的近似值为 :重复上述做法,当 时,(3.2)所以,对任意时刻 ,有:人们对数值积分方法进行了长期探索,其中欧拉法欧拉法是最经典的近似方法。70 为进一步提高计算精度,人们提出了“梯形法梯形法”。令 ,已知 时 的近似值 ,那么,梯形法近似积分形式如下式所示:71(3.3)可见,梯形法是隐函数形式。采用这种积分方法,其最简单的预报-校正方法是用欧拉法欧拉法估计初值,用梯形法梯形法校正,即:(3.4)(3.5)(3.4)式称为预报公式预报公式,(3.5)式称为校正公式校正公式。用欧拉法估计 的值,代入校正公式得到 的校正值 。72 设 是规定的足够小正数,称作允许误差。若 ,称作第一次校正;,称作第二次校正。通过反复迭代,直到满足 ,这时 就是满足误差要求的校正值。73四阶龙格四阶龙格库塔法库塔法(简称简称RK4)公式公式面向一阶微分方程(组)74微分方程存在时滞的情况下其中不妨称为改进的龙格不妨称为改进的龙格-库塔法库塔法75用用RK方法进行数字仿真的特点方法进行数字仿真的特点(1)主程序的框架具有明显的统一性;(2)对于各个不同的仿真问题,只是存放右端函数的子程序有较大的差别;(3)对于离线仿真,使用文件的读写要比使用数组更为优越;(4)对于时滞系统的仿真,需要对4阶龙格-库塔法进行适当的改进。76线性多步法的基本概念线性多步法的基本概念预报预报时间时间函数函数导数导数77校正校正时间函数导数78线性多步法的基本原理都是利用一个多项式去线性多步法的基本原理都是利用一个多项式去匹配变量的若干已知值和它们的导数值。匹配变量的若干已知值和它们的导数值。拟采用多项式的形式如下:拟采用多项式的形式如下:79预报公式公式定常步长 80代数方程组解向量解向量 行行 1 列列(3.18)个个0 81校正公式校正公式在高精度仿真时,对预报值应进行校正。预报校正校正82定常步长 代数方程组解向量解向量 行行 1 列列行行列列(3.20)83行行列列84线性多步法的适用范围线性多步法的适用范围 已知已知未知未知单步法,如单步法,如RK法法线性多步法线性多步法必须已知若干个必须已知若干个 和和 85第四章第四章 MATLAB程序设计基础程序设计基础MATLAB的基本句法、语法及命令MATLAB的绘图功能MATLAB的M文件(脚本)的编写MATLAB的M函数(function)MATLAB的工作空间及变量管理86MATLAB的基本句法、语法及命令的基本句法、语法及命令矩阵、向量及变量的赋值冒号表达式的运用矩阵的基本运算条件转移语句循环语句87MATLAB的绘图功能的绘图功能plot()fplot()plot3()subplot()polar()bar()stairs()mesh()semilogx()semilogy()loglog()hold ondrawnow88 在画完图形后,MATLAB还允许用户使用其它手段对图形进行进一步的修饰。gridxlabel(字符)ylabel(字符)title(字符)在图形上面加网格线给x轴加上注释给y轴加上注释给图形加上标题legend(字符)给曲线加上标注axis(xmin,xmax,ymin,ymax,zmin,zmax)89表4.1 MATLAB绘图命令的各种选项 选项含义选项含义-实线-虚线:点线-.点划线r红色g绿色b蓝色y黄色*用星号绘制各数据点.用点号绘制各数据点o用圆圈绘制各数据点x用叉号绘制各数据点90MATLAB的的M文件(脚本)的编写文件(脚本)的编写MATLAB的的M函数(函数(function)MATLAB的M文件由一条一条的语句组成。MATLAB的内部函数(不可读)用户编写的函数91M函数函数function y=fname(x1,x2,xn)函数体语句段;function y1,y2,ym=fname(x1,x2,xn)函数体语句段;非执行文件function fname(x1,x2,xn)函数体语句段;function =fname(x1,x2,xn)函数体语句段;等价92微分方程组右端函数的编写方法function dx=ff(t,x)u=-(5/2)*x(1)2;dx(1)=-2*x(1)+0.1*x(2);dx(2)=5*x(1)2-7*x(2)+2*u;dx=dx;举例931维插值函数interp1()YI=interp1(X,Y,XI,method)其中的method表示插值方法,具体有如下方法:nearest -最近邻域插值 linear -线性插值 spline -分段立方样条插值 pchip -保形分段立方插值 cubic -同 pchip94MATLAB中内部函数ode45()的调用方法 举例t,X=ode45(exam1,0,10,-2,0.2,0.4);具体含义?95MATLAB的工作空间及变量管理的工作空间及变量管理who命令whos命令clear命令clear a c不能在a和c之间加逗号目前的工作空间中都有哪些变量名了解这些变量的细节清除工作空间中的变量清除工作空间中的变量a和c96第五章第五章 MATLAB中控制系统模型的建立中控制系统模型的建立 控制系统的传递函数描述控制系统的传递函数描述num=b1,b2,bm+1;den=a1,a2,an+1;sys=tf(num,den);c=conv(a,b)用法?97多变量线性系统传递函数矩阵的表达方法 H=tf(-5;1-5 6,1-1;1 1 0)Transfer function from input to output.-5#1:-s-1 s2-5 s+6#2:-s2+s 98控制系统的状态空间描述控制系统的状态空间描述SYS=SS(A,B,C,D)SYS=SS(A,B,C,D,Ts)连续系统离散系统99控制系统的零极点模型描述控制系统的零极点模型描述z=z1,z2,zm;p=p1,p2,pn;K=某一实值某一实值;sys=zpk(z,p,K);100控制系统的模型连接控制系统的模型连接控制系统的串联控制系统的串联series(G1,G2)101控制系统的并联控制系统的并联+则并联系统模型可表示为:parallel(G1,G2)102控制系统的反馈连接控制系统的反馈连接-G=feedback(G1,G2,Sign)Sign+1-1省略省略正反馈正反馈负反馈负反馈103控制系统状态空间模型的线性变换控制系统状态空间模型的线性变换线性变换函数G2=ss2ss(G1,T)G1原状态空间模型G2变换后的状态空间模型变换矩阵104如何求取线性系统的单位阶跃响应MATLAB给出了下列几种求取单位阶跃相应的方式:y=step(G,t)要计算的时间点所构成的向量与时间点相对应的响应值构成的向量105y,t=step(G)由系统自动产生y,t,X=step(G)系统的状态向量step(G)直接画响应图106由一般状态方程转变为规范型由一般状态方程转变为规范型调用格式如下:G1=canon(G,type);canonical formcompanion 能控或能观规范型modal Jordan规范型(模态型)107画线性系统的根轨迹画线性系统的根轨迹rlocus(G)在图形窗口中自动绘出系统的根轨迹K,p=rlocfind(G)求取根轨迹上指定点处的开环增益及相应的闭环极点开环增益闭环极点108由开环模型来分析闭环系统的稳定性线性系统的线性系统的Nyquist图图nyquist(G)自动画出自动画出Nyquist图图G开环系统的传递函数109线性系统的频域响应模型线性系统的频域响应模型Bode图图Bode(G)自动画出自动画出bode图图110时滞系统的近似线性模型时滞系统的近似线性模型 Pade近似模型近似模型np,dp=pade(Tau,n)111时滞系统时域响应的数字仿真时滞系统时域响应的数字仿真时滞系统时域时滞系统时域响应的数字仿真响应的数字仿真运用Simulink仿真工具通过pade近似模型进行仿真改进的龙格库塔法状态带有时滞的情况下112线性系统的仿真函数y=lsim(G,u,t);G线性系统的模型y输出序列(向量)u输入序列(向量)t时间序列(向量)长度相等113lsim(G,u,t);直接画出输出响应曲线Y,T,X=LSIM(SYS,U,T,X0)对于状态空间模型的时域响应,有格式:初始状态向量,省略时默认为零初始状态114第六章第六章 SIMULINK建模与仿真建模与仿真 用simulink工具搭建传递函数模型用simulink工具搭建状态空间模型用simulink工具表示死区、饱和及继电器非线性环节模型用simulink工具表示时滞环节115用simulink工具搭建非线性状态空间模型用simulink工具搭建时变系统状态空间模型如何自定义M函数表达时变系数如何在工作空间产生时序信号向量116学会运用Simulink工具箱中的Signal Builder模块运用Simulink工具和编写M文件两种风格的仿真方法:两者的优劣比较117时滞系统仿真的三种方法时滞系统仿真的三种方法带有 的传递函数模型 通过Pade近似模型,借助编写M文件的方法进行仿真;系统的状态或输入带有时滞 借助Simulink的Transport Delay功能模块进行仿真;118系统的状态带有时滞 使用改进的4阶龙格-库塔法进行仿真。在这种情况下,要对4阶龙格-库塔法的右端函数及主程序都进行相应的修改。119多变量系统的仿真多变量系统的仿真借助Simulink工具进行建模并仿真。借助Lsim()函数功能编写M文件进行仿真。120MATLAB/SIMULINK在控制系统在控制系统设计与仿真中的应用设计与仿真中的应用MATLAB在线性系统状态观测器设计和仿真中的应用;MATLAB在线性系统状态空间模型极点配置设计中的应用;MATLAB在离散型过程控制系统仿真中的应用;MATLAB在PID控制器设计和仿真中的应用。121非线性系统的小偏差线性化非线性系统的小偏差线性化求取系统的工作点对系统在工作点附近作小偏差线性化x,u,y,dx=trim(model_name,x0,u0)A,B,C,D=linmod2(model_name,x,u)122The End
展开阅读全文