時間:2008-07-11 09:57:00來源:ronggang
圖3 出現失步的狀態(tài)機[/align]
由圖3可以看出,狀態(tài)1根據傳感器a信號躍遷到狀態(tài)2,狀態(tài)2根據傳感器b信號躍遷到狀態(tài)3。如果b信號在a信號前發(fā)出了一個完整的脈沖,由于根據狀態(tài)圖在狀態(tài)1時并不需要檢測b信號,因此當躍遷到狀態(tài)2以后,狀態(tài)機就出現失步了。解決這個問題需要預先分析好a,b信號的關系。如果是b信號一定出現在a信號前,那不妨把狀態(tài)1和2的條件判斷對調,如果兩個信號是并發(fā)關系的,那就要合并狀態(tài)機1,2,把a,b信號作為躍遷到3的綜合條件。因此解決失步問題的要點在于仔細考察受控對象處于此狀態(tài)時所可能出現的傳感器信號變化及其變化關系。
在處理“輸入-輸出對”時要注意防止狀態(tài)機跳步。“輸入-輸出對”是嵌入式領域中經常遇到的控制模式,類似于應答機制??刂茖咏o出一個輸出,使得傳感器信號產生變化并反饋,過一段時間后,控制對象運動完成,傳感器信號恢復初態(tài),此時控制層可以撤消原輸出并給出相關處理。設計者會有意無意的把注意力放在“什么時候撤消輸出”,因此設計出如圖4(a)所示的有潛在問題的狀態(tài)機。
[align=center]
圖4 出現跳步的狀態(tài)圖[/align]
可是控制對象在收到控制層輸出的驅動產生運動,傳感器感知運動并給出信號變化是需要時間的。根據圖4(a)的狀態(tài)機,很可能跳過傳感器信號變化的狀態(tài),而直接到達“撤消輸出”的狀態(tài)。結果導致控制層的輸出僅僅是一瞬而過甚至是無法輸出,這就是跳步。為解決跳步問題,就需要設計者仔細分析所有的“輸入-輸出對”,把狀態(tài)細分。如圖4(b)所示,增加一個等待對象運動的新狀態(tài),確保上一狀態(tài)的輸出驅使對象真正運動以后才判斷對象運動停止。然而在細分狀態(tài)的同時也要注意防止失步。狀態(tài)分得越細,越要注意分析此狀態(tài)中所有可能出現的信號變化。
4.狀態(tài)機在工控軟件中的狀態(tài)劃分問題
把一個狀態(tài)機看作是一個動作模塊,并把這些模塊串聯(lián)起來,就可以實現這幾個動作的并發(fā)輸出。如果是基于操作系統(tǒng)的,狀態(tài)機還可以放在不同的任務中,也可以實現并發(fā)輸出。每個狀態(tài)機設定一個空閑狀態(tài),當不需要其運轉時讓其進入該狀態(tài)。同一個控制環(huán)的狀態(tài)機之間的通信可以用標志位或者狀態(tài)變量,不同任務的狀態(tài)機可以通過一個全局的結構體交互信息,實現同步。
狀態(tài)機的調度并不困難,關鍵在于如何根據受控對象的運動規(guī)律來劃分狀態(tài)機動作模塊。在實際應用中,“周期性”是解決問題的關鍵。從復雜的運動時序中歸納出帶有“往復運動”性質的輸出,連同與其同步的其他輸入輸出歸入一個狀態(tài)機中。這樣每個具有“往復運動”性質的運動模態(tài)都建立一個狀態(tài)機。同時,可以運用上文介紹的方法實現這幾個運動模態(tài)的并發(fā)和同步控制。
下面通過某型進油系統(tǒng)來說明如何劃分狀態(tài)機。某型進油系統(tǒng)分左右兩路。每路由一油鏈,擺臂,撥動滑板組成。油鏈上裝載多個裝油模塊。擺臂把模塊提升到滑板,并由滑板推進到燃燒艙中,然后油鏈步進一次。全過程雙路交替供油。供油分為低速供油和高速供油。時序如下圖,黑色橫線代表動作持續(xù)時間。
[align=center]
圖5供油系統(tǒng)低速供油時序圖[/align]
[align=center]
圖6 供油系統(tǒng)高速供油時序圖[/align]
先分析低速供油的情況??梢钥闯鲇筒巯陆?油門關-油槽上升-油門開-滑板(左或右)這幾個動作是交替出現,在滑板動作完成以后,油槽又開始新一輪的動作。由于這種周期性,可以把這幾個動作歸入狀態(tài)機A中。而油鏈動作是由滑板動作觸發(fā)的,當滑板運動到一定位置時候油鏈會啟動,油鏈的運動會持續(xù)到下一次同側運動開始后。如果把油鏈運動也歸入狀態(tài)機A中,就打破了A的周期性,從而增加了A的狀態(tài)確定復雜化。另外從運動的本質上來說,油鏈運動被狀態(tài)機A中的滑板運動所激發(fā),因而把油鏈運動定義在另一個狀態(tài)機B更為合理。B是在A運動到某個狀態(tài)時所觸發(fā)的,觸發(fā)后,B和A就是并發(fā)運行的狀態(tài)機。
高速供油與低速時序的區(qū)別在于在左路狀態(tài)機A的周期沒有完成的情況下,右路的狀態(tài)機A已經開始了。但是盡管如此,對于單路而言,油槽下降-油門關-油槽上升-油門開-滑板(左或右)仍然呈現周期性。所以應該為左右兩路各建立一個狀態(tài)機A,也就是A1和A2。A1和A2的狀態(tài)機代碼是一樣的,當判斷油槽重新上升后馬上觸發(fā)相對一側的狀態(tài)機。同理對于油鏈運動,也應該建立B1和B2狀態(tài)機。在多任務系統(tǒng)中,左右兩路可以分別建立一個任務。把Ax和Bx歸入其中一個任務中。
綜上所述,根據周期劃分受控對象的運動,并建立相應的狀態(tài)機,就可以描述各種復雜并行的時序輸出。
5.結論
本文結合嵌入式工控軟件設計的工程實踐,分析了狀態(tài)機思想在軟件設計中的應用。給出了狀態(tài)機在嵌入式軟件中前后臺信息交互的通用模型;分析了高速狀態(tài)機容易出現的錯步問題;最后結合某型供油系統(tǒng),給出了劃分狀態(tài)機的周期性準則,該準則對于分析受控對象運動具有一定的參考價值。
參考文獻
[1].周懷得,肖傳,偉郝志航.基于DSP和CPLD的智能相機系統(tǒng)設計與研制[ J ].微計算機信息,2006,Vol.22,No.17
[2].王劍,趙海燕. 基于CPLD的控制器冗余設計[ J ].微計算機信息.2005 Vol.12, No.23
[3].James R. Armstrong F. Gail Gray: VHDL Design Representation and Synthesis. China Machine Press.
[4].趙世霞,楊豐,劉揭生.VHDL與微機接口設計。 北京,清華大學出版社,2004。
[5].王誠,薛小剛,鐘信潮.Xilinx ISE 使用詳解。北京:人民郵電出版社,2004。
[6].楊慶. 有限狀態(tài)機的設計與優(yōu)化.湖北民族學院學報(自然科學版),Vol.24,No.1,Mar 2006.
[7].鄔楊波,王曙光,胡建平.有限狀態(tài)機的VHDL設計與優(yōu)化.信息技術.VOL.28,NO.1,Jan.2004.
[8].李霞,王永章,梁宏斌,鐘力. 有限狀態(tài)機在開放式數控系統(tǒng)中的應用[J]. 計算機集成制造系統(tǒng),2005,03:429-432.
[9].Alain Girault,Bilung Lee,and Edward A.Lee,”Hierarchical Finite State Machines with Multiple Concurrency Models”,IEEE Trans.Computer-Aided Design Of Integrated Circuits And Systems,Vol 18,No.6,pp. 742-760,June,1999.
標簽:
![]()
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(m.cqlanhua.cn)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
相關資訊
產品新聞
更多>2026-06-10
2026-06-06
干式變壓器溫度控制器BWD3K130,BWD3K260...
2026-06-04
干式變壓器冷卻風機GFDD370-150/155,GF...
2026-06-04
2026-05-28
2026-05-08