1、第五章 Simulink与微分方程组数解Simulink介绍控制系统运动规律用微分方程表示,其动态响应可用计算机数值求解,并进而求出系统超调量,恢复时间等性能参数。Matlab任意微分方程均可用函数ODE45数值求解,同时它还提供了另外一个更直接图示法对控制系统进行仿真计算,即利用Simulink求线性控制系统动态响应。第1页 Simulink操作步骤(1)执行File-New-Model菜单MATLAB7.1第2页(2)点击库窗口SIMULINKCONTNUOUS,选择建立模型方式:传递函数形式(TRANSFER FCN),或状态方程模式(STATE-SPACE),普通可选传递函数,并拉入模
2、型窗口。第3页(3)双击模型,修改参数,按OK或APPLY。可能话可以重新命名新名字,或改变显示方向。MTALAB6.5分子多项式系数分母多项式系数第4页显示方向设置(FORMATFLIP(ROTATE):第5页MATLAB7.1分子多项式定义分母多项式定义第6页(4)用和、乘、分支、建立复杂模型,和,积用MATH里函数,分支直接从输入箭头拉直线到输出线,使两条线相交。第7页信号+,-,百分比放大在Math Operation项内第8页信号加:可将+改成-,或增加+,表示多个信号加第9页(5)定义输入、输出,在源(SOURCE)选择输入信号源类型,在SINK选择输出类型,普通设置成SCOPE(
3、示波器观察)。第10页(6)设置计算参数,按SIMULATIONPARAMETER。计算开始时间计算结束时间计算方法MATLAB6.5第11页(7)按SIMULATIONSTART开始仿真计算。(8)点击SCOPE观察计算结果,或者查看WORKSPACE,观看变量值,依据需要保留绘制计算值。第12页SCOPE:第13页例2第14页方法1:Laplace变换简化依据第1个方程,可得:电流电流iU第15页从Math operation选放大器,加法器,把机械运动方程加进去。百分比放大,数据能够是详细数值,也能够是变量转速外部负载积分第16页定义输出:从sink选输出(out)示波器看输出第17页输
4、出电流输出转速定义输出第18页计算选项设置:设置微分方程求解方法,计算时间,输出项数。第19页输出变量名,普通不改变保留输出变量个数计算结果矩阵下标序号每隔1输出第20页按Simulation-Start开始计算。查看计算结果,或用plot(tout,yout(:,1)等命令绘制计算结果第21页绘制转速曲线第22页方法2:依据微分方程直接利用积分,微分,求和绘制系统模型。积分电流转速第1个方程输入电压U第23页第2个方程:设置输出点:输出转速积分电流负载第24页输出点2输出点1第25页电流计算结果第26页转速计算结果:第27页方法3:方法2需要对每一项求和,求积,操作复杂,可直接利用微分方程也
5、即状态模型来计算动态响应。状态模型:第28页假如输出电流和转速,则输出方程为:例:直流电机模型第29页(1)依据上述方程定义矩阵A,B,C,D。第30页(2)设置矩阵,双击选项,出现设置菜单。将默认值1修改成矩阵常数或已经定义好矩阵变量第31页(3)设置输入,输出设置输入值,能够是向量常数或是已经定义向量变量第32页(4)设置计算选项,开始计算,并选取计算结果电流计算结果第33页转速计算结果:第34页子系统设计可将模型保留为子系统,求解其它问题时假如要引用该模型,可直接打开复制。输入1输入2子系统模型建立步骤:(1)定义模型第35页(2)定义输入输出(3)全选模型,并选Edit-Create
6、Subsystem第36页(4)保留子系统到一文件,以后打开该文件显示以下输出输入点子系统名字,可修改第37页(5)引用子系统方法 (A)打开保留子系统文件,出现:第38页(B)修改输入输出,构建新计算模型(C)计算第39页数值积分计算(1)定义函数菜单:File-new-M_file进入编辑器第40页写程序:function f=f1(t)f=sin(t);函数编写格式:Function 返回变量=函数名(参数)函数matlab命令(命令以;结束)返回变量=函数值(最终一条命令必须将函数值赋给返回变量)写好程序后保留到一文件,文件名普通与函数名相同(2)调用函数quad(name,tmin,
7、tmax)求数值积分Name:函数名,tmin,tmax,积分下限,上限例:quad(f1,0,pi/2)第41页Function y=tuoyuan(t)X=sin(t);Y=1./(1-0.5.*x.*x).5;NOTE:函数内*,/普通采取.*,./第42页面积分(二重积分)函数dblquad()使用方法:dblquad(name,xmin,xmax,ymin,ymax)Name:函数名xmin,xmax,ymin,ymax积分区域例:function out=f2(x,y)out=y*sin(x)+x*cos(y);v=dblquad(f2,0,1,0,5);第43页微分方程数值求解1
8、.多元一次微分方程组数值解第44页计算步骤以下:(1)定义函数比如:function df=f1(t,y)df=y(1)-y(2);y(1)+y(2)(2)调用函数t,y=ode45(name,tmin,tmax,y0;y1;)t为保留自变量计算点向量变量,y保留计算点处各变量值,为矩阵.y(:,1)表示第1个变量在t各计算点值,y(1,2)表示第2个变量在t第1个计算点值第1各参数为函数名第2个参数为积分范围第3个参数为变量初值(3)绘制曲线Plot(t,y(:,1)第1个参数为自变量第2个参数为向量变量返回值为列向量第45页T,Y=solver(odefun,tspan,y0)T,Y=so
9、lver(odefun,tspan,y0,options)T,Y,TE,YE,IE=solver(odefun,tspan,y0,options)sol=solver(odefun,t0 tf,y0.)Solver:ode45,ode113,ode15s,ode23s,ode23t,ode23tb 非刚性矩阵:ode45,ode113刚性矩阵:ode15s,ode23s,ode23t,ode23tb 刚性矩阵(条件数很大)矩阵第46页Function dy=f2(t,y)dy=y(1)+y(2);y(1)-y(2);第47页2.一元高次微分方程数值求解第48页第49页Function df=f1(t,y)df=y(1);-y(1)-(1-y(1)2)*y(2);t s=ode45(f1,0,10,1;1);例:求微分方程y+(1-y2)y+y=0数值解,初值y=1,y =1第50页