Stateflow教程實(shí)用教案_第1頁(yè)
Stateflow教程實(shí)用教案_第2頁(yè)
Stateflow教程實(shí)用教案_第3頁(yè)
Stateflow教程實(shí)用教案_第4頁(yè)
Stateflow教程實(shí)用教案_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1Stateflow教程教程(jiochng)第一頁(yè),共69頁(yè)。Stateflow概述概述(i sh): Stateflow 是集成于 Simulink 中的圖形化設(shè)計(jì)與開(kāi)發(fā)工具,主要用于針對(duì)控制系統(tǒng)中的復(fù)雜控制邏輯進(jìn)行建模與仿真,Stateflow 適用于針對(duì)事件響應(yīng)系統(tǒng)(Reactive System)進(jìn)行建模和仿真。與事件響應(yīng)系統(tǒng)相對(duì)應(yīng)的就是動(dòng)態(tài)(dngti)變換系統(tǒng)(Dynamic Transformational System)。動(dòng)態(tài)(dngti)變換系統(tǒng)通??梢岳脭?shù)學(xué)表達(dá)式、 方程等組成的輸入/輸出關(guān)系進(jìn)行描述,像這樣的系統(tǒng)利用 Simulink 進(jìn)行建模是最為方便的。而事

2、件響應(yīng)系統(tǒng)通常利用一些自然語(yǔ)言或者邏輯表達(dá)式進(jìn)行描述,這樣的系統(tǒng)就需要利用 Stateflow 來(lái)進(jìn)行建模。Stateflow 與Simulink 結(jié)合起來(lái),可以創(chuàng)建確定性監(jiān)管控制系統(tǒng)。 利用 Stateflow 可視化的模型和直觀的仿真能力,可以清晰、 簡(jiǎn)潔地反映出復(fù)雜動(dòng)態(tài)(dngti)邏輯關(guān)系。 Stateflow 的基礎(chǔ)是有限狀態(tài)機(jī)理論,它通過(guò)對(duì)狀態(tài)圖、 流程圖的創(chuàng)建, 對(duì)事件驅(qū)動(dòng)系統(tǒng)進(jìn)行建模和仿真。第1頁(yè)/共68頁(yè)第二頁(yè),共69頁(yè)。第一章第一章 創(chuàng)建創(chuàng)建(chungjin)(chungjin)狀態(tài)圖狀態(tài)圖Stateflow編輯器創(chuàng)建(chungjin)和編輯狀態(tài)圖第2頁(yè)/共68頁(yè)第三頁(yè)

3、,共69頁(yè)。第3頁(yè)/共68頁(yè)第四頁(yè),共69頁(yè)。 執(zhí)行(zhxng) Stateflow 編輯器 File 菜單下 的 Chart Properties 命令,打開(kāi)屬性框第4頁(yè)/共68頁(yè)第五頁(yè),共69頁(yè)。Keyword : State Actions 就是狀態(tài)(zhungti)動(dòng)作。為數(shù)據(jù)對(duì)象進(jìn)行賦值或者進(jìn)行數(shù)據(jù)對(duì)象的運(yùn)算也可以通過(guò)狀態(tài)(zhungti)動(dòng)作進(jìn)行事件廣播以觸發(fā)其他系統(tǒng)的變化狀態(tài)(zhungti)動(dòng)作的關(guān)鍵字主要有三種:entry:當(dāng)狀態(tài)(zhungti)被激活時(shí)執(zhí)行相應(yīng)的動(dòng)作。exit:當(dāng)狀態(tài)(zhungti)退出活動(dòng)狀態(tài)(zhungti)時(shí)執(zhí)行相應(yīng)的動(dòng)作during:當(dāng)狀態(tài)(z

4、hungti)保持其活動(dòng)狀態(tài)(zhungti)時(shí)執(zhí)行相應(yīng)的 動(dòng)作第5頁(yè)/共68頁(yè)第六頁(yè),共69頁(yè)。2 . 創(chuàng)建創(chuàng)建(chungjin)連接節(jié)點(diǎn)連接節(jié)點(diǎn) 連接節(jié)點(diǎn)作為轉(zhuǎn)移通路的判決點(diǎn)或匯合點(diǎn),也是在狀態(tài)圖中常用的圖形(txng)元素之一,特別是在流程圖中, 由于流程圖不能包含任何狀態(tài), 因此只有依靠連接節(jié)點(diǎn)完成通路的連接和判斷分支,連接節(jié)點(diǎn)不是記憶元件。第6頁(yè)/共68頁(yè)第七頁(yè),共69頁(yè)。節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,通過(guò)彈出的快捷菜單執(zhí)行 Properties 命令,進(jìn)入(jnr)屬性框3. 創(chuàng)建創(chuàng)建(chungjin)轉(zhuǎn)移轉(zhuǎn)移 轉(zhuǎn)移是 Stateflow 框圖中最常見(jiàn)的圖形元素之一,無(wú)論是包含狀態(tài)的狀態(tài)

5、圖中還是沒(méi)有狀態(tài)的流程圖中,幾乎都存在轉(zhuǎn)移。轉(zhuǎn)移描述的是有限狀態(tài)系統(tǒng)內(nèi)的邏輯流。轉(zhuǎn)移管理了當(dāng)系統(tǒng)從當(dāng)前狀態(tài)改變時(shí),這個(gè)系統(tǒng)可能發(fā)生的模式改變。當(dāng)轉(zhuǎn)移發(fā)生時(shí),源狀態(tài)變?yōu)榉腔顒?dòng)的狀態(tài), 目標(biāo)狀態(tài)變?yōu)榛顒?dòng)的狀態(tài)。轉(zhuǎn)移是帶有箭頭的線,這就使整個(gè)狀態(tài)圖或者流程圖成為了“有向圖”,狀態(tài)或者流程之間的轉(zhuǎn)換, 將直接受到轉(zhuǎn)移方向的約束。第7頁(yè)/共68頁(yè)第八頁(yè),共69頁(yè)。第8頁(yè)/共68頁(yè)第九頁(yè),共69頁(yè)。組成轉(zhuǎn)移標(biāo)簽的四個(gè)部分不一定完整地出現(xiàn),組成轉(zhuǎn)移標(biāo)簽的四個(gè)部分不一定完整地出現(xiàn),但是不論出現(xiàn)哪幾個(gè)部分,標(biāo)簽的內(nèi)容必須但是不論出現(xiàn)哪幾個(gè)部分,標(biāo)簽的內(nèi)容必須按照按照(nzho)上面指定的順序書寫。上面指定的順序

6、書寫。條件動(dòng)作與轉(zhuǎn)移動(dòng)作兩者之間的區(qū)別:條件動(dòng)作在條條件動(dòng)作與轉(zhuǎn)移動(dòng)作兩者之間的區(qū)別:條件動(dòng)作在條件滿足的情況下就能夠執(zhí)行,而轉(zhuǎn)移動(dòng)作需要在整個(gè)件滿足的情況下就能夠執(zhí)行,而轉(zhuǎn)移動(dòng)作需要在整個(gè)轉(zhuǎn)移通路都有效的情況下,轉(zhuǎn)移通路都有效的情況下, 在執(zhí)行轉(zhuǎn)移的時(shí)候才執(zhí)行。在執(zhí)行轉(zhuǎn)移的時(shí)候才執(zhí)行。第9頁(yè)/共68頁(yè)第十頁(yè),共69頁(yè)。中第一個(gè)被激活的狀態(tài)。n根據(jù)有限狀態(tài)機(jī)的要求, 當(dāng)有限狀態(tài)系統(tǒng)被激活時(shí), 必有相應(yīng)的確定的某個(gè)狀態(tài)被激活。n而默認(rèn)轉(zhuǎn)移就定義了當(dāng)狀態(tài)機(jī)被激活或者層次模型中父層次狀態(tài)被激活時(shí), 具體哪個(gè)子狀n態(tài)被激活。第10頁(yè)/共68頁(yè)第十一頁(yè),共69頁(yè)。須有一個(gè)子狀態(tài)具有默認(rèn)的轉(zhuǎn)移,同時(shí)該子狀

7、態(tài)被稱為默認(rèn)狀態(tài)。n由于 Stateflow 是一種事件驅(qū)動(dòng)模型建模環(huán)境,不允許出現(xiàn)模型運(yùn)行的二義性,因此,正確的使用默認(rèn)轉(zhuǎn)移就非常重要, 因?yàn)槟J(rèn)轉(zhuǎn)移就是用來(lái)改變狀態(tài)機(jī)或者父層次狀態(tài)被激活時(shí), 相應(yīng)的子狀態(tài)二義性的圖形元素n在默認(rèn)轉(zhuǎn)移上添加標(biāo)簽的方法和在一般的轉(zhuǎn)移上添加標(biāo)簽的方法是一樣的,可以在默認(rèn)轉(zhuǎn)移的標(biāo)簽上加上事件和條件來(lái)進(jìn)行限制,也可以將動(dòng)作和默認(rèn)轉(zhuǎn)移相關(guān)聯(lián)。不過(guò), 一個(gè)有限狀態(tài)系統(tǒng)必須確保能夠(nnggu)正確地被激活,這一點(diǎn)在使用默認(rèn)轉(zhuǎn)移時(shí)非常重要, 因?yàn)闋顟B(tài)機(jī)的默認(rèn)轉(zhuǎn)移只有一次執(zhí)行的機(jī)會(huì)。如果沒(méi)有明確的子狀態(tài)能夠(nnggu)被激活,系統(tǒng)會(huì)報(bào)告二義性錯(cuò)誤第11頁(yè)/共68頁(yè)第十二頁(yè)

8、,共69頁(yè)。5. 添加添加(tin ji)注釋:注釋:如果需要在 Stateflow 的框圖中使用 LaTex 字符集, 則需要按照下列步驟完成:(1) 在已經(jīng)添加的文本上單擊鼠標(biāo)右鍵, 這時(shí)將顯示快捷菜單;(2) 選擇快捷菜單中 Text Format 子菜單中的 LaTex Instructions 復(fù)選項(xiàng);(3) 用鼠標(biāo)單擊已經(jīng)添加的文本注釋, 重新進(jìn)入文本編輯模式;(4) 添加 LaTex 字符, 例如鍵入 y =itAealphaxsin(betaitt);(5) 在文本編輯區(qū)外(q wi)單擊鼠標(biāo)完成注釋的添加,此時(shí)的注釋內(nèi) 容將變?yōu)閥 = Aeax sin( bt) ,如圖所示。

9、第12頁(yè)/共68頁(yè)第十三頁(yè),共69頁(yè)。單擊右鍵單擊右鍵在注釋上單擊鼠標(biāo)右鍵而出現(xiàn)的快捷菜單。在在注釋上單擊鼠標(biāo)右鍵而出現(xiàn)的快捷菜單。在菜單中,共計(jì)有三個(gè)子菜單可以用來(lái)修改菜單中,共計(jì)有三個(gè)子菜單可以用來(lái)修改(xigi)注釋注釋文本的外觀,文本的外觀, 分別為:分別為:Font Size: 設(shè)置注釋文本的尺寸。Text Format:設(shè)置注釋文本的基本格式,包 括粗體、 斜體和 LaTex 字符支持。Text Alignment:設(shè)置注釋文本的對(duì)齊方式, 包括左對(duì)齊、 居中和右對(duì)齊。第13頁(yè)/共68頁(yè)第十四頁(yè),共69頁(yè)。第二章第二章 狀態(tài)圖的仿真狀態(tài)圖的仿真(fn zhn)(fn zhn)狀態(tài)圖

10、的基本概念事件數(shù)據(jù)(shj)對(duì)象狀態(tài)圖的更新模式stateflow模型查看器第14頁(yè)/共68頁(yè)第十五頁(yè),共69頁(yè)。第15頁(yè)/共68頁(yè)第十六頁(yè),共69頁(yè)。Scope 屬性:該屬性定義事件的作用類型。在 Add菜單(ci dn)下的 Event 子菜單(ci dn)中具有三個(gè)菜單(ci dn)命令,分別為 Local、Input from Simulink 和 Output to Simulink, 通過(guò)這三個(gè)菜單(ci dn)命令定義事件,得到的 Scope 屬性不一致。具有Local屬性的事件是在狀態(tài)圖內(nèi)部發(fā)揮作用。具有Input from Simulink 屬性的事件是從 Simulink框

11、圖輸入到 Stateflow 中的,也就是 Stateflow 框圖的外部觸發(fā)事件。具有 Output to Simulink 屬性的事件是從Stateflow 框圖輸出到 Simulink 中的,即利用 Stateflow 定義的事件驅(qū)動(dòng)或者觸發(fā)其他 Stateflow 框圖或者子系統(tǒng)動(dòng)作。第16頁(yè)/共68頁(yè)第十七頁(yè),共69頁(yè)。Trigger 屬性:Trigger 屬性總共有四個(gè)可能值, 分別為 Either、 Falling、 Rising 和 FunctionCall。在 Simulink 條件執(zhí)行子系統(tǒng)中, 特別是在使能或者觸發(fā)子系統(tǒng)中, 觸發(fā)子系統(tǒng)工作的觸發(fā)源就具有不同屬性。 觸發(fā)子

12、系統(tǒng)的觸發(fā)源與這里的 Trigger 屬性的意義完全一樣, 分別為雙邊沿觸發(fā)、 下降沿觸發(fā)、 上升沿觸發(fā)。 Function Call(函數(shù)調(diào)用)是一類比較(bjio)特殊的觸發(fā)屬性第17頁(yè)/共68頁(yè)第十八頁(yè),共69頁(yè)。 運(yùn)行過(guò)程(guchng)中, 單擊 Manual Switch 模塊向 Stateflow 框圖發(fā)出事件第18頁(yè)/共68頁(yè)第十九頁(yè),共69頁(yè)。第19頁(yè)/共68頁(yè)第二十頁(yè),共69頁(yè)。Scope 屬性:Local、 Input、Output 與事件相同Constant:所定義的數(shù)據(jù)對(duì)象在 Stateflow 模型中為常量即保持靜態(tài),數(shù)據(jù)對(duì)象在Simulink/Stateflow

13、模型運(yùn)行過(guò)程中其數(shù)值一般不發(fā)生變化,并且數(shù)據(jù)在模型中為只讀,不可寫的狀態(tài)。 Parameter:所定義的數(shù)據(jù)對(duì)象將通過(guò) Stateflow 框圖的上層 Simulink 子系統(tǒng)封裝之后的參數(shù)獲取初值。也就是說(shuō)當(dāng) Stateflow 的框圖位于某個(gè)封裝子系統(tǒng)內(nèi)部時(shí),Stateflow的 Parameter 類型數(shù)據(jù)對(duì)象可以直接獲取封裝子系統(tǒng)設(shè)定的參數(shù)。具有 Parameter 屬性的數(shù)據(jù)對(duì)象與具有Constant 屬性的數(shù)據(jù)對(duì)象類似,在整個(gè)仿真過(guò)程中,Stateflow 不能修改其數(shù)值。Data Store Memory: 所定義的數(shù)據(jù)對(duì)象與 Simulink 數(shù)據(jù)空間(kngjin)共享, 也

14、就是說(shuō), 該數(shù)據(jù)對(duì)象與 Simulink 工作空間(kngjin)中的某個(gè)數(shù)據(jù)對(duì)象相互綁定。 此時(shí)該數(shù)據(jù)對(duì)象的名稱必須與Simulink 工作空間(kngjin)中數(shù)據(jù)對(duì)象的名稱一致。 第20頁(yè)/共68頁(yè)第二十一頁(yè),共69頁(yè)。nFixed point 類型用于模型的定點(diǎn)數(shù)據(jù)設(shè)置, 若選擇了該類型,則可以完成 Stateflow 模型數(shù)據(jù)的量化處理。第21頁(yè)/共68頁(yè)第二十二頁(yè),共69頁(yè)。Stateflow 的框圖有三種更新(gngxn)模式, 分別為 Inherited、 Discrete 和 Continuous第22頁(yè)/共68頁(yè)第二十三頁(yè),共69頁(yè)。(2) 未定義輸入事件但定義了輸入未定義

15、輸入事件但定義了輸入數(shù)據(jù)。如果數(shù)據(jù)。如果 Stateflow 框圖沒(méi)有框圖沒(méi)有定義事件而定義了輸入數(shù)據(jù),定義事件而定義了輸入數(shù)據(jù),則則 Stateflow 框圖按照其連接的框圖按照其連接的Simulink 輸入信號(hào)中更新頻率輸入信號(hào)中更新頻率最高的信號(hào)更新周期來(lái)更新框最高的信號(hào)更新周期來(lái)更新框圖,圖, 這相當(dāng)于輸入數(shù)據(jù)的采樣這相當(dāng)于輸入數(shù)據(jù)的采樣更新觸發(fā)了更新觸發(fā)了 Stateflow 框圖的執(zhí)框圖的執(zhí)行。行。(3) 既未定義輸入事件又未定義輸既未定義輸入事件又未定義輸入數(shù)據(jù)。如果入數(shù)據(jù)。如果 Stateflow 框圖既框圖既沒(méi)有定義輸入事件,又沒(méi)有定沒(méi)有定義輸入事件,又沒(méi)有定義輸入數(shù)據(jù),則義

16、輸入數(shù)據(jù),則 Stateflow 框圖框圖繼承其父層次模型的更新周期。繼承其父層次模型的更新周期。如果如果 Stateflow 框圖位于系統(tǒng)??驁D位于系統(tǒng)模型的頂層,則型的頂層,則 Stateflow 框圖繼框圖繼承模型的仿真周期作為自己的承模型的仿真周期作為自己的更新周期。更新周期。Discrete 更新模式,更新模式, 是將是將Stateflow 框圖看做有固定周期框圖看做有固定周期的離散塊,在設(shè)置該更新模式的離散塊,在設(shè)置該更新模式時(shí),時(shí), Stateflow 框圖屬性對(duì)話框框圖屬性對(duì)話框中的中的 Sample Time 屬性需要設(shè)屬性需要設(shè)置具體的更新周期,置具體的更新周期, 單位單位

17、(dnwi)為秒。為秒。Continuous更新模式,則更新模式,則Stateflow 框圖好比框圖好比 Simulink 模模型中的一個(gè)連續(xù)系統(tǒng)模塊,型中的一個(gè)連續(xù)系統(tǒng)模塊, 此此時(shí)時(shí) Stateflow 的框圖將按照系統(tǒng)的框圖將按照系統(tǒng)仿真步長(zhǎng)完成更新。仿真步長(zhǎng)完成更新。第23頁(yè)/共68頁(yè)第二十四頁(yè),共69頁(yè)。選擇了該選項(xiàng), 則意味著當(dāng) 前的 Stateflow 框圖將在模型初始化階段就被激活, 這樣,在后續(xù)的事件觸發(fā)過(guò)程中, 就直接進(jìn)行狀態(tài)(zhungti)的 轉(zhuǎn)換了第24頁(yè)/共68頁(yè)第二十五頁(yè),共69頁(yè)。第三章第三章 流程圖流程圖轉(zhuǎn)移沖突流程圖的創(chuàng)建圖形函數(shù)(hnsh)stateflo

18、w模型調(diào)試器第25頁(yè)/共68頁(yè)第二十六頁(yè),共69頁(yè)。的過(guò)程中可能在某一時(shí)刻同時(shí)存在幾個(gè)有效的轉(zhuǎn)移,那么此時(shí) Stateflow 將根據(jù)(gnj)一些原則來(lái)處理這些沖突, 這就是轉(zhuǎn)移沖突的處理原則。假設(shè)當(dāng)前事件假設(shè)當(dāng)前事件 E 發(fā)生并且條件發(fā)生并且條件 C 也滿足,也滿足,則四個(gè)轉(zhuǎn)移則四個(gè)轉(zhuǎn)移(zhuny)通路都是有效的,通路都是有效的, 即形成了即形成了轉(zhuǎn)移轉(zhuǎn)移(zhuny)沖突。那么沖突。那么 Stateflow 是如何處理這是如何處理這種情況呢?種情況呢? 第26頁(yè)/共68頁(yè)第二十七頁(yè),共69頁(yè)。移有效,則執(zhí)行這個(gè)轉(zhuǎn)移,其余的轉(zhuǎn)移就不再進(jìn)行檢測(cè)和執(zhí)行了。n ( 3 )此時(shí)發(fā)生的事件不滿足,

19、則接著檢測(cè)具有條件的轉(zhuǎn)移;如果此時(shí)條件 C 能夠滿足, 即該轉(zhuǎn)移有效,則執(zhí)行這個(gè)轉(zhuǎn)移,其余的轉(zhuǎn)移就不再進(jìn)行檢測(cè)和執(zhí)行了。n(4)如果條件和事件都不匹配,最后檢測(cè)的轉(zhuǎn)移就是(jish)那條無(wú)條件的轉(zhuǎn)移, 由于無(wú)條件的轉(zhuǎn)移是肯定可以執(zhí)行的n總結(jié):轉(zhuǎn)移的檢測(cè)次序就是(jish)由上至下分別檢測(cè), 當(dāng)系統(tǒng)發(fā)現(xiàn)一條有效的轉(zhuǎn)移時(shí),就立即執(zhí)行,其他的轉(zhuǎn)移即使有效,也都被忽略了。第27頁(yè)/共68頁(yè)第二十八頁(yè),共69頁(yè)。狀態(tài) Standby 向 High 狀態(tài)、 Medium 狀態(tài)和 Low 狀態(tài)的轉(zhuǎn)移都對(duì)使用條件進(jìn)行了限制。根據(jù)前面的介紹,這三個(gè)轉(zhuǎn)移由于都僅僅使用條件進(jìn)行了限制, 因此它們具有相同(xin t

20、n)的轉(zhuǎn)移檢測(cè)優(yōu)先級(jí)別。所以這個(gè)框圖在進(jìn)行仿真的時(shí)候,就會(huì)報(bào)告轉(zhuǎn)移沖突錯(cuò)誤如果轉(zhuǎn)移從狀態(tài)出發(fā),則從狀態(tài)的左上角開(kāi)始,按順時(shí)針的方向決定轉(zhuǎn)移的優(yōu)先權(quán);如果轉(zhuǎn)移從連接(linji)節(jié)點(diǎn)出發(fā), 則從連接(linji)節(jié)點(diǎn)的 12 點(diǎn)方向開(kāi)始, 按順時(shí)針的方向決定轉(zhuǎn)移的優(yōu)先權(quán)。幾何原則幾何原則:第28頁(yè)/共68頁(yè)第二十九頁(yè),共69頁(yè)。兩個(gè)步驟:(1)在 Stateflow 圖形編輯器中單擊右鍵,在彈出的菜單中選擇(xunz) Execution Order 子菜單下的 Enable User specified execution order for this chart命令,(2)用鼠標(biāo)右鍵單擊需要

21、改變檢測(cè)次序的轉(zhuǎn)移, 例如要修改上圖所示模型的第一個(gè)轉(zhuǎn)移檢測(cè)次 序,則用右鍵單擊該轉(zhuǎn)移,在出現(xiàn)的快捷(kui ji)菜單 的 Execution Order 子菜單下選擇檢測(cè)次序。 由于這里從狀態(tài) A 到狀態(tài) B具有四個(gè)轉(zhuǎn)移, 因 此轉(zhuǎn)移執(zhí)行次序的選項(xiàng)為 14。 默認(rèn)地, 該 轉(zhuǎn)移檢測(cè)次序?yàn)?,可以將其修改為其他數(shù)值, 修改某一條轉(zhuǎn)移的檢測(cè)次序后,其他的轉(zhuǎn)移可 以根據(jù)用戶指定的次序以及 Stateflow 默認(rèn)的檢 測(cè)次序原則進(jìn)行重新排序。第29頁(yè)/共68頁(yè)第三十頁(yè),共69頁(yè)。if(條件條件(tiojin)動(dòng)作動(dòng)作 A else 動(dòng)作動(dòng)作 Bif(條件條件 1)動(dòng)作動(dòng)作 A else if(條

22、件條件 2)動(dòng)作動(dòng)作 B else 動(dòng)作動(dòng)作 C第30頁(yè)/共68頁(yè)第三十一頁(yè),共69頁(yè)。switch-case第31頁(yè)/共68頁(yè)第三十二頁(yè),共69頁(yè)。while 循環(huán)循環(huán)(xnhun)while(Condition)Action;do-while 循環(huán)循環(huán)(xnhun)doAction; while(Condition)第32頁(yè)/共68頁(yè)第三十三頁(yè),共69頁(yè)。if(c1) act1; if(c2) act2; else if(c3) act3; else act4;分析分析(fnx):假設(shè),條件:假設(shè),條件 c1 為真,為真, 條件條件 c2 和條件和條件 c3 為假為假第33頁(yè)/共68頁(yè)第三

23、十四頁(yè),共69頁(yè)。n流程圖不能出現(xiàn)回溯現(xiàn)象。n如果流程圖位于 Stateflow 的 Chart 層次,則在連續(xù)兩次更新之間, 整個(gè) Stateflow 框圖處于非活動(dòng)的狀態(tài)。第34頁(yè)/共68頁(yè)第三十五頁(yè),共69頁(yè)。該 Stateflow 框圖具有兩個(gè)狀態(tài): 狀態(tài) Normal 和狀態(tài) Inverse。在這兩個(gè)狀態(tài)中都包含了流程圖。 它們包含的流程圖十分簡(jiǎn)單, 就是根據(jù)輸入數(shù)據(jù)進(jìn)行相應(yīng)的邏輯判斷, 然后決定具體的輸出。從框圖上看,這兩個(gè)流程圖的體系結(jié)構(gòu)完全一致, 有所區(qū)別的就是參數(shù),即處理的數(shù)據(jù)不同(b tn), 這里可以通過(guò)圖形函數(shù)的形式來(lái)完成模型的創(chuàng)建。第35頁(yè)/共68頁(yè)第三十六頁(yè),共69

24、頁(yè)。第36頁(yè)/共68頁(yè)第三十七頁(yè),共69頁(yè)。狀態(tài)面板(min bn)(StatusPane)控制面板(min bn)(Control Pane)選項(xiàng)面板(min bn)(Control Pane)顯示面板(min bn)(Display Pane)第37頁(yè)/共68頁(yè)第三十八頁(yè),共69頁(yè)。測(cè)是有效的,在執(zhí)行前進(jìn)入調(diào)試模式。事件的斷點(diǎn):Start of Broadcast: 在事件被廣播之前進(jìn)入調(diào)試模式End of Broadcast: 在事件廣播結(jié)束后進(jìn)入調(diào)試模式圖形函數(shù)的斷點(diǎn):Function Call: 在函數(shù)被調(diào)用之前進(jìn)入調(diào)試模式第38頁(yè)/共68頁(yè)第三十九頁(yè),共69頁(yè)。第四章第四章 有限有

25、限(yuxin)(yuxin)狀態(tài)系統(tǒng)狀態(tài)系統(tǒng)層次化建模層次化建模狀態(tài)動(dòng)作層次化建模歷史(lsh)節(jié)點(diǎn)內(nèi)部轉(zhuǎn)移子狀態(tài)圖stateflow的查詢工具第39頁(yè)/共68頁(yè)第四十頁(yè),共69頁(yè)。第40頁(yè)/共68頁(yè)第四十一頁(yè),共69頁(yè)。 on event 事件相當(dāng)于 during 事件的子集(z j), 即當(dāng) STEP_UP 事件發(fā)生時(shí),首先執(zhí)行 during 動(dòng)作, 然后再來(lái)執(zhí)行 on STEP_UP 動(dòng)作。這樣,在發(fā)生 STEP_UP 事件時(shí), track數(shù)據(jù)對(duì)象每次累加了兩次。數(shù)據(jù)對(duì)象 data 與狀態(tài)(zhungti) A 進(jìn)行了綁定, 這樣在其他的地方就只能讀取 data,而不能修改數(shù)據(jù)對(duì)象 d

26、ata。 第41頁(yè)/共68頁(yè)第四十二頁(yè),共69頁(yè)。行廣播的。此外, 類型為 Local 的事件也可以進(jìn)行廣播, 這就是在第 6 章將要介紹的本地事件廣播。第42頁(yè)/共68頁(yè)第四十三頁(yè),共69頁(yè)。第43頁(yè)/共68頁(yè)第四十四頁(yè),共69頁(yè)。當(dāng) Stateflow 框圖中的轉(zhuǎn)移動(dòng)作發(fā)出函數(shù)調(diào)用事件(shjin)之后,系統(tǒng)首先執(zhí)行 Simulink 模型中的函數(shù)調(diào)用子系統(tǒng);當(dāng)函數(shù)調(diào)用子系統(tǒng)全部運(yùn)行完畢,并將新的計(jì)算結(jié)果提供給 Stateflow 的輸入數(shù)據(jù)對(duì)象后,Stateflow 才繼續(xù)激活相應(yīng)的目標(biāo)狀態(tài)。因此,在很多 Simulink 和 Stateflow 混合的系統(tǒng)模型中,都充分利用了這一“函數(shù)

27、調(diào)用” 特性,利用 Stateflow 模型來(lái)控制 Simulink 子系統(tǒng)的運(yùn)行,合理完成數(shù)據(jù)的交互任務(wù)。第44頁(yè)/共68頁(yè)第四十五頁(yè),共69頁(yè)。第45頁(yè)/共68頁(yè)第四十六頁(yè),共69頁(yè)。第46頁(yè)/共68頁(yè)第四十七頁(yè),共69頁(yè)。case1:假設(shè), 當(dāng)前 Super1 狀態(tài)(zhungti)處于活動(dòng)狀態(tài)(zhungti)同時(shí)其子狀態(tài)(zhungti) Sub2 也處于活動(dòng)狀態(tài)(zhungti),當(dāng)事件 E發(fā)生時(shí)case2:如果 Super2 狀態(tài)處于(chy)活動(dòng)狀態(tài), 同時(shí)其子狀態(tài) Sub4 處于(chy)活動(dòng)狀態(tài),當(dāng)事件 E發(fā)生時(shí)第47頁(yè)/共68頁(yè)第四十八頁(yè),共69頁(yè)。歷史節(jié)點(diǎn)是一種特殊(t

28、sh)的 Stateflow 圖形對(duì)象,它只能夠用于具有層次的狀態(tài)內(nèi)部在層次化的框圖子狀態(tài)之間如果(rgu)存在超轉(zhuǎn)移, 則歷史節(jié)點(diǎn)也無(wú)法發(fā)揮作用歷史節(jié)點(diǎn)能夠影響默認(rèn)轉(zhuǎn)移的工作,使默認(rèn)轉(zhuǎn)移僅在首次激活系統(tǒng)時(shí)發(fā)揮作用,其余的時(shí)間就依賴于歷史節(jié)點(diǎn)記錄的狀態(tài)來(lái)恢復(fù)子狀態(tài)的活動(dòng)情況第48頁(yè)/共68頁(yè)第四十九頁(yè),共69頁(yè)。內(nèi)部轉(zhuǎn)移能夠(nnggu)適當(dāng)?shù)販p小模型復(fù)雜度, 提高模型的執(zhí)行效率第49頁(yè)/共68頁(yè)第五十頁(yè),共69頁(yè)。(1)當(dāng)前狀態(tài) A 處于(chy)活動(dòng)狀態(tài), 事件 E 發(fā)生, 但是條件 C1 不滿足(2)事件(shjin) E 再次發(fā)生了,而且此時(shí)條件 C1 滿足(3)事件 E 第三次發(fā)生,

29、 此時(shí)條件 C2 不滿足(1)當(dāng)前父狀態(tài) A 處于活動(dòng)狀態(tài),同時(shí)子狀態(tài)A1 處于活動(dòng)狀態(tài), 當(dāng)事件 R 發(fā)生時(shí)(2)如果當(dāng)前父狀態(tài) A 處于活動(dòng)狀態(tài),同時(shí)子狀態(tài) A2 處于活動(dòng)狀態(tài),當(dāng)事件 R 發(fā)生第50頁(yè)/共68頁(yè)第五十一頁(yè),共69頁(yè)。父層次狀態(tài)內(nèi)邊緣出發(fā)的轉(zhuǎn)移。父層次狀態(tài)內(nèi)邊緣出發(fā)的轉(zhuǎn)移。(3)從活動(dòng)的子狀態(tài)開(kāi)始檢測(cè)轉(zhuǎn)移。從活動(dòng)的子狀態(tài)開(kāi)始檢測(cè)轉(zhuǎn)移。 從子狀態(tài)從子狀態(tài)外邊緣出發(fā)穿越父狀態(tài)邊緣的轉(zhuǎn)移外邊緣出發(fā)穿越父狀態(tài)邊緣的轉(zhuǎn)移超超轉(zhuǎn)移,首先被檢測(cè)。轉(zhuǎn)移,首先被檢測(cè)。(4) 然后是父狀態(tài)內(nèi)部子狀態(tài)之間的轉(zhuǎn)移被檢然后是父狀態(tài)內(nèi)部子狀態(tài)之間的轉(zhuǎn)移被檢測(cè)。測(cè)。第51頁(yè)/共68頁(yè)第五十二頁(yè),共69頁(yè)

30、。假設(shè)此時(shí)父狀態(tài) A 處于(chy)活動(dòng)狀態(tài)并且子狀態(tài) A1處于(chy)活動(dòng)狀態(tài),當(dāng)觸發(fā)發(fā)生時(shí),根據(jù)前面介紹的層次化狀態(tài)圖轉(zhuǎn)移檢測(cè)優(yōu)先權(quán)和轉(zhuǎn)移沖突檢測(cè)優(yōu)先權(quán),求系統(tǒng)處理的次序狀態(tài)動(dòng)作與狀態(tài)執(zhí)行狀態(tài)動(dòng)作與狀態(tài)執(zhí)行(zhxng)的次序的次序(1)當(dāng) Super 父狀態(tài)(zhungti)被首次激活時(shí)(2)當(dāng)父狀態(tài)處于活動(dòng)狀態(tài)而此時(shí) 發(fā)生了某個(gè)事件觸發(fā)時(shí)示例:討論示例:討論轉(zhuǎn)移檢測(cè)轉(zhuǎn)移檢測(cè)第52頁(yè)/共68頁(yè)第五十三頁(yè),共69頁(yè)。第53頁(yè)/共68頁(yè)第五十四頁(yè),共69頁(yè)。第五章第五章 有限有限(yuxin)(yuxin)狀態(tài)系統(tǒng)狀態(tài)系統(tǒng)并行機(jī)制并行機(jī)制并行機(jī)制本地事件廣播隱含(yn hn)事件時(shí)間邏輯第

31、54頁(yè)/共68頁(yè)第五十五頁(yè),共69頁(yè)。兩種模式共存的情況。狀態(tài) Slot 和狀態(tài) Player 的邊框是虛線,因此這兩個(gè)狀態(tài)就是處于(chy)并行狀態(tài)的 Stateflow 狀態(tài)其內(nèi)部(nib)包含的子狀態(tài) NoDisk 和HasDisk 以及 Stop 和 Play 狀態(tài)邊框是實(shí)線,因此子狀態(tài)之間是互斥的狀態(tài),子狀態(tài)在相應(yīng)的層次同一時(shí)刻只能有一個(gè)處于活動(dòng)狀態(tài)。第55頁(yè)/共68頁(yè)第五十六頁(yè),共69頁(yè)。當(dāng)?shù)谝粋€(gè)事件發(fā)生時(shí),求系統(tǒng)首先激活整個(gè)狀態(tài)(zhungti)圖,依次激活相應(yīng)的狀態(tài)(zhungti)并執(zhí)行動(dòng)作當(dāng)再次發(fā)生事件 E 時(shí),求系統(tǒng)依次(yc)執(zhí)行相應(yīng)的轉(zhuǎn)移并執(zhí)行相應(yīng)的動(dòng)作第56頁(yè)/共6

32、8頁(yè)第五十七頁(yè),共69頁(yè)。第57頁(yè)/共68頁(yè)第五十八頁(yè),共69頁(yè)。第58頁(yè)/共68頁(yè)第五十九頁(yè),共69頁(yè)。的狀態(tài),而不是(b shi)出現(xiàn)一呼百應(yīng)的情況。直接事件廣播需要通過(guò)函數(shù) send 來(lái)實(shí)現(xiàn),它的語(yǔ)法如下:send(event_name,state_name);第59頁(yè)/共68頁(yè)第六十頁(yè),共69頁(yè)。事件廣播事件廣播(gungb)的執(zhí)行次序的執(zhí)行次序事件事件(shjin)廣播很類似函數(shù)的調(diào)用,可以將廣播事件廣播很類似函數(shù)的調(diào)用,可以將廣播事件(shjin)看做在動(dòng)作執(zhí)行的過(guò)程中調(diào)用了一個(gè)函數(shù)看做在動(dòng)作執(zhí)行的過(guò)程中調(diào)用了一個(gè)函數(shù),在函數(shù)執(zhí)行完畢退出之后在函數(shù)執(zhí)行完畢退出之后,系統(tǒng)才繼續(xù)后面的

33、工作。也就是說(shuō),當(dāng)事件系統(tǒng)才繼續(xù)后面的工作。也就是說(shuō),當(dāng)事件(shjin)被廣播后,系統(tǒng)將被廣播后,系統(tǒng)將與事件與事件(shjin)廣播相關(guān)的所有動(dòng)作都執(zhí)行完畢之后,廣播相關(guān)的所有動(dòng)作都執(zhí)行完畢之后, 才會(huì)繼續(xù)執(zhí)行廣播事件才會(huì)繼續(xù)執(zhí)行廣播事件(shjin)動(dòng)作之后需要執(zhí)行動(dòng)作之后需要執(zhí)行的其他動(dòng)作。的其他動(dòng)作。第60頁(yè)/共68頁(yè)第六十一頁(yè),共69頁(yè)。假設(shè)當(dāng)前處于活動(dòng)的子狀態(tài)(zhungti)為 A1a 和 A2a, 當(dāng)事件 E1 發(fā)生時(shí)如果此時(shí)活動(dòng)的子狀態(tài)同樣為 A1a 和 A2a, 那么當(dāng)事件(shjin) E1 發(fā)生時(shí)第61頁(yè)/共68頁(yè)第六十二頁(yè),共69頁(yè)。假設(shè)當(dāng)前處于(chy)活動(dòng)的子狀

34、態(tài)為 A1a 和 A2a,當(dāng)事件 E1 發(fā)生時(shí)受限事件受限事件(shjin)廣播的執(zhí)行廣播的執(zhí)行假設(shè)當(dāng)前處于活動(dòng)的子狀態(tài)為 A1a 和 A2a,當(dāng)事件 E1 發(fā)生時(shí)第62頁(yè)/共68頁(yè)第六十三頁(yè),共69頁(yè)。Stateflow 在處理狀態(tài)機(jī)工作時(shí)實(shí)際上是一種單線程的工作方式, 事件廣播會(huì)打斷當(dāng)前的工作流程,而且只有在廣播事件相關(guān)(xinggun)的工作全部結(jié)束之后,才繼續(xù)處理原來(lái)的后續(xù)工作。在這種處理方式下,事件廣播對(duì)原有的工作流程有時(shí)可能會(huì)造成一些影響,并且產(chǎn)生一些沖突現(xiàn)象。針對(duì)不同的動(dòng)作類型, Stateflow 解決的原則略有不同, 這里總結(jié)如下:Entry 動(dòng)作: 如果與事件廣播相關(guān)的所有動(dòng)作都執(zhí)行完畢之后, 狀態(tài)已經(jīng)不再處于活動(dòng)狀態(tài),則所有剩余的 en

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論