matlab gui怎么使用导入的数据库,如何将Simulink块中的数据导入MATLAB GUI?

Non-real-time solution:

如果要在GUI中设置参数,使用这些参数模拟模型,然后在GUI中显示模拟输出,那么blinkdagger.com上有一个很好的教程 . 他们描述的一种解决方案是使用SIMSET函数来定义Simulink模型与之交互的工作空间 . 您应该能够supersede the base workspace,以便将数据发送到调用Simulink模型的GUI函数的工作空间 .

Real-time solution

根据MikeT的建议,您可以使用RuntimeObject . 首先必须使用get_param函数从块中获取RuntimeObject:

rto = get_param(obj,'RuntimeObject');

其中 obj 是块路径名或块对象句柄 . 您可以使用GCB函数获取最近选择的块的路径名(在这种情况下,您可以将 obj 替换为 gcb ) . 然后,您可以使用以下内容获取块的输出:

blockData = rto.OutputPort(1).Data

文档中的另一个警告:

要确保“数据”字段包含正确的块输出,请在“配置参数”对话框的“优化”窗格中关闭“信号存储重用”选项(请参阅信号存储重用) .

您可能最终会在GUI中运行循环或计时器例程,只要模拟正在运行,就会连续从RuntimeObject获取输出数据 . 文件还说明:

仅当包含块的模型正在运行或暂停时,才存在运行时对象 . 如果模型停止,get_param将返回一个空句柄 . 停止或暂停模型时,运行时对象的所有现有句柄都将变为空 .

因此,您的循环或计时器例程必须首先检查RuntimeObject是否存在,并且要么停止(如果它不确定如何检查是否存在RuntimeObject,但我相信您要么检查对象是否为空或者如果对象的BlockHandle属性为空:

isempty(rto) % Check if the RuntimeObject is empty

%OR

isempty(rto.BlockHandle) % Check if the BlockHandle property is empty

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值