尹 昊,傅子霞,沈 建
(長(zhǎng)沙職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙410217)
組件制作是將多個(gè)電池片串聯(lián)起來(lái),工作時(shí),回路的電流由串聯(lián)回路上短路電流最小的電池片決定,參數(shù)不匹配的電池片制作的組件,組件的輸出功率小于組件上所有電池片輸出功率之和。電池片的電阻不匹配會(huì)導(dǎo)致串聯(lián)回路上電阻越大的電池片發(fā)熱越嚴(yán)重,造成內(nèi)部損耗,嚴(yán)重時(shí)導(dǎo)致火災(zāi)。根據(jù)電池片本身的轉(zhuǎn)換效率、短路電流、開(kāi)路電壓、填充因子等參數(shù)將電池片進(jìn)行分類(lèi),將同一等級(jí)的電池片制作成組件,是組件制作的必備步驟。
太陽(yáng)能晶體硅電池片測(cè)試分選設(shè)備用于電池片的分類(lèi),可用于電池片制作廠家后道工序,也可用于組件制作廠的首道工序。光伏行業(yè)一般以電池片制作廠家后道工序檢測(cè)為主,而組件廠只做來(lái)料抽檢。太陽(yáng)能晶體硅電池片測(cè)試分選由上料部分、風(fēng)冷部分、測(cè)試部分、分揀部分組成,其各部分通過(guò)傳送帶進(jìn)行連續(xù)流水作業(yè)。測(cè)試部分是分選系統(tǒng)的核心部分,一般需要將電池片位置進(jìn)行校準(zhǔn)調(diào)整后,傳送到夾持機(jī)構(gòu),由電機(jī)驅(qū)動(dòng)上下探針排,將探針與電池片的主柵線(如圖1電池上的白色柵線)接觸,測(cè)試機(jī)采集探針上的數(shù)據(jù)進(jìn)行計(jì)算。將單一電池片分別動(dòng)態(tài)和靜態(tài)重復(fù)測(cè)試5次,分析測(cè)試數(shù)據(jù),從而驗(yàn)證分選機(jī)的重復(fù)性。如何將探針與電池片主柵對(duì)準(zhǔn)是測(cè)試分選機(jī)的關(guān)鍵技術(shù)。
圖1 電池片夾持機(jī)構(gòu)
傳統(tǒng)的視覺(jué)定位系統(tǒng)采用機(jī)械的夾持機(jī)構(gòu)定位,存在定位精度不高,因其接觸式的定位方式,容易損傷電池片。后續(xù)發(fā)展的視覺(jué)定位系統(tǒng),視覺(jué)軟件拍照以后,計(jì)算出偏移數(shù)據(jù)發(fā)送給定位系統(tǒng),之后將電池片用氣缸頂起,XYθ平臺(tái)進(jìn)行定位,然后將氣缸降下,傳送帶將電池片傳送到測(cè)試工位進(jìn)行測(cè)試[1]。這種定位系統(tǒng)在氣缸升降過(guò)程中會(huì)導(dǎo)致電池片發(fā)生細(xì)微的移動(dòng),降低定位精度。同時(shí)氣缸升降動(dòng)作和XYθ移動(dòng)動(dòng)作過(guò)程會(huì)降低測(cè)試系統(tǒng)的產(chǎn)能。目前這種系統(tǒng)的分選機(jī)產(chǎn)能一般低于2 400片/h。為了滿(mǎn)足產(chǎn)能要求,設(shè)計(jì)了一種基于XXY平臺(tái)的視覺(jué)定位測(cè)試平臺(tái)。如圖2所示。
圖2 XYθ測(cè)試平臺(tái)
視覺(jué)定位測(cè)試平臺(tái)由視覺(jué)系統(tǒng)和XXY對(duì)位平臺(tái)組成,如圖3所示。
圖3 視覺(jué)定位平臺(tái)
視覺(jué)定位系統(tǒng)由相機(jī)、鏡頭、背光板組成,其中相機(jī)是400萬(wàn)像素的CCD相機(jī)。
XXY對(duì)位平臺(tái)包括X1、X2和Y三個(gè)方向的高精度伺服電機(jī)連接絲桿組成的運(yùn)動(dòng)機(jī)構(gòu)、螺桿支撐座、交叉滾子導(dǎo)軌、微型導(dǎo)軌、KK模組、鎖固螺母、滾珠絲桿等零件組成[2]。探針臺(tái)通過(guò)螺絲安裝在XXY對(duì)位臺(tái)上,如圖4所示。
圖4 XXY對(duì)位平臺(tái)
定位工作流程如下:視覺(jué)系統(tǒng)正式工作之前,需要校準(zhǔn)參考位置。首先,將標(biāo)準(zhǔn)的電池片放置于探針臺(tái)位置,通過(guò)工控軟件操作上探針機(jī)構(gòu)下降,通過(guò)人工不斷調(diào)整,將探針與電池片的主柵線精準(zhǔn)對(duì)位。然后松開(kāi)上探針,通過(guò)工控軟件操作傳送帶反向移動(dòng)一個(gè)工位的步進(jìn)距離,操作計(jì)算機(jī)的視覺(jué)軟件計(jì)算當(dāng)前的X、Y和θ的值作為原點(diǎn)參考坐標(biāo)。
電池片在傳送帶上流水線傳送,首先使用氣缸驅(qū)動(dòng)的夾持機(jī)構(gòu)對(duì)電池片Y方向進(jìn)行粗定位;然后電池片傳送到視覺(jué)拍照工位,計(jì)算機(jī)的視覺(jué)軟件采集圖像數(shù)據(jù),經(jīng)過(guò)圖像處理后的坐標(biāo)值與原點(diǎn)坐標(biāo)計(jì)算出X偏移值、Y偏移值和θ偏移值,轉(zhuǎn)換成伺服電機(jī)的脈沖值后寫(xiě)入下位機(jī)系統(tǒng),在電池片傳送到測(cè)試工位的同時(shí)控制XXY對(duì)位平臺(tái)移動(dòng)探針臺(tái),在電池片傳送到測(cè)試工位后探針動(dòng)作,并啟動(dòng)IV(太陽(yáng)能模擬器)測(cè)試。測(cè)試完成后,探針排松開(kāi),傳送帶將電池片繼續(xù)往后道工位傳送,從而完成一個(gè)電池片視覺(jué)定位的測(cè)試周期[3]。
采用基于XXY平臺(tái)的視覺(jué)定位測(cè)試平臺(tái)有以下幾個(gè)優(yōu)勢(shì):
(1)對(duì)位動(dòng)作與傳送帶的工位傳送動(dòng)作重疊進(jìn)行,大大提升效率,分選機(jī)產(chǎn)能可以達(dá)到4 000片/h。
(2)定位的行程更大,能適用電池片大偏差的工況。
(3)精度更高,重復(fù)精度可達(dá)2μm。
如圖5所示,假設(shè)電池片校準(zhǔn)時(shí),XXY平臺(tái)絕對(duì)位置為P1點(diǎn),視覺(jué)計(jì)算偏移值分別為(Δx、Δy、θ)也就是移動(dòng)到P2點(diǎn)。
圖5 移動(dòng)示意圖
假設(shè)旋轉(zhuǎn)θ角度,各軸所需的相對(duì)移動(dòng)量(單位:mm)為:
假設(shè),ratio表示電機(jī)驅(qū)動(dòng)平臺(tái)移動(dòng)1 mm距離所需要的脈沖數(shù),那么XXY從P1移動(dòng)P2各軸脈沖數(shù)為:
將相機(jī)固定在支架上,調(diào)節(jié)好相機(jī)參數(shù)、鏡頭的焦距和曝光強(qiáng)度等。如圖7所示,在電池片成像實(shí)物圖中,從相機(jī)讀取2048×2048的二維數(shù)據(jù)的灰階值(0~255),全黑為0,越白值越大,一般發(fā)光板沒(méi)被遮擋部分灰階值調(diào)整到100~120比較合適。在視覺(jué)定位前需要建立相機(jī)與電池片在發(fā)光板上的坐標(biāo)系,同時(shí)由于每個(gè)鏡頭的畸變程度各不相同,必須先矯正畸變,才能獲得精準(zhǔn)的坐標(biāo)值。因此視覺(jué)定位的第一步就是進(jìn)行標(biāo)定。視覺(jué)標(biāo)定過(guò)程不作為本文敘述重點(diǎn)。
整個(gè)視覺(jué)定位的步驟為:
(1)根據(jù)灰階值的突變,從上往下和從下往上找到傳送帶10點(diǎn)坐標(biāo)值,并計(jì)算對(duì)應(yīng)的平均值即 :LeftBelt_X1、LeftBelt_X2、Center、RightBelt_X1和RightBelt_X2。
(2)將整面黑色區(qū)域的灰階值相加,與標(biāo)準(zhǔn)片的灰階值對(duì)比,判斷電池片是否有損壞,如有損壞則報(bào)破片,不進(jìn)行后續(xù)計(jì)算。
(3)在電池片上下左右的4個(gè)邊,每個(gè)邊尋找n個(gè)點(diǎn),存入對(duì)應(yīng)數(shù)組xy;經(jīng)過(guò)畸變矩陣計(jì)算每個(gè)點(diǎn)的實(shí)際坐標(biāo)值。
(4)采用最小二乘法計(jì)算每個(gè)數(shù)組直線方程y=ax+b中a和b,各點(diǎn)與擬合直線的差值的平方和最?。?/p>
(5)計(jì)算4條直線的相交點(diǎn)坐標(biāo):
圖6 電池片成像實(shí)物圖
假設(shè)電池片左邊的直線為:
上邊的直線為:
左邊和上邊的相交點(diǎn)為:
依次計(jì)算出上邊和右邊相交點(diǎn)TR、右邊和下邊相交點(diǎn)BR、下邊和左邊相交點(diǎn)TB。
(6)根據(jù)電池片TL點(diǎn)與BR點(diǎn)、TR點(diǎn)與BL點(diǎn)生成兩條直線:
(7)計(jì)算L1和L2相交點(diǎn)為電池片的中心坐標(biāo):
本文采用Visual Studio2019,使用C#編程語(yǔ)言。
///<param name="xy">采集的直線上的點(diǎn)</param>
///<returns> 直線方程 </returns>
Public Line2D CalLine(Point[]xy)
{
double num1=num2=num3=num4=num5=0.0;
for(int i=0;i<xy.Count;i++)
{
num1+=xy[i].X;
num2+=xy[i].Y;
num3+=xy[i].X*xy[i].X;
num4+=xy[i].X*xy[i].Y;
num5+=xy[i].Y*xy[i].Y;
}
double num6= (xy.Count*num3)-(num3*num3);
line=new Line2D((float)(((xy.Count*num4)-(num1*num2))/num6),(float)(((xy.Count*num4*num1)-(num1*num1*num2))/num6)/(xy.Count*num6)));
return line
}
視覺(jué)圖像處理后得到的結(jié)果轉(zhuǎn)換成XXY平臺(tái)的脈沖的原型函數(shù)代碼如下:
//注:this.rate代表XXY平臺(tái)移動(dòng)1mm需要的脈沖數(shù)。
///<param name="x">電池片x方向偏移量</param>
///<param name="y">電池片y方向偏移量</param>
///<param name="z"> 電池片偏移角度</param>
///<returns></returns>
Public void CalLine(double x,double y,double z1)
{
θX1=((double)((double)315/180))*Math.PI;
θX2=((double)((double)225/180))*Math.PI;
θY=((double)((double)45/180))*Math.PI;
X1_offset=this.rate*r*(Math.Sin(z1+θX1)-Math.Sin(θX1));
X2_offset=this.rate*r*(Math.Sin(z1+θX2)-Math.Sin(θX2));
Y_offset=this.rate*r*(Math.Cos(z1+θY)-Math.Cos(θY));
X1_Pulse=(long)(x*this.rate-X1_offset);
X2_Pulse=(long)(x*this.rate-X2_offset);
Y_Pulse=(long)(y*this.rate-Y_offset);
}
在太陽(yáng)能晶體硅電池片測(cè)試分選設(shè)備中,用基于視覺(jué)定位的XXY高速測(cè)試臺(tái)取代XYθ定位測(cè)試臺(tái),將平臺(tái)定位的時(shí)間與電池片工位傳送的時(shí)間進(jìn)行重疊,有效地提高了設(shè)備的產(chǎn)能。同時(shí)XXY視覺(jué)定位測(cè)試臺(tái)還具有定位精度高、可調(diào)整范圍大的特點(diǎn),在生產(chǎn)線上的實(shí)際應(yīng)用中取得了良好的效果。