5.3-MATLAB-常微分建模与SIMULINK仿真.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.3-MATLAB-常微分建模与SIMULINK仿真.ppt

计算机仿真技术 5.3 常微分方程建模仿真 5.3.1 ODE解函数 5.3.2 常微分方程仿真举例 5.3.1 ODE解函数 5.3.2 常微分方程仿真举例 【例5.10】van der Pol Equation (Non-stiff 非刚性): 变量在t=0点的初始值为:y1=2,y2=0,参数μ=1 用MATLAB仿真该系统,时间为0到20 【例5.11】van der Pol Equation (stiff 刚性):刚性方程中,存在着系统变量在很短时间内变化很大的现象,使用非刚性系统的算法无法解决或运算时间过长,这时,采用刚性系统的算法。 参数μ由1增加到1000 【例5.12】van der Pol Equation :参数μ定义为系统的输入量 【例5.13】给出如下微分方程模型,α=10,β=5,用MATLAB模拟该方程,初始值为[0 2],模拟时间t=[0 20] 5.4 Simulink仿真 Simulink模块库 建立一个简单模型: 信号源、传递函数模型、示波器图形输出,进行连线 模块命名、颜色设定、旋转… 设置仿真参数:solve页面,选择仿真时间,选择算法,设定算法的参数。 设置workspace 【例5.12】van der Pol Equation :参数μ定义为系统的输入量 济南大学控制科学与工程学院 计算机仿真技术 * 济南大学控制科学与工程学院 授课教师:李实 cse_lis@ujn.edu.cn 1教1007室 求解非刚性问题的ODE solver: ode45: 基于显式龙格-库塔法4-5阶公式,为一步法,一般情况下,在大多数非刚性问题求解中首先采用ode45作为求解办法。 ode23: 基于显式龙格-库塔法2-3阶公式,比ode45低阶,在精度要求不高或涉及到部分刚性问题时,比ode45运算更快速。 ode113: 使用Adams-Bashforth-Moulton,即线性多步法。需要精度较高时,比ode45运算速度快,但属于多步法,需要多个之前时间数值。 求解刚性问题的ODE solver: ode15s: 使用Gear方法,也叫向后微分公式,为多步法,如果已知系统为刚性问题或ode45无法解决问题,可优先采用ode15s。 ode23s:基于改进Rosenbrock法,一步法,当精度要求不高时,比ode15s运算更快。当ode15s无法解决问题,可采用ode23s。 ode23t ode23tb ODE求解语法: [t,y] = solver(odefun,tspan,y0,options) odefun: 要运行的微分方程系统,一般可由函数定义: dydt = odefun(t,y),t 和 y 为函数的输入量,分别代表时间和系统变量,dy 则表示对变量的微分值。 tspan:时间向量,表示微分方程求解的时间轴 y0:变量的初始值 options:微分方程求解参数,如精度,算法等要求,一般可不修改,直接采用默认值。 输出项为[t, y],为得到的微分方程时间变量与状态变量,可用于结果输出与绘图。 [t,y] = solver(odefun,tspan,y0,yp0, options) 当函数中需要引用一些参数或输入时,可定义为yp0,相应的,微分方程系统函数也要引用: dydt = odefun(t, y,yp0) 首先,写出该系统函数,保存在M-file文件中: function dydt = vdp1(t,y) dydt1 = y(2); dydt2 = ( 1 - y(1)^2 ) * y(2) - y(1); dydt=[dydt1;dydt2]; %写成列向量 主程序,用ode45算法求解: tspan=[0 20]; %仿真时间,行向量 y0=[2;0]; %初始值,列向量 [t,y] = ode45(@vdp1,tspan,y0) %得到时间t与变量y,这里,options为默认值 画图表示模拟结果: %分别画出y1与y2随时间变化的动态曲线,注意t与y的行数或列数要相同 plot(t,y(:,1),‘-’,t,y(:,2),‘--’) title(Solution of van der Pol Equation, \mu = 1); xlabel(time t); ylabel(solution y); legend(‘y_1’,‘y_2’); %在图上表示y1与y2标志 主程序:用ode45算法求解 tspan=[0 3000]; y0=[2;0]; tic [t,y] = ode45(@vdp1000,tspan,y0); toc function dydt = vdp1000(t,y) dydt1 = y(2); dyd

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档