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

正文內(nèi)容

詳解stateflow建模與應(yīng)用實例-文庫吧資料

2025-06-29 04:53本頁面
  

【正文】 LL由于在Stateflow中,真值表的表達(dá)形式為條件,決策和動作,為了后面使用方便,:條件決策1決策2決策3決策4決策5(默認(rèn)決策)A==0amp。當(dāng)隱含事件tick事件廣播6次后,廣播隱含事件exit()。該變量不能為machine的子數(shù)據(jù),此隱含事件只對Chart或更低的層次有效。隱含事件是它們發(fā)生時所在的狀態(tài)的子對象,并且只對其父狀態(tài)可見。 事件名直接事件廣播 隱含事件和條件隱含事件是一種內(nèi)置事件,它不是由用戶顯式的定義或觸發(fā),而是當(dāng)狀態(tài)圖執(zhí)行時就會自動發(fā)生。本例與用send函數(shù)直接事件廣播的區(qū)別在于:① event_1屬于狀態(tài)Fan的本地事件,作用范圍限制在該狀態(tài)內(nèi)部,對Fan狀態(tài)可見,對Led為不可見。同樣的方法可以定義狀態(tài)的本地數(shù)據(jù)。① 除事件event_1,另行定義Fan狀態(tài)的本地事件event_1。Stateflow執(zhí)行過程如下:① 當(dāng)并行超狀態(tài)Led和Fan激活時,=1;② [flag==1]為真,于是執(zhí)行條件動作send(event_1,Fan),向狀態(tài)Fan廣播事件event_1。 本地事件廣播 直接事件廣播使用直接事件廣播可以避免在仿真過程中出現(xiàn)不必要的循環(huán)或遞歸、并能有效的提高生成代碼的效率。,Led狀態(tài)和Fan狀態(tài)為并行關(guān)系。事件廣播可以觸發(fā)狀態(tài)動作、遷移動作和條件動作。例如將LED狀態(tài)放在Fan之后激活,可以先選中LED狀態(tài),在右鍵菜單中的Excution Order子菜單中改變激活順序。并且在每個狀態(tài)的右上角用數(shù)字標(biāo)注。 并行狀態(tài)活動順序配置處于同一層次下的所有并行的狀態(tài)應(yīng)該在其父狀態(tài)被激活的時候同時被激活,但是它們的激活是按照一定順序進行的。狀態(tài)A與狀態(tài)B是并行的。相反,若同一層次中含有多個并行狀態(tài),則一旦父狀態(tài)處于激活狀態(tài),其并行子狀態(tài)同時處于激活狀態(tài)。 狀態(tài)中的流程圖 并行機制狀態(tài)可分為兩大類:互斥狀態(tài)exclusive (OR)和并行狀態(tài)parallel (AND)。流程圖一旦激活,即由默認(rèn)遷移一直運行到終止節(jié)點為止。利用Stateflow編輯器上的三個箭頭工具按鈕,用戶可以方便的在個層次圖表間進行切換。用戶再次進行Make Contents→Subcharted操作,則可取消子狀態(tài)圖。,在狀態(tài)A中單擊右鍵,在菜單中選擇Make Contents→Subcharted。用戶可以像操作父狀態(tài)一樣為子狀態(tài)圖定義狀態(tài)動作,遷移和默認(rèn)遷移。 歷史節(jié)點 運行結(jié)果,用戶應(yīng)詳細(xì)比較兩者的區(qū)別。,父狀態(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)遷移。 層次化的遷移 歷史節(jié)點在狀態(tài)圖的頂層或一個父狀態(tài)里或放置一個歷史節(jié)點,它便能能記錄退出父狀態(tài)時,正處于激活狀態(tài)的子狀態(tài),當(dāng)再次進入父狀態(tài)時,則默認(rèn)激活上一次所記錄的子狀態(tài),而不是激活默認(rèn)遷移的狀態(tài)。層次化遷移的優(yōu)先級規(guī)則為:從高層次到低層次檢測;從外部遷移到內(nèi)部遷移檢測;同一層次內(nèi),超轉(zhuǎn)移優(yōu)先。2 層次化遷移的優(yōu)先級與狀態(tài)類似,遷移也具有層次性,遷移所屬的層次是由其父狀態(tài)、源狀態(tài)和目標(biāo)狀態(tài)決定的。在交通燈系統(tǒng)中,同一個父狀態(tài)PowerOn存在紅黃綠三個子狀態(tài),它們需要不停地轉(zhuǎn)換,但除非發(fā)生PowerOff事件,不會退出父狀態(tài),對于這樣的邏輯過程,讀者可能習(xí)慣使用節(jié)點將三種狀態(tài)的遷移聯(lián)系起來。在狀態(tài)圖中使用層次有如下幾個目的:l 使用層次,可以將相關(guān)的對象組合在一起,構(gòu)成族群;l 可以將一些通用的遷移路徑或者動作組合成為一個遷移動作或路徑,簡化模型;l 適當(dāng)?shù)厥褂脤哟?,可以有效地縮減生成代碼的大小,也能夠提高程序執(zhí)行的效率和可讀性。狀態(tài)具有了層次,遷移自然也具有了層次,Stateflow允許在不同層次狀態(tài)之間存在轉(zhuǎn)移。 層次的概念Stateflow的對象具有層次性,一個Stateflow對象可以包含其他Stateflow對象,例如狀態(tài)內(nèi)若包含其他狀態(tài),則形成父狀態(tài),其內(nèi)部狀態(tài)稱為子狀態(tài)。 流程圖向?qū)Р藛微?這里選擇Patterns → Add Decision → IfElseifElse...,在隨后打開的對話框中輸入判斷條件與對應(yīng)的動作。本小節(jié)使用向?qū)?,重建圖x的流程圖。2. 自動建立對于簡單的流程圖,手動建立難度不大,而對于稍復(fù)雜的邏輯,用戶難免會感到無從下手。選擇編輯器菜單項File → Chart Properties,取消User specified state/transition execution order前的復(fù)選框,啟用隱性模式。修改了某一輸出遷移的優(yōu)先級,系統(tǒng)會自動調(diào)整同一節(jié)點另一遷移的優(yōu)先級。默認(rèn)情況下,Stateflow狀態(tài)圖使用顯性優(yōu)先級模式,用戶可以自行修改各個遷移優(yōu)先級。例如,選擇節(jié)點C1的右鍵菜單項Junction Size→16,放大節(jié)點;選擇節(jié)點A1的右鍵菜單項Arrowhead Size → 20,放大指向該節(jié)點的所有遷移箭頭。},并向終節(jié)點B2遷移;3. 如果不滿足任何條件,則向終節(jié)點C1遷移。},并向終節(jié)點A2遷移;2. 如果條件[percent==100]不為真,向B1節(jié)點遷移,繼續(xù)判斷如果條件[sec==60]為真,執(zhí)行{sec=0。流程圖運行過程如下:1. 系統(tǒng)默認(rèn)遷移進入節(jié)點A1,如果條件[percent==100]為真,執(zhí)行{percent=0。} endend① 起始節(jié)點單擊按鈕,添加起始節(jié)點。}else if sec==60 {sec=0。if percent==100 {percent=0。建議:用戶可以把流程圖封裝成一個圖形函數(shù)(),便于在Stateflow的任意位置調(diào)用。從另一個角度來看,節(jié)點可以認(rèn)為是系統(tǒng)的一個判決點或匯合點,它將一個完整的遷移分成了若干個遷移段。由于遷移(除了默認(rèn)遷移)總是從一個狀態(tài)到另一個狀態(tài),節(jié)點之間的遷移只能是一個遷移段。狀態(tài)圖的一個特點是,在進入下一個仿真步長前,它會記錄下當(dāng)前的本地數(shù)據(jù)與各狀態(tài)的激活情況,供下一步長使用。 修改作用域與父對象用戶若接受向?qū)У慕ㄗh,則單擊數(shù)據(jù)/事件前的空白處,選中該條目,之后按下Create,創(chuàng)建對象。 向?qū)褂谜f明Symbol Autocreation Wizard向?qū)Ыㄗh,應(yīng)另行創(chuàng)建數(shù)據(jù)y與事件stop。例如,任意添加一個狀態(tài)動作y=1,任意添加一個遷移事件stop。當(dāng)用戶完成狀態(tài)圖的編輯,按下仿真按鈕時,系統(tǒng)首先要進行語法檢查,如果發(fā)現(xiàn)錯誤,則給出提示。實際建模時,隨著思路的不斷擴展與成熟,狀態(tài)、遷移、數(shù)據(jù)、事件、動作等等各種圖形與非圖形對象,總是交替著添加,很少按照上述過程逐步進行。添加節(jié)點與遷移動作。percentbuf = percent。按下LAP按鈕或再次按下start時,數(shù)碼管2都必須顯示當(dāng)前時刻,因此設(shè)置子狀態(tài)LAP與Finished的進入動作為:Finishedentry:minbuf = min。secbuf=0。percent=0。計時器復(fù)位時,2組數(shù)碼管皆應(yīng)清零,因此設(shè)置子狀態(tài)Reset的進入動作為:Resetentry:min=0。上文提到,顯示時間值可以定義為狀態(tài)動作,也可以定義為遷移動作。有多個數(shù)據(jù)或事件時,用戶還可以指定它們的端口號,合理地排列這些端口,將有利于以后的Simulink模塊連線。與菜單項方法不同的是,使用瀏覽器添加的數(shù)據(jù)/事件,默認(rèn)的作用域是本地(Local),用戶需要手動修改為外部輸入或外部輸出。 模型瀏覽器在瀏覽器窗口的工具欄找到按鈕、與,添加一個數(shù)據(jù)/事件或刪除對應(yīng)項。 添加輸出數(shù)據(jù)在Name欄填入輸出變量名min,另外用戶在scope欄還可以再次決定變量的作用域。為了照顧讀者的不同需求,本文仍舊介紹兩種添加方式。添加數(shù)據(jù)或事件的方法有兩種:使用菜單項Add或使用模型瀏覽器(Model Explorer)。 添加遷移及遷移標(biāo)簽以圈計時需要2組數(shù)碼管顯示當(dāng)前以及記錄的分、秒、百分秒,另有兩個按鈕,為此需要添加6個數(shù)據(jù)與2個事件。: 添加4個狀態(tài)再根據(jù)各狀態(tài)之間的聯(lián)系,添加默認(rèn)遷移、遷移以及遷移標(biāo)簽。 移動遷移標(biāo)簽根據(jù)以圈計時的特點,整個系統(tǒng)可分為2個父狀態(tài):停止與運行。 4. 遷移標(biāo)簽新建的遷移標(biāo)簽不包含任何文字信息,用戶單擊遷移曲線一次,曲線上方顯示“?”: 添加遷移標(biāo)簽將鼠標(biāo)移至“?”附近,再次單擊,當(dāng)顯示編輯光標(biāo)時,可編輯遷移標(biāo)簽。3. 遷移變更鼠標(biāo)放置在遷移的起點或終點,當(dāng)光標(biāo)變成圓圈時(),按住鼠標(biāo)左鍵,可將該端點移至其他狀態(tài)。 選擇默認(rèn)遷移再次單擊,即添加了一個默認(rèn)遷移。 父狀態(tài)與子狀態(tài)1. 添加遷移將鼠標(biāo)移至源狀態(tài)矩形框的邊緣,當(dāng)光標(biāo)變成十字時,按下左鍵并拖向目標(biāo)狀態(tài)的邊緣,然后釋放,即添加了一個遷移。 狀態(tài)命名 狀態(tài)名修改將鼠標(biāo)移至狀態(tài)矩形框4個角落的任意一個,調(diào)整其大小。 添加狀態(tài)在狀態(tài)矩形框左上角的編輯提示符后,輸入狀態(tài)的名稱,如stop。新建一個空白的Stateflow模型,單擊狀態(tài)按鈕,并在Stateflow窗口的適當(dāng)位置再次單擊,加入一個狀態(tài)。 關(guān)鍵字關(guān)鍵字在Stateflow中的用途hasChanged,hasChangedFrom,hasChangedTo變更監(jiān)測plex, imag, real復(fù)數(shù)數(shù)據(jù)boolean, double, int8,int16, int32, single,uint8, uint16, uint32數(shù)據(jù)類型cast, fixdt, type數(shù)據(jù)類型操作send明確事件change, chg, tick, wakeup隱含事件false, inf, true, t標(biāo)志位matlab, mlMATLAB函數(shù)與數(shù)據(jù)bind, du, during, en,entry, ex, exit, on狀態(tài)動作in狀態(tài)激活after, at, before, every,sec, temporalCount時間邏輯長跑比賽時,通常要用到以圈計時的方法,它的意思是:計時器初次開啟時,2組數(shù)碼管皆清零;運動員出發(fā)時,按下Start按鈕開始計時,數(shù)碼管1顯示實時時間;第一次回到起點,表示跑完一圈,這時按下LAP按鈕,數(shù)碼管2顯示當(dāng)前的時間值,表示一圈所花費的時間,但比賽仍在進行,因此計時器仍然在計時;再次按下Start按鈕,2組數(shù)碼管同時顯示最后的時間;第三次按下Start按鈕,2組數(shù)碼管清零,回到初始狀態(tài)。由于RealTime Workshop代碼生成工具的限制,對象的名稱不能超過一定長度,用戶可以在模型參數(shù)設(shè)置對話框的RealTime Workshop→Symbols面板進行修改,默認(rèn)的長度是31,最大的長度是256。z=x+y?!瓟?shù)學(xué)運算:x=1?!录V播:Start。這里所說的動作可以是一個函數(shù)調(diào)用,廣播事件,數(shù)學(xué)運算等等。如同數(shù)據(jù),事件同樣有它的作用域,根據(jù)作用域的不同,事件可分為:l Stateflow狀態(tài)圖本地事件;l 自外部Simulink模塊輸入的事件;l 向外部Simulink模塊輸出的事件;事件的簡單使用,;事件的分類。數(shù)據(jù)的簡單使用。1. 數(shù)據(jù)數(shù)據(jù)是非圖形的對象,它有一個很重要的特性:作用域,用戶在使用數(shù)據(jù)時必須明確定義該特性。,用戶可以根
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1