2016-01-17 45 views
0

我是Simulink的新成員,我正在使用動態查找表(輸入:x,xadta,ydata;輸出:y)。帶有工作空間矢量的Matlab/Simulink LookupTable

我有幾個存儲在我的工作區中的2D矢量(xdata和ydata),我想在動態查找表的Simulink中使用它們來根據Simulink(x)中的另一個變量返回值(y)。 如果我理解它是如何工作的,我首先需要在Simulink中讀取結構(時間,值,維度)中的2D向量? 所以,我沒有這樣說,但我得到了一個錯誤:

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

錯誤

「每個 ‘signals.values’字段的最後一個維度必須是一樣的行數在'時間'字段中。「

此外,我不確定我正在嘗試做什麼是合適的......我使用我的向量/結構的xdata作爲結構中的「時間」,以使我的向量在Simulink中可讀。但我認爲這與時間觀念無關。我只想讓動態查找表返回對應於「x」=「xdata」值的向量/結構的「ydata」值。模擬中只有「x」隨時間變化。

回答

0

看起來應該只使用1D Lookup Table,將xdataydata變量(在MATLAB工作區中定義)用作塊參數。

至於你得到的錯誤,它似乎與使用From File塊(它看起來像你用來獲取數據到你的模型中)而不是查找表本身有關。爲了達到這個目的,將你的時間向量定義爲列向量,而不是像你所做的那樣將行向量定義爲不同的時間點。

在每個時間點,你會得到不同的信號值。這就像查找表一樣(查找每個不同時間值的信號值),但聽起來並不像你真正想要達到的。