【问题标题】:Matlab/Simulink LookupTable with Workspace vectors带有工作区向量的 Matlab/Simulink LookupTable
【发布时间】:2016-04-22 23:45:06
【问题描述】:

我是 Simulink 的新手,我正在努力处理动态查找表(输入:x、xadta、ydata;输出:y)。

我的工作区中存储了几个 2D 向量(xdata 和 ydata),我想在动态查找表的 Simulink 中使用它们来根据 Simulink (x) 中的另一个变量返回一个值 (y)。 如果我了解它是如何工作的,我必须首先将我的二维向量转换为结构(时间、值、维度)以在 Simulink 中读取? 所以我这样做了,但我得到了一个错误:

    vector.time = xdata; % dimension 1x100
    vector.signals.values = ydata; % dimension 1x100
    vector.signals.dimensions = [1 100];
    save('vector.mat','vector')

错误

"每个维度的最后一个维度 'signals.values' 字段必须与 'time' 字段中的行数相同。”

此外,我不确定我正在尝试做的事情是否合适......我使用我的向量/结构的 xdata 作为结构中的“时间”,以使我的向量在 Simulink 中可读。但我认为这与时间观念无关。我只希望动态查找表返回与“x”=“xdata”的值相对应的向量/结构的“ydata”值。模拟中只有“x”随时间变化。

【问题讨论】:

    标签: matlab simulink lookup-tables


    【解决方案1】:

    看起来您应该只使用 1D Lookup Table,并将您的 xdataydata 变量(在您的 MATLAB 工作区中定义)用作模块参数。

    至于您遇到的错误,它似乎与使用 From File 块(看起来您正在使用该块将数据导入模型)而不是查找表本身有关。要让它发挥作用,请将您的时间向量定义为列向量,而不是您所做的行向量,并将每一行视为不同的时间点。

    在每个时间点,您都会得到不同的信号值。这就像一个查找表本身(查找每个不同时间值的信号值),但听起来不像您真正想要实现的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多