simulink动态系统建模仿真 第6章.ppt

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

 6.1 Simulink动态系统仿真过程 6.1.1 模型编译阶段   在模型编译阶段,首先,Simulink调用模型编译器,由模型编译器把模型转换为可执行形式,这个转换过程称为编译。在这个阶段,Simulink编译器执行下列工作:   (1) 求取模型中模块的参数表达式,用以确定表达式的值。   (2) 确定模型中未明确指定的信号属性,如信号名称、数据类型、数值类型和信号维数,并检查每个模块输入端可允许的输入信号。Simulink利用属性传递过程确定用户未明确指定的属性,这个过程继承模块源信号的属性,并将这个属性传递到信号所驱动模块的输入端。   (3) 执行模块优化。   (4) 用原子子系统所包含的模块替代原子子系统,并平铺模型层次。   (5) 将模块进行排序,并排列仿真过程中模块的执行顺序,当模型进入仿真执行阶段时,将按照此时的排列顺序执行模块。   (6) 对于用户未明确指定采样时间的模块,确定所有这些模块的采样时间。   在仿真过程中,Simulink会在每个时间步内更新一次模型中模块的状态和输出,模块的更新顺序是根据模块类型决定的,Simulink按照一定的方式对模块进行排序。   1.直接馈通端口   为了创建Simulink模型仿真过程中有效的模块更新顺序,Simulink依据模块的输出与输入的关系将模块的输入端口进行排序。对于那些输入当前值直接确定模块某一输出端口当前值的输入端口,我们称其为直接馈通端口。换言之,也就是模块的输出方程中包含输入,它的输出直接依赖于输入。例如,Gain模块、Product模块和Sum模块就是具有直接馈通端口的模块。具有非直接馈通输入的模块包括Integrator模块(它的输出完全是其状态的函数)、Constant模块(没有输入)以及Memory模块(它的输出与前一时刻的输入有关)。   2.模块排序准则   Simulink利用下面的基本更新规则对模块进行排序:   在驱动任一模块的直接馈通端口之前必须对每个模块进行更新。这个规则可以确保更新模块时连接到模块直接馈通端口的输入是有效的。   不带有直接馈通输入的模块可以以任意的顺序进行更新,但必须是在它们驱动任一带有直接馈通输入的模块之前进行更新。按照这个规则,把所有不带有直接馈通端口的模块以任意顺序放在更新列表的前端,这样Simulink在排序过程中就可以忽略这些模块。   按照上述规则排列的更新列表中,不带有直接馈通端口的模块以任意顺序排列在列表的最前面,接下来是带有直接馈通端口的模块,这些模块按照它们为所驱动模块提供有效输入的顺序排列。   在Simulink的模块排序过程中,Simulink会检查并标记代数循环事件,也就是,一个模块的直接馈通输出直接或间接地连接到该模块所对应的直接馈通输入的信号循环。这样的循环表面上看是个死循环,因为Simulink需要用直接馈通的输入值计算其输出值。但是,我们都知道,代数循环可以表示一组输入和输出均未知的联立代数方程,而且,这些方程在每个时间步上都存在有效解,因此,Simulink假设这些包含直接馈通端口的代数循环表示了一组可求解的代数方程,并在仿真过程中每次更新模块时解算这些方程。 6.1.2 模型链接阶段   在模型链接阶段,Simulink会为方块图执行过程中的信号、状态和运行时间等参数分配内存,它也会为每个模块中存储运行信息的数据结构分配并初始化内存。对于内嵌模块,模块中主要的运行时间数据结构称为SimBlock,它存储指向模块输入和输出缓存、状态、工作向量的指针。   在这个阶段,Simulink也会创建方法执行列表,这个列表列出了执行模型中模块方法计算模块输出的最有效顺序,Simulink使用在模型编译阶段生成的排序列表来构造方法执行列表。用户也可以指定模块的更新优先权,Simulink会在低优先权模块之前执行高优先权模块的输出方法。 6.1.3 仿真循环阶段   至此,仿真进入执行阶段。在这个过程中,Simulink利用模型提供的信息,每隔一段时间计算由仿真起始时间到终止时间之间的系统状态和输出。计算状态和输出的这些连续的时间点被称为时间步(time steps),两个时间步之间的长度称为步长(step size),步长的大小取决于用来计算系统连续状态的算法、系统的基本采样时间以及系统的连续状态中是否有不连续因素。   仿真循环阶段包括两个子阶段:循环初始化阶段和循环迭代阶段。初始化阶段在循环过程中只执行一次;迭代阶段在整个仿真过程中的每个时间步内都要重复一次。   在仿真开始时,Simulink首先确定被仿真系统的初始状态和输出。在每一步仿真中,Simulink重新计算系统新的输入值、状态值和输出值,并更新模型以反映所计算的值。当仿真结束时

文档评论(0)

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

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

1亿VIP精品文档

相关文档