摘 要:電梯控制系統(tǒng)是一個復(fù)雜的自動化控制系統(tǒng),文章在分析電梯運(yùn)行特點(diǎn)的基礎(chǔ)上,設(shè)計一種電梯運(yùn)行控制的有限狀態(tài)機(jī)模型,基于該有限狀態(tài)機(jī)模型設(shè)計優(yōu)化的電梯控制算法,并實(shí)現(xiàn)該算法,實(shí)驗表明,該算法具有邏輯清晰、簡單明了、運(yùn)行可靠高效等特點(diǎn),可以很好地應(yīng)用于教學(xué)及實(shí)際電梯控制系統(tǒng)之中。
關(guān)鍵詞:電梯;有限狀態(tài)機(jī);電梯控制算法;算法設(shè)計與實(shí)現(xiàn)
在現(xiàn)代社會中,特別是高層建筑里,電梯是不可缺少的垂直運(yùn)輸工具。電梯的特點(diǎn)是所占面積很小,通過合理的控制程序可以將乘客或貨物安全有效快速地運(yùn)送到不同的樓層[1][2]。而目前的電梯控制算法比較復(fù)雜,程序比較繁瑣[3],文章提出了基于有限狀態(tài)機(jī)的優(yōu)化電梯控制算法,并給出了具體的實(shí)現(xiàn)。
1 電梯運(yùn)行分析
電梯結(jié)構(gòu),一般電梯內(nèi)有所有樓層的對應(yīng)按鍵,提供人們按下所要到達(dá)的目的層;每一層電梯外都會對應(yīng)有一個向上和向下的方向鍵(如果是最高層,則只有向下的按鍵;如果是最底層,則只有向上的按鍵),提供人們所在樓層做出上樓或者下樓的操作。
電梯作為垂直運(yùn)輸?shù)纳翟O(shè)備,它通用的使用規(guī)則:當(dāng)只有一層有需求時,電梯直接響應(yīng)。每到達(dá)一個需要響應(yīng)的樓層,則開門后關(guān)門。當(dāng)電梯處于上升狀態(tài)時,電梯只響應(yīng)高層的上升按鍵請求。當(dāng)電梯處于下降狀態(tài)時,電梯只響應(yīng)低層的下降按鍵請求。每個請求信號保留到執(zhí)行后自動刪除。
2 電梯控制的有限狀態(tài)機(jī)模型設(shè)計
有限狀態(tài)機(jī)是表示有限個狀態(tài)以及這些狀態(tài)之間轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型,在軟件設(shè)計領(lǐng)域中,狀態(tài)機(jī)經(jīng)常用來描述一些復(fù)雜的算法,表明一些算法內(nèi)部的結(jié)構(gòu)和流程[4]。文章采用有限狀態(tài)機(jī)來描述電梯的控制過程,思路明確清晰。有限狀態(tài)機(jī)關(guān)鍵的步驟在于確定狀態(tài)的對象以及狀態(tài)的個數(shù),文章將電梯處在的每一個樓層都視為一個狀態(tài),而每一個狀態(tài)下都對應(yīng)電梯開門、關(guān)門、停止、向上走一層和向下走一層這些動作,動作之間的轉(zhuǎn)移有相應(yīng)的條件觸發(fā),具體參考圖1所示。
對圖1中具體的狀態(tài)、動作轉(zhuǎn)移說明如下:
(1)“到達(dá)第N層”這個狀態(tài)下,能產(chǎn)生“電梯開門”動作的觸發(fā)條件為條件1,條件1為:第N層為目的地。可能對應(yīng)以下兩種情況中的一種,或者兩種都具備:a.電梯內(nèi)有人按當(dāng)前層;b.電梯外有人按下方向鍵,且方向鍵與當(dāng)前電梯運(yùn)行方向一致;“電梯開門”動作后,無條件進(jìn)入“電梯關(guān)門”動作。(2)“到達(dá)第N層”這個狀態(tài)下,由“電梯關(guān)門”動作轉(zhuǎn)到“向上走一層”動作的觸發(fā)條件為條件2,條件2為:電梯繼續(xù)上行。即電梯停止或者運(yùn)行方向向上,尚未到達(dá)最高目的樓層。而最高目的樓層取決于:a.電梯內(nèi)有人按了更高樓層;b.更高樓層電梯外有人按下,無須考慮電梯外的方向鍵。(3)“到達(dá)第N層”這個狀態(tài)下,由“電梯關(guān)門”動作轉(zhuǎn)到“向下走一層”動作的觸發(fā)條件為條件3,條件3為:電梯繼續(xù)下行。電梯停止或者運(yùn)行方向向下,尚未到達(dá)最低目的地,最低目的地取決于:a.電梯內(nèi)有人按了更低樓層;b.更低樓層電梯外有人按下,無須考慮電梯外的方向鍵。(4)“到達(dá)第N層”這個狀態(tài)下,由“電梯關(guān)門”動作轉(zhuǎn)到“停止”動作的觸發(fā)條件為條件4,條件4為:無鍵按下(電梯內(nèi)外都無按鍵按下)。(5)“到達(dá)第N層”這個狀態(tài)下,直接轉(zhuǎn)到“向上走一層”動作的觸發(fā)條件為條件5,條件5為:電梯當(dāng)前向上運(yùn)行,第N層不是目的地。下面條件同時滿足:a.電梯內(nèi)無人按當(dāng)前層;b.電梯外無人按下與當(dāng)前電梯運(yùn)行方向一致的方向鍵。(6)“到達(dá)第N層”這個狀態(tài)下,直接轉(zhuǎn)到“向下走一層”動作的觸發(fā)條件為條件6,條件6為:電梯當(dāng)前向下運(yùn)行,第N層不是目的地。下面條件同時滿足:a.電梯內(nèi)無人按當(dāng)前層;b.電梯外無人按下與當(dāng)前電梯運(yùn)行方向一致的方向鍵。(7)在“到達(dá)第N層”這個狀態(tài)下,直接轉(zhuǎn)向“停止”動作的觸發(fā)條件為條件7,條件7為:無鍵按下(電梯內(nèi)外都無按鍵按下)。(8)在“到達(dá)第N層”這個狀態(tài)下,直接轉(zhuǎn)向“停止”動作的觸發(fā)條件為條件8,條件8為:有鍵按下(電梯內(nèi)或外有按鍵按下)。每當(dāng)“向上走一層”或者“向下走一層”的動作都會觸發(fā)狀態(tài)的轉(zhuǎn)移,由電梯“到達(dá)第N層”轉(zhuǎn)移到“到達(dá)第N+1層”或者“到達(dá)第N-1層”。
3 基于有限狀態(tài)機(jī)的算法設(shè)計與實(shí)現(xiàn)
根據(jù)上文介紹,利用有限狀態(tài)機(jī)建模,將電梯的每個樓層視為一個狀態(tài),每個狀態(tài)下,又分為若干動作。在具體的實(shí)現(xiàn)中,在“每達(dá)到一層”的狀態(tài)下,都進(jìn)行圖1中各個條件判斷,滿足條件則觸發(fā)對應(yīng)的動作。同時在具體實(shí)現(xiàn)中,由于這個動作的觸發(fā)條件都是取決于當(dāng)前電梯按鍵狀態(tài),因此我們需要記錄電梯內(nèi)外按鍵的狀態(tài)、電梯當(dāng)前運(yùn)行的方向和最高(最低)響應(yīng)樓層的判斷。根據(jù)電梯控制的有限狀態(tài)機(jī)模型,設(shè)計優(yōu)化的電梯控制算法如下:
算法1基于有限狀態(tài)機(jī)的優(yōu)化電梯控制算法
INPUT: 電梯內(nèi)部按鍵及各樓層按鍵狀態(tài);
OUTPUT: 電梯運(yùn)行控制信號.
PROCEDUCE: FSM_Based_ elevator_control_Algorithm()
1.while (true) then
2. if 根據(jù)電梯內(nèi)部按鍵、當(dāng)前樓層按鍵及電梯運(yùn)行判斷當(dāng)前樓層應(yīng)該開門 then
3. 在暫停在當(dāng)前樓層,并進(jìn)行電梯開門、關(guān)門動作;
4. end if;
5. if 電梯運(yùn)行方向是上行 then
6. if 到達(dá)上行最高目的層 then
7. 暫停在當(dāng)前層;
8. else // 還未到達(dá)最高目的層
9. 驅(qū)動電梯上行;
10. end if else;
11. else if 電梯運(yùn)行方向是下行
12. if 到達(dá)下行最低目的層 then
13. 暫停在當(dāng)前層;
14. else // 還未到達(dá)最低目的層
15. 驅(qū)動電梯下行;
16. end if else;
17. else // 電梯目前是暫停在當(dāng)前層
18. 根據(jù)電梯內(nèi)部按鍵、各樓層按鍵設(shè)置電梯運(yùn)行方向及目標(biāo)層
19. end if else;
20. end while;
該算法需特別說明兩點(diǎn):(1)步驟2-3需根據(jù)電梯運(yùn)行設(shè)計時
速提前進(jìn)行判斷,以便于有足夠的時間控制電梯暫停在該層上;(2)電梯的每次按鍵都將刷新當(dāng)前運(yùn)行電梯的最高目的層或最低目的層,以便能及時響應(yīng)用戶使用電梯的需求。我們在Microsoft Visual C++環(huán)境中對算法進(jìn)行了實(shí)現(xiàn),實(shí)驗表明,該算法具有計算量級小,能及時響應(yīng)按鍵,運(yùn)行高效等特點(diǎn)。
4 結(jié)束語
文章提出了基于有限狀態(tài)機(jī)的優(yōu)化電梯控制算法,實(shí)驗表明,該算法具有邏輯清晰、簡單明了、運(yùn)行可靠高效等特點(diǎn),適用于教學(xué)或者控制電梯的應(yīng)用研究工作中。
參考文獻(xiàn)
[1]王榮娟.基于單片機(jī)電梯控制系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].河南科技,2013(14):93-93.
[2]張衛(wèi)國.電梯的智能群控算法研究[D].南京理工大學(xué),2004.
[3]陶磊.試論電梯控制算法[J].中國科技博覽,2013(8):323.
[4]卡茨.現(xiàn)代邏輯設(shè)計[M].電子工業(yè)出版,2006,3.