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