我有一个简单的想法,但我想很难在 simulink 上实现它。我使用 C 代码在 BeagleBone 和 simulink 块之间创建了一个 TCP/IP 服务器。我有一个连接到小猎犬骨头的开关作为输入,我的想法是在 simulink 块上显示开关是关闭还是打开。我不能这样做,因为我的客户端(simulink 块)是 ac 代码,它只会执行一次工作,因为 C 代码在返回后结束函数执行以获取开关的值。你们知道在 Simulink 客户端块和显示器之间传输数据的任何 simulink 传输模式或花哨的 C 技巧吗?
问问题
886 次
1 回答
0
在我一直在研究的模拟器中,我们使用带有远程 IP 地址和 IP 端口的 Sink 块将实时计算的数据导出到外部侦听器(这可以在同一台机器上或通过网络连接),在我们的例子中是一台进行图形渲染的计算机,然后由使用 Ogre 3D 编写的 C++ 代码和使用源代码块的另一个 simulink 模型拾取。
我们还有一个交互式海图仪显示屏(如果您愿意,可以显示 GPS 位置)。我们可以随时通过调用以下命令来访问从 simulink 生成的值:
variable = get_param('Simulator/Chartplotter/YDot','RuntimeObject');
您还可以调用“set_param”来修改位于 simulink 模型内的常量值。
我没有使用 beagle 的经验,但我想您可以让您的 C 代码执行 matlab 脚本,该脚本将修改您的 simulink 模型中存在的逻辑常量,以指示开关是否打开。
或者,您可以探索第一个选项,但我们仅使用它来将数据从 simulink 中获取到 C 程序中,而不是像您希望的那样反过来。不幸的是,我无法直接访问接收的 C 代码,但如果你真的被卡住了,我可以让我的同事把重要的部分发给我。
希望这可以帮助。
于 2013-02-23T10:06:15.460 回答