尹 昊,傅子霞,沈 建
(長沙職業技術學院,湖南 長沙410217)
組件制作是將多個電池片串聯起來,工作時,回路的電流由串聯回路上短路電流最小的電池片決定,參數不匹配的電池片制作的組件,組件的輸出功率小于組件上所有電池片輸出功率之和。電池片的電阻不匹配會導致串聯回路上電阻越大的電池片發熱越嚴重,造成內部損耗,嚴重時導致火災。根據電池片本身的轉換效率、短路電流、開路電壓、填充因子等參數將電池片進行分類,將同一等級的電池片制作成組件,是組件制作的必備步驟。
太陽能晶體硅電池片測試分選設備用于電池片的分類,可用于電池片制作廠家后道工序,也可用于組件制作廠的首道工序。光伏行業一般以電池片制作廠家后道工序檢測為主,而組件廠只做來料抽檢。太陽能晶體硅電池片測試分選由上料部分、風冷部分、測試部分、分揀部分組成,其各部分通過傳送帶進行連續流水作業。測試部分是分選系統的核心部分,一般需要將電池片位置進行校準調整后,傳送到夾持機構,由電機驅動上下探針排,將探針與電池片的主柵線(如圖1電池上的白色柵線)接觸,測試機采集探針上的數據進行計算。將單一電池片分別動態和靜態重復測試5次,分析測試數據,從而驗證分選機的重復性。如何將探針與電池片主柵對準是測試分選機的關鍵技術。

圖1 電池片夾持機構
傳統的視覺定位系統采用機械的夾持機構定位,存在定位精度不高,因其接觸式的定位方式,容易損傷電池片。后續發展的視覺定位系統,視覺軟件拍照以后,計算出偏移數據發送給定位系統,之后將電池片用氣缸頂起,XYθ平臺進行定位,然后將氣缸降下,傳送帶將電池片傳送到測試工位進行測試[1]。這種定位系統在氣缸升降過程中會導致電池片發生細微的移動,降低定位精度。同時氣缸升降動作和XYθ移動動作過程會降低測試系統的產能。目前這種系統的分選機產能一般低于2 400片/h。為了滿足產能要求,設計了一種基于XXY平臺的視覺定位測試平臺。如圖2所示。

圖2 XYθ測試平臺
視覺定位測試平臺由視覺系統和XXY對位平臺組成,如圖3所示。

圖3 視覺定位平臺
視覺定位系統由相機、鏡頭、背光板組成,其中相機是400萬像素的CCD相機。
XXY對位平臺包括X1、X2和Y三個方向的高精度伺服電機連接絲桿組成的運動機構、螺桿支撐座、交叉滾子導軌、微型導軌、KK模組、鎖固螺母、滾珠絲桿等零件組成[2]。探針臺通過螺絲安裝在XXY對位臺上,如圖4所示。

圖4 XXY對位平臺
定位工作流程如下:視覺系統正式工作之前,需要校準參考位置。首先,將標準的電池片放置于探針臺位置,通過工控軟件操作上探針機構下降,通過人工不斷調整,將探針與電池片的主柵線精準對位。然后松開上探針,通過工控軟件操作傳送帶反向移動一個工位的步進距離,操作計算機的視覺軟件計算當前的X、Y和θ的值作為原點參考坐標。
電池片在傳送帶上流水線傳送,首先使用氣缸驅動的夾持機構對電池片Y方向進行粗定位;然后電池片傳送到視覺拍照工位,計算機的視覺軟件采集圖像數據,經過圖像處理后的坐標值與原點坐標計算出X偏移值、Y偏移值和θ偏移值,轉換成伺服電機的脈沖值后寫入下位機系統,在電池片傳送到測試工位的同時控制XXY對位平臺移動探針臺,在電池片傳送到測試工位后探針動作,并啟動IV(太陽能模擬器)測試。測試完成后,探針排松開,傳送帶將電池片繼續往后道工位傳送,從而完成一個電池片視覺定位的測試周期[3]。
采用基于XXY平臺的視覺定位測試平臺有以下幾個優勢:
(1)對位動作與傳送帶的工位傳送動作重疊進行,大大提升效率,分選機產能可以達到4 000片/h。
(2)定位的行程更大,能適用電池片大偏差的工況。
(3)精度更高,重復精度可達2μm。
如圖5所示,假設電池片校準時,XXY平臺絕對位置為P1點,視覺計算偏移值分別為(Δx、Δy、θ)也就是移動到P2點。

圖5 移動示意圖
假設旋轉θ角度,各軸所需的相對移動量(單位:mm)為:

假設,ratio表示電機驅動平臺移動1 mm距離所需要的脈沖數,那么XXY從P1移動P2各軸脈沖數為:

將相機固定在支架上,調節好相機參數、鏡頭的焦距和曝光強度等。如圖7所示,在電池片成像實物圖中,從相機讀取2048×2048的二維數據的灰階值(0~255),全黑為0,越白值越大,一般發光板沒被遮擋部分灰階值調整到100~120比較合適。在視覺定位前需要建立相機與電池片在發光板上的坐標系,同時由于每個鏡頭的畸變程度各不相同,必須先矯正畸變,才能獲得精準的坐標值。因此視覺定位的第一步就是進行標定。視覺標定過程不作為本文敘述重點。
整個視覺定位的步驟為:
(1)根據灰階值的突變,從上往下和從下往上找到傳送帶10點坐標值,并計算對應的平均值即 :LeftBelt_X1、LeftBelt_X2、Center、RightBelt_X1和RightBelt_X2。
(2)將整面黑色區域的灰階值相加,與標準片的灰階值對比,判斷電池片是否有損壞,如有損壞則報破片,不進行后續計算。
(3)在電池片上下左右的4個邊,每個邊尋找n個點,存入對應數組xy;經過畸變矩陣計算每個點的實際坐標值。
(4)采用最小二乘法計算每個數組直線方程y=ax+b中a和b,各點與擬合直線的差值的平方和最小:

(5)計算4條直線的相交點坐標:

圖6 電池片成像實物圖
假設電池片左邊的直線為:

上邊的直線為:

左邊和上邊的相交點為:

依次計算出上邊和右邊相交點TR、右邊和下邊相交點BR、下邊和左邊相交點TB。
(6)根據電池片TL點與BR點、TR點與BL點生成兩條直線:

(7)計算L1和L2相交點為電池片的中心坐標:

本文采用Visual Studio2019,使用C#編程語言。
///<param name="xy">采集的直線上的點</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
}
視覺圖像處理后得到的結果轉換成XXY平臺的脈沖的原型函數代碼如下:
//注:this.rate代表XXY平臺移動1mm需要的脈沖數。
///<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);
}
在太陽能晶體硅電池片測試分選設備中,用基于視覺定位的XXY高速測試臺取代XYθ定位測試臺,將平臺定位的時間與電池片工位傳送的時間進行重疊,有效地提高了設備的產能。同時XXY視覺定位測試臺還具有定位精度高、可調整范圍大的特點,在生產線上的實際應用中取得了良好的效果。