如何将数据从 Simulink 模块获取到 MATLAB GUI?

2023-12-01

我有一个 Simulink 模型,该模型使用嵌入式 MATLAB 函数作为模块,但我无法弄清楚如何在嵌入式 MATLAB 模块和 GUI 之间实时(即模型运行时)移动数据。我尝试在模型中实现“到工作区”块,但我不知道如何正确使用它。

有谁知道如何将数据从 Simulink 块实时移动到 GUI 中?


非实时解决方案:

如果您想在 GUI 中设置参数,使用这些参数模拟模型,然后在 GUI 中显示模拟输出,有一个很好的教程眨眼达格.com。他们描述的一种解决方案是使用SIMSET函数来定义 Simulink 模型与哪个工作区交互。你应该能够取代基础工作区这样数据就会被发送到调用 Simulink 模型的 GUI 函数的工作区或从该工作区发送出去。

实时解决方案

正如建议的MikeT,你可以使用运行时对象。你首先必须使用获取参数从块中获取 RuntimeObject 的函数:

rto = get_param(obj,'RuntimeObject');

Where obj是块路径名或块对象句柄。您可以使用以下命令获取最近选择的块的路径名GCB函数(在这种情况下你可以替换obj with gcb)。然后,您可以使用以下命令获取块的输出:

blockData = rto.OutputPort(1).Data

文档中的另一项警告:

确保数据字段包含 正确的块输出,关闭信号存储复用选项(参见 信号存储复用)上优化窗格中的配置参数对话框。

您最终可能会在 GUI 中运行一个循环或计时器例程,只要模拟正在运行,它就会不断从 RuntimeObject 获取输出数据。该文档还指出:

运行时对象仅存在于 包含该块的模型是 运行或暂停。如果模型是 停了下来,get_param返回一个空的 处理。当您停止或暂停一个 型号,所有现有手柄 运行时对象变空。

因此,您的循环或计时器例程必须首先检查 RuntimeObject 是否存在,然后停止(如果不存在)或从中获取数据(如果存在)。我不确定exactly如何检查 RuntimeObject 是否存在,但我相信您要么检查该对象是否为空,要么检查块句柄对象的属性为空:

isempty(rto)  % Check if the RuntimeObject is empty
%OR
isempty(rto.BlockHandle)  % Check if the BlockHandle property is empty
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将数据从 Simulink 模块获取到 MATLAB GUI? 的相关文章

  • 有没有C语言的跨平台GUI库? [复制]

    这个问题在这里已经有答案了 可能的重复 GUI 应用程序的跨平台 C 库 https stackoverflow com questions 2018850 cross platform c library for gui apps 有没有
  • 如何从矩阵的每一行中减去一个向量? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将矩阵的每一行除以固定行 https stackoverflow com questions 4723824 how can i divide each row of a matrix by a
  • 创建 QT 应用程序作为 Windows 上现有基于控制台的应用程序的 GUI

    我正在尝试使用 Qt 为现有应用程序设置一个 GUI 该应用程序旨在在 Windows 命令行中运行 这不仅仅是运行应用程序system 命令 但我需要通过命令行与现有应用程序交互 The system 当我启动现有的可执行文件时 命令会阻
  • 呈现模型与被动视图

    我想知道上述两种模式之间的区别 当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时 那么我认为这些模式非常相似 两者都将事件委托给演示模型 演示者 演示模型和演示者命令域模型 并且也观察域模型 当发生更改时 它们都与视图
  • MATLAB 引擎函数的输入参数

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 是否可以确定 dbEdit 中的文本是否比可见文本长?

    在某些表单上 我的 dbEdits 有时不够宽 无法显示其字段可能包含的所有文本 对于他们我有以下代码 procedure Tgm12edLots dbeLotNameMouseEnter Sender TObject begin with
  • 在Matlab中使用中心切片定理实现滤波反投影算法

    我正在研究一种使用中心切片定理的滤波反投影算法作为家庭作业 虽然我理解纸上的理论 但在 Matlab 中实现它时遇到了问题 我得到了一个可以遵循的框架 但我认为我可能误解了一个步骤 这是我所拥有的 function img sampleFB
  • 用户在对话框中输入

    python 中是否有任何库可用于图形用户输入 我知道关于tk但我相信需要一些代码才能做到这一点 我正在寻找最短的解决方案 a input Enter your string here 取而代之的是 我想要一个对话框 以便用户可以在那里输入
  • Python,Tkinter:如何使用线程防止 tkinter gui 主循环崩溃

    嗨 我有一个小的 python gui 界面 有两个按钮 开始 启动计数器 和停止 假设停止计数器 计数器是一个无限循环 因为我不希望它结束 除非第二个按钮是点击 问题是当第一个按钮的功能仍在运行时无法单击第二个按钮 我读到我需要使用线程并
  • 组织 GUI 代码

    我的问题有两个部分 有没有人对网络上的一些文档有任何关于如何编写易于阅读 编写和维护的 GUI 代码的提示或参考 Example 我发现我的 GUI 表单变得越广泛 我最终会得到一长串相当短的事件处理程序方法 如果我尝试添加任何私有辅助方法
  • XCode 7 中的 UI 测试文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道 WWDC 2015 上引入的 XCode 7 中的新 UI 测试是否有任何文档 如果没有文档
  • 如何使小部件溢出以使滚动条出现在 Qt 中?

    我的小部件的结构是 QWidget 定制为带有圆角边框的面板 要在边界内包含一个带有滚动条并带有边距的区域 然后我将其放入其中 QScrollArea 与 QVBoxLayout 垂直添加内容 然后我在其中添加一系列 标题间距为 0 的 Q
  • 类似于 iPhone(老虎机)的网络“选择器”选择框? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似 iPhone 的 选择器 控件 我可以在网络上使用它 可访问性不是问题 JavaS
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • 在 Matlab 2014b 中移动等高线图的 z 值

    我正在尝试绘制曲面图 在曲面下方我希望显示轮廓线 但我希望轮廓位于z 1而不是默认值0 我找到了之前关于这个问题的帖子here https stackoverflow com questions 8054966 matlab how to
  • jtree 编程式多选

    是否能够以编程方式选择 JTree 中的多个树节点 我已经设置了多选模式tree getSelectionModel setSelectionMode TreeSelectionModel DISCONTIGUOUS TREE SELECT
  • Swing 组件 - 禁用布局中的调整大小

    我有一个自定义 GUI 组件 它基于 Swing 的 JPanel 该组件放置在使用 BorderLayout 的 JFrame 中 当我调整框架大小时 该组件会不断调整大小 我怎样才能避免这种情况 我希望组件无论发生什么情况都保持相同的大
  • 将 Android 应用程序与服务器上的 Matlab 应用程序连接

    我正在 Android 上开发一个应用程序 它将获取图像输入 并将该输入传递到安装 MATLAB 应用程序的服务器 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序 我想知道我可以使用哪个服务器 如何将 MATLAB
  • 根据条件更改 JSlider 的最小值和最大值

    我正在 Netbeans 中创建 Swing GUI 此 GUI 的目的是打开一个 缓冲 图像 在 JLabel 中作为图标 并对其应用仿射变换 现在我正在做 4 个转换 如下所示 现在 每个变换都需要两个滑块来更改 X 和 Y 值 但旋转
  • 常见的 Web UI 样式

    在接下来的几天里 我必须向我的一位客户展示一个 Web 应用程序的原型 问题是我不太擅长 CSS 最糟糕的是我几乎对得到的结果不满意 编写业务逻辑对我来说没有任何挑战 但 UI 设计却占用了我 80 以上的时间 我不需要什么令人惊叹的东西

随机推荐