2011-12-21 98 views
1

我想以編程方式調整一些Simulink參數,即指定外部輸入和初始狀態。 Mathworks的幫助文檔Data Import/Export顯示瞭如何以可視化和編程方式進行操作。顯然對於外部輸入,我需要指定LoadExternalInputs'on';我想重寫通過ExternalInput[myTimeVar, myInputVar]的默認外部輸入,如鏈接中所述。Simulink - 以編程方式指定外部輸入

試圖運行命令

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', [myTimeVar, myInputVar]); 

產生以下錯誤消息:在block_diagram 'mySim' 的參數

設置無效 'ExternalInput'

如果我不應該在sim()呼叫中指定我的外部輸入,我應該在哪裏做?我很困惑如何指定我的輸入和狀態。

回答

3

的ExternalInput參數必須是字符串,嘗試:

sim('mySim', 'LoadExternalInputs', 'on', 'ExternalInput', '[myTimeVar, myInputVar]'); 
+0

非常感謝!文檔不一致,看起來像,它說'ExternalInput'默認爲'[t,u]'而不是''[t,u]''。 – 2011-12-22 03:44:31

0

help sim在MATLAB顯示我不同的命令格式比你使用的是什麼:

[t,x,y] = sim(model,timespan,options,ut); 

我想,也許這是你想要的嗎?

sim('mySim', myTimeSpan, [], [myTimeVar, myInputVar]); 

(其中myTimeSpan是時間跨度來模擬過度)

+0

這是一個不推薦的調用,我不能指定它的初始狀態..雖然我也研究過,但它不像新語法那樣健壯。 – 2011-12-21 23:53:57

+0

啊,我的歉意,我使用的是舊版本,並不知道新的語法 – 2011-12-21 23:59:55

2

如@MikeT,所述sim命令指出以參數名稱值的方式工作,所以參數名稱和值都必須是字符串。該命令應該是:

sim('mySim','LoadExternalInput', 'on', 'ExternalInput', [myTimeVar, myInputVar]); 

我相信參數'LoadExternalInput'是沒有必要的,但在任何情況下,'LoadExternalInput'而非'LoadExternalInputs'

注#1:

當使用sim,Simulink的自動切換工作區模型的,所以如果sim是一個MATLAB中執行一個可能會出錯我get_param('modelName','ObjectParameters')

一些重要的話打消了它函數或unitTest。

備註#2

在一對'ExternalInput','Inputs''Inputs'應包含的所有的列向量輸入的列方向的級聯,開始與時間向量:'[myTimeVar, myInputVar1, myInputVar2, ..., myInputVarN]',它們全部列向量。

+0

參數''LoadExternalInput'' **是**必需的。我在數學工作頁面上搜索了很長時間的這個參數,直到我在這裏找到它。 – Reza 2016-09-23 08:08:19