- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统仿真的MATLAB实现精选
PAGE 131
系统仿真的MATLAB实现
由于计算机技术的高速发展,我们可以借助计算机完成系统的数字仿真。综前所述,数字仿真实质上是根据被研究的真实系统的模型,利用计算机进行实验研究的一种方法。仿真的主要过程是:建立模型、仿真运行和分析研究仿真结果。仿真运行就是借助一定的算法,获得系统的有关信息。
MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。MATLAB是一个高度集成的系统,MATLAB提供的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统。在过去几年里,Simulink已经成为数学和工业应用中对动态系统进行建模时使用得最为广泛的软件包。
MATLAB仿真有两种途径:(1)MATLAB可以在SIMULINK窗口上进行面向系统结构方框图的系统仿真;(2)用户可以在MATLAB的COMMAND窗口下,用运行m文件,调用指令和各种用于系统仿真的函数,进行系统仿真。这两种方式可解决任意复杂系统的动态仿真问题,前者编辑灵活,而后者直观性强,实现可视化编辑。
下面介绍在MATLAB上实现几类基本仿真。
7.1 计算机仿真的步骤
在学习计算机仿真以前,让我们先总结一下计算机仿真的步骤。
计算机仿真,概括地说是一个“建模—实验—分析”的过程,即仿真不单纯是对模型的实验,还包括从建模到实验再到分析的全过程。因此进行一次完整的计算机仿真应包括以下步骤:
(1)列举并列项目
每一项研究都应从说明问题开始,问题由决策者提供或由熟悉问题的分析者 提供。
(2)设置目标及完整的项目计划
目标表示仿真要回答的问题、系统方案的说明。项目计划包括人数、研究费用以及每一阶段工作所需时间。
(3)建立模型和收集数据
模型和实际系统没有必要一一对应,模型只需描述实际系统的本质或者描述系统中所研究部分的本质。因此,最好从简单的模型开始,然后进一步建立更复杂的模型。
(4)编制程序和验证
利用数学公式、逻辑公式和算法等来表示实际系统的内部状态和输入/输出的关系。建模者必须决定是采用通用语言如MATLAB、FORTRAN、C还是专用仿真语言来编制程序。在本教材中,我们选择的是MATLAB和其动态仿真工具Simulink。
(5)确认
确认指确定模型是否精确地代表实际系统。它不是一次完成,而是比较模型和实际系统特性的差异,不断对模型进行校正的迭代过程。
(6)实验设计
确定仿真的方案、初始化周期的长度、仿真运行的长度以及每次运行的重复 次数。
(7)生产性运行和分析
通常用于估计被仿真系统设计的性能量度。利用理论定性分析、经验定性分析或系统历史数据定量分析来检验模型的正确性,利用灵敏度分析等手段来检验模型的稳定性。
(8)文件清单和报表结果
(9)实现
图7.1是计算机仿真的程序图。
图7.1 计算机仿真程序流图
7.2 基于数值积分法的连续系统仿真
7.2.1 数值积分法的MATLAB实现
MATLAB的工具箱提供了各种数值积分方法函数,这些函数是ODE23、ODE45、ODE113和ODE15s。这些函数均是m文件,还有一个函数是ode1.C,是直接用C语言编写的。
函数ode23( )是用Runge-Kutta法求解微分方程。它是一种采用三阶积分算法、二阶误差估计、变积分步长的低阶积分算法,调用格式为
[T, Y] = ode23 ( F, TSPAN, YO, OPTIONS )
其中,F为系统模型文件名,模型为y = f( t, y )形式;
TSPAN = [ To TFINAL] 为积分计算时间,初值为To,终值为TFINAL;
YO为系统输出初始值;
OPTIONS选项积分计算相对允差 RelTol 和绝对允差 AbsTol,当缺省时,
Reltol=1e-3, AbsTol=1e-6
T为计算点时间向量,Y为微分方程的解。
函数ode45( )也是用Runge-Kutta法求解微分方程,它是变步长的一种中等阶次积分算法,调用格式为
[T, Y] = ode45 ( F , TSPAN, YO, OPTIONS )
各项含义同上。
函数ode113( )是变阶的Adams-Bashforth-Moulton,用变阶方法解微分方程,采用多步法,调用格式为
[T, Y] = ode113 ( F, TSPAN, YO, OPTIONS )
各项含义同上。
函数odel5s( )采用改进的Gear法解微分方程,调用格
文档评论(0)