前页 | 后页 |
活动图表Solver Example
在本主题中,我们运行通过一些简单的示例来说明在活动图表模拟中在何处以及如何应用求解器。这包括在行动效果以及 ControlFlow Guards 中使用脚本。本主题中的图像显示 Octave Solver 示例;但是,通过将 Octave Solver 替换为 MATLAB Solver,可以将相同的脚本用于 MATLAB。
初始化求解器
初始化活动图中的影响的脚本可以放在一个行动的影响中,通常是第一个行动ActivityInitial 的动作的影响。
赋值和执行命令
要分配一个值,请使用 octave.set() 或 matlab.set() 函数。对于活动图,函数可以放在行动的影响中。
当使用行动()函数执行 MATLAB 或 Octave 命令时,这些命令可以再次放置在行动的影响中。
条件分支
对于状态机中的条件分支,条件可以放在守卫条件的守卫条件中,并包含调用任何 MATLAB 或 Octave函数的脚本。例如:
获得结果
要从外部函数调用返回结果,请使用 Solver 的 .get()函数。对于如何将结果从脚本传递给用户,有三个关键选项:
- 跟踪()
- 阴谋
- Win32显示
使用跟踪
跟踪() 命令在最初编写和调试模拟时很有用,因为它允许您检查脚本在不同阶段的结果。结果在仿真窗口中输出。
执行绘图
Octave 和 MATLAB 非常强调生成绘图,因为这是输出结果的关键方法。要生成绘图,您可以使用 Solver 的 .exec()函数来调用绘图生成。
掌握情节
在模拟中执行绘图时,如果模拟没有暂停,则绘图只会短暂可见。对于活动图表,有两个选项可以在查看情节时暂停流程:
- 使用 Octave 或 MATLAB 中的影响函数,将其设置在行动的影响中。以下是使用 Octave 的示例:
octave.exec('脚本','uiwait');
- 将行动类型的动作设置为在生成绘图后暂停,这需要在触发器上设置对模拟活动的引用。这可以使用显示“选择触发器”对话框的按钮来创建和引用。点击加新按钮来创建触发器。
要超越 AcceptEvent,您:
- 将触发器(简历)从浏览器拖到仿真事件窗口
- 双击该过渡
使用 Win32接口
使用 Win32 接口时,大致要执行的步骤如下:
- 创建一个 Win32 对话框。
- 设置脚本行来打开它。
- 从对话框中的字段获取值。
- 将该值传递给求解器。
- 使用按钮来触发情节。
以下是配置 Win32 接口的步骤:
- 使用“模型生成器”对话框(Ctrl+Shift+M)创建“Starter Win32 模型”。
- 将 <<Win32屏幕>> 的名称更改为“ScreenA”。
- 将“Edit控件A”的名称更改为更有意义的名称,例如“finish”。
- 在 State1 上按
对话框.ScreenA.显示=true; 添加打开对话框的调用,在 Entry Operation 的脚本中:
由该广播触发。
请参阅创建和设置触发器和信号“End”的步骤,如前面的“保持绘图”中所示。在本例中,我们设置相同的内容,但针对的是名为“Plot”的新触发器。此图使用按钮上的 OnClick标记值发送 BroadcastSignal('Plot')。
在退出 StartSolver 的 ControlFlow 上,现在有一个行动“AcceptEvent”。它设置为按如下所示触发:
在属性窗口“触发器”选项卡上,您创建一个触发器,将“触发类型”设置为“信号”并为其创建信号。有关详细细节请参阅Win32用户接口仿真帮助主题。
取消按钮的配置方式与确定按钮(带有广播信号)相同,并且在 AcceptEventCancel 上设置触发器参考以使用“取消”触发器/信号。
运行仿真
运行仿真:
- 选择仿真丝带
- 点击“运行仿真>开始”