汪 洋
(國網(wǎng)浙江省電力有限公司杭州供電公司,浙江 杭州 310000)
變電站是電網(wǎng)中轉(zhuǎn)換和分配電能的重要節(jié)點,隨著技術的發(fā)展,其自動化和智能化水平不斷提升。傳統(tǒng)的變電站人工巡檢需值班人員使用手持儀器對設備逐一檢查,這種方式在面對規(guī)模越來越龐大和繁雜的現(xiàn)代變電站時顯得力不從心,且人工巡檢易受到人員工作經(jīng)驗、責任心、精神狀態(tài)等諸多因素的影響。當前的變電站也配置了一定數(shù)量的攝像頭,但由于受視覺盲區(qū)、光照等客觀條件限制而無法實現(xiàn)全方位監(jiān)控。得益于無線傳感器網(wǎng)絡(wireless sensor networks,WSN)技術的發(fā)展,電力系統(tǒng)開始引入相關傳感器監(jiān)測設備運行參數(shù),但由于傳感器通信帶寬小,應用范圍受到很大的局限。隨著人工智能和嵌入式技術的發(fā)展,具備多種功能的巡檢機器人在電力系統(tǒng)中相繼投入應用,與人工巡檢相比,其檢測效率和精度都更具優(yōu)勢,同時也能避免人工巡檢過程存在的安全風險。
目前,電力系統(tǒng)巡檢機器人大多針對500 kV及以上的大型變電站,而在眾多的小型變電站中涉及較少且尚未形成統(tǒng)一的標準,同時已投入使用的巡檢機器人大多采用遙控巡檢方式,不僅沒有真正形成智能化,還存在導航精度差、通信速度慢和圖像匹配精度低等問題。因此,開發(fā)和應用一款變電站智能巡檢機器人顯得尤為急迫。
1.1.1 加權平均算法
巡檢機器人的底盤下安裝有8個磁傳感器,編號1~8并賦予不同的權重值。由于傳感器的接受范圍有限,至多同時有3個磁傳感器可檢測到磁軌,檢測到磁軌的傳感器會把自己的權重值信號輸出給主控芯片,主控芯片的輸入輸出接口讀取磁傳感器信號并根據(jù)信號的加權平均值來判斷機器人當前的位置。若最后的加權平均值為0,則機器人位于磁軌正中央,速度調(diào)節(jié)系統(tǒng)輸入的速度參考值保持不變;若根據(jù)相應的加權平均值判斷出機器人相對于磁軌左偏或右偏,則相應的左側(cè)或右側(cè)直流無刷電機加速,即對應電機的速度調(diào)節(jié)系統(tǒng)的輸入速度參考值增大[1]。表1給出當不同組的磁傳感器檢測到磁軌時,速度調(diào)節(jié)系統(tǒng)的輸入值。

表1 速度調(diào)節(jié)系統(tǒng)的輸入值
1.1.2 PID控制技術
對于計算機可以處理的離散數(shù)字式PID主要有位置式PID控制算法和增量式PID控制算法兩種。位置式PID是一種非遞推的算法,因PID控制輸出的u(k)值直接對應電機的實際轉(zhuǎn)速,所以基于簡化電機控制系統(tǒng)的考慮,控制設計采用位置式PID算法。
PID算法最重要的是參數(shù)整定,比例參數(shù)、積分參數(shù)和微分參數(shù)的選取直接決定了系統(tǒng)的控制效果。這3個參數(shù)可通過理論計算求得,也可通過工程試驗得出。理論計算需提前推導被控對象的傳遞函數(shù),且還要考慮工作時變化的阻尼和可能的外界干擾,很難建立系統(tǒng)實際數(shù)學模型,因此采用簡單易行的工程試驗來整定PID參數(shù)。
1.2.1 譯碼器模塊
在Simulink工具內(nèi)搭建基于微處理器(STM32)的霍爾信號譯碼過程抽象電路以及譯碼規(guī)則,由于電路母線上可直接設置接收霍爾信號的模塊,可將該信號傳給為實現(xiàn)控制邏輯專門搭建的譯碼器[2]。
1.2.2 速度調(diào)節(jié)器模塊
速度調(diào)節(jié)器的主體是PI控制器,利用Simulink把芯片通過軟件將霍爾信號轉(zhuǎn)換成速度信號的過程抽象化,由于在Simulink中與電機連接的母線上可直接獲取到電機的轉(zhuǎn)速值,所以可直接將此值作為PI控制器的一個輸入,并將速度參考值作為PI控制器的另一個輸入。PI控制器可以直接選擇Simulink中的預制模塊。
1.2.3 整體仿真
在Simulink中構(gòu)建系統(tǒng)的整體仿真模型,在輸出位置加入電壓表和數(shù)據(jù)顯示模塊用以探測逆變器的輸入變化、電機的轉(zhuǎn)速變化、PI控制器的輸出以及譯碼器的譯碼結(jié)果。
系統(tǒng)仿真時間設定為1 s,速度參考值為3 000 rad/s,并且預設在0.5 s時給系統(tǒng)一個外加干擾,通過電機的轉(zhuǎn)速變化確定系統(tǒng)是否可實現(xiàn)調(diào)速。由轉(zhuǎn)速變化趨勢(見圖1)可知,PI控制器的超調(diào)不大,也沒有發(fā)生振蕩,整體響應時間很短,0.5 s時系統(tǒng)受到外部干擾后,轉(zhuǎn)速發(fā)生下降但很快恢復正常。

圖1 轉(zhuǎn)速變化趨勢
通過觀測3個霍爾傳感器輸出的120°相位差霍爾信號,這3組信號經(jīng)過譯碼就可以產(chǎn)生換相序列。
由逆變器輸入電壓的變化可知,隨著電機轉(zhuǎn)速的升高,逆變器的輸入電壓也同時升高,并且在電機轉(zhuǎn)速穩(wěn)定后逆變器的輸入電壓保持不變,當額外加入一個力矩給電機,系統(tǒng)為維持速度就會增大逆變器的輸入電壓,基本確定所提轉(zhuǎn)速控制方案是可行的。
通過在Simulink中對直流無刷電機控制系統(tǒng)的仿真,驗證了利用3組霍爾信號控制三相橋式逆變電路的開關來實現(xiàn)電機的換相,同時利用速度調(diào)節(jié)器產(chǎn)生的電壓信號調(diào)整電機上的磁場強度來控制電機的速度是可行性。實際上的控制系統(tǒng)就基于該原理連接不同的硬件實現(xiàn)的,再輔以軟件控制讓系統(tǒng)成為一個有機的整體。
根據(jù)上述需求,對硬件(電路架構(gòu))進行設計與分析。如果需要直流無刷電機動作,那么需要的基本模塊有直流電源、逆變系統(tǒng)、功率驅(qū)動電路等,但這些模塊組成的是一個開環(huán)系統(tǒng)。為實現(xiàn)對電機的控制,機器人必須加入霍爾信號獲取系統(tǒng)和速度轉(zhuǎn)換系統(tǒng),使其構(gòu)成一個完整的閉環(huán)系統(tǒng)。通過STM32可實現(xiàn)PID控制、霍爾邏輯脈沖寬度調(diào)制(PWM)控制、電流及電壓保護等諸多功能。
導航系統(tǒng)架構(gòu)如圖2所示,工作站的導航部分是依托于集成芯片STM32F103V8T6建立,主要的被控對象是直流無刷電機,輔以電源電壓監(jiān)控,同時霍爾信號作為芯片的高級定時器的輸入。整個系統(tǒng)的基本工作過程為電源電路根據(jù)速度調(diào)節(jié)器的不同值提供不同的電壓,系統(tǒng)初始化并進行電壓檢測,啟動電機,霍爾信號被芯片的高級定時器接收后經(jīng)過功率驅(qū)動電路作用于逆變器的3個橋臂控制電機換相,同時霍爾信號接入一個普通定時器進行速度轉(zhuǎn)換。當需要調(diào)速時,轉(zhuǎn)換后的速度值和新的參考值一起通過比較寄存器產(chǎn)生用于控制直流電源電壓輸出的信號,用以控制逆變電路的直流輸入[3]。

圖2 導航系統(tǒng)架構(gòu)
軟件開發(fā)平臺使用的是Keil公司開發(fā)的MDK-ARM套件,該軟件為基于Cortex-M、Cortex-R4、ARM、ARM9處理器設備提供了一個完整的開發(fā)環(huán)境,可滿足絕大多數(shù)的嵌入式應用。設計使用的具體版本為Keil MDK5,包含了uVision5 IDE集成開發(fā)環(huán)境和ARM Compiler5編譯器。
該設計中的程序分為主程序和中斷子程序兩部分,采用這樣的設計是為了優(yōu)化代碼的運行效率,同時增強其可讀性,且也有利于后期的調(diào)試和優(yōu)化。主程序負責系統(tǒng)的初始化、和其相連的各個外設的初始化及提供子程序接口。為了確保電機的速度被精確控制,需要一系列的中斷子程序來實現(xiàn)相應的功能,包括PI控制程序、霍爾信號的譯碼、霍爾信號的速度轉(zhuǎn)換、換相信號的產(chǎn)生等。
圖像匹配度檢測是指巡檢機器人在變電站的標定位置停車并調(diào)用攝像機拍攝標定位置的圖像,利用通信模塊將圖像回傳給后臺,后臺軟件在Python-OpenCV環(huán)境下識別回傳圖像與模板庫內(nèi)標準圖像的差異度,如果差異度超過閾值就證明有異物懸掛或產(chǎn)生了較大的形變。為保證識別的準確度,背景濾除和畸形矯正技術被廣泛應用。
圖像處理算法主要依賴于OpenCV視覺庫。OpenCV被大量應用在人機交互、圖像識別、人臉識別、動作跟蹤、機器視覺等領域。
OpenCV中提供了攝像機調(diào)用的接口,可以通過其拍攝一段視頻并且灰度化。為了獲取視頻,系統(tǒng)需要創(chuàng)建一個VideoCapture對象,這個對象的參數(shù)通常是一個設備的序列號或者是一段視頻文件,如果是調(diào)用自身的攝像機則該參數(shù)為0。
2.2.1 關鍵技術
OpenCV中使用函數(shù)cv2.cornerHarris進行角點檢測,該函數(shù)有輸入圖像的類型、角點檢測中要考慮的鄰域大小、窗口的大小、自由參數(shù)四個參數(shù),通過其應用可獲得較好的角點檢測結(jié)果。
如果對檢測有更高的要求,OpenCV函數(shù)庫還可以提供亞像素級的角點檢測函數(shù)cv2.cornerSubPix和適合在目標跟蹤算法中使用的cv2.goodFeatureToTrack函數(shù)。
2.2.2 差異度檢測的實現(xiàn)
二值化和角點檢測是形狀匹配的基礎,角點作為描述圖像特征的因子被當作形狀匹配函數(shù)的輸入。因角點算法具有旋轉(zhuǎn)不變性,但當圖像的尺寸發(fā)生變化時(如圖像縮放),角點的描述就不再準確,即被判定為角點的像素點事實上可能不再是角點。為解決這個問題,系統(tǒng)使用根據(jù)Hu矩(一種圖像特征描述方法,用于描述圖像形狀和幾何特征的不變特性,具有平移、旋轉(zhuǎn)和尺度不變性)計算的cv2.matchShape函數(shù)來進行形狀匹配,具有縮放不變性。
差異度檢測算法中,不論是角點檢測函數(shù)還是形狀匹配函數(shù),都要對圖片中所有像素點進行遍歷,嘈雜背景中的元素都會加入檢測和匹配的過程。在實際的變電站應用中,天氣等客觀因素造成的背景變化是不可避免的,所以該算法投入應用,則必須配置一個高精度的背景減除算法。
2.3.1 背景建模
在視頻中的任何一個像素點都是由K(一般取3~5)個高斯分布混合建模的,那么任意一個時間節(jié)點N的像素值為XN的概率為p(XN)=(XN,θj),式中:wj是第j個高斯分量的權重,η(XN,θj)是第k個分量的正態(tài)分布。在這個算法中使用適應值ωk/σk對K分布進行排序,其中,σk是第k個分量的協(xié)方差,wk為第k個高斯分布的權重。算法使用這個適應值對像素進行K分布排序,并且取其中的前B個像素作為背景的模型,其中B=argmin(>T),其中,閾值T是背景模型的最小部分,即背景在場景中的最小先驗概率。背景減法通過將前景像素標記為遠離任何背景像素大于2.5標準差的任何像素來執(zhí)行,匹配測試值的第一個高斯分量將由一組更新方程進行更新。
此外,高斯混合分布模型可以將背景分量與前景分量進行比較,如果前景分量中的某個部分的色度和亮度都在設定的區(qū)間內(nèi)則會被認定為陰影部分。基于背景亮度的考慮,Z.Zivkovic改進了該算法,為每一個像素都單獨設定了一個K值,改進過后的算法對背景亮度的變化更加敏感。
2.3.2 測試
將上述算法打包成函數(shù)cv2.createBackgroundSubtractorMOG2,其包含了幾個可調(diào)參數(shù):進行建模場景的時間長度、高斯混合成分的數(shù)量、閾值等,在實際應用中全部設為默認值,測試結(jié)果如下。
1) 不同亮度的背景的減除。選用一段背景中含有不同亮度部分的視頻,經(jīng)算法優(yōu)化,不同的亮度區(qū)域都被認定成了背景區(qū)域,說明高斯混合模型算法對于顏色和亮度都是敏感的。
2) 含有前景的圖像的背景減除。采用視頻中含有前景的一幀畫面和經(jīng)過背景減除之后含有前景的一幀畫面進行對比,在這組實驗中背景發(fā)生過一次變化(從白色變成藍色),測試結(jié)果可知,當背景起初發(fā)生變化時會被當成前景不被減除,但由于算法中使用的函數(shù)具有自適應能力,藍色部分很快被認定為背景并減除。
由于機器人只搭載了一臺單孔攝像機,導致拍攝的圖片存在畸變,這就需要對攝像機進行標定。圖像畸變是由四個內(nèi)參數(shù)(fx,fy,cx,cy)和五個外參數(shù)(即三個徑向畸變參數(shù)(k1,k2,k3)和兩個切向畸變參數(shù)(p1,p2))造成的,想要消除畸變就必須求解出這些參數(shù)。求解參數(shù)的大致思路為,利用計算機中預存的包含明顯圖案模式的樣本圖片(如棋盤),圖片上的一些特殊點(如棋盤的四個角點)的坐標是已知的,將這張預存的圖片下載并打印,利用移動攝像機對標準圖片拍攝若干張照片(拍攝的照片存在畸變),在畸變照片上的角點與標準圖像中的角點之間建立方程組,求解這些方程組即可求出上文中的畸變參數(shù)[4],具體實現(xiàn)過程如下。
1) 設定好迭代過程停止的條件,cv2.TERM_CRITERIA_EPS表示精確度(誤差)滿足epsilon (誤差設定值)時停止,cv2.TERM_CRITERIA_MAX_ITER表示迭代次數(shù)超過max_iter (最大允許迭代次數(shù))時停止。cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER表示滿足任意條件即可。
2) 獲取標定板角點的位置并將坐標系建立在標定板上,建立2個數(shù)組用于存儲角點的2D和3D坐標;使用cv2.findChessboardCorners函數(shù)找到棋盤格的角點。由于該函數(shù)找到的角點坐標并不是一個精確的坐標,如果有更高的精度需求,則需要使用cv2.cornerSubPix這個函數(shù)來找到亞像素級的角點位置。
3) 使用cv2.drawChessboardCorners函數(shù)把已經(jīng)找到的角點在棋盤格的相應位置標記下來;再使用cv2.calibrateCamera函數(shù)來標定造成圖像畸變的參數(shù),返回攝像機矩陣、畸變系數(shù)、旋轉(zhuǎn)和變換向量等。
4) 通過cv2.getOptimalNewCameraMatrix函數(shù)得到自由縮放系數(shù),利用該系數(shù)對攝像機矩陣進行優(yōu)化,同時返回一個包含感興趣區(qū)域(ROI)的圖像,后續(xù)程序可以用這個圖像對結(jié)果進行裁剪。
機器人不僅需要將在標定位置拍攝的圖像與標準圖像進行對比,同時也需要把巡檢過程中的全部情況以視頻形式傳送給后臺,以便后臺人員對變電站有更及時和全面的了解。機器人的視頻回傳系統(tǒng)是一個基于樹莓派的無線視頻監(jiān)控系統(tǒng),樹莓派插入無線網(wǎng)卡使機器人和后臺PC保持在同一個局域網(wǎng)內(nèi),同時樹莓派上的USB接口可連接搭載的攝像頭。系統(tǒng)工作流程為基于Wi-Fi技術使機器人和后臺保持在一個局域網(wǎng)內(nèi),通過V4L2接口技術完成視頻的采集,在利用H.264編碼技術完成視頻編碼,并在TCP/IP通信協(xié)議下搭建套接字(Socket)[5-7],最終將視頻傳送至后臺。
3.1.1 開發(fā)板介紹
Raspberry pi開發(fā)板是一款基于ARM架構(gòu)、Linux操作系統(tǒng)的微型電腦,其尺寸小、售價低,擁有相較于單片機更大的內(nèi)存,也可選用SD卡作為外存,并可拓展連接鼠標、鍵盤、無線網(wǎng)卡、攝像機及顯示器等。
Raspberry pi擁有完善的Raspbian OS系統(tǒng)(基于Linux的樹莓派板卡操作系統(tǒng)),相較于沒有操作系統(tǒng)的芯片而言,在Raspbian OS下編寫的通信程序?qū)⒈粯O大地簡化,且和PC端Linux系統(tǒng)下編寫的程序差異并不大。
3.1.2 V4L2接口技術
Linux視頻設備驅(qū)動(video for linux 2,V4L2)是一種在Linux系統(tǒng)下用于捕獲影音硬件設備的接口,可為硬件設備提供驅(qū)動,也可通過一系列接口函數(shù)完成開發(fā)板和攝像機之間的指令傳遞和數(shù)據(jù)讀取,其采集視頻的流程如圖3所示。

圖3 V4L2采集視頻流程
3.1.3 TCP/IP通信協(xié)議
國際標準化組織制定了實現(xiàn)開放系統(tǒng)互連的基礎模型—OSI模型,具體可分為物理層、鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層和應用層,具體到TCP/IP協(xié)議下的模型可按圖4劃分,其中TCP屬于傳輸層、V4L2和H.264屬于第一、二層。

圖4 TCP/IP協(xié)議下的模型示意
TCP/IP是面向連接的,在收發(fā)數(shù)據(jù)前必須和接收方建立三次可靠的連接(三次握手),結(jié)束后第四次握手斷開連接。TCP網(wǎng)絡編程是通過Socket套接字來實現(xiàn),Socket可以理解為插座,其本質(zhì)上是一種文件描述符,通過調(diào)用這個函數(shù)就可以返回一個包含了通信五元組(源端口、目的端口、源IP、目的IP、協(xié)議類型)的整形Socket描述符。
在Socket通信前先設定機器人為客戶端,后臺PC為服務器端。編寫TCP/IP協(xié)議下的Socket通信程序先要建立一個Socket套接字,設定協(xié)議的類型、套接字的類型、端口號等;接下來使用bind函數(shù)將套接字與主機間的IP、端口等信息關聯(lián),使用listen函數(shù)監(jiān)聽可能的訪問,使用accept函數(shù)來相應接入請求,重新創(chuàng)建一個socket描述符用于與客戶端交換信息,使用connect函數(shù)是用來完成客戶端與服務器端的連接,使用send和recv函數(shù)用于傳輸和接收具體的數(shù)據(jù),最后由close關閉,如圖5所示。

圖5 socket通信流程
針對變電站的智能巡檢機器人的設計要求,把機器人的設計分成運動及導航、圖像匹配檢測、視頻回傳三部分。首先通過對磁傳感器位置判斷、PID控制技術、軟硬件設計等實現(xiàn)了機器人的運動與導航;其次基于Python-OpenCV實現(xiàn)攝像機調(diào)用、差異度檢測、攝像機標定等功能,并通過圖像匹配的算法、攝像機畸形矯正和視頻動態(tài)背景濾除提升識別準確率;最后利用Raspberry pi開發(fā)板、V4L2接口、TCP/IP通信協(xié)議以及Socket通信程序等技術構(gòu)建了機器人視頻回傳系統(tǒng)。與其他巡檢機器人最大差異在于,該設計加入了機器人在標定位置拍照并與模板庫內(nèi)標準照片自動對比差異度的功能,可在變電站存在異物懸掛或者較大形變時,自動發(fā)出報警,提高對變電站的巡檢效率。