第03章-基于MATLAB的建模与仿真.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章-基于MATLAB的建模与仿真

2. 仿真运行原理 Simulink仿真包括两个阶段:初始化阶段和模型执行阶段。 (1) 模块初始化 在初始化阶段主要完成以下工作: 1) 模型参数传给MATLAB进行估值,得到的数值结果将作为模型的实际参数。 2) 展开模型的各个层次,每一个非条件执行的子系统被它所包含的模块所代替。 3) 模型中的模块按更新的次序进行排序。排序算法产生一个列表,以确保具有代数环的模块在产生它的驱动输入的模块被更新后才更新。 4) 确定模型中有无显示设定的属性,例如名称、数据类型、数值类型及大小等,并且检查每个模块是否能够接受连接到它输入端的信号。 5) 确定所有无显示设定采样时间的模块的采样时间。 6) 分配和初始化用于存储每个模块的状态和输入当前值的存储空间。 完成这些工作后就可以进行仿真了。 (2) 模型执行 一般模型是使用数值积分来进行仿真的。所运用的仿真解法器(仿真算法)依赖于模型提供给它的连续状态微分能力。计算微分可以分两步进行: 1) 按照排序所决定的次序计算每个模块的输出。 2) 根据当前时刻的输入和状态来决定状态的微分,得到微分向量后再把它返回给解法器。解法器用来计算下一个采样点的状态向量。一旦新的状态向量计算完毕,被采样的数据源模块和接受模块才被更新。 在仿真开始时模型设定待仿真系统的初始状态和输出。在每一个时间步中,Simulink计算系统的输入、状态和输出,并更新模型来反映计算出的值。在仿真结束时,模型得出系统的输入、状态和输出。 3.3.3 子系统的生成与封装 在使用Simulink建立系统的动态模型并进行系统仿真时,对于简单的动态系统,用户可以直接建立模型,然后进行仿真。然而对于复杂的动态系统,直接建立模型并仿真会给用户带来诸多不便,用户需要采用某种合适的策略建立系统模型,然后进行系统仿真。这是因为对于复杂的动态系统而言,系统中包含的功能块较多,它们之间的输入输出关系比较复杂。这无疑会给用户建立系统模型,设置参数进行系统仿真,以及对系统进行分析带来很大的不便,尤其对于系统的调试与诊断,当系统中出现问题时,难以对其进行分析与定位。Simulink提供的子系统功能可以较好地解决这一问题。 1. 子系统生成 所谓的子系统,可以理解为一种“容器”,此容器能够将一组相关的模块封装到一个单独的模块中,并且与原来系统模块组的功能一致。 在Simulink中,子系统的建立方法有以下两种: (1) 在已有的系统模型中建立子系统:首先框选待封装的区域,即在模型编辑器背景中单击鼠标左键并拖动,选中需要放置到子系统中的模块与信号,或在按下Shift键的同时,用鼠标左键点击所需的模块(图3-5a),然后选择Edit菜单下的Create Subsystem,即可建立子系统,如图3-5b所示。 在系统模型中建立子系统时,Simulink会自动生成Inport模块(Sources模块库中的In1模块)和Output模块(Sinks模块库中的Out1模块)。Inport模块作为子系统的输入端口,Output模块作为子系统的输出端口,它们被用来完成子系统和主系统之间的通讯。 (2) 建立空的子系统,然后进行编辑:使用Subsystems模块库中的模块建立子系统,这样建立的子系统内容为空,然后双击子系统对其进行编辑。 在子系统生成之后,用户可以对子系统进行各种与系统模块相类似的操作,这时子系统相当于具有一定功能的系统模块。例如,子系统的命名、子系统视图的修改、子系统的显示颜色等等。当然子系统也有其特有的操作,如子系统的显示、子系统的封装等。 2. 子系统封装 子系统的封装与子系统的生成是不同的。生成子系统指的是将具有一定功能的一组模块“容纳”在一个子系统之中,使用单一图形方式的子系统模块来表示一组模块,从而增强系统模型的可读性,在系统仿真时需要对子系统中各个模块的参数分别进行设置;而封装子系统指的是将已生成好的具有一定功能的子系统进行封装,封装的目的在于生成用户自定义的模块,此模块与子系统的功能完全一致。 通过定义用户自己的图标、参数设置对话框以及帮助文档等,可以使封装后的子系统模块与Simulink中内置的系统模块具有相同的操作,如双击封装后的子系统模块以打开模块参数设置对话框,进行参数设置;将系统仿真所需要的参数传递

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档