【问题标题】:"From workspace" Simulink“从工作区”Simulink
【发布时间】:2016-07-02 19:37:32
【问题描述】:

请,我正在模拟一个动态系统,其中一些输入带有数组形式的真实数据,例如 1*16 或存储在 Matlab 工作区中的 16*16 维矩阵。我一直在尝试在 Simulink 中使用“From Workspace”块。

块引用

我的模拟时间是 1:10 时间步长:0.01

块引用

我的目标:是在我的模拟过程中逐个元素地显示我的数组或矩阵的内容。enter image description here

非常感谢您提供任何有价值的答案。

【问题讨论】:

  • 您的 simulink 模型中的作用域块怎么样?
  • @Daniel 如果我很好地理解了您的问题,我会回答。是的,我有一个正弦源和不同的 matlab 函数,最后是一个示波器块,它给我相同的源,没有任何阻尼或衰减。我在我的数组之前加载了一个常量,但显然这就是问题所在,这就是为什么我需要使用“来自工作区”

标签: matlab simulink


【解决方案1】:

我建议使用timeseries 对象,而不是像您那样手动构建结构。它将促使您使用正确的数据结构并提供更好的反馈。

试试

%16 timestamps matching your data size, replace with your time infomration
time=0:.1:1.5;
%placeholder for your data
m=rand(1,16);
%create timeseries
ts=timeseries(m,time);

要在 MATLAB 中验证您的时间序列是否符合您的要求,请使用:

ts.plot(); %won't output anything useful with random data.

然后在 from Workspace 块中使用 ts

【讨论】:

  • ,首先感谢您的回复,否则我尝试加载我的数组“m”,如随附图片所示。它给了我“索引超过矩阵尺寸”。我做了 m([1,16],numel(time)) 。我不确定它是否正确! .再次感谢您,先生。
  • m是什么,你的数据还是你的时间信息?请把相关信息放入你的问题中,截图比较难看懂。
  • 是的,它是我的 1*16 数组。我试过这个:时间=1:.1:30;数据=m(:,16); ts=时间序列(数据,时间);我的数组“m”是 m=[1,1,8,1,1,1,1,1,1,1,8,1,1,1,1,8]
  • m 是您的数据时间吗?是不是这个问题的答案!
  • 对不起。 m 是我的数据不是时间。抱歉不清楚
猜你喜欢
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多