2012-10-12 130 views
2

如何根據某個值在Simulink Stateflow(狀態圖)中設置事件。我的意思是這個。 我有一個名爲「選擇」的變量。這種「選擇」成爲爲輸入從選擇的SIMULINK block.The值是1和4之間。因此,所有我想做的事情是這樣的:在Matlab/Simulink中設置事件Stateflow

if choice == 1 then trigger/set eventBlue 
if choice == 2 then trigger/set eventRed 
if choice == 3 then trigger/set eventWhite 
if choice == 4 then trigger/set eventGreen 
else trigger/set eventYellow 

讓我怎麼做呢?命令是什麼?

回答

1

我建議你看看Stateflow網絡研討會:http://www.mathworks.com/products/stateflow/。 stateflow也有很多例子可以幫助你理解如何使用這個庫。檢查這個幫助網頁: http://www.mathworks.com/help/stateflow/examples/index.html

很難確切地知道你想要做什麼,但是你可以繪製指示狀態變化的箭頭並添加一個函數來檢查變量選擇的值。首先,你必須配置你的狀態圖來承認'選擇'作爲simulink的輸入。定義狀態並在箭頭轉換中放置'[choice == 1]','[choice == 2]'等(沒有'')。

你應該得到的模型是這樣的: enter image description here enter image description here

脈衝發生器被配置爲創建零和一的序列,來激活轉換。

希望這有助於

1

對於你所描述的問題,我建議你看看Stateflow的inner transitions。使用內部轉換,你可以避免創建從每個狀態到其他狀態的轉換,例如[x==1]等等。

鏈接的文檔頁面上的示例應該給你一個關於如何實現這個的想法。