【问题标题】:Importing Data into Simulink Block Diagrams Issue将数据导入 Simulink 框图问题
【发布时间】:2013-03-26 05:44:07
【问题描述】:

致所有 MATLAB 和 Simulink 用户,

我正在做一个项目,在从 Simulink 模块中的“来自工作区的信号”导入数据时遇到问题。

我的情况:

我需要在 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;数据.signals.values = M; data.signals.dimensions=[565 2];

运行模拟时弹出此错误:

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

如果有人可以为我的案例提供见解/解决方案/替代方法,我将不胜感激。

谢谢!

问候, KO

【问题讨论】:

    标签: arrays matlab time import simulink


    【解决方案1】:

    看来你应该使用

    data.signals.dimensions = 2;
    

    例如

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

    【讨论】:

    • 嗨,Phil Goddard,我如何确定尺寸?如果 500 行 2 列 [500 2],维度等于 500x2=1000?对吗?
    • 不,1000 是数据元素的数量,而不是它的维度。假设您使用的是“基于样本”的数据,那么您有 2 个信号(每列一个),这就是维度为 2 的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多