2010-09-06 27 views
0

在Rhapsody中 - 在創建之後,可以創建該類的許多類似對象(實例)。matlab Stateflow vs. Rhapsody

在MATLAB的Stateflow的工具 - 一個可以創建一個狀態是,據我所知,一個對象

是否有可能在matlab的stateflow工具中使用狀態作爲並創建一個或多個對象?

回答

0

Stateflow圖通常在Simulink中使用,並駐留在一個S函數(Simulink內的一個塊,具有與時間相關的輸入/輸出)。每個S函數將成爲狀態圖的一個實例。通常這些形成一個simulink模型,通過線連接塊。雖然我認爲也可以動態地做到這一點,但這遠遠超出了工具預期使用的舒適區域。

我已經使用庫從simulink模型中解耦了simulink(和stateflow塊)。我可以實例化它們中的很多(以圖形方式),並分別從它們的模型中更新它們。

0

Stateflow State不是一個對象。當從Stateflow圖表生成代碼時,狀態通常在「switch」語句中表示爲單個「案例」。他們沒有屬性或方法,也不能實例化。

其實我不知道可以在Stateflow或Simulink中創建類。這兩種工具都旨在以圖形方式表示算法,而不是類,關係或其他(抽象)對象。

2

我不知道這是你問的,但是你可以從stateflow類創建對象。

據我所知,stateflow有很多類。例如,狀態流狀態,狀態流連接,狀態流功能。

當您單擊以創建新狀態時,您正在創建一個新狀態類的對象。要以編程方式執行此操作,必須首先獲取stateflow對象的句柄(例如,這可以是一個完整的Stateflow圖或Stateflow圖)。

爲了得到這個句柄,你可以使用sfgco函數 - 這個函數獲取當前選中的stateflow對象的句柄(如果沒有被選中,你得到stateflow圖表對象的句柄)。

要創建具有作爲家長,你有手柄,你可以使用像這樣的Stateflow的對象類的新對象:

創建一個新的Stateflow的狀態:

state = sfgco; 
newState = Stateflow.State(state); %this creates a state inside the stateflow object selected by sfgco. 

更多信息查找Stateflow API pdf文件。