将数据导入Simulink Block Diagrams问题

时间:2013-03-26 05:44:07

标签: arrays matlab time import simulink

致所有MATLAB和Simulink用户

我正在做一个项目,并且在Simulink块中从'Signal From Workspace'导入数据时遇到问题。

我的情况:

我需要在22秒的采样周期内将565行2列数据输入到我的Simulink框图中。每个数据采样时间为22/565。

但是,由于尺寸问题,输出数据为[565 x 2],会影响下游Simulink模块的输入。

例如,理想情况下,[1 x 2]输出乘以[2 x 1]并在22秒内重复565次。现在,由于尺寸的原因,[565 x 2]输出信号无法通过。

我尝试解决问题:

我尝试使用“来自工作区”而不是“来自工作区的信号”,但遇到了一些问题。

t = [0:22/565:22]'M(565行n 2列值)data.time = t; data.signals.values = M; data.signals.dimensions = [565 2];

运行模拟时会弹出此错误:

*“在'test / From Workspace'中指定为工作空间输入的无效结构格式变量。结构'维数'字段必须是标量或带有2个元素的向量。此外,此字段必须与维度兼容输入信号存储在'values'字段中。“*

如果有人能为我的案例提供见解/解决方案/替代方法,我深表感谢。

谢谢!

此致 KO

1 个答案:

答案 0 :(得分:1)

看起来你应该使用

data.signals.dimensions = 2;

例如

>> t= linspace(0,10,1001)';
>> data.time = t;
>> data.signals.values = [sin(t) cos(t)];
>> data.signals.dimensions = 2;