Simulink模型调用外部图形程序

时间:2014-04-05 17:38:27

标签: matlab user-interface wrapper simulink

我知道我的头衔可能不是我试图做的最好的描述,但让我们看看我能不能在这里解释一下我的情况。

基本上,我想要实现的是附加一个Simulink模型,该模型在运行时会生成一组我希望在图形界面中显示的数据。我自己没有制作Simulink模型,之前也没有使用过Simulink,所以我想知道最好的方法是什么。数据可以实时更改,我希望显示器与输出数据相对应地更新。这最终将用于用户应该控制的游戏,因此实时反馈应该准确且延迟最小。

理想情况下,如果我制作游戏,我会用C ++或Java编写整个代码,但我们用来收集数据的输入设备依赖于simulink模块来处理数据。

我从另一个类似的问题(Access/Call Simulink from Python)看了这个:

http://simulinksimserv.sourceforge.net/

它是一个通过XML文件传输数据的服务器,但我想知道是否有更简单的方法将数据从Simulink传输到用Java / C / C ++ / Python编写的图形应用程序中有像SimServer这样的服务器的开销。

赞赏任何和所有建议。

2 个答案:

答案 0 :(得分:2)

我还会说它几乎完全取决于图形应用程序是什么。

我目前对此的想法(我一直在考虑大致相同的问题)是一个选项是编写一个函数来打开一个udp(或tcp)套接字连接到图形显示程序,并在每个模拟周期中通过套接字传输数据。然后,功能块将接受定义可视化状态所需的最低数据。

但是,这确实需要存在预定义的图形可视化和定制所述可视化的能力,以便添加套接字连接以接收数据。如果您知道一个简单而强大的程序可以做到这一点,我很想知道!

答案 1 :(得分:1)

我认为这在很大程度上取决于您打算用来显示数据的图形界面。例如,Aerospace Blockset具有FlightGear的本地接口,但这显然适用于飞行模拟器。

另一种方法是使用Simulink 3D Animation将数据从Simulink模型输出到VRML世界以进行动画制作。但是,这需要您在Simulink之外创建所述VRML世界并不是那么简单。话虽如此,它可能是Simulink最通用的动画路线。

最后,如果您正在研究3D机械系统仿真,SimMechanics具有一些不错的可视化功能,包括导入CAD模型(和图形)的可能性。

如果它是您正在谈论的自定义图形程序,那么您可能必须编写一个S函数来将Simulink连接到图形程序。这也是一种非常先进的策略,需要深入了解和理解Simulink的工作原理。