控制和显示执行顺序
的执行顺序对于一个模型是仿真软件的顺序金宝app®在模拟调用块输出方法。金宝app模型确定此订单在模型更新,你可以通过点击更新模型在建模选项卡。金宝app在模拟仿真软件也更新模型。
你不能设置执行顺序,但你可以将优先分配给nonvirtual块来表示它们的执行顺序相对于其他块相应的框图。金宝app仿真软件试图荣誉块优先级设置,除非有冲突的数据依赖关系。确认的结果优先级的设置或调试模式,显示和审查nonvirtual块的执行顺序和子系统。
执行顺序查看器
在调试选项卡上,选择信息覆盖>执行顺序。执行顺序查看器会在右侧窗格中打开的模型编辑器。金宝app
执行顺序查看器显示当前系统的任务列表。
每个nonvirtual子系统都有自己的系统指标模型中的独特价值。街区内直接nonvirtual子系统有相同的系统指标值作为子系统。在模型参考层次结构,相同的系统指标价值可以多次使用,但它仍然是独特的在每个模型的层次结构。确定子系统是同一系统的一部分,在一个模型中,比较他们的系统指标值。
中列出的每一项任务任务ID列对应于一组块中执行相同的任务。大小是固定的对待每个离散率作为一个单独的任务配置参数决定模型执行块与离散率在一个或多个任务。金宝app
选择一个任务执行顺序查看器中强调了块属于任务并显示它们的执行顺序。默认情况下,模型选择的第金宝app一个任务对应于活跃的框图。
当活跃的框图不包含任何块执行给定任务的一部分,你不能选择任务执行顺序查看器。活跃的框图可能包含虚拟块,如轮廓尺寸块,是这个任务的一部分。
隐藏高亮显示和执行订单,点击明显突出按钮。
从模块导航到任务
显示一块执行的任务,点击一个街区。
任务数据标签的链接,你可以点击选择相应的任务执行顺序查看器。当一个模型有很多任务,这些链接提供一个替代滚动列表的任务执行顺序查看器。
比较之间的任务块,选择多个块。
执行顺序的符号
金宝app模型显示一个号码的右上角每个nonvirtual块。这些数字表明块执行的顺序。第一个块执行最低执行顺序,通常1
。执行顺序可以跳过显示数字,但块总是在可见的数字的顺序执行。假设一个任务显示执行订单1,2,4。块标记为1块标记之前执行2,之前执行块标记为4。
例如,在vdp
模型中,范围从块的执行顺序1
来9
,每个nonvirtual块接收一个执行顺序。
虚拟和Nonvirtual子系统
虚拟子系统块只存在图形,不执行。因此,他们不属于执行顺序,每个块在虚拟子系统仍然作为一个原子单元执行。块内部虚拟子系统有一个根级模型的上下文中执行顺序,或者如果虚拟子系统内nonvirtual子系统,在父nonvirtual子系统。对虚拟子系统,子系统内块执行顺序列出在花括号{}。
Nonvirtual子系统块存在功能和执行作为一个单元。他们有一个单一的执行顺序和不同的系统指数比root模型或任何父母nonvirtual子系统。块nonvirtual子系统内部有自己的执行命令,独立的root模型或任何父母nonvirtual子系统。
例如,该模型包含了一个名为汽车动力学的虚拟子系统和一个原子,nonvirtual子系统名叫离散巡航控制器。
虚拟汽车动力学子系统显示执行订单的列表块它包含在花括号。它所包含的模块执行相同的水平一步,总和,范围块和离散巡航控制器nonvirtual子系统。的积分器执行第一块并将其输出范围块中,第二次执行。
克鲁斯nonvirtual离散控制器子系统有一个执行顺序(5
),这表明子系统和模块内部的执行相对于第五块在同一水平上。
请注意
根据你的模型配置,仿真软件可以插入隐藏nonvirtual子系统模型。金宝app结果,可见街区内隐藏的子系统可以有一个系统的索引块不同于当前系统索引。例如,如果您选择有条件的输入分支执行配置参数,仿真软件可能创建隐藏,nonvirtua金宝appl子系统的优化,从而影响排序的执行顺序。
代数循环
块在一个代数循环转移到一个隐藏nonvirtual子系统。金宝app模型首先判断隐藏的子系统的执行顺序的上下文中另一块,然后决定隐藏子系统内的块的执行顺序。看到代数循环概念。
函数调用和行动子系统
函数调用和操作子系统,子系统的执行是由其启动程序的执行。子系统,因此其发起者共享一个执行顺序。
金宝app模型忽略了任何块优先级设置函数调用子系统,如果行动子系统,或切换实例操作子系统块,但是你可以设置块优先启动这些子系统的模块。
在root导出功能模型,有一个函数调用执行订单F
前缀。
有关更多信息,请参见导出功能模型概述。
公共汽车和多个启动器
一块有多个执行订单时块执行多次块基于不同的执行路径。例如:
一块连接到公共汽车有一个执行顺序对应于每个信号总线包含。
函数或操作子系统与多个启动器有一个执行顺序对应于每个发起人。
如何金宝app决定执行顺序
金宝app仿真软件使用基于任务的排序设置块的执行顺序和港口基础上派生的样品时间信息。基于任务的分类提供了一种高效、简单的程序来确定块的执行顺序。
基于任务的排序:
任务排序分别是基于样本的时间。
生成多个排序的列表而不是一个夷为平地,排序的列表块所有任务。
率转换处理简化。
错误的数据依赖避免违反涉及在不同的任务块。
代码生成结果有效的分组。
一个子系统可以在多个任务属于不同的排序的列表。
Direct-Feedthrough输入对执行顺序的影响
确保执行顺序反映了数据块之间的依赖关系,仿真软件分类块输入端口的依赖块输出块输入端口上。金宝app一个输入端口的当前值确定的当前值的一块输出是一个direct-feedthrough输入。看到代数循环概念。块有direct-feedthrough输入的例子包括:
块没有direct-feedthrough输入的例子包括:
规则确定块执行顺序
排序模块,仿真软件使用这些规则:金宝app
如果一块驱动direct-feedthrough输入另一块,驱动块必须出现在未来执行顺序的块驱动器。
这条规则确保direct-feedthrough输入块时有效的仿真软件调用块需要当前的输入输出方法。金宝app
如果一块驱动器的输入另一个块,不是direct-feedthrough输入,没有两个街区之间的数据依赖关系,所以他们的相对执行顺序无关紧要。
这个模型说明了这个结果。
的积分器块
1 / s
在汽车动力学虚拟子系统没有direct-feedthrough输入。因此,尽管它的输入连接到获得块1 / m
,积分器块排序前获得块1 / m
。的输出积分器块驱动器的输入获得块b
,所以积分器块排序获得块。在root模型中,一步块
阶跃响应
开着总和块,所以一步块排序前总和块。的总和块驱动direct-feedthrough输入离散巡航控制器nonvirtual子系统,子系统是排序后总和块。
离散巡航控制器nonvirtual子系统是视为一块direct-feedthrough输入,因为它的输出取决于输入的当前值通过分行Kp
获得块。子系统内部,所有的获得块,direct-feedthrough输入,运行之前总和块,他们开车。
规则确定块模型包含异步任务执行顺序
在模拟中,异步函数调用发起人具有最高的优先级在确定块内的排序顺序的任务。有关更多信息,请参见异步采样时间和率转换和异步块(金宝app仿真软件编码器)。
确定块的执行顺序模型包含异步采样时间,仿真软件使用这些规则:金宝app
如果一个异步函数调用引发剂引发的离散率由相应的共享率过渡块,然后在任务的常见离散率、异步函数调用启动程序将首先进行排序。
例如,在下面的模型中,有一个异步函数调用引发剂引发的离散率
D1
。内的离散任务,异步函数调用启动程序进行排序。的率转换块转换之间的异步率,A1
离散率,D1
。如果一个率转换块减少到
无操作
,率转换块不执行,和它的位置顺序在离散任务转移到上游或下游离散块连接。例如,在上面的模型中,
RTB2
减少到无操作
,所以它的位置顺序转移到下游获得块。如果两个异步函数调用发起者共享一个共同的离散任务,然后用更高的优先级执行异步函数调用发起者首先在离散率的任务。
例如,在下面的模型中,两个异步函数调用发起者是由相同的离散速度,
D1
。有更高的任务优先级排序。不支持异步采样时间的联盟任务排序。金宝app模型包含多个异步采样乘以违约的联盟全球执行顺序,所有块排序在单个任务。
检查涉及数据存储内存块的执行顺序的变化
模型的升级
使用基于任务的排序,而不是遗产(块)排序可以改变相对涉及的执行顺序数据存储内存块。升级顾问检查检测到更改并提供了一个选项时仍能保持最初的执行顺序从仿真软件的早期版本升级您的模型。金宝app
打开升级顾问。在建模选项卡上,选择模型的顾问>升级顾问。
选中该复选框检查相对执行订单数据存储读取和数据存储块写。
点击运行这个检查。
审查的任何更改结果表。如果你想保持原来的执行顺序,点击修改。
代码生成
模型编译时代码生成的相对执行顺序数据存储读取和数据存储写块可以在生成的代码中不同的顺序正常模拟模式。顾问检查模型检测到这些差异,并提供一个选项来改变正常的执行顺序模拟模式匹配的顺序生成的代码。
打开模型顾问。在建模选项卡上,选择模型的顾问>通过产品>金宝app仿真软件编码器。
选中该复选框检查相关的执行顺序变化数据存储读取和数据存储块写。
点击运行这个检查。
审查的任何更改结果表。如果有不符点,你想改变执行顺序列出在正常模拟符合生成的代码的执行顺序,点击修改块优先级。