□ 尤子辰,馬馳遠(yuǎn),林菲菲
(武漢理工大學(xué),湖北 武漢 430063)
為了實(shí)現(xiàn)在冷鏈運(yùn)輸過(guò)程中有效的使用全程密閉冷藏法來(lái)提高冷鏈運(yùn)輸質(zhì)量,現(xiàn)市面中已出現(xiàn)了服務(wù)于冷鏈物流的車載可充電冷藏箱,實(shí)現(xiàn)了不同貨物間的隔離運(yùn)輸,確保了全程密閉的低溫環(huán)境。
冷藏箱主要制冷及調(diào)控功能是由制冷元件模塊,信息模塊,控制調(diào)整模塊所完成。實(shí)際使用時(shí),需工作人員手動(dòng)輸入預(yù)設(shè)溫度,由監(jiān)控組件對(duì)溫度進(jìn)行控制。當(dāng)溫度上升時(shí),加大壓縮機(jī)轉(zhuǎn)速;當(dāng)溫度達(dá)到預(yù)設(shè)溫度時(shí),使壓縮機(jī)停止工作。
但這種方法對(duì)箱內(nèi)溫度的變化不敏感,忽略了在檢測(cè)與調(diào)整過(guò)程中溫度的變化。在實(shí)際的使用過(guò)程中,采用上述監(jiān)控方法的情況下,依舊經(jīng)常導(dǎo)致貨物發(fā)生變質(zhì)。故而本文針對(duì)冷藏箱及其運(yùn)輸貨物的特點(diǎn),設(shè)計(jì)了一套運(yùn)用非正態(tài)狀態(tài)下變抽樣區(qū)間EWMA控制圖的,可以實(shí)現(xiàn)精準(zhǔn)監(jiān)控同時(shí)可以做到人機(jī)有效交互的溫度監(jiān)控程序,提升運(yùn)輸質(zhì)量。
現(xiàn)階段就普通控制圖及EWMA控制圖的研究較多,而如何構(gòu)建基于性能更加優(yōu)秀,更適合冷鏈物流特點(diǎn)的VSI EWMA控制圖的監(jiān)控系統(tǒng)卻鮮有研究,本文以此作為出發(fā)點(diǎn)進(jìn)行相應(yīng)的探索。
隨機(jī)變量X分布未知,X在受控狀態(tài)下的均值為μ,標(biāo)準(zhǔn)差為σ,當(dāng)過(guò)程不處于受控狀態(tài)時(shí),其均值將會(huì)漂移到+t,其標(biāo)準(zhǔn)差不發(fā)生改變。
在同一時(shí)刻,抽取X1,X2,X3,……Xn作為樣本,且之間相互獨(dú)立,其容量為n,則可設(shè)其統(tǒng)計(jì)量為
(1)
將其帶入Z的標(biāo)準(zhǔn)差,可得
(2)
在變抽樣區(qū)間的EWMA控制圖中,我們?nèi)藶榈乜蓪⒖刂茍D分為四個(gè)區(qū)域,分別為警戒限Q1和控制限Q2,而在這兩種不同的區(qū)間內(nèi),我們采用兩種不同的抽樣間隔d1,d2.其中d1 我們將其控制線設(shè)計(jì)為如下形式,其中LCL是控制下限,UCL是控制上限 (3) (4) 將Z的標(biāo)準(zhǔn)差代入,并取其漸近線形式[2],則有, (5) (6) 其中a為控制線參數(shù)。 同理,令b為警戒限參數(shù),則可設(shè)定警戒上限UWL與警戒下線LWL為 (7) (8) 系統(tǒng)采用matlab作為核心進(jìn)行開(kāi)發(fā),同時(shí)與箱體內(nèi)部元器件,后臺(tái)數(shù)據(jù)庫(kù),無(wú)線通訊組件相互配合,制作出有查詢實(shí)時(shí)數(shù)據(jù)、多個(gè)被監(jiān)控箱體運(yùn)行情況、按照非正態(tài)過(guò)程下變抽樣區(qū)間EWMA控制圖對(duì)溫度進(jìn)行監(jiān)控并顯示出控制圖、在出現(xiàn)異常時(shí)發(fā)出警報(bào)、查詢歷史問(wèn)題數(shù)據(jù)等多種功能集一身的綜合溫度控制系統(tǒng)。 matlab溫控系統(tǒng)由內(nèi)部處理程序,被箱體總體情況GUI界面,控制圖顯示GUI界面,歷史數(shù)據(jù)GUI界面構(gòu)成。其結(jié)構(gòu)如圖1。 圖1 matlab監(jiān)控程序組件 內(nèi)部處理程序直接與數(shù)據(jù)庫(kù)相連,按照非正態(tài)過(guò)程下變抽樣區(qū)間EWMA控制圖方法,在內(nèi)部對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,并根據(jù)其超出控制限情況對(duì)單片機(jī)中溫度收集程序進(jìn)行修改,改變其抽樣區(qū)間。該組件用戶不可見(jiàn)。 數(shù)據(jù)庫(kù)生成溫度時(shí)間的txt格式報(bào)表,供系統(tǒng)內(nèi)GUI功能使用。箱體總體運(yùn)行情況界面可以顯示所監(jiān)控的多個(gè)箱體的溫度狀態(tài)以及出現(xiàn)異常情況的時(shí)間,通過(guò)該界面可以進(jìn)入某個(gè)箱體的控制圖界面。控制圖界面通過(guò)用戶輸入特定的箱體編號(hào),可以生成該箱體的非正態(tài)過(guò)程下變抽樣區(qū)間EWMA控制圖,并對(duì)異常情況進(jìn)行報(bào)警,通過(guò)該界面可以進(jìn)入歷史數(shù)據(jù)界面。歷史數(shù)據(jù)界面可以通過(guò)輸入箱體編號(hào),查詢?cè)撓潴w的異常歷史記錄,方便用戶了解冷藏箱存在的問(wèn)題。 控制圖界面GUI是本系統(tǒng)的GUI中的核心,代碼編寫(xiě)于查詢按鈕內(nèi),用戶可以通過(guò)輸入箱體的編號(hào)查詢對(duì)應(yīng)箱體控制圖狀態(tài),后臺(tái)數(shù)據(jù)以txt格式存儲(chǔ),將其命名為1.txt,通過(guò)。 f1=str2double(get(handles.edit1,′String′)); bianhao=csvread(′D:1.txt′,f1-1,0); 將按照編號(hào)順序的數(shù)據(jù)以單行矩陣形式讀入,并通過(guò)下列語(yǔ)句將其按照樣本容量轉(zhuǎn)換為多維矩陣。 [r,c]=size(bianhao) s=c/n DATA = reshape(bianhao,[s,v]) 隨后,根據(jù)系統(tǒng)內(nèi)部預(yù)設(shè)的控制線以及平滑系數(shù)參數(shù),求取樣本均值,計(jì)算統(tǒng)計(jì)量的值并計(jì)算控制線。 for i= 1:s B(i,1)=sum(DATA(i,:))/5; End for i=2∶3 Z(i)=lambda*B(i,1)+(1-lambda)*Z(i-1); End for i=1:s UCL(i)=B(i,1)+a*(sqrt(lambda/(2-lambda)))*std(DATA(i,:))/sqrt(n); LCL(i)=B(i,1)-a*(sqrt(lambda/(2-lambda)))*std(DATA(i,:))/sqrt(n); UWL(i)=B(i,1)+b*(sqrt(lambda/(2-lambda)))*std(DATA(i,:))/sqrt(n); LWL(i)=B(i,1)-b*(sqrt(lambda/(2-lambda)))*std(DATA(i,:))/sqrt(n); 最后,對(duì)點(diǎn)的位置進(jìn)行檢測(cè),如果點(diǎn)落入警戒限與控制限之間,則將抽樣區(qū)間轉(zhuǎn)換為預(yù)設(shè)的較短抽樣區(qū)間,若點(diǎn)超出了控制限,則程序運(yùn)行停止。通過(guò)plot語(yǔ)句將其在坐標(biāo)系中畫(huà)出,且當(dāng)數(shù)據(jù)超出警戒限時(shí)將其變?yōu)榧t色并彈窗警告。 for j=1:s if Z(j)>UWL(j)|Z(j) plot(x(j),Z(j),‘*r’); MessageBox.Show (‘出現(xiàn)異常點(diǎn),其編號(hào)為’,j) n=n2 else plot(x(j),Z(j),‘*k’); end hold on end 箱體總體運(yùn)行情況預(yù)期界面通過(guò)內(nèi)部處理程序?qū)λO(jiān)控的各個(gè)箱體進(jìn)行運(yùn)算后,判斷出出現(xiàn)異常的箱體,并將結(jié)果生成txt報(bào)表,箱體總體運(yùn)行情況GUI通過(guò)調(diào)用報(bào)表中的內(nèi)容,將其顯示于固定文本框中,供使用人員快速查找出現(xiàn)問(wèn)題箱體的編號(hào),并進(jìn)行后續(xù)工作。 內(nèi)部處理程序與數(shù)據(jù)庫(kù)直接相連,并通過(guò)下列代碼直接從數(shù)據(jù)庫(kù)中調(diào)用多個(gè)數(shù)據(jù)。 conn=database(‘wendu’,‘root’,″,‘com.mysql.jdbc.Driver’,‘jdbc:mysql://localhost:3306/wendu’) wendus = exec(conn,‘select* from wendu’ wendus=fetch(wendus) wendu=wendus.Data 隨后,將收集到的數(shù)據(jù)依次使用類似控制圖GUI中的判斷方法,判斷數(shù)據(jù)是否超出了警戒限或控制線,同時(shí),使用csvwrite函數(shù)將未出現(xiàn)超出控制線情況的編號(hào)后加入yes,在出現(xiàn)控制線情況的編號(hào)后加入no,以便后續(xù)GUI中調(diào)用。 在本次試驗(yàn)中,設(shè)置平滑系數(shù)為0.2,警戒限參數(shù)a為1.2,控制限參數(shù)b為1.5。 表1為某時(shí)段對(duì)冷藏箱內(nèi)實(shí)時(shí)溫度的監(jiān)控結(jié)果。其中,由于箱體體積較大,且壓縮機(jī)工作時(shí)會(huì)對(duì)箱內(nèi)溫度產(chǎn)生影響,故而每一行為某一時(shí)刻箱體內(nèi)部五個(gè)點(diǎn)的實(shí)時(shí)溫度。 表1 1.txt存儲(chǔ)數(shù)據(jù) 數(shù)據(jù)由數(shù)據(jù)庫(kù)中導(dǎo)出,并導(dǎo)入存儲(chǔ)溫度數(shù)據(jù)的txt報(bào)表1.txt中,同時(shí)將其箱體編號(hào)命名為001。 在輸入欄中輸入箱體編號(hào)001,樣本容量欄內(nèi)輸入5,點(diǎn)擊查詢按鈕,其結(jié)果如圖2: 圖2 1.txt下控制圖顯示GUI界面運(yùn)行結(jié)果 發(fā)現(xiàn)數(shù)據(jù)中2號(hào)點(diǎn)落入警戒線與控制線之間,程序報(bào)警。隨后,點(diǎn)擊查看歷史數(shù)據(jù)界面,調(diào)查具體情況及相應(yīng)處理辦法。 關(guān)閉控制圖界面,打開(kāi)箱體總體運(yùn)行情況界面。為了驗(yàn)證冷藏箱總體運(yùn)行界面是否能及時(shí)反映不受控制的數(shù)據(jù)組,需使用一組明顯不受控制的數(shù)據(jù)。故而進(jìn)行第二次測(cè)量,并在時(shí)刻5和時(shí)刻6打開(kāi)箱門(mén)并放入溫水袋。測(cè)量其數(shù)據(jù)并將其命名為2.txt。具體數(shù)據(jù)值如表2。 表2 2.txt存儲(chǔ)數(shù)據(jù) 其運(yùn)行結(jié)果如圖3: 圖3 1.txt和2.txt下冷藏箱總體運(yùn)行情況GUI效果 說(shuō)明第一組數(shù)據(jù)未出現(xiàn)超出控制限情況,第二組數(shù)據(jù)出現(xiàn)超出數(shù)據(jù)限情況,符合預(yù)期。 本文針對(duì)可充電式車載冷藏箱,針對(duì)其溫度不一定符合標(biāo)準(zhǔn)正態(tài)分布的情況,設(shè)計(jì)了一套使用正態(tài)過(guò)程下變抽樣區(qū)間EWMA控制圖對(duì)其進(jìn)行監(jiān)控的方法,同時(shí)使用matlab進(jìn)行開(kāi)發(fā)。使用戶可以方便快捷的通過(guò)程序查詢到箱體內(nèi)部的異常情況,同時(shí)可以通過(guò)其歷史數(shù)據(jù)及控制圖走向進(jìn)行分析。同時(shí)本系統(tǒng)可以根據(jù)點(diǎn)不同的位置自動(dòng)采用不同的抽樣區(qū)間,提高了監(jiān)控效率。本程序使用簡(jiǎn)單,有較好的交互性及可擴(kuò)展性,亦可應(yīng)用于其他領(lǐng)域?qū)Ψ钦龖B(tài)質(zhì)量數(shù)據(jù)的監(jiān)控之中。2 針對(duì)車載冷藏箱的非正態(tài)控制圖溫度監(jiān)控系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)整體方法及預(yù)期效果
2.2 系統(tǒng)結(jié)構(gòu)
2.3 重點(diǎn)GUI設(shè)計(jì)
2.4 其他GUI設(shè)計(jì)
2.5 內(nèi)部處理程序設(shè)計(jì)
3 針對(duì)車載冷藏箱的非正態(tài)控制圖溫度監(jiān)控系統(tǒng)使用實(shí)例
4 總結(jié)