2012-08-08 50 views
3

我們正在嘗試將一個仿真模型作爲一個塊集成到Simulink中。我們有它加載一個包含函數導一個m文件,自定義連續的塊輸出等獲取求解器類型和步長(對於固定步長解算器)

我的問題是:有沒有辦法找出哪些求解器目前正在與該參數一起使用?我們的模型將無法支持可變時間求解器,我想提出警告。同樣,該模型需要固定的步長時間進行初始化。

在此先感謝。

+0

對於時間步長:你可以把一個變量(例如'Ts')在配置時間步長,你只需要在初始化過程中進行設置(例如,在init回調),並可以再次在其它塊以後使用它。 – 2012-08-08 16:05:51

回答

3

你可以使用

get_param('modelName', 'SolverName'); 

一些其他常見的求解器參數都

AbsTol 
FixedStep 
InitialStep 
ZcThreshold 
ExtrapolationOrder 
MaxStep 
MinStep 
RelTol 
SolverMode 

你可以找到其他的參數,你可能希望通過打開.mdl文件查詢當前的求解器名稱文件在你最喜歡的文本編輯器中,並通過它進行挖掘。

1

如果我正確理解你的使用情況,您要確定解算器(和其他求解PARAMS)的包含您的塊頂級SIMULINK系統類型。

我認爲有以下應該給你你想要的東西:

get_param(bdroot, 'SolverType'); % //Returns 'Variable-step' or 'Fixed-step' 
get_param(bdroot, 'FixedStep'); % //Returns the fixed step size 

注意,對於一般性/重用的目的,這裏採用bdroot識別頂層系統(而不是明確指定的這個名字系統)。

如果您想了解更多有關的其他模型參數,你可以得到/套,我想看看這個doc

另外,我想知道爲什麼它是你的模型不支持可變步長求解?