gpt4 book ai didi

matlab - 如何在仿真过程中将simulink数据导出到工作区?

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:43 26 4
gpt4 key购买 nike

我想在仿真过程中从simulink中检索数据,并使用串行网络功能将这些数据发送到另一个程序。因为我需要使用另一个程序来做一些技巧并将命令发送回 simulink,所以我必须在运行时从 simulink 获取数据,以便另一个程序可以发出正确的命令。

我试过使用 To Workspace block 导出数据。

enter image description here

但是,我只能在模拟的最开始得到值(value)。

而且我还尝试使用范围并更改一些属性:选中“将数据保存到工作区”并取消选中“限制数据到最后”。

enter image description here

enter image description here

首先,我开始仿真,发现工作区中没有出现ScopeData。只有当我停止仿真时,ScopeData 才会出现在工作区中。

enter image description here

然后,我可以使用 ScopeData.signals.values 来获取值。

但我想要的是:当我开始仿真时,ScopeData 会出现在工作区中,以便我可以将这些数据发送到其他程序。

有人知道如何实现吗?

我找到了 this page可能会有帮助,但我仍然不知道如何在仿真过程中连续导出数据。

最佳答案

使用get_param从当前时间读取数据。还可以使用 set_param 将数据发送回 Simulink增益或另一个 block 。

一个例子 get_param

首先加载开始模拟:

load_system('myModel')
set_param('myModel','SimulationCommand','Start');

要读取您的 simulink 模型的任何行上的数据:

  1. 获取一个 simulink block 对象(让我们试试名为 Clock 的时钟):

    block = 'myModel/Clock';
    rto = get_param(block, 'RuntimeObject');
  2. 然后在该 block 的第一个(或任何)输出端口(或输入)上获取数据。

    time = rto.OutputPort(1).Data;

您可以在计时器回调中进行读取。

这也可能有帮助:Command Line Functionality for Simulink

关于matlab - 如何在仿真过程中将simulink数据导出到工作区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com