迭代器的调试模拟子系统
迭代器子系统重复执行子系统内部的算法建模仿真时间步内一次或多次。分析或调试算法在迭代器子系统,需要暂停在一个主要时间步迭代器子系统模型执行的执行和一步更细粒度的间隔比重大的步骤。
这个例子展示了如何分析一个简单的加法算法使用while-iterator子系统实现。
打开示例模型
该模型IterateSum
使用while-iterator子系统来实现迭代加法的算法。while-iterator子系统有两个输入:一个正弦波信号和脉冲信号。脉冲提供了最初的逻辑条件,决定是否启用了while-iterator子系统在每个时间步。仪表板块连接到范围迭代数
信号显示while-iterator子系统的输出。
模拟模型。您可以使用调试工具的仿真软件®编辑while-iterator子系统实现的算法金宝app进行分析,了解信号显示在仪表板块范围。
添加端口值标签
了解信号值变化随着仿真的发展,您可以添加端口值标签信号仿真之前和期间在你感兴趣的模型。端口值标签显示在画布上的模型,在港口附近产生信号。
添加一个端口值标签正弦波
信号:
选择
正弦波
信号。在调试选项卡,在工具,在端口值按钮组,单击显示端口值标签选择信号。
你也可以添加多个信号端口值标签。添加端口值标签脉冲
和迭代数
信号:
选择
脉冲
信号。新闻Ctrl并选择
迭代数
信号。在调试选项卡,端口值按钮组,单击显示端口值标签选择信号。
新的端口值标签显示没有数据
直到下一次执行块产生信号。
时间步内设置断点暂停
默认情况下,模型配置为暂停时间步内只要满足条件断点。检查是否你的模型配置为暂停在一个时间步,打开断点列表。在仿真软件金宝app®将来发布,调试选项卡上,单击断点列表。检查暂停时间步内被选中。
暂停执行在一个时间步,这样你就可以分析模式,进步一次仿真一个街区,设置一个断点。仿真中的停顿时间步一旦条件断点。例如,前暂停while-iterator子系统被启用,设置断点的输出脉冲块。
选择
脉冲
信号。在调试选项卡,在断点,点击添加断点。
在对话框中添加断点,断点配置信号条件模拟时暂停脉冲块输出值大于零。从下拉列表中,选择
>
然后输入0
在盒子里。
因为while-iterator子系统时,才执行脉冲
信号值是不0
,这使模拟信号断点暂停执行每次while-iterator子系统。
信号线上的红色圆圈表示断点活跃信号。
逐步执行块
开始分析模型,模拟运行。在仿真软件将来金宝app发布,调试选项卡上,单击运行。
当模拟达到的0.5
秒,脉冲
信号值是1
。模拟后停顿在断点脉冲块执行并更新输出值。表明,仿真停顿了一下,为什么断点注释绿色箭头,和脉冲块绿色突出显示。
一步仿真执行下一个块,调试选项卡上,单击跨过。绿色突出移动while-iterator子系统,断点的绿色箭头消失了。
看到的迭代次数while-iterator子系统执行在这个时间步,点击跨过一次。因为while-iterator子系统nonvirtual,跨过行动步骤在整个子系统为一个单一的单位。端口值标签更新显示while-iterator子系统执行算法的输入值13倍86.6
。
如果您点击跨过一个更多的时间,外港块执行,仪表板范围块更新显示的新值迭代数
信号。
如果你继续点击跨过,你可以逐步执行的事情,在随后的主要步骤。的脉冲
信号值保持1
接下来的几次步骤。
每次模拟上停顿脉冲后单击跨过,点击跨过再次使模拟断点暂停。第一次模拟上停顿脉冲块,模拟停顿之前脉冲块运行它的输出方法。第二次模拟在断点暂停是因为条件时遇到了脉冲块运行它的输出方法。
进入While-Iterator子系统
进步仿真,直到下次while-iterator子系统启用,调试选项卡上,单击继续。如果你不继续块的块,直到脉冲块输出值发生了改变0
,继续点击继续直到仿真的到达时间1.5
秒,断点暂停。
进步的模拟while-iterator子系统,点击跨过。然后,观察算法,点击一步。帆布while-iterator内导航子系统模型。模拟停顿的显示块就在它执行更新显示值。块显示14
从最后一次执行。
看到信号值的步骤通过while-iterator子系统实现的算法,添加端口值标签。
选择框图中的一切通过点击左上角的帆布和控股将指针拖到右下角的帆布或紧迫Ctrl +一个。
在调试选项卡,在工具,在端口值按钮组,单击显示端口值标签选择信号。
迭代的端口值标签数量的输出而迭代器块显示无法访问
,所以信号值显示使用显示块。其他端口值标签没有数据
。
点击跨过。的显示块执行和更新显示的值1
表明这是第一次迭代。模拟停顿的内存块,这是下一个执行顺序。
当你点击跨过两次,仿真停顿总和块的关系操作符块。当你点击跨过再次,画布更新展示顶级框图因为while-iterator子系统在这个时间步只执行一次。当你点击跨过再一次,仪表板范围块土地的新值迭代数
信号。
暂停在特定迭代
当您想要调试或迭代器子系统内部分析算法,您可以使用一个断点while-iterator子系统内暂停模拟在特定迭代。在迭代的输出数量上设置一个断点而迭代器不支持块。金宝app你把断点,断点条件取决于您的算法使用迭代数。
模型的示例中,该算法计算的累积和迭代数。打破在一个特定的迭代中,您可以添加断点的输出总和块的输出内存块。例如,假设您想要分析的算法的时间步while-iterator子系统算法执行不止一次。在第一次迭代的输出总和块就1
。在第二次迭代中,内存块输出成为1
。添加一个断点的输出信号内存块价值大于时暂停仿真0
。
导航while-iterator子系统内部,双击模型中的块。
右键单击的输出信号内存块。
从上下文菜单中,选择添加断点。
默认情况下,点击一个信号线在模拟切换信号是否有端口值标签。如果单击信号线添加断点和端口值标签消失,再次单击信号添加端口值标签。端口值标签所示
没有数据
直到块产生信号再次执行。软件不保留数据端口值标签时删除。在对话框中添加断点,断点配置信号条件下的模拟信号值就大于时暂停
0
。从下拉列表中,选择>
然后输入0
在盒子里。
第一次进步直接模拟while-iterator子系统执行超过一次,禁用的断点脉冲
信号。
在调试选项卡上,单击断点列表。
在断点列表启用列,清除复选框的行对应的断点
脉冲
信号。
进步的模拟,直到下一个时间步while-iterator子系统执行超过一次,调试选项卡上,单击继续。的模拟运行3.5
秒,停顿在断点内存块输出信号。的端口值标签内存块的输出显示了一个值1
。其他端口值标签显示上次while-iterator子系统中的值执行。
继续点击跨过通过算法步骤一个街区。while-iterator子系统继续执行只要累计总和小于的输入值正弦波块。
因为仿真停顿在断点在每个迭代中,您可以使用继续按钮通过模拟一个迭代步骤。
在13th迭代,累计金额91年
,这是大于的输入值86.6
。的输出的端口值标签关系操作符块显示的值真正的
因为块尚未执行。
当你点击跨过再一次,关系操作符块执行,模拟循环退出while-iterator子系统。模型帆布导航模型的顶层视图。如果您点击跨过再一次,外港块执行和情节的仪表板范围块更新显示这个时间步的值。
视图执行顺序
了解软件的步骤从一个街区到另一个,您可以查看框图上的执行顺序模拟时暂停。执行顺序显示软件的顺序执行每个块在每个时间步。查看执行顺序可以帮助你理解的行为模型和仿真的发展为单击跨过。
仿真进展到下一个时间步,while-iterator子系统执行不止一次点击继续。while-iterator子系统内部的帆布导航模型,模拟上停顿内存块。
显示执行顺序的调试选项卡,诊断部分中,点击信息覆盖。然后,在块,点击执行顺序。右边的执行顺序查看器打开模型编辑器的选择与当前任务。金宝app执行顺序查看器突出部分和注释所涉及的模型来表示块选择的任务,它们的执行顺序。
执行顺序强调覆盖绿色调试突出表明仿真在哪里停顿了一下。你可以继续通过仿真步骤的执行顺序突出模型,或者你可以明确执行顺序突出看到调试了。明确的执行顺序强调,在执行顺序查看器中,单击清晰的凸显。
执行顺序查看器不显示任何任务的执行顺序,突出和注释从模型中被清除。你可以看到绿色的调试上突出内存块了。
再次查看执行顺序,在执行顺序查看器中,选择你想要查看的任务。
仿真结束调试会话
当你完成分析和调试你的模型,你可以结束仿真调试会话的几种方式,取决于你下一步打算做什么。
从当前时间点继续仿真,同时保留在模型中设置的断点配置:
打开断点列表,在调试选项卡上,单击断点列表。
在断点列表中,使用的复选框启用列或启用或禁用所有断点按钮禁用所有断点。
继续仿真,点击继续。
继续仿真从当前时间点但停止调试:
模型中清除所有断点,调试选项卡上,单击添加断点按钮箭头并选择清除所有断点。
恢复模拟,点击继续。
停止当前时间点的仿真,在仿真软件将来发布的金宝app调试选项卡上,单击停止。