2017-02-09 146 views
0

所以我想要做的是这样的:我有一个simulink状态流模型。为了从这个模型中显示一些东西,我构建了一个GUI。在这个GUI中,我有一个按钮,应该在按下时将标志设置为true,我想在我的stateflow模型中使用它来启动转换。所以每当我在stateflow中进入一个特定的状态时,我将该标志的值设置为false,并且当我按下按钮时,我希望它设置为true。不幸的是我找不到任何方法来从GUI回调函数中设置stateflow中的本地参数。我试过使用数据存储块,但即使我可以从stateflow模型中设置值,但我无法从GUI的回调函数中设置值。从Matlab脚本写入DataStore

帮助将非常感激!

回答

0

我曾经构建过一个类似的GUI,我为Simulink模型添加了一个测试工具。 为了使这项工作成为可能,而不是过多地将Simulink设计作为“Level 2 Matlab S函数”来实现。

这确实意味着som接口开销(设置端口及其参数),但是您可以从stateflow图中获取任何信号进入或退出状态到这样的块(您可能需要az^- 1个反馈回路,如果你们都想获得输出和控制输入)。

可以从开始块调用GUI代码,并在“更新”段中读取值。如果按钮被激活,则将其保存在输出功能中评估的变量中,然后设置输出端以指示此事件(如果需要,使用复位逻辑)。

查看Level 2 Matlab S函数的在线帮助,特别是msfuntmpl_basic.m以便开始使用。

希望这会有所帮助。我想指出的是,这要求您将交互限制为stateflow具有输入/输出的那些交互。