Stateflow matlab教程PPT學(xué)習(xí)課件_第1頁
Stateflow matlab教程PPT學(xué)習(xí)課件_第2頁
Stateflow matlab教程PPT學(xué)習(xí)課件_第3頁
Stateflow matlab教程PPT學(xué)習(xí)課件_第4頁
Stateflow matlab教程PPT學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、狀態(tài)流系統(tǒng)建模技術(shù),2010年7月5日,1,執(zhí)行摘要,狀態(tài)流和基本概念簡介創(chuàng)建狀態(tài)圖,狀態(tài)轉(zhuǎn)換流圖,建模狀態(tài)圖的分層并行機(jī)制,2,狀態(tài)流簡介2,狀態(tài)流是一個交互式設(shè)計工具,用于建模和模擬復(fù)雜的事件驅(qū)動模型系統(tǒng)。通過與Simulink和MATLAB的緊密結(jié)合,Stateflow將復(fù)雜的控制和監(jiān)控邏輯有效地結(jié)合到Simulink模型中,為Simulink用戶設(shè)計嵌入式系統(tǒng)提供了一個完美的解決方案。Stateflow簡介3、Stateflow可以做到:基于有限狀態(tài)機(jī)理論對復(fù)雜響應(yīng)系統(tǒng)進(jìn)行可視化建模和仿真,設(shè)計和開發(fā)復(fù)雜的監(jiān)控邏輯,并通過在同一個Stateflow框圖中使用流程圖和狀態(tài)轉(zhuǎn)移圖表示,從模

2、型中自動生成整數(shù)或浮點代碼,可以隨時方便地修改設(shè)計、評估結(jié)果和驗證系統(tǒng)性能。stateflow基本概念、動作數(shù)據(jù)對象連接節(jié)點默認(rèn)轉(zhuǎn)換、狀態(tài)轉(zhuǎn)換事件條件、有限元狀態(tài)機(jī)、5、示例:DVD播放機(jī)、8默認(rèn)轉(zhuǎn)換、1狀態(tài)、2轉(zhuǎn)換、3事件、4條件、5動作、7連接節(jié)點、6計數(shù)器數(shù)據(jù)對象、狀態(tài)機(jī)執(zhí)行摘要、狀態(tài)流和基本概念簡介:創(chuàng)建狀態(tài)圖、狀態(tài)轉(zhuǎn)換流程圖、建模狀態(tài)圖的分層并行機(jī)制、7、創(chuàng)建狀態(tài)圖、插入框圖、在MATLAB命令窗口中輸入sfnew、直接將圖表塊從狀態(tài)流庫拖動到模型、拖動、8、創(chuàng)建每個圖表稱為一個狀態(tài)流圖塊,每個圖塊都有一個對應(yīng)的狀態(tài)流框圖,模型中所有圖塊的集合稱為狀態(tài)流狀態(tài)機(jī),并且只有一個、狀態(tài)機(jī)、

3、圖塊、圖塊,雙擊、圖塊中包含的內(nèi)容,9、創(chuàng)建一個狀態(tài)圖編輯器。您可以使用編輯器來開發(fā)狀態(tài)流框圖。在模擬過程中,您可以使用編輯器來顯示狀態(tài)圖的執(zhí)行過程。10、創(chuàng)建狀態(tài)圖編輯器,并鎖定框圖:文件圖表屬性鎖定選項、11、創(chuàng)建狀態(tài)圖以插入狀態(tài)和節(jié)點,首先單擊選擇對象按鈕,然后在編輯區(qū)域左鍵單擊拖放對象以插入對象的多個副本,雙擊對象按鈕,然后在編輯區(qū)域左鍵單擊添加,右鍵單擊停止添加要刪除的對象,選擇、12、后按刪除鍵刪除,并創(chuàng)建狀態(tài)圖的縮放,縮放范圍為20%到500%。左鍵單擊縮放按鈕的上部放大。左下縮放點擊兩個縮放按鈕的中間,調(diào)用下拉菜單選擇縮放比例。將鼠標(biāo)移動到兩個縮放按鈕的中間位置。保持左鍵不動,

4、直到出現(xiàn)雙箭頭。上下拖動可縮放。2個縮放按鈕、13、創(chuàng)建狀態(tài)圖以更改狀態(tài)大小。通過用左鍵拖動來保持狀態(tài)的圓角。當(dāng)鼠標(biāo)移動到狀態(tài)的圓角時,會出現(xiàn)一個雙箭頭。也就是說,您可以用左鍵保留此圓角,然后拖動它直到大小令人滿意,14,創(chuàng)建狀態(tài)圖以更改節(jié)點大小,右鍵單擊節(jié)點,彈出快捷菜單,然后選擇“交叉點大小”選項以選擇所需的大小,15,創(chuàng)建狀態(tài)圖以移動和復(fù)制對象,左鍵單擊以保留和拖動對象,移動狀態(tài)或右鍵單擊以保持拖動對象, 復(fù)制一個對象如果你想移動或復(fù)制一組對象,你應(yīng)該首先選擇你感興趣的對象,然后按照上面的方法操作。 注意:單擊時,必須指向?qū)ο蟮倪吘?,并為狀態(tài)圖的狀態(tài)創(chuàng)建一個標(biāo)簽。每個州都必須有一個名字。

5、當(dāng)標(biāo)簽處于狀態(tài)時,左鍵單擊問號并在光標(biāo)處輸入文本。請注意,當(dāng)鼠標(biāo)指針接近問號時,它是如何變化的。狀態(tài)名應(yīng)該以中間沒有空格的字符串開頭,但是可以寫成多行。編輯狀態(tài)標(biāo)簽時,左鍵單擊標(biāo)簽進(jìn)入文本編輯模式。17、創(chuàng)建狀態(tài)圖創(chuàng)建一個轉(zhuǎn)換,從源對象的邊緣按住它,并將其拖到目標(biāo)對象的邊緣。在狀態(tài)中,過渡只能在直線的邊緣開始或結(jié)束(在狀態(tài)中,它不能是圓角)。當(dāng)鼠標(biāo)指針接近狀態(tài)的直邊時,光標(biāo)會變成十字。默認(rèn)情況下,傳輸?shù)拇_切行為是有效的。要使其無效,您可以右鍵單擊傳輸并清除快捷菜單上的智能選項。18、創(chuàng)建狀態(tài)圖創(chuàng)建默認(rèn)過渡,左鍵單擊圖形編輯器左側(cè)工具欄上的第三個按鈕,然后左鍵單擊默認(rèn)狀態(tài)的直線邊緣。如果轉(zhuǎn)換與狀

6、態(tài)或節(jié)點的邊緣分離,它將成為默認(rèn)轉(zhuǎn)換。19、創(chuàng)建狀態(tài)變化圖的過渡,從一個狀態(tài)的邊緣到另一個狀態(tài)的邊緣,您可以改變過渡的任何一端(帶或不帶箭頭):左鍵保持在您想要改變的過渡的末端,然后將它從原始邊緣拖開以到達(dá)所需目標(biāo)的邊緣,釋放過渡的末端, 如果要在不影響轉(zhuǎn)場兩端連接的情況下更改轉(zhuǎn)場路線,請重新連接轉(zhuǎn)場,左鍵單擊轉(zhuǎn)場兩端之間的線,然后拖動以更改它。 20、創(chuàng)建狀態(tài)圖轉(zhuǎn)換標(biāo)簽并移動,標(biāo)記轉(zhuǎn)換:左鍵單擊轉(zhuǎn)換選擇它,左鍵單擊問號,并在光標(biāo)處插入文本。左鍵單擊文本,進(jìn)入文本編輯模式,編輯傳送的標(biāo)簽。移動轉(zhuǎn)移的標(biāo)簽:左鍵單擊標(biāo)簽位置并將其拖動到所需位置。您可以將轉(zhuǎn)移的標(biāo)簽移動到框圖中的任何位置。21、創(chuàng)建

7、一個狀態(tài)圖并添加注釋。在框圖中的指定位置添加注釋:右鍵單擊要在框圖中注釋的位置。彈出快捷菜單,選擇快捷菜單中的添加注釋選項,在光標(biāo)處插入文本,左鍵單擊文本進(jìn)入編輯模式,編輯文本,注釋,22,創(chuàng)建狀態(tài)圖,自定義對象屬性,右鍵單擊對象,彈出快捷菜單,選擇屬性選項,將出現(xiàn)關(guān)于該對象的屬性對話框。不同的對象有不同的屬性對話框。傳輸屬性對話框、狀態(tài)屬性對話框、23、創(chuàng)建狀態(tài)圖并設(shè)置字體大小。設(shè)置標(biāo)簽的字體大小以及狀態(tài)和傳送的注釋信息:通過左鍵單擊所選對象,選擇編輯菜單下的設(shè)置字體大小選項,或通過對象的快捷菜單進(jìn)行設(shè)置;右鍵單擊對象以選擇字體大小選項,以選擇合適的大小;24、創(chuàng)建狀態(tài)圖以設(shè)置箭頭大小并修改

8、傳送箭頭大?。河益I單擊傳送以彈出快捷菜單,并從箭頭大小子菜單中選擇適當(dāng)?shù)拇笮 臓顟B(tài)的快捷菜單中設(shè)置此選項,指向狀態(tài)邊緣的所有箭頭的大小都將改變。25、創(chuàng)建狀態(tài)圖圖形顯示配置,并配置框圖的圖形樣式。包括自定義狀態(tài)、過渡、節(jié)點、標(biāo)簽和背景的顏色,以及狀態(tài)和過渡標(biāo)簽的字體。通過選擇“編輯”菜單下的樣式選項進(jìn)行編輯,打開“圖形樣式”對話框。在對話框中:左鍵單擊對象或標(biāo)簽,設(shè)置顏色,右鍵單擊標(biāo)簽,設(shè)置字體,26,執(zhí)行摘要,Stateflow簡介和基本概念創(chuàng)建狀態(tài)圖,狀態(tài)轉(zhuǎn)換流程圖對狀態(tài)圖的層次并行機(jī)制進(jìn)行建模,27,狀態(tài)轉(zhuǎn)換概念,Stateflow狀態(tài)圖被稱為“狀態(tài)轉(zhuǎn)換圖”,這些狀態(tài)圖包含所謂的狀態(tài),

9、狀態(tài)轉(zhuǎn)換管理和當(dāng)前活動狀態(tài)在內(nèi)存中的維護(hù)。一旦包含狀態(tài)轉(zhuǎn)換的狀態(tài)圖處于活動狀態(tài),狀態(tài)圖將保持在該活動狀態(tài),直到整個模型仿真計算完成。當(dāng)必要的工作在某個時間步長內(nèi)完成時,狀態(tài)圖只是進(jìn)入暫時掛起狀態(tài),而不是非活動狀態(tài)。也就是說,狀態(tài)圖在兩個連續(xù)的觸發(fā)事件之間總是活動的。28、狀態(tài)轉(zhuǎn)移的概念(續(xù)),狀態(tài)轉(zhuǎn)移的Stateflow狀態(tài)圖相當(dāng)于一個包含離散系統(tǒng)模塊的觸發(fā)子系統(tǒng)。這個子系統(tǒng)在內(nèi)存中保持自己的狀態(tài),當(dāng)有觸發(fā)器時更新自己的輸出,并在兩個連續(xù)的觸發(fā)器之間保持自己的狀態(tài)。29、狀態(tài)轉(zhuǎn)移的概念(續(xù)),當(dāng)一個狀態(tài)轉(zhuǎn)移圖處于活動狀態(tài)時,這個狀態(tài)轉(zhuǎn)移圖首先試圖激活相應(yīng)的狀態(tài)和相鄰狀態(tài)。如果狀態(tài)機(jī)在第一層,執(zhí)

10、行的第一個元素是系統(tǒng)的默認(rèn)轉(zhuǎn)換。由于狀態(tài)機(jī)總是在模型運行結(jié)束之前處于活動狀態(tài),因此默認(rèn)轉(zhuǎn)換只有效一次,即狀態(tài)機(jī)第一次被激活,這一點必須注意。如果第一級狀態(tài)只有一個狀態(tài),則不能使用默認(rèn)轉(zhuǎn)換。一旦進(jìn)入某個狀態(tài),它將一直保持活動狀態(tài),直到您退出。類似于狀態(tài)機(jī),狀態(tài)在兩個連續(xù)的觸發(fā)器之間暫停,而不變?yōu)榉腔顒訝顟B(tài)。30、狀態(tài)轉(zhuǎn)換事件驅(qū)動,所謂事件指的是觸發(fā)器的發(fā)生。觸發(fā)器可以隱式存在,并根據(jù)預(yù)設(shè)配置自動發(fā)生。同樣,觸發(fā)器也可以顯式定義。當(dāng)具有過零特性的信號出現(xiàn)或被函數(shù)調(diào)用時,觸發(fā)發(fā)生,即發(fā)出事件。由該觸發(fā)器引起的相應(yīng)動作執(zhí)行在Stateflow中稱為事件驅(qū)動,所有狀態(tài)圖的操作都依賴于事件驅(qū)動。換句話說,

11、狀態(tài)圖是活動的,取決于事件。事件也會驅(qū)動狀態(tài)變化。每當(dāng)它被觸發(fā)時,狀態(tài)圖將被再次判斷。31、狀態(tài)轉(zhuǎn)換由過零觸發(fā),過零有三種形式:1上升沿觸發(fā):過零信號從負(fù)值變?yōu)檎?,或從?fù)值變?yōu)?,或從0變?yōu)檎?下降沿觸發(fā):過零信號從正值變?yōu)樨?fù)值,或從正值變?yōu)?,或從0變?yōu)樨?fù)值3雙沿觸發(fā):上述兩種觸發(fā)機(jī)制的組合、下降沿、上升沿、 30以下模塊可用于在Simulink中產(chǎn)生相應(yīng)的過零信號:振蕩函數(shù)脈沖發(fā)生器的階躍信號(每個階躍信號只能產(chǎn)生一個事件)雙端輸入開關(guān)靜態(tài)模塊,33、狀態(tài)轉(zhuǎn)換輸入事件定義、事件類型,34、狀態(tài)轉(zhuǎn)換定義多個輸入事件、35、狀態(tài)轉(zhuǎn)換默認(rèn)轉(zhuǎn)換注釋,當(dāng)父狀態(tài)再次從非活動狀態(tài)進(jìn)入活動狀態(tài)時,將再

12、次執(zhí)行默認(rèn)轉(zhuǎn)換。 當(dāng)默認(rèn)轉(zhuǎn)換在狀態(tài)圖的第一層時,要小心。如果第一個觸發(fā)事件發(fā)生時默認(rèn)轉(zhuǎn)換無效,系統(tǒng)將發(fā)出模糊警告。當(dāng)父狀態(tài)被激活并且父狀態(tài)中的子狀態(tài)不能確認(rèn)哪個被激活時,通常會發(fā)出此警告錯誤。此時,狀態(tài)圖被激活,但是沒有明確的狀態(tài)被激活。注意:如果從狀態(tài)流調(diào)試器的錯誤檢測選項字段中刪除了狀態(tài)不一致,將不會發(fā)出上述模糊錯誤警告。36、狀態(tài)轉(zhuǎn)換的默認(rèn)轉(zhuǎn)換注意事項(續(xù)),必須記住,一旦激活狀態(tài)流狀態(tài)圖,狀態(tài)圖將保持激活狀態(tài),直到系統(tǒng)模擬結(jié)束。由于默認(rèn)轉(zhuǎn)換的執(zhí)行依賴于父狀態(tài)的重新激活,這里的默認(rèn)轉(zhuǎn)換將不再有機(jī)會被執(zhí)行。如果需要通過事件來控制狀態(tài)的執(zhí)行,可以創(chuàng)建一個虛擬狀態(tài),或者將狀態(tài)圖放在啟用子系統(tǒng)中

13、,并將相應(yīng)的觸發(fā)事件設(shè)置為復(fù)位。例如:exp01_1和exp01_2,37、狀態(tài)轉(zhuǎn)換使用數(shù)據(jù)對象,這些數(shù)據(jù)對象主要用于條件和動作語句。您可以根據(jù)需要限制狀態(tài)流圖中數(shù)據(jù)對象的使用,也可以使用數(shù)據(jù)對象作為圖表與外部環(huán)境的接口,這是Simulink模型中的其他模塊。、用于條件、用于操作、38、狀態(tài)轉(zhuǎn)換定義數(shù)據(jù)對象、添加數(shù)據(jù)、數(shù)據(jù)名稱、數(shù)據(jù)對象范圍、數(shù)據(jù)類型、39、狀態(tài)轉(zhuǎn)換活動狀態(tài)輸出,可用作Stateflow塊的輸出。在狀態(tài)屬性對話框中選擇輸出狀態(tài)活動選項。Stateflow塊創(chuàng)建一個數(shù)據(jù)對象并將其輸出到模型。數(shù)據(jù)對象的名稱與狀態(tài)的名稱相同,數(shù)值只能是1或0。exp02,40,狀態(tài)轉(zhuǎn)換瀏覽器,您可以

14、通過使用瀏覽器來觀察定義的數(shù)據(jù)和事件來運行瀏覽器:使用工具菜單下的資源管理器命令。瀏覽器的左欄顯示了狀態(tài)機(jī)中包含的所有層次結(jié)構(gòu)、事件和數(shù)據(jù)。層次結(jié)構(gòu),41,狀態(tài)轉(zhuǎn)換瀏覽器(續(xù)),您可以在瀏覽器中定義事件和數(shù)據(jù)對象的屬性,用鼠標(biāo)右鍵拖放事件或數(shù)據(jù)對象,并完成復(fù)制操作。瀏覽器中的“添加”菜單可以完成將數(shù)據(jù)和事件對象添加/定義到層次樹中選定的狀態(tài)流程圖的操作,42、狀態(tài)轉(zhuǎn)換使用條件、條件表達(dá)式包括:使用布爾運算符比較兩個數(shù)據(jù)對象;以布爾變量作為返回值的函數(shù);條件表達(dá)式不能通過調(diào)用函數(shù)來更改數(shù)據(jù)對象或影響圖中狀態(tài)分配表達(dá)式的更改;它們不能用作條件表達(dá)式;使用“與”運算符“”完成條件表達(dá)式的“與”運算;

15、使用或運算符“| |”完成條件表達(dá)式的或運算;43、狀態(tài)轉(zhuǎn)移動作,轉(zhuǎn)移動作標(biāo)簽主要由四部分組成。沒有必要將上述所有部分都包含在轉(zhuǎn)移操作標(biāo)簽中,但是轉(zhuǎn)移操作標(biāo)簽必須按照圖中所示的順序書寫。條件動作和轉(zhuǎn)移動作是有區(qū)別的。條件動作在條件滿足時運行,而傳輸動作需要在整個傳輸路徑有效時運行。參見示例exp03、事件、條件、條件動作、轉(zhuǎn)換動作、44、狀態(tài)轉(zhuǎn)換狀態(tài)動作。在以下情況下,會發(fā)生狀態(tài)動作:最初為非活動狀態(tài),事件驅(qū)動的激活進(jìn)入動作最初為活動狀態(tài),事件驅(qū)動的進(jìn)入非活動狀態(tài)退出動作最初為活動狀態(tài)。事件不會改變其活動狀態(tài)。在動作期間或在動作上,狀態(tài)動作通常是狀態(tài)名稱標(biāo)簽的一部分,緊接著是標(biāo)簽名稱。一些關(guān)鍵

16、字可以用來識別動作類型。45、狀態(tài)轉(zhuǎn)換狀態(tài)動作(續(xù)),狀態(tài)動作有四種類型:系統(tǒng)默認(rèn)狀態(tài)動作是entry,46、狀態(tài)轉(zhuǎn)換動作執(zhí)行順序,當(dāng)事件被驅(qū)動且條件滿足時,相應(yīng)條件動作的執(zhí)行有效,系統(tǒng)只執(zhí)行轉(zhuǎn)換動作。原始狀態(tài)的退出動作在執(zhí)行轉(zhuǎn)換動作之前執(zhí)行,然后是組含義動作,然后是目標(biāo)狀態(tài)的進(jìn)入動作。47、狀態(tài)轉(zhuǎn)換動作語言、Stateflow動作語言是在圖表內(nèi)部進(jìn)行交互,而接口動作語言的功能是在圖表和外部環(huán)境之間進(jìn)行交互:執(zhí)行數(shù)學(xué)計算:操作數(shù)據(jù)對象調(diào)用函數(shù):使用MATLAB或C語言函數(shù)觸發(fā)事件:影響內(nèi)部或外部狀態(tài),48、狀態(tài)轉(zhuǎn)換支持的數(shù)學(xué)運算,二進(jìn)制運算:*/%-=| | | |酉運算:-賦值操作:=-*=/=位操作:|=|=,49,狀態(tài)轉(zhuǎn)換調(diào)用MATLAB函數(shù),調(diào)用MATLAB函數(shù),并且需要在函數(shù)名稱前使用MATLAB命名空間運算符。例如,當(dāng)用ml運算符調(diào)用MATLAB函數(shù)時,ml y=ml.abs(x)應(yīng)注意以下幾點:對于用ml關(guān)鍵字調(diào)用的MATLAB函數(shù),當(dāng)只以標(biāo)量或字符串作為輸入?yún)?shù)調(diào)用函數(shù)時,括號是必需的,不管被調(diào)用的函數(shù)是否有參數(shù),如果被調(diào)用的函數(shù)有返回參數(shù),返回值的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論