陳紀龍 孟洪兵
隨著科學(xué)技術(shù)和社會經(jīng)濟的發(fā)展,建筑物的高層化已成為現(xiàn)代城市的標志。電梯作為上下運輸工具,承擔著大量的人流和物流的輸送,其作用在建筑物中至關(guān)重要。近年來,國內(nèi)外的電梯生產(chǎn)技術(shù)得到了迅速發(fā)展。一些電梯生產(chǎn)商也在不斷改進設(shè)計、修改工藝、更新?lián)Q代,生產(chǎn)新型的電梯[1]。電梯系統(tǒng)主要分為控制系統(tǒng)與機械系統(tǒng)兩大部份,隨著自動控制理論與微電子技術(shù)的發(fā)展,電梯的控制手段與拖動方式均發(fā)生了很大的變化,交流調(diào)速是當前電梯拖動的主要發(fā)展方向。目前電梯控制系統(tǒng)主要有三種控制方式:微型計算機控制系統(tǒng)、PLC控制系統(tǒng)、繼電器邏輯控制系統(tǒng)。微機控制系統(tǒng)雖在智能控制方面有較強的功能[2],但也存在抗干擾性差、系統(tǒng)設(shè)計復(fù)雜、一般維修人員難以掌握其維修技術(shù)等缺陷;PLC控制系統(tǒng)電路設(shè)計簡單,但成本比較高,硬件設(shè)計也不夠靈活[3];繼電器控制系統(tǒng)由于故障率高、可靠性差、控制方式不靈活以及消耗功率大等缺點,目前已逐漸被淘汰[4]。綜上所述,本研究采用面向?qū)ο蠓椒▽崿F(xiàn)電梯控制系統(tǒng)的模擬,程序簡單,運行方便,成本低。通過本系統(tǒng)的設(shè)計可進一步加深對面向?qū)ο蠹夹g(shù)的理解和掌握,對于完善其控制功能具有重要意義。
本研究的目標是模擬電梯控制系統(tǒng)。本文設(shè)計了電梯調(diào)度算法及調(diào)度策略,利用Java語言作為開發(fā)工具[5],實現(xiàn)了系統(tǒng)的界面、功能模塊設(shè)計。該設(shè)計主要模擬電梯內(nèi)部的數(shù)字鍵及對應(yīng)的操作,電梯開門、關(guān)門按鈕及其相應(yīng)操作,電梯外部上下行按鈕及其操作,電梯當前運行狀態(tài)的顯示,電梯到達相應(yīng)樓層后開關(guān)門的提示音等。該系統(tǒng)結(jié)構(gòu)合理,操作簡單,效果良好,建模方法具有一定的通用性[6]。本系統(tǒng)的設(shè)計思想與方法對實際電梯的運行具有一定的指導(dǎo)意義[7]。
一臺電梯對應(yīng)一個控制系統(tǒng),一個轎箱,有N個樓層。每個樓層對應(yīng)一個電梯門,當在某樓層接受到閉門、開門信號時,將執(zhí)行相應(yīng)操作,若電梯門處于打開狀態(tài),且未收到閉門信號,等待一段時間后,電梯門仍將自動關(guān)閉。(本系統(tǒng)中N=6)
方向檢測:是通過電梯初始所在樓層和目標樓層來確定電梯的運動方向的檢測。
目標樓層:將多用戶同時所請求的不同樓層按照優(yōu)先級的高低進行排序所得到的電梯當前要執(zhí)行的樓層。
暫??刂?當電梯接收到超重信號時,發(fā)出報警信號,同時電梯保持開門,直到超重信號消失才會恢復(fù)正常的這樣一種狀態(tài)。
開門和關(guān)門按鈕:在電梯內(nèi)部有開門和關(guān)門的按鈕,開門按鈕能夠延遲關(guān)門時間讓乘客進入或走出電梯,關(guān)門按鈕可以加速電梯關(guān)門讓電梯進入運行狀態(tài),節(jié)省時間。
向上按鈕和向下按鈕:除最低層和最頂層只有一個按鈕外,每個樓層都有兩個按鈕,分別指示上樓請求和下樓請求。
樓層按鈕:每個電梯里面都有一些按鈕,每個按鈕對應(yīng)一個樓層。
優(yōu)先處理:在遇到有沖突請求的情況下,如果兩樓層同時發(fā)出請求,可以讓電梯正常運行,按照優(yōu)先級的高低進行排序,從而按照排序執(zhí)行相應(yīng)的請求。
3.2.1 電梯的初始狀態(tài)是位于第一層,所有按鈕都沒有被按下,電梯門處于關(guān)閉狀態(tài)。
3.2.2 乘客可以在任意時刻按任何一個目標樓層按鈕和呼叫按鈕。假設(shè)乘客在某一時刻按下某按鈕,則此時將存在以下情況:
3.2.2.1 呼叫和目標對應(yīng)的樓層可能是電梯當前運行方向可達到的樓層,則按電梯調(diào)度算法的相關(guān)策略處理。
3.2.2.2 呼叫和目標對應(yīng)的樓層可能不是電梯當前運行方向可達到的樓層,也按電梯調(diào)度算法的相關(guān)策略處理。
3.2.2.3 如果電梯正好經(jīng)過第n層,且第n層不是最上層或最下層,則出于安全考慮,不再響應(yīng)此時所發(fā)出第n層的呼叫和目標請求。
3.2.2.4 乘客按下錯誤按鈕:電梯在運行時,乘客按下開門或閉門按鈕,不響應(yīng)該請求。
電梯模擬系統(tǒng)的核心是電梯調(diào)度算法。該算法的基本思想是:本研究設(shè)計了一部電梯,通過往返尋找路徑的方法,即先查詢電梯運行方向的樓層是否有其他按鍵被按下,有就將該請求加入到電梯請求的隊列中并按距離最短進行排序,并一一到達相應(yīng)請求樓層。如果沒有就查詢電梯運行反方向的樓層是否有按鍵被按下,如果有電梯就改變方向,反向運行。如果沒有電梯就停止在該樓層。同時,電梯乘客所去的樓層方向與電梯當前方向一致的話,則電梯優(yōu)先搭載該乘客,等響應(yīng)當前方向的請求后,再搭載去反方向的乘客,實現(xiàn)電梯的升降操作。
本研究運用以下兩個策略,配合電梯調(diào)度算法使用:
3.3.1 確定新目標樓層的策略:
如果電梯向上(下)運行,當它到達某個目標樓層后,則依照以下順序確定下一個目標樓層:
3.3.1.1 如果比當前層高(低)的樓層有向上(下)呼叫或者目標,那么以最低(高)的高(低)于當前樓層的,有向上(下)呼叫或者目標的樓層為目標樓層。
3.3.1.2 如果無法確定目標樓層,那么以最高(低)的向下(上)呼叫所在樓層為電梯當前目標樓層。
3.3.1.3 如果仍然不能確定目標樓層(此時實際上沒有任何呼叫和目標),那么電梯無目標運行暫停。
3.3.2 修改目標樓層的策略:
3.3.2.1 如果電梯運行方向向上,那么如果新到一個介于當前電梯所處樓層和目標樓層之間,又可以安全到達的向上呼叫或者目標,將目標樓層修改為這個新的樓層。
3.3.2.2 如果電梯運行方向向下,那么如果新到一個介于當前電梯所處樓層和目標樓層之間,又可以安全到達的向下呼叫或者目標,將目標樓層修改為這個新的樓層。
根據(jù)需求分析,電梯默認狀態(tài)是停靠在一樓,要使電梯運行起來,需要用戶按下電梯按鈕,電梯啟動功能結(jié)構(gòu)如圖1所示。
圖1 電梯啟動功能結(jié)構(gòu)圖
根據(jù)需求分析,為了表達系統(tǒng)的數(shù)據(jù)流圖及狀態(tài)轉(zhuǎn)換,本文給出了電梯模擬系統(tǒng)的數(shù)據(jù)流圖,如圖2所示。
電梯模擬系統(tǒng)主要包含6個模塊,各模塊及其功能描述如下:
4.1.1 主程序模塊:是整個系統(tǒng)的入口,通過調(diào)用各個功能模塊,實現(xiàn)程序主界面的顯示以及電梯基本功能的實現(xiàn)。
4.1.2 電梯內(nèi)部控制模塊:負責(zé)電梯內(nèi)部數(shù)字按鈕及開門關(guān)門按鈕的顯示,以及相應(yīng)按鈕被按下觸發(fā)的事件的處理操作。
4.1.3 電梯外部控制模塊:主要負責(zé)電梯外部上下行按鈕的顯示,以及按鈕被按下時觸發(fā)的事件的處理操作。
4.1.4 電梯調(diào)度模塊:負責(zé)電梯的調(diào)度算法,通過把內(nèi)外按鈕觸發(fā)的相應(yīng)請求進行分析,按照調(diào)度算法將請求隊列重新排序。
4.1.5 等待隊列模塊:存放將要執(zhí)行的到達相應(yīng)樓層的請求隊列。
4.1.6 顯示模塊:主要負責(zé)程序界面的顯示、到達相應(yīng)樓層的顯示,動畫圖像的顯示等。
圖2 電梯模擬系統(tǒng)數(shù)據(jù)流圖
本系統(tǒng)主要包括8個類,每個類的功能簡述如表1所示:
表1 類的功能簡述表
本系統(tǒng)的界面設(shè)計考慮到現(xiàn)實中電梯實物的普遍色彩是銀灰色的,為了與真實電梯更相近,于是主要選擇了銀灰色為主要色系,另外搭配按鈕變換時的黑色與紅色,以及為了區(qū)別電梯開關(guān)狀態(tài)采用的金色圖案,總體界面遵循簡潔美觀的原則。選用銀色、黑色、紅色及金色圖案,撐起整個窗口界面。
系統(tǒng)啟動后,首先調(diào)用重載后的paint(Graphics g)函數(shù),在窗口上繪制圖像,繪圖線程啟動后,該線程每隔25ms修改一下圖像的位置,然后調(diào)用repaint()函數(shù)。repaint()函數(shù)先調(diào)用 update(Graphics g)函數(shù),update(Graphics g)再調(diào)用paint(Graphics g)函數(shù)。問題就出在update(Graphics g)函數(shù),先用背景色覆蓋整個組件,然后再調(diào)用paint(Graphics g)函數(shù),重新繪制屏幕圖像。這樣,每次看到的都是一個在新的位置上繪制的圖像,前面的窗口都被背景色覆蓋掉了,正是這種先用背景色覆蓋組件再重繪圖像的方式導(dǎo)致了閃爍。在兩次看到不同位置圖像的中間時刻,總是存在一個在短時間內(nèi)被繪制出來的空白畫面(顏色取背景色)。
本系統(tǒng)中雙緩沖技術(shù)的實現(xiàn)是通過改寫paint()方法和update()方法,從而實現(xiàn)每次窗口刷新的時候都會重新計算當前狀態(tài),以此獲得圖片尺寸,然后再將繪制好的圖片顯示到當前窗口。
主要測試電梯是否能夠正常上下運動,達到電梯必須滿足的功能:即系統(tǒng)獲得多用戶的請求后,將指令傳遞到應(yīng)用接口,在系統(tǒng)的規(guī)定等待時間段里,如果沒有特殊請求(開門、關(guān)門按鈕),電梯門則自動關(guān)閉,然后將獲得的請求經(jīng)過優(yōu)先處理得到當前電梯所要去的首目的樓層,結(jié)合電梯當前樓層判斷出電梯要做向上還是向下運動,進而將指令傳遞給上下運動控制系統(tǒng),從而驅(qū)動電梯上下運動來實現(xiàn)上下樓的目的。部分測試摘要如下。
功能測試1:程序運行后的初始界面,電梯默認停留在一樓,并且沒有任何請求,電梯處于停靠狀態(tài),當電梯接受相應(yīng)的請求后,啟動,進入運行狀態(tài)。圖3顯示了電梯在第一層接受到達2、5、6層向上請求時,相應(yīng)按鈕變亮,進入電梯門關(guān)閉狀態(tài)的界面。
功能測試2:電梯到達2樓后2樓按鈕變暗,圖4為電梯開門狀態(tài)截圖,并將繼續(xù)執(zhí)行下面未完成的請求。
圖3 電梯門關(guān)閉狀態(tài)圖
圖4 電梯到達2樓狀態(tài)圖
功能測試3:電梯接受不同樓層的向上請求測試。圖5為電梯在1樓轎箱內(nèi)接受到達3樓和6樓的請求,同時在3樓、4樓和5樓接受向上的請求,電梯按照調(diào)度算法分別到達3樓、4樓、5樓和6樓。
功能測試4:此時電梯??吭?樓,在轎箱內(nèi)分別接受去2樓和1樓的請求,同時5樓、4樓也有向下的請求。經(jīng)過測試電梯會按照運行方向分別到達5樓、4樓、2樓和1樓,完成的請求相應(yīng)圖標變暗。圖6為電梯到達2樓開門的狀態(tài)圖。
圖5 功能測試3狀態(tài)圖
圖6 電梯到達2樓開門的狀態(tài)圖
經(jīng)過測試,電梯運行良好,達到了預(yù)期目標和要求。同時,在測試過程中也發(fā)現(xiàn)了一些問題,比如,在加載圖片較多時,程序啟動比較慢;鼠標事件較多時,系統(tǒng)不知如何響應(yīng)等。隨著研究的進一步深入,對于上述問題將給出相應(yīng)的解決方案。
[1] 陳光磊.電梯呼顯示系統(tǒng)的研究與設(shè)計[D].中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫,2010,6(02):20-30.
[2] 陳福蘭,杜虹.淺析電梯并聯(lián)運行的幾種調(diào)度方法