Stateflow使用方法課件_第1頁
Stateflow使用方法課件_第2頁
Stateflow使用方法課件_第3頁
Stateflow使用方法課件_第4頁
Stateflow使用方法課件_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Stateflow軟件使用方法Stateflow軟件簡介有限狀態(tài)機簡介各功能模塊的使用方法——yyStateflow的基本簡介:Statefolw

是一種圖形化的設(shè)計開發(fā)工具,是有限狀態(tài)機的圖形實現(xiàn)工具,也稱之為狀態(tài)流。主要用于simulink

中控制和檢測邏輯關(guān)系。使用這種圖形化的工具可以實現(xiàn)各個狀態(tài)之間的轉(zhuǎn)換,解決復雜的監(jiān)控邏輯問題。它和Simulink

同時使用使得Simulink

更具有事件驅(qū)動控制能力。有限狀態(tài)機簡介:Stateflow的仿真原理是有限狀態(tài)機(finitestatemachine,簡稱FSM)理論。所謂有限狀態(tài)機是指系統(tǒng)中存在可數(shù)的狀態(tài),在某些事件發(fā)生時,系統(tǒng)從一個狀態(tài)轉(zhuǎn)換成另一個狀態(tài),故又稱為事件驅(qū)動的系統(tǒng)。在有限狀態(tài)機的描述中,可以設(shè)計出由一種狀態(tài)轉(zhuǎn)換至另一種狀態(tài)的條件,并將每對可轉(zhuǎn)換的狀態(tài)均設(shè)計出狀態(tài)遷移的事件,從而構(gòu)造出狀態(tài)遷移圖。在MATLAB窗口中點開Simulink,在Simulink的library中點開Stateflow,將chart拖入一個新建的文件中,結(jié)果如下圖所示。雙擊untitled*窗口中的Stateflow模塊打開如圖下圖

所示的Stateflow編輯界面,用戶可以在此窗口中編輯所需的Stateflow模型。Stateflow提供了強大的圖形編輯功能,用戶可以使用它描述很復雜的邏輯關(guān)系式。1.狀態(tài)工具2.歷史交匯工具3.缺省狀態(tài)遷移工具4.交匯連接工具5.真值表6.圖形函數(shù)工具7.內(nèi)嵌Matlab函數(shù)8.模型整理工具10放大縮小工具9.函數(shù)調(diào)用

在Stateflow編輯界面中點擊鼠標右鍵,可以看到下圖(a)所示的快捷菜單,選擇其中的Properties(屬性)菜單,可以打開圖(b)所示的對話框,用戶可以在此對話框中設(shè)置整個Stateflow模型的屬性。用戶可以利用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)用(2)右擊建立的狀態(tài)圖標,并選擇快捷菜單中的Properties菜單項,可打開如下圖所示的設(shè)置狀態(tài)屬性的對話框??梢栽贚abel欄填寫狀態(tài)的名稱和動作描述。狀態(tài)名稱與動作的描述:(1)雙擊已拖出的狀態(tài)模塊右上角的問號,可在該位置填寫狀態(tài)的名稱及動作描述。狀態(tài)模塊的名稱狀態(tài)屬性設(shè)置對話框在Label欄填寫狀態(tài)的名稱和動作描述。選擇狀態(tài)動作狀態(tài)遷移標記可以含有觸發(fā)事件、遷移條件、條件動作及遷移動作,或他們中的任意組合。

狀態(tài)遷移標記的一般形式是:觸發(fā)事件[遷移條件關(guān)系式]{條件動作}/遷移動作觸發(fā)事件:表示只要遷移關(guān)系式是真,該觸發(fā)事件可以引發(fā)狀態(tài)的遷移。

缺省觸發(fā)事件時,任何事件均可在條件關(guān)系式為真的情況下引引發(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í)行。遷移動作寫在斜線’/’之后。缺省狀態(tài)轉(zhuǎn)移設(shè)置

ss3.缺省狀態(tài)轉(zhuǎn)移設(shè)置的作用是告訴Stateflow圖形,當它開始工作時,哪個狀態(tài)先處激活狀態(tài)。點擊Stateflow圖形編界面中的圖標,然后將鼠標移動到要設(shè)置為初始狀態(tài)的狀態(tài)即可。如圖:4.事件與數(shù)據(jù)設(shè)置前面為狀態(tài)遷移規(guī)定了遷移觸發(fā)事件的名稱,也就是說狀態(tài)的遷移僅在這些事件發(fā)生的時候才開始。為了利用這些事件觸發(fā),我們必須先定義這些事件。下面以下圖為例,講解如何定義on_switch和off_switch事件。從stateflow編輯界面的add菜單選擇Event,并在隨后彈出的下拉菜單下選擇InputfromSimulink,打開事件對話框,見圖。將事件對話框中的Name改為off_switch/on_switch,trigger選擇為Falling(即下降沿觸發(fā))/Rising(即上升沿觸發(fā)),點擊OK保存off_switch事件的設(shè)置。前面我們還為狀態(tài)設(shè)置了動作,如狀態(tài)On的動作描述為entry:speed=1,是希望在狀態(tài)On激活時將speed的值賦為1,這個數(shù)據(jù)是要在Simulink模型中使用的,所以要將數(shù)據(jù)傳遞到Simulink模型中。在能夠被利用之前,這個數(shù)據(jù)必須先定義。從stateflow編輯界面的add菜單選擇Data,并在隨后彈出的下拉菜單下選擇OutputtoSimulink,打開數(shù)據(jù)對話框,如圖;將數(shù)據(jù)名Name改為speed,點擊OK保存設(shè)置即可。另一種定義事件和數(shù)據(jù)的方式:在Stateflow編輯界面中,選擇Tools菜單中的Explore,將會打開模型管理器ModelExplorer。如圖:2025/10/10第24

頁點擊該處添加事件點擊該處添加數(shù)據(jù)使用Stateflow編輯界面中的交匯連接工具可以產(chǎn)生交匯連接點。該工具主要用于處理狀態(tài)遷移過程中的遷移信號的分離和匯合。簡單的使用了交匯連接工具的實例:事實上,交匯連接工具的合理使用可以完成非常復雜的邏輯關(guān)系:例如實現(xiàn)如下if_then判斷功能if[Cond1]{Action1if[Cond2]{Action2}elseif[Cond3]{Action3}}還可實現(xiàn)For循環(huán)功能:6、圖形函數(shù)的設(shè)置及其調(diào)用前面例子中的Stateflow圖中多次利用了條件關(guān)系式[temp>=120]。對于這種多次使用的關(guān)系式,我們可以設(shè)置一個圖形函數(shù)Function,使用時調(diào)用這個函數(shù)即可。狀態(tài)流的圖形函數(shù)是使用交匯連接工具和狀態(tài)遷移工具繪制的狀態(tài)流圖形。用戶可以建立一個圖形函數(shù),在里面加入流程圖,然后在狀態(tài)的動作和遷移過程中反復調(diào)用。因為調(diào)用函數(shù)時,函數(shù)必須執(zhí)行完全,所以圖形函數(shù)中不能含有狀態(tài)。一個最小的圖形函數(shù)至少要包含一個缺省狀態(tài)遷移和一個終止的交匯連接工具。要在一個Stateflow圖添加一個圖形函數(shù)Function,只需點擊Stateflow圖中的圖形函數(shù)工具

,移動鼠標至Stateflow圖中的適當位置,再點擊一下鼠標左鍵即可。在圖形函數(shù)function后寫入函數(shù)的返回變量及函數(shù)名格式為:返回形參=函數(shù)名(形參);回車后即可建立該圖形函數(shù)。一旦建立了圖形函數(shù),用戶可以在狀態(tài)流的狀態(tài)動作和狀態(tài)遷移中反復調(diào)用它,調(diào)用的格式與函數(shù)的格式完全相同,只是需要將形參換成實際的參數(shù)變量。這兩個工具必須有!2025/10/10第36

頁7、多層狀態(tài)的嵌套繼續(xù)上面的例子:當系統(tǒng)開始處于休眠狀態(tài)時,狀態(tài)Off激活時,狀態(tài)High和Low實際上均需要On_switch事件激活,這樣我們可以利用一個狀態(tài)來包含這兩個狀態(tài),這樣可以使Stateflow圖更簡單明了。下面說明如何進行多層狀態(tài)的設(shè)計以及多層狀態(tài)在仿真時如何進行狀態(tài)遷移的。可以將上層狀態(tài)包含的狀態(tài)遷移圖設(shè)置成子圖的形式。用戶只需在上層狀態(tài)On內(nèi)的任意點點擊鼠標右鍵,在出現(xiàn)的下拉菜單中選擇MakeContents中的Subchart即可。MakeContents中的Subchart具有復選功能,再選它時,上層狀態(tài)又變回非子圖形式了。雙擊打開子圖歷史交匯工具的功能和使用方法

ss8.功能:Stateflow

圖進入上層狀態(tài)時,缺省狀態(tài)遷移線連接的子狀態(tài)首先被激活。但在有些情況下,希望在進入上層狀態(tài)時首先激活前一次運行時最后激活的那個子狀態(tài)。這樣的要求可以通過在上層狀態(tài)中引入歷史交匯工具完成。使用方法:點擊Stateflow

圖左側(cè)的歷史交匯工具圖標,然后將鼠標移至上層狀態(tài)中的任意位置,再點擊鼠標即添加了一個歷史交匯工具。如圖:9、嵌入式M函數(shù)的設(shè)置及其調(diào)用嵌入式MATLAB函數(shù)使用戶可以利用MATLAB強大的功能,在Stateflow圖中編MATLAB語言函數(shù),調(diào)用MATLAB的各類函數(shù)。Simulink利用嵌入MATLAB函數(shù)的狀態(tài)流實現(xiàn)Simulink模型中嵌入MATLAB模塊功能。9、嵌入式M函數(shù)的設(shè)置及其調(diào)用單擊M文件圖標后將其拖入工作區(qū),在左上圖中問號處單擊寫入MATLAB函數(shù)名及其形參名,如MaxMin(x)雙擊新建的M文件會出現(xiàn)函數(shù)編輯窗口,當MATLAB中自帶函數(shù)不能實現(xiàn)所需功能,我們可以在該窗口編輯實現(xiàn)目標功能所需的函數(shù)。M文件圖標10、真值表的設(shè)置及其使用Stateflow模塊使用函數(shù)來處理在Stateflow圖中需反復處理的動作或判斷。在真值表中,用戶可以用條件、決策和動作來做邏輯判斷,并執(zhí)行相應的動作。對于純粹的邏輯來講,真值表比圖形函數(shù)更容易編寫、維護,也更容易閱讀。真值表還可以告訴用戶是否對于指定的條件做出了足夠的或過多的決策。10、真值表的設(shè)置及其使用Stateflow使用真值表函數(shù)實現(xiàn)邏輯決策及相應動作的執(zhí)行。Stateflow真值表含有條件、決策和動作。Condition(條件)列中的每個條件先要判斷是真(T)或假(F),對于上表,就是判斷x==1,y==1,z==1是否成立。每個條件可以如上表標記為T、F或-(即不論T或F)10、真值表的設(shè)置及其使用每個Decision(決策)列隱含著各個條件的“與”操作。表12.1中Decision1列中,當x==1為真,而y==1和z==1同時為假時,Decision1為真。執(zhí)行過程中,Stateflow會從Decision1開始判斷真值表中的每個決策,如果哪個Decision為真,就執(zhí)行該Decision對應的動作。如當x==1為真,而y==1和z==1同時為假時,Decision1為真,執(zhí)行動作將t置為1。表中的最后一個決策稱為缺省決策,它包含著除了前面列舉的決策外的所有其他決策。如果Decision1~3都是假的,則DefaultDecision自動為真,執(zhí)行其對應的動作,將t值置為4。10、真值表的設(shè)置及其使用單擊M文件圖標后將其拖入工作區(qū),在左上圖中問號處單擊寫入MATLAB函數(shù)名及其形參名,如MaxMin(x)雙擊新建的M文件會出現(xiàn)真值表編輯窗口,當內(nèi)嵌窗口不能實現(xiàn)所需功能,我們可以在該窗口編輯所需函數(shù)真值表圖標10、真值表的設(shè)置及其使用-真值表編輯窗口單擊增添條件編輯表和動作編輯表中的行數(shù)。單擊增添Decision決策的列數(shù)用Box工具整理狀態(tài)流程圖Boxes能夠很方便地用來整理Stateflow圖?!獃yBox的創(chuàng)建方法:(1)利用Stateflow編輯界面左邊的Box工具。

點擊圖標,將鼠標移至Stateflow編輯界面的適當位置,再點擊鼠標,即可創(chuàng)建一個Box對象,在Box的問號處寫入該Box的名稱。(2)可以先建立一個狀態(tài),將該狀態(tài)轉(zhuǎn)換為Box。右擊創(chuàng)建好的狀態(tài),在彈出的下拉菜單中選擇Type-Box即可創(chuàng)建一個Box對象。創(chuàng)建好Box工具后,用戶可以在此Box工具中創(chuàng)建其他的對象以完成一定的邏輯判斷功能。(3)有的時候,用戶可能已經(jīng)建立了一些對象了,這時,可以利用上述的兩種方法創(chuàng)建Box對象,然后將Box框擴大到能夠包含所以需要包入的對象。

圖形的打包處理:將所有的對象放入Box中后,用戶還可以將整個含對象的Box打包成一個圖形對象,只要右擊Box,在彈出的下拉菜單中選擇MakeContents-Group或簡單的雙擊該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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論