版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Stateflow的基本簡介:uStatefolw 是一種圖形化的設(shè)計開發(fā)工具,是有限狀態(tài)機的圖 形實現(xiàn)工具,也稱之為狀態(tài)流。u主要用于simulink 中控制和檢測邏輯關(guān)系。u使用這種圖形化的工具可以實現(xiàn)各個狀態(tài)之間的轉(zhuǎn)換,解決復(fù) 雜的監(jiān)控邏輯問題。u它和Simulink 同時使用使得Simulink 更具有事件驅(qū)動控制能力。第1頁/共57頁有限狀態(tài)機簡介: Stateflow 的仿真原理是有限狀態(tài)機(finite state machine,簡稱FSM)理論。 所謂有限狀態(tài)機是指系統(tǒng)中存在可數(shù)的狀態(tài),在某些事件發(fā)生時,系統(tǒng)從一個狀態(tài)轉(zhuǎn)換成另一個狀態(tài),故又稱為事件驅(qū)動的系統(tǒng)。 在有限狀態(tài)機的
2、描述中,可以設(shè)計出由一種狀態(tài)轉(zhuǎn)換至另一種狀態(tài)的條件,并將每對可轉(zhuǎn)換的狀態(tài)均設(shè)計出狀態(tài)遷移的事件,從而構(gòu)造出狀態(tài)遷移圖。第2頁/共57頁有限狀態(tài)機示意圖:Stateflow允許用戶:(1)建立有限的狀態(tài)。(2)用圖形的形式繪制出狀態(tài) 遷移的條件。(3)使用規(guī)定的命令設(shè)計狀 態(tài)遷移執(zhí)行的任務(wù)。 完成以上操作即構(gòu)造出整 個有限狀態(tài)機系統(tǒng)。注:Stateflow 模型一般是嵌在Simulink 模型下運行的,Stateflow 是由事件驅(qū)動的,這些事件可以來自某一個Stateflow 圖中,也可以來自Simulink。第3頁/共57頁 在MATLAB窗口中點開Simulink,在Simulink的li
3、brary中點開Stateflow,將chart拖入一個新建的文件中,結(jié)果如下圖所示。第4頁/共57頁 雙 擊 untitled* 窗口中的Stateflow 模塊打開如圖下圖 所示的Stateflow 編輯界面,用戶可以在此窗口中編輯所需的Stateflow 模型。Stateflow 提供了強大的圖形編輯功能,用戶可以使用它描述很復(fù)雜的邏輯關(guān)系式。1.狀態(tài)工具2.歷史交匯工具3.缺省狀態(tài)遷移工具4.交匯連接工具5.真值表6.圖形函數(shù)工具7.內(nèi)嵌Matlab函數(shù)8.模型整理工具10放大縮小工具9.函數(shù)調(diào)用第5頁/共57頁 在Stateflow 編輯界面中點擊鼠標右鍵,可以看到下圖(a)所示的快
4、捷菜單,選擇其中的Properties(屬性)菜單,可以打開圖(b)所示的對話框,用戶可以在此對話框中設(shè)置整個Stateflow 模型的屬性。第6頁/共57頁 用戶可以利用Stateflow 編輯界面左側(cè)的編輯工具繪制Stateflow圖形,下面介紹常用的編輯工具。1.狀態(tài)工具2.歷史交匯工具3.缺省狀態(tài)遷移工具4.交匯連接工具5.真值表6.圖形函數(shù)工具7.內(nèi)嵌Matlab函數(shù)8.模型整理工具10放大縮小工具9.函數(shù)調(diào)用第7頁/共57頁狀態(tài)工具 系統(tǒng)的狀態(tài)是指系統(tǒng)運行的模態(tài)。在Stateflow 下,狀態(tài)有兩種行為:活動的(active)和非活動的(inactive)。 單擊狀態(tài)工具按鈕并拖動
5、到編輯界面的空白處,即可繪制出一個狀態(tài)的示意模塊。我們可以在該模塊右上角的問號位置填寫狀態(tài)的名稱及動作描述。entry為一種狀態(tài)動作。右圖中狀態(tài)的動作描述為:entry:speed = 1,將speed 的值賦為1。 使用CtrlC 和CtrlV 或使用edit菜單下的復(fù)制及粘貼命令,即可再復(fù)制一個同樣的模塊。第8頁/共57頁(2)右擊建立的狀態(tài)圖標,并選擇快捷菜單中的Properties 菜 單項,可打開如下圖所示的設(shè)置狀態(tài)屬性的對話框??梢?在Label 欄填寫狀態(tài)的名稱和動作描述。狀態(tài)名稱與動作的描述:(1)雙擊已拖出的狀態(tài)模塊右上角的問號,可在該位置填寫狀態(tài) 的名稱及動作描述。狀態(tài)模塊
6、的名稱狀態(tài)屬性設(shè)置對話框在Label 欄填寫狀態(tài)的名稱和動作描述。選擇狀態(tài)動作第9頁/共57頁狀態(tài)遷移關(guān)系設(shè)置: 把鼠標放在一個狀態(tài)塊的邊界,當出現(xiàn)十字光標時按下鼠標鍵并拖動至另一個狀態(tài)的邊界釋放,可以繪制出從一個狀態(tài)到另一個狀態(tài)的連線。單擊此連線,在該連線上會出現(xiàn)一個問號,我們可以在該問號處添加狀態(tài)遷移標記。第10頁/共57頁 狀態(tài)遷移標記可以含有觸發(fā)事件、遷移條件、條件動作及遷移動作,或他們中的任意組合。 狀態(tài)遷移標記的一般形式是: 觸發(fā)事件遷移條件關(guān)系式條件動作/遷移動作觸發(fā)事件:表示只要遷移關(guān)系式是真,該觸發(fā)事件可以引發(fā)狀態(tài)的遷移。 缺省觸發(fā)事件時,任何事件均可在條件關(guān)系式為真的情況下
7、引 引發(fā)狀態(tài)的遷移。遷移條件關(guān)系式:寫在方括號中,該關(guān)系式為真時,觸發(fā)事件可以引發(fā)狀 態(tài)的遷移。條件動作:是指當遷移條件關(guān)系式一旦成立(即為真),就執(zhí)行的動作, 通常發(fā)生在遷移終點被確定有效之前。如果沒有規(guī)定遷移條件 關(guān)系式,則認為條件關(guān)系式為真,即刻執(zhí)行條件動作。條件動 作必須寫在花括號中。遷移動作:是指當遷移終點已經(jīng)確定有效,才執(zhí)行的動作。如果遷移包含 很多階段,遷移動作只有在整個遷移通道到終點確認為有效后 方可執(zhí)行。遷移動作寫在斜線/之后。第11頁/共57頁狀態(tài)遷移標記的一般形式舉例 上圖表明只要當條件關(guān)系式off_count=0 為真時,發(fā)生的事件off_switch 才可引發(fā)狀態(tài)On
8、至狀態(tài)Off 的遷移發(fā)狀態(tài)遷移。只要遷移條件off_count=0為真,即可執(zhí)行條件動作off_count+;當條件off_count=0為真,發(fā)生了off_switch 事件,遷移終點狀態(tài)Off 確認為有效,此時執(zhí)行遷移動作LED_off條件動作遷移關(guān)系表達式觸發(fā)事件遷移動作第12頁/共57頁 ss3.第13頁/共57頁 缺省狀態(tài)轉(zhuǎn)移設(shè)置的作用是告訴Stateflow圖形,當它開始工作時,哪個狀態(tài)先處激活狀態(tài)。點擊Stateflow 圖形編界面中的 圖標,然后將鼠標移動到要設(shè)置為初始狀態(tài)的狀態(tài)即可。如圖:第14頁/共57頁4.第15頁/共57頁 前面為狀態(tài)遷移規(guī)定了遷移觸發(fā)事件的名稱,也就是
9、說狀態(tài)的遷移僅在這些事件發(fā)生的時候才開始。為了利用這些事件觸發(fā),我們必須先定義這些事件。下面以下圖為例,講解如何定義on_ switch 和off_switch 事件。第16頁/共57頁 從stateflow 編輯界面的add 菜單選擇 Event,并在隨后彈出的下拉菜單下選擇 Input from Simulink ,打開事件對話框,見圖。 將事件對話框中的 Name 改為off_switch/on_switch,trigger 選擇為Falling (即下降沿觸發(fā))/Rising(即上升沿觸發(fā)),點擊 OK 保存off_switch 事件的設(shè)置。第17頁/共57頁 事件的范圍(Scope)
10、有三種選擇:Local 是指利用本 Stateflow 圖形界面產(chǎn)生的觸發(fā)事件; Input from Simulink 是指從 Simulink 模型引入事件至 Stateflow 圖形界面;Output to Simulink 是指將Stateflow 圖形界面產(chǎn)生的事件輸出到Simulink 模型中。 事件的觸發(fā)方式(Trigger)有四種選擇:Either、Rising、Falling 和 Function Call 。其中選擇Rising 或Falling 分別指利用事件的上升沿或下降沿觸發(fā);Either 是指不管上升沿還是下降沿事件均可以觸發(fā);Function Call 是一種函數(shù)
11、調(diào)用的觸發(fā)方式。 第18頁/共57頁 前面我們還為狀態(tài)設(shè)置了動作,如狀態(tài) On的動作描述為 entry:speed = 1 ,是希望在狀態(tài) On激活時將speed 的值賦為 1 ,這個數(shù)據(jù)是要在 Simulink 模型中使用的,所以要將數(shù)據(jù)傳遞到Simulink 模型中。在能夠被利用之前,這個數(shù)據(jù)必須先定義。第19頁/共57頁 從stateflow 編輯界面的add 菜單選擇 Data ,并在隨后彈出的下拉菜單下選擇 Output to Simulink ,打開數(shù)據(jù)對話框,如圖; 將數(shù)據(jù)名Name改為speed,點擊OK保存設(shè)置即可。第20頁/共57頁 常用設(shè)置: 數(shù)據(jù)范圍(Scope)可以設(shè)
12、置為Local(局部數(shù)據(jù))、Input(從Simulink 模型中輸入數(shù)據(jù))、Output(向 Simulink 模型輸出數(shù)據(jù))、 Constant(常數(shù))、parameter(變量)和Data store memory(存儲的數(shù)據(jù))六種形式。 數(shù)據(jù)的類型(Type)可以是Double(雙精度)、Single (單精度)、Int32(整數(shù))及 Boolean(布爾數(shù))等,也可以設(shè)置為 Inherited ,即繼承原來的設(shè)置。第21頁/共57頁另一種定義事件和數(shù)據(jù)的方式:在Stateflow 編輯界面中,選擇Tools菜單中的Explore,將會打開模型管理器 Model Explorer。如圖
13、:第22頁/共57頁2021-12-15第 23 頁點擊該處添加事件點擊該處添加數(shù)據(jù)第23頁/共57頁 ljm 第24頁/共57頁使用Stateflow編輯界面中的交匯連接工具可以產(chǎn)生交匯連接點。該工具主要用于處理狀態(tài)遷移過程中的遷移信號的分離和匯合。第25頁/共57頁簡單的使用了交匯連接工具的實例:第26頁/共57頁第27頁/共57頁第28頁/共57頁事實上,交匯連接工具的合理使用可以完成非常復(fù)雜的邏輯關(guān)系:例如實現(xiàn)如下if_then 判斷功能if Cond1 Action1if Cond2 Action2elseif Cond3Action3第29頁/共57頁還可實現(xiàn)For 循環(huán)功能:第3
14、0頁/共57頁6、圖形函數(shù)的設(shè)置及其調(diào)用第31頁/共57頁前面例子中的Stateflow 圖中多次利用了條件關(guān)系式temp=120。對于這種多次使用的關(guān)系式,我們可以設(shè)置一個圖形函數(shù)Function,使用時調(diào)用這個函數(shù)即可。狀態(tài)流的圖形函數(shù)是使用交匯連接工具和狀態(tài)遷移工具繪制的狀態(tài)流圖形。用戶可以建立一個圖形函數(shù),在里面加入流程圖,然后在狀態(tài)的動作和遷移過程中反復(fù)調(diào)用。因為調(diào)用函數(shù)時,函數(shù)必須執(zhí)行完全,所以圖形函數(shù)中不能含有狀態(tài)。一個最小的圖形函數(shù)至少要包含一個缺省狀態(tài)遷移和一個終止的交匯連接工具。第32頁/共57頁要在一個 Stateflow 圖添加一個圖形函數(shù)Function,只需點擊St
15、ateflow 圖中的圖形函數(shù)工具 ,移動鼠標至Stateflow 圖中的適當位置,再點擊一下鼠標左鍵即可。在圖形函數(shù)function 后寫入函數(shù)的返回變量及函數(shù)名格式為:返回形參函數(shù)名(形參);回車后即可建立該圖形函數(shù)。一旦建立了圖形函數(shù),用戶可以在狀態(tài)流的狀態(tài)動作和狀態(tài)遷移中反復(fù)調(diào)用它,調(diào)用的格式與函數(shù)的格式完全相同,只是需要將形參換成實際的參數(shù)變量。第33頁/共57頁這兩個工具必須有!第34頁/共57頁2021-12-15第 35 頁7、多層狀態(tài)的嵌套第35頁/共57頁繼續(xù)上面的例子:當系統(tǒng)開始處于休眠狀態(tài)時,狀態(tài)Off 激活時,狀態(tài)High 和Low 實際上均需要On_switch事件
16、激活,這樣我們可以利用一個狀態(tài)來包含這兩個狀態(tài),這樣可以使Stateflow 圖更簡單明了。下面說明如何進行多層狀態(tài)的設(shè)計以及多層狀態(tài)在仿真時如何進行狀態(tài)遷移的。第36頁/共57頁第37頁/共57頁第38頁/共57頁可以將上層狀態(tài)包含的狀態(tài)遷移圖設(shè)置成子圖的形式。用戶只需在上層狀態(tài)On 內(nèi)的任意點點擊鼠標右鍵,在出現(xiàn)的下拉菜單中選擇Make Contents 中的Subchart 即可。Make Contents 中的Subchart 具有復(fù)選功能,再選它時,上層狀態(tài)又變回非子圖形式了。第39頁/共57頁雙擊打開子圖第40頁/共57頁 ss8.第41頁/共57頁功能:Stateflow 圖進入
17、上層狀態(tài)時,缺省狀態(tài)遷移線連接的子狀態(tài)首先被激活。但在有些情況下,希望在進入上層狀態(tài)時首先激活前一次運行時最后激活的那個子狀態(tài)。這樣的要求可以通過在上層狀態(tài)中引入歷史交匯工具完成。使用方法:點擊Stateflow 圖左側(cè)的歷史交匯工具圖標 ,然后將鼠標移至上層狀態(tài)中的任意位置,再點擊鼠標即添加了一個歷史交匯工具。如圖:第42頁/共57頁9、嵌入式 M 函數(shù)的設(shè)置及其調(diào)用 嵌入式 MATLAB 函數(shù)使用戶可以利用MATLAB 強大的功能,在Stateflow 圖中編MATLAB 語言函數(shù),調(diào)用MATLAB 的各類函數(shù)。Simulink 利用嵌入MATLAB 函數(shù)的狀態(tài)流實現(xiàn)Simulink 模型
18、中嵌入MATLAB 模塊功能。第43頁/共57頁9、嵌入式 M 函數(shù)的設(shè)置及其調(diào)用 單擊M文件圖標后將其拖入工作區(qū),在左上圖中問號處單擊寫入MATLAB 函數(shù)名及其形參名,如MaxMin(x) 雙擊新建的M文件會出現(xiàn)函數(shù)編輯窗口,當MATLAB中自帶函數(shù)不能實現(xiàn)所需功能,我們可以在該窗口編輯實現(xiàn)目標功能所需的函數(shù)。M文件圖標第44頁/共57頁10、真值表的設(shè)置及其使用 Stateflow 模塊使用函數(shù)來處理在Stateflow 圖中需反復(fù)處理的動作或判斷。 在真值表中,用戶可以用條件、決策和動作來做邏輯判斷,并執(zhí)行相應(yīng)的動作。 對于純粹的邏輯來講,真值表比圖形函數(shù)更容易編寫、維護,也更容易閱讀
19、。真值表還可以告訴用戶是否對于指定的條件做出了足夠的或過多的決策。第45頁/共57頁10、真值表的設(shè)置及其使用 Stateflow 使用真值表函數(shù)實現(xiàn)邏輯決策及相應(yīng)動作的執(zhí)行。 Stateflow 真值表含有條件、決策和動作。Condition(條件)列中的每個條件先要判斷是真(T)或 假(F),對于上表,就是判斷x1,y1,z1 是否成立。每個條件可以如上表標記為T、F 或-(即不 論T 或F)第46頁/共57頁10、真值表的設(shè)置及其使用 每個Decision(決策)列隱含著各個條件的“與”操作。表12.1 中Decision1 列中,當x1 為真,而y1 和z1 同時為假時,Decisio
20、n1 為真。 執(zhí)行過程中,Stateflow 會從Decision1 開始判斷真值表中的每個決策,如果哪個Decision為真,就執(zhí)行該Decision 對應(yīng)的動作。如當x1 為真,而y1 和z1 同時為假時,Decision1為真,執(zhí)行動作將t 置為1。 表中的最后一個決策稱為缺省決策,它包含著除了前面列舉的決策外的所有其他決策。如果Decision13 都是假的,則Default Decision 自動為真,執(zhí)行其對應(yīng)的動作,將t 值置為4。第47頁/共57頁10、真值表的設(shè)置及其使用 單擊M文件圖標后將其拖入工作區(qū),在左上圖中問號處單擊寫入MATLAB 函數(shù)名及其形參名,如MaxMin(
21、x) 雙擊新建的M文件會出現(xiàn)真值表編輯窗口,當內(nèi)嵌窗口不能實現(xiàn)所需功能,我們可以在該窗口編輯所需函數(shù)真值表圖標第48頁/共57頁10、真值表的設(shè)置及其使用-真值表編輯窗口 單擊 增添條件編輯表和動作編輯表中的行數(shù)。 單擊 增添Decision 決策的列數(shù)第49頁/共57頁用Box工具整理狀態(tài)流程圖Boxes 能夠很方便地用來整理Stateflow 圖。yy第50頁/共57頁Box的創(chuàng)建方法:(1)利用 Stateflow 編輯界面左邊的Box 工具 。 點擊圖標 ,將鼠標移至Stateflow 編輯界面的適當位置,再點擊鼠標,即可創(chuàng)建一個Box 對象,在Box 的問號處寫入該Box 的名稱。(
22、2)可以先建立一個狀態(tài),將該狀態(tài)轉(zhuǎn)換為Box。 右擊創(chuàng)建好的狀態(tài),在彈出的下拉菜單中選擇TypeBox 即可創(chuàng)建一個Box 對象。 創(chuàng)建好 Box 工具后,用戶可以在此Box 工具中創(chuàng)建其他的對象以完成一定的邏輯判斷功能。第51頁/共57頁(3)有的時候,用戶可能已經(jīng)建立了一些對象了,這時,可以利用 上述的兩種方法創(chuàng)建 Box 對象,然后將Box 框擴大到能夠包含 所以需要包入的對象。第52頁/共57頁 圖形的打包處理: 將所有的對象放入Box 中后,用戶還可以將整個含對象的Box打包成一個圖形對象,只要右擊Box,在彈出的下拉菜單中選擇Make ContentsGroup 或簡單的雙擊該Box 對象,即可完成打包過程,打包的對象邊框變粗,如圖(a)內(nèi)保圖形的隱藏: 用戶也可以右擊Box,在彈出的下拉菜單中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)勞動合同范本簡易版
- 2025建筑物資租賃合同(大連安建)
- 2025拆遷合作合同范本
- 課題申報參考:考慮多減排項目并行的港口作業(yè)設(shè)備綠色轉(zhuǎn)型路徑設(shè)計與激勵機制研究
- 教育中的數(shù)字化互動與智能學(xué)習(xí)
- 心理健康課程在學(xué)生教育中的實施效果評估
- 2024年中尺度自動氣象站系統(tǒng)項目項目投資申請報告代可行性研究報告
- 追溯系統(tǒng)在農(nóng)產(chǎn)品質(zhì)量監(jiān)管中的重要作用
- 二零二五年度金融科技產(chǎn)品開發(fā)與應(yīng)用合同范本4篇
- 2025年浙科版七年級科學(xué)上冊階段測試試卷
- 2025河北邯鄲世紀建設(shè)投資集團招聘專業(yè)技術(shù)人才30人高頻重點提升(共500題)附帶答案詳解
- 慈溪高一期末數(shù)學(xué)試卷
- 天津市武清區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹脂項目環(huán)境影響評價
- 高端民用航空復(fù)材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 貴州省黔東南州2024年七年級上學(xué)期數(shù)學(xué)期末考試試卷【附答案】
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報告
- DB22T 3268-2021 糧食收儲企業(yè)安全生產(chǎn)標準化評定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
評論
0/150
提交評論