freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

詳解stateflow建模與應(yīng)用實例(編輯修改稿)

2025-07-20 04:53 本頁面
 

【文章內(nèi)容簡介】 。流程圖運行過程如下:1. 系統(tǒng)默認遷移進入節(jié)點A1,如果條件[percent==100]為真,執(zhí)行{percent=0。sec=sec+1。},并向終節(jié)點A2遷移;2. 如果條件[percent==100]不為真,向B1節(jié)點遷移,繼續(xù)判斷如果條件[sec==60]為真,執(zhí)行{sec=0。min=min+1。},并向終節(jié)點B2遷移;3. 如果不滿足任何條件,則向終節(jié)點C1遷移。③ 節(jié)點與箭頭大小對于某些重要的節(jié)點或遷移,用戶可以調(diào)整其節(jié)點大小與遷移箭頭的大小,突出其地位。例如,選擇節(jié)點C1的右鍵菜單項Junction Size→16,放大節(jié)點;選擇節(jié)點A1的右鍵菜單項Arrowhead Size → 20,放大指向該節(jié)點的所有遷移箭頭。④ 優(yōu)先級兩個判斷節(jié)點AB1,均有兩條輸出遷移,分別標(biāo)記了數(shù)字2,這表示遷移的優(yōu)先級。默認情況下,Stateflow狀態(tài)圖使用顯性優(yōu)先級模式,用戶可以自行修改各個遷移優(yōu)先級。例如,選擇遷移曲線的右鍵菜單項Execution Order,將優(yōu)先級由1降低為2。修改了某一輸出遷移的優(yōu)先級,系統(tǒng)會自動調(diào)整同一節(jié)點另一遷移的優(yōu)先級。為避免用戶錯誤地設(shè)置優(yōu)先級,Stateflow提供了另一種模式:隱性優(yōu)先級。選擇編輯器菜單項File → Chart Properties,取消User specified state/transition execution order前的復(fù)選框,啟用隱性模式。 自動設(shè)置遷移優(yōu)先級使用這種模式時,系統(tǒng)根據(jù)以下規(guī)則,自動設(shè)置遷移優(yōu)先級,從高到低排列為:1. 既有事件又有條件的遷移2. 僅有事件的遷移3. 僅有條件的遷移4. 不含任何限制的遷移注意:同一個Stateflow狀態(tài)圖,只能選用一種優(yōu)先級模式,但對于有多個狀態(tài)圖的Simulink模型,則不受此限制。2. 自動建立對于簡單的流程圖,手動建立難度不大,而對于稍復(fù)雜的邏輯,用戶難免會感到無從下手。Stateflow提供了快速建立流程圖的向?qū)В梢陨?類基本邏輯:判斷、循環(huán)、多條件。本小節(jié)使用向?qū)?,重建圖x的流程圖。① 單擊編輯器菜單項Patterns→Add ...,選擇流程圖的類型。 流程圖向?qū)Р藛微?這里選擇Patterns → Add Decision → IfElseifElse...,在隨后打開的對話框中輸入判斷條件與對應(yīng)的動作。③ :3. 兩種方式的對比盡管用戶可以手動建立流程圖,但使用流程圖向?qū)У膬?yōu)勢也是顯而易見的:l 任何一種流程圖都可歸結(jié)為判斷、循環(huán)、多條件,或者三者的組合,因此皆可以使用向?qū)ё詣由?;l 使用向?qū)傻牧鞒虉D符合MAAB(MathWorksAutomotive Advisory Board)規(guī)則,這有利于后期模型檢查;l 各種流程圖的外觀基本一致;l 將設(shè)計好的流程圖,另存為模板,便于重用。 層次的概念Stateflow的對象具有層次性,一個Stateflow對象可以包含其他Stateflow對象,例如狀態(tài)內(nèi)若包含其他狀態(tài),則形成父狀態(tài),其內(nèi)部狀態(tài)稱為子狀態(tài)。當(dāng)狀態(tài)具有第二個層次時,狀態(tài)就構(gòu)成了層次。狀態(tài)具有了層次,遷移自然也具有了層次,Stateflow允許在不同層次狀態(tài)之間存在轉(zhuǎn)移。如果遷移穿越了父狀態(tài)的邊界直接到達了低層次的子狀態(tài),則被稱之為超遷移。在狀態(tài)圖中使用層次有如下幾個目的:l 使用層次,可以將相關(guān)的對象組合在一起,構(gòu)成族群;l 可以將一些通用的遷移路徑或者動作組合成為一個遷移動作或路徑,簡化模型;l 適當(dāng)?shù)厥褂脤哟?,可以有效地縮減生成代碼的大小,也能夠提高程序執(zhí)行的效率和可讀性。 遷移的層次1 內(nèi)部遷移內(nèi)部遷移是指從父狀態(tài)邊緣內(nèi)部出發(fā),終止于子狀態(tài)外邊緣的遷移,遷移始終處于父狀態(tài)的內(nèi)部,不會退出源狀態(tài)。在交通燈系統(tǒng)中,同一個父狀態(tài)PowerOn存在紅黃綠三個子狀態(tài),它們需要不停地轉(zhuǎn)換,但除非發(fā)生PowerOff事件,不會退出父狀態(tài),對于這樣的邏輯過程,讀者可能習(xí)慣使用節(jié)點將三種狀態(tài)的遷移聯(lián)系起來。 帶有節(jié)點的遷移使用了內(nèi)部遷移,可直接從父狀態(tài)激活相應(yīng)的子狀態(tài),不必經(jīng)過節(jié)點,大大簡化狀態(tài)圖。2 層次化遷移的優(yōu)先級與狀態(tài)類似,遷移也具有層次性,遷移所屬的層次是由其父狀態(tài)、源狀態(tài)和目標(biāo)狀態(tài)決定的。因此,當(dāng)多個遷移同時有效時,Stateflow需要有一個層次化遷移優(yōu)先級機制來判斷遷移順序。層次化遷移的優(yōu)先級規(guī)則為:從高層次到低層次檢測;從外部遷移到內(nèi)部遷移檢測;同一層次內(nèi),超轉(zhuǎn)移優(yōu)先。,圖表激活時,默認遷移激活狀態(tài)A,這時按以下優(yōu)先級檢測遷移是否有效:① 檢測高層A,B狀態(tài)的外部遷移是否有效(event1,event2);② 檢測高層A,B狀態(tài)的內(nèi)部遷移是否有效(event3);③ 檢測低層a1,a2,b1狀態(tài)的超遷移是否有效(event4);④ 檢測父狀態(tài)A內(nèi)部子狀態(tài)間的遷移是否有效(event5,event6)。 層次化的遷移 歷史節(jié)點在狀態(tài)圖的頂層或一個父狀態(tài)里或放置一個歷史節(jié)點,它便能能記錄退出父狀態(tài)時,正處于激活狀態(tài)的子狀態(tài),當(dāng)再次進入父狀態(tài)時,則默認激活上一次所記錄的子狀態(tài),而不是激活默認遷移的狀態(tài)。歷史節(jié)點的作用域僅限于它所存在的層級。,父狀態(tài)A2中加入了歷史節(jié)點,因此當(dāng)?shù)?次激活A(yù)2狀態(tài)時子狀態(tài)C1被激活,滿足遷移條件時C2被激活,但此后A2狀態(tài)向A1狀態(tài)的遷移將優(yōu)先發(fā)生,C2狀態(tài)不再向C1狀態(tài)遷移。于是第1次激活A(yù)2狀態(tài)時,被激活的子狀態(tài)是C2,而不是C1。 歷史節(jié)點 運行結(jié)果,用戶應(yīng)詳細比較兩者的區(qū)別。 運行結(jié)果 子狀態(tài)圖子狀態(tài)圖其實就是其內(nèi)部所包含的狀態(tài)圖的父狀態(tài)。用戶可以像操作父狀態(tài)一樣為子狀態(tài)圖定義狀態(tài)動作,遷移和默認遷移。與Simulink中的子系統(tǒng)類似,子狀態(tài)圖隱藏了模型的細節(jié),簡化了圖表。,在狀態(tài)A中單擊右鍵,在菜單中選擇Make Contents→Subcharted。此時,A狀態(tài)變成了灰色,隱藏了內(nèi)部細節(jié),成為子狀態(tài)。用戶再次進行Make Contents→Subcharted操作,則可取消子狀態(tài)圖。 建立子狀態(tài)圖雙擊子狀態(tài)圖A可以看到其內(nèi)部細節(jié)。利用Stateflow編輯器上的三個箭頭工具按鈕,用戶可以方便的在個層次圖表間進行切換。 層次狀態(tài)圖中的流程圖流程圖中不包含任何狀態(tài),也不保留任何狀態(tài)信息。流程圖一旦激活,即由默認遷移一直運行到終止節(jié)點為止。,當(dāng)狀態(tài)A處于激活狀態(tài)時,B事件發(fā)生則激活狀態(tài)B,這時便執(zhí)行狀態(tài)B中的流程圖,并且只執(zhí)行一次,執(zhí)行完成后B狀態(tài)仍保持激活,直到發(fā)生事件A,退出B狀態(tài)。 狀態(tài)中的流程圖 并行機制狀態(tài)可分為兩大類:互斥狀態(tài)exclusive (OR)和并行狀態(tài)parallel (AND)。若在同一個層次中含有多個互斥的狀態(tài),狀態(tài)不能同時被激活,不能同時執(zhí)行,在Stateflow中用實線框表示。相反,若同一層次中含有多個并行狀態(tài),則一旦父狀態(tài)處于激活狀態(tài),其并行子狀態(tài)同時處于激活狀態(tài)。 設(shè)置狀態(tài)關(guān)系在狀態(tài)圖編輯窗口的空白處,選擇右鍵菜單項Deposition→Exclusive(OR)或Parallel(AND),可設(shè)置頂級狀態(tài)的關(guān)系。,狀態(tài)A與狀態(tài)B是并行的。狀態(tài)關(guān)系的設(shè)置僅對本級起作用,盡管狀態(tài)A是并行的,但子狀態(tài)AA2仍是互斥的,若要修改,用戶需要在狀態(tài)A矩形框內(nèi)的空白處,單擊右鍵選擇菜單項。 并行狀態(tài)活動順序配置處于同一層次下的所有并行的狀態(tài)應(yīng)該在其父狀態(tài)被激活的時候同時被激活,但是它們的激活是按照一定順序進行的。其默認激活順序為:從上到下,從左到右。并且在每個狀態(tài)的右上角用數(shù)字標(biāo)注。若用戶希望改變其激活順序。例如將LED狀態(tài)放在Fan之后激活,可以先選中LED狀態(tài),在右鍵菜單中的Excution Order子菜單中改變激活順序。 本地事件廣播使用事件廣播,可以在某個狀態(tài)內(nèi)部觸發(fā)其他并行狀態(tài)的執(zhí)行,這樣就可以在系統(tǒng)的不同狀態(tài)之間實現(xiàn)交互,讓一個狀態(tài)的改變影響其他狀態(tài)。事件廣播可以觸發(fā)狀態(tài)動作、遷移動作和條件動作。使用廣播之前,需要預(yù)先定義事件。,Led狀態(tài)和Fan狀態(tài)為并行關(guān)系。① 當(dāng)父狀態(tài)PowerOn激活時,,;② ,廣播事件fanoff,于是響應(yīng)事件fanoff。 本地事件廣播 直接事件廣播使用直接事件廣播可以避免在仿真過程中出現(xiàn)不必要的循環(huán)或遞歸、并能有效的提高生成代碼的效率。用send函數(shù)直接事件廣播send函數(shù)的完整格式為:send(event_name, state_name),使用該函數(shù)進行直接事件廣播。Stateflow執(zhí)行過程如下:① 當(dāng)并行超狀態(tài)Led和Fan激活時,=1;② [flag==1]為真,于是執(zhí)行條件動作send(event_1,Fan),向狀態(tài)Fan廣播事件event_1,。 send函數(shù)直接事件廣播用事件名直接事件廣播,即可用事件名直接事件廣播。① 除事件event_1,另行定義Fan狀態(tài)的本地事件event_1。點擊模型工具欄圖標(biāo),在左側(cè)model hierarchy區(qū)域中選擇狀態(tài)Fan,并點擊add→Event按鈕,為Fan狀態(tài)添加本地事件。同樣的方法可以定義狀態(tài)的本地數(shù)據(jù)。②將條件動作{send(event_1,Fan)}替換為遷移動作/。本例與用send函數(shù)直接事件廣播的區(qū)別在于:① event_1屬于狀態(tài)Fan的本地事件,作用范圍限制在該狀態(tài)內(nèi)部,對Fan狀態(tài)可見,對Led為不可見。② {send(event_1,Fan)}。 事件名直接事件廣播 隱含事件和條件隱含事件是一種內(nèi)置事件,它不是由用戶顯式的定義或觸發(fā),而是當(dāng)狀態(tài)圖執(zhí)行時就會自動發(fā)生。例如狀態(tài)圖被喚醒、進入一個狀態(tài)、退出一個狀態(tài)或向內(nèi)部數(shù)據(jù)對象賦值。隱含事件是它們發(fā)生時所在的狀態(tài)的子對象,并且只對其父狀態(tài)可見。使用隱含事件和條件有助于簡化并行狀態(tài)之間的依賴關(guān)系,也可以減少數(shù)據(jù)字典中定義的事件數(shù)量,降低狀態(tài)圖的復(fù)雜程度。隱含事件/條件含義change(data_name) or chg(data_name)對指定變量(data_name)寫入數(shù)據(jù)時,隱含的產(chǎn)生一個本地信號。該變量不能為machine的子數(shù)據(jù),此隱含事件只對Chart或更低的層次有效。對于machine的子數(shù)據(jù),用變化監(jiān)測運算符決定其數(shù)據(jù)是否改變enter (state_name) or en(state_name)進入指定狀態(tài)(state_name)時,隱含的產(chǎn)生一個本地信號exit (state_name) or ex(state_name)退出指定狀態(tài)(state_name)時,隱含的產(chǎn)生一個本地信號tick評估動作所在的狀態(tài)圖被喚醒時,隱含的產(chǎn)生一個本地事件wakeup與tick相同[in(state_name)]當(dāng)指定狀態(tài)(state_name)處于激活狀態(tài),條件為真,Led和Fan是兩個并行狀態(tài),當(dāng)PowerOn激活時。當(dāng)隱含事件tick事件廣播6次后,,廣播隱含事件exit()。(Truth table)熟悉數(shù)字電路的用戶。輸入輸出ABYHHLHLHLHHLLL由于在Stateflow中,真值表的表達形式為條件,決策和動作,為了后面使用方便,:條件決策1決策2決策3決策4決策5(默認決策)A==0amp。amp。B==0TA==0am
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1