2013-03-29 47 views
0

我正在使用導入到我的Simulink塊的工作區中的數據面臨問題。使用來自工作區塊的數據時,Simulink模型中的結果不正確

我的情況:

我做了一個簡單的框圖,實施此方法的實際Simulink模塊之前,模擬的結果。我利用'From workspace'塊來讀取數據和範圍以觀察輸出。這些是設置:

t=0:22/565:22 
a.time=t 
a.signals.values=ddata %ddata contains [565x1] datas 
a.signals.dimensions=1; 

我意識到範圍內的結果與數據不匹配。

我發現在本網站(http://blogs.mathworks.com/seth/2012/02/09/using-discrete-data-as-an-input-to-your-simulink-model/)Simulink解算器採取的步驟與輸入時間向量中指定的步驟不同。

試圖解決:

我的時間矢量設爲零,但有一個錯誤。

a.time=[]; 

錯誤:「指定了無效的連續採樣時間for'test /從工作區」連續採樣時間不允許時從工作區中的輸入是一個沒有數據的時間的結構爲了消除這種誤差,選擇離散。採樣時間或改變輸入數據,包括實時數據「

問題:

  1. 如何解決,而無需使用時間向量這個錯誤?

  2. 什麼是每個時間步進入Simulink塊而不是整個數據列表讀取一行的最佳方式?

我非常感謝,如果有人能提供見解/解決方案/替代方法,我的情況。

+0

你的模型做什麼?它實際上**有**連續狀態嗎?如果不是,你應該將求解器改爲'FixedStepDiscrete',這可能會很好地解決你的問題。 – wakjah

+0

我的模型是一個透視非線性觀察者。輸入是離散的,但該模型作爲連續模型工作。這對設置有什麼不同嗎? –

回答

0

數據中的時間向量對Simulink在模擬模型時將使用的時間步驟幾乎沒有影響。 將您的輸入時間/數據視爲Simulink將用於獲取每個時間步(它決定採用)的輸入值(使用插值)的查找表。

要強制Simulink在給定時間點採取措施,您需要更改「配置參數」對話框的「求解器」頁面上的參數。 這聽起來像你想要使用步長爲22/565的固定步長解算器。

+0

嗨,如果我的模型是一個連續模型的透視非線性觀測器,通過使用步長爲22/565的固定步長解算器,是否需要更改此設置? –

+0

許多(也許是大多數)連續時間模型使用可變步長求解器的可能性是。 –

相關問題