2014-03-05 38 views
1

我想使用腳本在simulink中創建和定義變體子系統。在simulink中,以編程方式創建變體子系統

我能夠使用add_block創建變體子系統並在其中添加子系統,但無法通過使用get_param命令找到定義變體子系統的相應屬性。

我用圖形方式配置變體子系統的方式是右鍵單擊塊並轉到塊參數,然後爲每個子系統添加變體控制條件。

我想做同樣的事情,但從一個m文件,以便我可以編程創建多個塊。

我檢查了文檔和谷歌搜索,但找不到任何東西。

在此先感謝。

+1

我甚至不想知道你爲什麼想以編程方式做到這一點,但你也許能找到你在文本編輯器中打開模型,並在尋找尋找答案子系統的屬性。您應該可以通過反覆試驗將'get_param' /'set_param'設置爲正確的設置。 – Praetorian

+0

在文本編輯器中打開文件(btw,對於.slx文件,首先必須使用zip程序將其解壓縮,然後在編輯器中打開xml文件)我能夠看到變體條件存儲在子系統中變體子系統,不在頂級變體子系統內。因此,您將條件存儲在每個子系統的「VariantControl」參數中。例如:'set_param(sys,'VariantControl','a == 1')'其中'sys'是變體子系統內的一個子系統。 – ashah

回答

1

根據@Praetorian的評論,我在文本編輯器中打開了模型,並找到了定義變體條件的參數行。

我發現變體條件存儲在變體子系統內的子系統中,而不是在頂級變體子系統內。

因此,您將條件存儲在每個子系統的「VariantControl」參數中。

示例: set_param([variantSys '/' sys],'VariantControl','a==1')其中sys是變量子系統variantSys中的子系統。

0

變體控件應寫在模型的回調函數中。爲了將simulink變體控件提供給模型,應該在工作區中創建變量。要發生這種情況,您需要在PreLoadFcn上放置Sys = Simulink.Variant(Mode == value)等。

檢查訪問PreLoadFcn並把公式放在那裏,然後你的表將被自動填充。

如果你不介意你能告訴我你是如何創建變體子系統的嗎?

好運

相關問題