劉小朋 李付龍 王立鵬
摘要:針對(duì)國(guó)內(nèi)現(xiàn)有電梯群控系統(tǒng)仿真平臺(tái)信號(hào)輸入方式單一,不能產(chǎn)生穩(wěn)定、持續(xù)的交通流;模擬電梯運(yùn)行僵硬,轎廂不能連續(xù)移動(dòng)等問題,基于Visual C++6.0面向?qū)ο缶幊碳夹g(shù),以DB2數(shù)據(jù)庫(kù)作為后臺(tái),設(shè)計(jì)出一種優(yōu)化電梯群控系統(tǒng)仿真平臺(tái)。該平臺(tái)既能手動(dòng)輸入呼梯信號(hào),也能自動(dòng)生成符合泊松分布的輸入信號(hào)。仿真運(yùn)行輸出候梯時(shí)間和乘梯時(shí)間,結(jié)果表明,該優(yōu)化平臺(tái)轎廂能夠連續(xù)平滑運(yùn)動(dòng),運(yùn)行速度和方向一目了然,能更真實(shí)地模擬電梯的實(shí)際運(yùn)行情況。求出平均候梯時(shí)間、平均乘梯時(shí)間和平均??看螖?shù),對(duì)電梯最小長(zhǎng)候梯時(shí)間算法進(jìn)行了驗(yàn)證。
關(guān)鍵詞關(guān)鍵詞:電梯;群控系統(tǒng);Visual C++6.0;泊松分布;多線程
DOIDOI:10.11907/rjdk.161340
中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2016)007011003
0引言
隨著高層建筑的日益增多,電梯成為人們?nèi)粘I畹闹匾煌üぞ?。多部電梯配置在一起?gòu)成電梯群,由電梯群控系統(tǒng)操作。算法是整個(gè)群控系統(tǒng)的核心,優(yōu)越的算法能減少乘客候梯時(shí)間、乘梯時(shí)間以及能耗等。因此,電梯群控算法仿真平臺(tái)的研究意義重大。
國(guó)外電梯仿真軟件主要有Elevate,而且代碼不公開。國(guó)內(nèi)電梯設(shè)計(jì)較為簡(jiǎn)陋,電梯動(dòng)作較為僵硬,不便于觀察,不能較好還原現(xiàn)實(shí)情況,而且不能產(chǎn)生連續(xù)穩(wěn)定的交通流,仿真平臺(tái)不能長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。
Visual C++ 6.0是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具,能夠制作交互式用戶圖形界面。DB2數(shù)據(jù)庫(kù)主要應(yīng)用于大型系統(tǒng),具有較好的可伸縮性,支持從大型機(jī)到單用戶環(huán)境。數(shù)據(jù)具可利用性、完整性、安全性、可恢復(fù)性及平臺(tái)無關(guān)性,以及小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力。DB2數(shù)據(jù)庫(kù)可使用微軟的開放數(shù)據(jù)庫(kù)連接(ODBC)接口,任何應(yīng)用程序都可訪問。
本設(shè)計(jì)以Visual C++6.0 為開發(fā)平臺(tái),采用DB2作為電梯仿真平臺(tái)數(shù)據(jù)庫(kù),利用多線程技術(shù), 根據(jù)電梯配置和電梯群控算法進(jìn)行仿真,得到電梯的運(yùn)行質(zhì)量參數(shù)并保存到DB2 數(shù)據(jù)庫(kù)中。 本設(shè)計(jì)穩(wěn)定性高,能連續(xù)隨機(jī)地產(chǎn)生各種電梯交通流,是高性能電梯群控系統(tǒng)仿真平臺(tái)。
1仿真平臺(tái)介紹
該平臺(tái)用Visual C++6.0軟件編寫,有交互式呼梯信號(hào)輸入按鈕,可由用戶自行輸入,或由系統(tǒng)自發(fā)產(chǎn)生連續(xù)的交通流信號(hào)。由于仿真平臺(tái)采用的是基于目的層的呼梯方法(即內(nèi)呼按鈕與外呼按鈕都在電梯外部),所以各乘客的起始層和目的層總是同時(shí)確定的。這種呼梯方法消除了由于乘客目的層的不確定性而帶來的困擾,使電梯控制更加快速、準(zhǔn)確,同時(shí)也大大簡(jiǎn)化了群控算法研究的難度。仿真平臺(tái)有4種交通模式:上行模式、下行模式、空閑模式和層間隨機(jī)模式,可根據(jù)需要選擇其中一種模式來運(yùn)行。運(yùn)行過程中能即時(shí)顯示各個(gè)乘客的序號(hào)、呼叫層、目的層以及為其服務(wù)的電梯編號(hào)等,較為人性化。
2仿真平臺(tái)構(gòu)成
電梯模型由4部分組成:交通流產(chǎn)生模塊、信號(hào)綜合處理模塊、電梯群控算法模塊和電梯運(yùn)行模塊,如圖1所示,輸入信號(hào)和運(yùn)行狀態(tài)都存入DB2數(shù)據(jù)庫(kù)。
利用C++語言面向?qū)ο蟮木幊碳夹g(shù),用類的封裝編寫了整個(gè)群控電梯系統(tǒng),構(gòu)造了電梯類(ElevatorA,ElevatorB和ElevatorC)、輸入信號(hào)類(Signal)以及轎廂類(Car)。其中電梯類是由VC++軟件中的滾動(dòng)條控件制作而成。電梯轎廂由滾動(dòng)條中的滑塊來代替,通過設(shè)置滑塊的位置來使“轎廂”運(yùn)動(dòng)起來。本設(shè)計(jì)中的電梯可連續(xù)平滑運(yùn)動(dòng),便于觀察研究。運(yùn)用多線程技術(shù)構(gòu)造了4個(gè)線程:交通流產(chǎn)生線程、電梯A運(yùn)動(dòng)線程、電梯B運(yùn)動(dòng)線程和電梯C運(yùn)動(dòng)線程。它們能夠同時(shí)、迅速地響應(yīng)用戶的多個(gè)請(qǐng)求,使整個(gè)程序協(xié)調(diào)運(yùn)行,程序流程如圖2所示。
交通流參數(shù)模塊用于隨機(jī)產(chǎn)生各種交通流數(shù)據(jù),數(shù)據(jù)庫(kù)作為后臺(tái),存取更加穩(wěn)定,從而有效提高系統(tǒng)的穩(wěn)定性。乘客到達(dá)過程可由泊松分布模擬[5]。群控服務(wù)區(qū)域是指前來乘坐電梯的乘客(包括上行和下行)的候梯區(qū)域。
在時(shí)間t內(nèi)乘客到達(dá)服務(wù)區(qū)人數(shù)為n的概率為Pn(t)=(λt)nn!e-λt,n=0,1,2…(1)則在時(shí)間t內(nèi),沒有任何乘客到達(dá)的概率為P0,所以時(shí)間t內(nèi)所有乘客到達(dá)的概率為1-P0(t)=1-e-λt(2)假設(shè)兩個(gè)相鄰乘客到達(dá)的時(shí)間間隔為T,則P{T≤t}=1-e-λtt≥0
0t<0(3)時(shí)間間隔T服從參數(shù)為λ的指數(shù)分布。假設(shè)乘客平均到達(dá)率為λ,第i個(gè)乘客到達(dá)的時(shí)間為X(i),第i+1個(gè)乘客到達(dá)時(shí)間為X(i+1),ti為相應(yīng)到達(dá)間隔時(shí)間的最大值,Pd為第i個(gè)乘客到達(dá)率,則Pd=P{ti=t}=1-e-λtt≥0
0t<0(4)所以當(dāng)t>0時(shí),最大時(shí)間間隔為ti=-In(1-Pd)λ(5)于是得到第i個(gè)乘客到達(dá)時(shí)間的遞推公式為X(i+1)=X(i)-ln(1-Pd)λ(6)在這里,由于Pd是0~1之間的任一常數(shù),所以可以用0~1上的均勻分布來產(chǎn)生N個(gè)數(shù)作為Pd的值,從而產(chǎn)生N個(gè)到達(dá)時(shí)間模擬值。
MATLAB具有強(qiáng)大的數(shù)據(jù)處理能力,可完成數(shù)據(jù)流的計(jì)算。由此模擬出符合泊松分布的乘客流,以30分鐘內(nèi)200個(gè)乘客的到達(dá)過程為例,如圖3所示,橫坐標(biāo)代表各個(gè)乘客的到達(dá)時(shí)間,縱坐標(biāo)代表當(dāng)前乘客到達(dá)量。其中直線之間的距離間隔代表兩乘客到達(dá)的時(shí)間間隔。間隔越小,說明人流密度越小;間隔越大,說明人流密度越大。
最終模擬出符合泊松分布的乘客到達(dá)時(shí)間,將乘客到達(dá)時(shí)間以及各相鄰乘客之間的時(shí)間間隔存入DB2數(shù)據(jù)庫(kù),以供VC++調(diào)用。
將時(shí)間間隔存入數(shù)據(jù)庫(kù)后,VC++仿真平臺(tái)從數(shù)據(jù)庫(kù)逐個(gè)讀取乘客到達(dá)時(shí)間,并延時(shí)相鄰乘客到達(dá)時(shí)間的間隔。延時(shí)結(jié)束后,通過蒙特卡洛法產(chǎn)生呼梯信號(hào),然后繼續(xù)讀取下一個(gè)數(shù)據(jù),如此連續(xù)不斷執(zhí)行,產(chǎn)生離散的符合泊松分布的乘客流,直到讀完DB2數(shù)據(jù)庫(kù)中的交通流數(shù)據(jù)為止。
2.2算法模塊
算法是電梯群控系統(tǒng)核心,一個(gè)算法的優(yōu)劣直接決定著電梯的運(yùn)行效率。本設(shè)計(jì)的目的就是對(duì)群控算法的優(yōu)劣進(jìn)行驗(yàn)證和調(diào)試,最終證明某算法的實(shí)用性。常用的算法有最小候梯時(shí)間算法、最小乘梯時(shí)間算法、模糊控制算法以及神經(jīng)網(wǎng)絡(luò)算法等。本系統(tǒng)采用C++面向?qū)ο笳Z言,用類來封裝各種控制算法,當(dāng)系統(tǒng)需要用到某種算法時(shí),只需要調(diào)用相應(yīng)的算法即可。
2.3信號(hào)綜合處理模塊
信號(hào)處理模塊需要進(jìn)行復(fù)雜的計(jì)算,它結(jié)合新加入的呼梯信號(hào)、已登記的呼梯信號(hào)以及電梯當(dāng)前的運(yùn)行狀態(tài)這3個(gè)因素,利用當(dāng)前的群控算法,計(jì)算出各個(gè)電梯對(duì)新加入信號(hào)的符合程度。如圖2所示,信號(hào)處理模塊在接受新增加的呼梯信號(hào)后,經(jīng)信號(hào)處理模塊計(jì)算,選擇符合度最大的電梯,并將派梯結(jié)果發(fā)送至電梯運(yùn)行模塊。
2.4電梯運(yùn)行模塊
電梯運(yùn)行模塊用于實(shí)現(xiàn)電梯的模擬運(yùn)行,它由電梯A、B和C組成。電梯運(yùn)行特征分為7個(gè)狀態(tài),分別是:空閑狀態(tài)、開門狀態(tài)、關(guān)門狀態(tài)、上行狀態(tài)、下行狀態(tài)、進(jìn)客狀態(tài)和下客狀態(tài)。當(dāng)電梯為空閑狀態(tài)時(shí),電梯等待外呼信號(hào),直到有外呼信號(hào)為止。當(dāng)電梯向上運(yùn)行時(shí)(下行情況一樣),必定先加速,而后勻速運(yùn)行。 如果未到達(dá)指定層,電梯繼續(xù)向上勻速,每經(jīng)過一層,樓層數(shù)自動(dòng)加一。將要到站時(shí),電梯開始減速,然后停車開門。上下客完畢后,關(guān)門重新啟動(dòng)。如此往復(fù),不斷運(yùn)行。每個(gè)狀態(tài)所持續(xù)的時(shí)間基本上是固定不變的,因此本設(shè)計(jì)假設(shè)電梯的上下行狀態(tài)都是勻速的。將變速運(yùn)動(dòng)引起的時(shí)間差歸于勻速運(yùn)行階段,同時(shí)將開關(guān)門時(shí)間和上下乘客時(shí)間都?xì)w于電梯停站時(shí)間中。本設(shè)計(jì)實(shí)際上只考慮3種狀態(tài):上行狀態(tài)、下行狀態(tài)和等待狀態(tài)。雖然簡(jiǎn)化了平臺(tái)設(shè)計(jì),卻更加有利于電梯群控算法的研究。
采用多線程的軟件實(shí)現(xiàn)方法,設(shè)計(jì)電梯A、B和C三個(gè)電梯線程 ,使得3部模擬電梯同時(shí)獨(dú)立運(yùn)行,系統(tǒng)的穩(wěn)定性高。如圖2所示,在接收到配梯信號(hào)后,經(jīng)過算法計(jì)算,新增信號(hào)會(huì)登記到3部電梯中的一部。該部電梯會(huì)綜合新增信號(hào)和已有信號(hào)決定電梯的運(yùn)行狀態(tài)。
3仿真結(jié)果
基于最小長(zhǎng)候梯時(shí)間算法對(duì)仿真平臺(tái)進(jìn)行測(cè)試。仿真參數(shù)設(shè)置為:仿真時(shí)間30min,樓層為15層,樓層高2.5m,電梯3部,電梯經(jīng)過每層時(shí)間2.4s,停站時(shí)間10s,仿真人數(shù)200人。采用層間隨機(jī)交通模式,系統(tǒng)自動(dòng)生成泊松輸入流。仿真結(jié)果用MATLAB繪制。其中單次仿真結(jié)果如圖4和 實(shí)驗(yàn)結(jié)果表明,乘客的平均候梯時(shí)間僅為25.6 s,體現(xiàn)了最小長(zhǎng)候梯算法在減少乘客候梯時(shí)間方面的顯著作用。但平均乘梯時(shí)間為35.8秒,平均停靠次數(shù)178次,能耗較大,說明經(jīng)典的群控算法—最小長(zhǎng)候梯算法存在一些不足。
(s)平均乘梯時(shí)間
(s)平均??看螖?shù)
(次)最小長(zhǎng)候梯時(shí)間算法25.635.81784結(jié)語
基于Visual C++6.0面向?qū)ο蟮木幊谭椒ǎO(shè)計(jì)了一種優(yōu)化群控電梯仿真平臺(tái)。實(shí)驗(yàn)結(jié)果驗(yàn)證了仿真平臺(tái)的有效性。與以往仿真平臺(tái)相比,本仿真平臺(tái)既能接受用戶的手動(dòng)輸入信號(hào),也能自發(fā)產(chǎn)生泊松分布乘客流,并逐個(gè)處理各種輸入信號(hào),輸出乘客候梯時(shí)間和乘梯時(shí)間。電梯轎廂能夠連續(xù)平滑運(yùn)動(dòng),轎廂運(yùn)動(dòng)速度和方向一目了然,便于觀察研究,較為真實(shí)地模擬了實(shí)際情況,簡(jiǎn)化了電梯群控算法。
本設(shè)計(jì)采用MATLAB產(chǎn)生泊松分布交通流,以DB2數(shù)據(jù)庫(kù)為樞紐,給仿真平臺(tái)提供連續(xù)穩(wěn)定的輸入信號(hào),使得仿真平臺(tái)能夠長(zhǎng)時(shí)間穩(wěn)定運(yùn)行,具有一定的實(shí)際意義。
參考文獻(xiàn):
畢曉亮,張亞剛,朱昌明,等.電梯群控研究及仿真實(shí)驗(yàn)臺(tái)開發(fā)[J].系統(tǒng)仿真學(xué)報(bào),2003,15(9):12451246.
閻光偉,彭文,徐琳茜.基于案例的Visual C++程序設(shè)計(jì)教程.北京:清華大學(xué)出版社,2012:154158.
劉宇明.基于DB2的大型數(shù)據(jù)庫(kù)性能優(yōu)化方法研究[J].科學(xué)技術(shù)與工程,2007,7(1):7071.
潘志鋒,羅飛,許玉格.高性能的電梯群控系統(tǒng)仿真平臺(tái)的設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2006,35(3):181183.
曹雷,饒真珍.面向?qū)ο蟮碾娞菹到y(tǒng)計(jì)算機(jī)仿真[J].計(jì)算機(jī)應(yīng)用,2007,24(9):289191.