本發(fā)明涉及積分器技術(shù)領(lǐng)域,具體地說是涉及一種適用于長時(shí)間工作過程中的基于fpga的積分誤差補(bǔ)償方法。
背景技術(shù):
在電力系統(tǒng)的眾多環(huán)節(jié),例如發(fā)電、變電、輸配電以及用戶端,電流的檢測對(duì)電能質(zhì)量的監(jiān)控非常重要,特別是一些大電流直流供電場合,實(shí)現(xiàn)對(duì)三相橋式全控整流器中大電流的檢測可監(jiān)測設(shè)備運(yùn)行狀態(tài),提前發(fā)現(xiàn)故障,及時(shí)采取措施減小損失。
電流檢測設(shè)備通常包括電流互感器、霍爾電流傳感器、基于rogowski線圈的電流檢測系統(tǒng)。rogowski線圈是20世紀(jì)初由俄國科學(xué)家rogowski提出的大電流檢測方法,這是一種均勻纏繞在非磁性空芯骨架上的環(huán)形線圈。當(dāng)電流穿過rogowski線圈中心,電流產(chǎn)生的環(huán)形磁場垂直穿過羅柯線圈截面。電流的改變會(huì)引起磁場強(qiáng)度的變化,羅柯線圈的每層繞線均會(huì)產(chǎn)生感應(yīng)電壓,輸出電壓與繞線層數(shù)成正比。得到的rogowski線圈的輸出信號(hào)與電流的變化率成正比。采用積分電路對(duì)輸出電壓進(jìn)行積分還原,即可還原被測電流的波形。rogowski線圈具備結(jié)構(gòu)簡單、實(shí)時(shí)性好、無磁飽和等多個(gè)優(yōu)點(diǎn),而且安全可靠,不存在低壓側(cè)開路產(chǎn)生高壓的危險(xiǎn),廣泛應(yīng)用于電阻焊等電流波形變化較快以及電爐、短路測試等高頻、高幅的電流檢測場合。
在直流大電流檢測中積分器是不可或缺的設(shè)備,但是由于構(gòu)成模擬積分器的器件存在非理想性,導(dǎo)致積分器存在由輸入失調(diào)電壓、輸入失調(diào)電流、輸入偏置電流等引起的積分漂移,對(duì)信號(hào)檢測造成誤差。在實(shí)際應(yīng)用中,隨著積分時(shí)間的增加漂移量逐漸增大。同時(shí),也會(huì)引起積分器的非線性輸出,積分器將無法正常工作,隨之電流檢測設(shè)備也會(huì)無法正常工作。
目前,國內(nèi)外普遍采用固定漂移補(bǔ)償來進(jìn)行積分誤差補(bǔ)償。但是,在積分器長時(shí)間工作時(shí)采用固定漂移補(bǔ)償就會(huì)出現(xiàn)過補(bǔ)償或補(bǔ)償不足等情況,積分誤差仍然存在而且可能更大。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種應(yīng)用于長時(shí)間工作過程中的基于fpga的積分誤差補(bǔ)償方法,采用兩路積分器交替工作,以消除模擬積分器誤差,使積分電路長時(shí)間穩(wěn)定工作。
本發(fā)明解決技術(shù)問題,所采用的技術(shù)方案如下:
本發(fā)明基于fpga的積分誤差補(bǔ)償方法的特點(diǎn)是:設(shè)置積分電路是由積分器a和積分器b構(gòu)成,所述積分器a和積分器b在任意周期中按如下方式交替工作:
上半周期,積分器a對(duì)信號(hào)積分,并利用在上一周期中所獲得的積分器a的誤差函數(shù)對(duì)其進(jìn)行積分誤差實(shí)時(shí)補(bǔ)償,同時(shí),積分器b對(duì)地積分,獲得積分器b的誤差函數(shù);
下半周期,積分器b對(duì)信號(hào)積分,并利用在上半周期中所獲得的積分器b的誤差函數(shù)對(duì)其進(jìn)行積分誤差實(shí)時(shí)補(bǔ)償,同時(shí),積分器a對(duì)地積分,獲得積分器a的誤差函數(shù)。
本發(fā)明基于fpga的積分誤差補(bǔ)償方法的特點(diǎn)也在于按如下步驟獲得誤差函數(shù):
步驟1:在時(shí)長為q的積分時(shí)段內(nèi),將積分器對(duì)地積分,以δt為采樣間隔,獲得積分器的數(shù)字量輸出信號(hào)(ti,vi)作為采樣數(shù)據(jù),其中,ti為采樣時(shí)刻,vi為對(duì)應(yīng)于采樣時(shí)刻的積分器輸出電壓,i=0、1、2、3、……、n,n為采樣點(diǎn)個(gè)數(shù);
步驟2:以v=at+b作為線性擬合的函數(shù)模型,采用最小二乘法對(duì)步驟1獲得的采樣數(shù)據(jù)進(jìn)行線性擬合得到a和b,從而確定誤差函數(shù)v;包括:
以此確定誤差函數(shù)v。
本發(fā)明基于fpga的積分誤差補(bǔ)償方法的特點(diǎn)也在于:設(shè)t為一個(gè)工作周期,m為正整數(shù),控制所述積分器a和積分器b的交替工作過程為:
鎖存積分電路mt時(shí)刻輸出信號(hào)v(mt);
在[mt-τ,(m+0.5)t+τ]的時(shí)段內(nèi),由積分器a對(duì)信號(hào)積分,得到積分器a的信號(hào)積分值vao(t),利用在[(m-0.5)t+τ+p,(m-0.5)t+τ+p+q]的時(shí)段內(nèi)獲得的積分器a的誤差函數(shù)對(duì)于信號(hào)積分值vao(t)進(jìn)行誤差補(bǔ)償,獲得積分器a經(jīng)積分誤差補(bǔ)償后的輸出值va(t);
在[mt,(m+0.5)t]的時(shí)段m1內(nèi)將積分電路mt時(shí)刻輸出信號(hào)v(mt)與輸出值va(t)相加獲得積分電路輸出信號(hào)v(t);
在[mt+τ,mt+τ+p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行積分電容泄放;
在[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi)由積分器b對(duì)地積分,獲得積分器b的誤差函數(shù);在[mt+τ+p+q,mt+τ+p+q+p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行電容泄放;
鎖存積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t);
在[(m+0.5)t-τ,(m+1)t+τ]的時(shí)段內(nèi),由積分器b對(duì)信號(hào)積分,得到積分器b的信號(hào)積分值vbo(t),利用在[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi)獲得的積分器b的誤差函數(shù)對(duì)于信號(hào)積分值vbo(t)進(jìn)行誤差補(bǔ)償,獲得積分器b經(jīng)積分誤差補(bǔ)償后的輸出值vb(t);
在[(m+0.5)t,(m+1)t]的時(shí)段m2內(nèi)將積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t)與輸出值vb(t)相加獲得積分電路輸出信號(hào)v(t);
在[(m+0.5)t+τ,(m+0.5)t+τ+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行積分電容泄放;
在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的時(shí)段內(nèi)由積分器a對(duì)地積分,獲得積分器a的誤差函數(shù);在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行電容泄放;
完成在[mt-τ,(m+1)t+τ]的時(shí)段內(nèi)的積分器a和積分器b的交替工作,
其中,t=2(2τ+2p+q)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果體現(xiàn)在:
1、積分器在對(duì)信號(hào)積分時(shí)無法同時(shí)獲得積分時(shí)段內(nèi)的積分誤差,本發(fā)明采用最為臨近的時(shí)段內(nèi)的積分誤差對(duì)積分器進(jìn)行誤差補(bǔ)償,即在兩個(gè)相鄰的半周期之間,利用在前的半周期中的誤差函數(shù)補(bǔ)償在后的半周期的積分器對(duì)信號(hào)積分的誤差,可以有效提高積分器的精度;
2、本發(fā)明為實(shí)時(shí)積分誤差補(bǔ)償方法,動(dòng)態(tài)地消除了積分器本身的等效輸入偏移量、溫度漂移及地噪聲等帶來的誤差,有效避免積分電路長時(shí)間積分時(shí)誤差的累積;
3、本發(fā)明通過適當(dāng)設(shè)置交替工作周期,使得每路積分器對(duì)信號(hào)積分時(shí)誤差維持在較小的范圍內(nèi),采用兩路積分器交替工作,當(dāng)一路積分器工作時(shí),另一路積分器進(jìn)行積分電容泄放,誤差不會(huì)長時(shí)間累積,保證了積分電路能夠長時(shí)間穩(wěn)定工作。
附圖說明
圖1為本發(fā)明基于fpga的積分誤差補(bǔ)償方法的工作時(shí)序圖;
圖2為實(shí)現(xiàn)本發(fā)明基于fpga的積分誤差補(bǔ)償方法的積分電路示意圖。
具體實(shí)施方式
本實(shí)施例中,基于fpga的積分誤差補(bǔ)償方法是:設(shè)置積分電路是由積分器a和積分器b構(gòu)成,積分器a和積分器b在任意周期中按如下方式交替工作:
上半周期,積分器a對(duì)信號(hào)積分,并利用在上一周期中所獲得的積分器a的誤差函數(shù)對(duì)其進(jìn)行積分誤差實(shí)時(shí)補(bǔ)償,同時(shí),積分器b對(duì)地積分,獲得積分器b的誤差函數(shù)。
下半周期,積分器b對(duì)信號(hào)積分,并利用在上半周期中所獲得的積分器b的誤差函數(shù)對(duì)其進(jìn)行積分誤差實(shí)時(shí)補(bǔ)償,同時(shí),積分器a對(duì)地積分,獲得積分器a的誤差函數(shù)。
誤差函數(shù)按如下步驟獲得:
步驟1:在時(shí)長為q的積分時(shí)段內(nèi),將積分器對(duì)地積分,以δt為采樣間隔,獲得積分器的數(shù)字量輸出信號(hào)(ti,vi)作為采樣數(shù)據(jù),其中,ti為采樣時(shí)刻,vi為對(duì)應(yīng)于采樣時(shí)刻的積分器輸出電壓,i=0、1、2、3、……、n,n為采樣點(diǎn)個(gè)數(shù)。
步驟2:以v=at+b作為線性擬合的函數(shù)模型,采用最小二乘法對(duì)步驟1獲得的采樣數(shù)據(jù)進(jìn)行線性擬合得到a和b,從而確定誤差函數(shù)v;包括:
參見圖1,本實(shí)施例中,設(shè)t為一個(gè)工作周期,m為正整數(shù),積分器a和積分器b的交替工作過程為:
鎖存積分電路mt時(shí)刻輸出信號(hào)v(mt)。
在[mt-τ,(m+0.5)t+τ]的時(shí)段內(nèi),由積分器a對(duì)信號(hào)積分,得到積分器a的信號(hào)積分值vao(t),利用在[(m-0.5)t+τ+p,(m-0.5)t+τ+p+q]的時(shí)段內(nèi)獲得的積分器a的誤差函數(shù)對(duì)于信號(hào)積分值vao(t)進(jìn)行誤差補(bǔ)償,獲得積分器a經(jīng)積分誤差補(bǔ)償后的輸出值va(t)。
在[mt,(m+0.5)t]的時(shí)段m1內(nèi)將積分電路mt時(shí)刻輸出信號(hào)v(mt)與輸出值va(t)相加獲得積分電路輸出信號(hào)v(t)。
在[mt+τ,mt+τ+p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行積分電容泄放。
在[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi)由積分器b對(duì)地積分,獲得積分器b的誤差函數(shù);在[mt+τ+p+q,mt+τ+p+q+p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行電容泄放。
鎖存積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t)。
在[(m+0.5)t-τ,(m+1)t+τ]的時(shí)段內(nèi),由積分器b對(duì)信號(hào)積分,得到積分器b的信號(hào)積分值vbo(t),利用在[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi)獲得的積分器b的誤差函數(shù)對(duì)于信號(hào)積分值vbo(t)進(jìn)行誤差補(bǔ)償,獲得積分器b經(jīng)積分誤差補(bǔ)償后的輸出值vb(t)。
在[(m+0.5)t,(m+1)t]的時(shí)段m2內(nèi)將積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t)與輸出值vb(t)相加獲得積分電路輸出信號(hào)v(t)。
在[(m+0.5)t+τ,(m+0.5)t+τ+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行積分電容泄放。
在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的時(shí)段內(nèi)由積分器a對(duì)地積分,獲得積分器a的誤差函數(shù);在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行電容泄放。
完成[mt-τ,(m+1)t+τ]時(shí)段內(nèi)積分器a和積分器b的交替工作,t=2(2τ+2p+q)。
具體實(shí)施中,在積分電路開始對(duì)信號(hào)積分之前,按步驟1和步驟2的方法獲得積分器a和積分器b的誤差函數(shù)作為初始誤差函數(shù)。在[0,0.5t+τ]時(shí)段內(nèi),積分器a對(duì)信號(hào)積分,得到積分器a的信號(hào)積分值vao(t),利用初始誤差函數(shù)對(duì)信號(hào)積分值vao(t)進(jìn)行誤差補(bǔ)償,獲得積分器a經(jīng)積分誤差補(bǔ)償后的輸出值va(t)。
在[0,p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行積分電容泄放。
在[p,p+q]的時(shí)段內(nèi)由積分器b對(duì)地積分,獲得積分器b的誤差函數(shù)。
在[p+q,p+q+p]的時(shí)間段內(nèi)對(duì)積分器b進(jìn)行電容泄放。
鎖存0.5t時(shí)刻積分器a經(jīng)積分誤差補(bǔ)償后的輸出值va(0.5t)。
在[0.5t-τ,t+τ]的時(shí)段內(nèi),由積分器b對(duì)信號(hào)積分,得到積分器b的信號(hào)積分值vbo(t),利用在[p,p+q]的時(shí)段內(nèi)獲得的積分器b的誤差函數(shù)對(duì)于信號(hào)積分值vbo(t)進(jìn)行誤差補(bǔ)償,獲得積分器b經(jīng)積分誤差補(bǔ)償后的輸出值vb(t)。
在[0.5t,t]的時(shí)段內(nèi)將積分器a在0.5t經(jīng)積分誤差補(bǔ)償后的輸出值v(0.5t)與輸出值vb(t)相加獲得積分電路輸出信號(hào)v(t)。
在[0.5t+τ,0.5t+τ+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行積分電容泄放。
在[0.5t+τ+p,0.5t+τ+p+q]的時(shí)段內(nèi)由積分器a對(duì)地積分,獲得積分器a的誤差函數(shù)。
在[0.5t+τ+p+q,0.5t+τ+p+q+p]的時(shí)間段內(nèi)對(duì)積分器a進(jìn)行電容泄放。
完成在[0,t+τ]的時(shí)段內(nèi)的積分器a和積分器b的交替工作。
參見圖2,本實(shí)施例中用于實(shí)現(xiàn)上述基于fpga的積分誤差補(bǔ)償方法的積分電路包括模擬積分電路模塊、adc模塊、fpga模塊和dac模塊。
模擬積分電路模塊包括積分器a和積分器b,各積分器分別包含有運(yùn)算放大器、電容、電阻以及雙擲電子開關(guān),用于實(shí)現(xiàn)積分、切換輸入信號(hào)以及對(duì)電容放電的功能;針對(duì)積分器a,在其運(yùn)算放大器的負(fù)、正輸入端分別連接有電阻ra1和ra2,ra1的另一端連接雙擲電子開關(guān)ka1,ra2的另一端接地;雙擲電子開關(guān)ka1的兩個(gè)端子分別連接輸入信號(hào)和地;ra1和運(yùn)算放大器負(fù)輸入端的連接處分別與積分電容器ca、泄放電阻ra3相連,積分電容器ca的另一端連接雙擲電子開關(guān)ka2,ka2的端子1連接運(yùn)算放大器的輸出端、端子2連接泄放電阻ra3的另一端。針對(duì)積分器b,運(yùn)算放大器的負(fù)、正輸入端分別連接電阻rb1和rb2,rb1的另一端連接雙擲電子開關(guān)kb1,rb2的另一端接地;雙擲電子開關(guān)kb1的兩個(gè)端子分別連接輸入信號(hào)和地;rb1和運(yùn)算放大器負(fù)輸入端的連接處分別與積分電容器cb、泄放電阻rb3相連,積分電容器cb的另一端連接雙擲電子開關(guān)kb2,kb2的端子1連接運(yùn)算放大器的輸出端、端子2連接泄放電阻rb3的另一端。
fpga模塊包括八個(gè)功能單元:邏輯控制單元、adc控制器、誤差函數(shù)求解存儲(chǔ)單元a、誤差函數(shù)求解存儲(chǔ)單元b、誤差補(bǔ)償單元a、誤差補(bǔ)償單元b、累加保持單元和dac控制器。
工作時(shí),fpga模塊的邏輯控制單元發(fā)出邏輯控制信號(hào)使雙擲電子開關(guān)ka1、kb1接地、ka2、kb2接端子1,積分器a和積分器b均對(duì)地積分一段時(shí)間,時(shí)長為q,輸出模擬電壓至adc模塊;fpga模塊的adc控制器產(chǎn)生adc模塊控制信號(hào),使adc模塊將模擬積分電路模塊輸出的模擬電壓轉(zhuǎn)換為數(shù)字量并送入fpga模塊內(nèi);fpga中誤差函數(shù)求解存儲(chǔ)單元a求解并存儲(chǔ)積分器a對(duì)地積分時(shí)的誤差函數(shù),誤差函數(shù)求解存儲(chǔ)單元b求解并存儲(chǔ)積分器b對(duì)地積分時(shí)的誤差函數(shù),作為初始誤差函數(shù);fpga模塊的邏輯控制單元再次發(fā)出邏輯控制信號(hào)使雙擲電子開關(guān)ka2、kb2接端子2,積分電容ca、cb泄放。至此,完成初始設(shè)置。第一個(gè)交替工作周期開始時(shí),無論是積分器a先開始對(duì)信號(hào)積分還是積分器b先開始對(duì)信號(hào)積分,都可以調(diào)用初始誤差函數(shù)對(duì)其進(jìn)行誤差補(bǔ)償。
fpga模塊的邏輯控制單元發(fā)出邏輯控制信號(hào),使雙擲電子開關(guān)ka1接輸入信號(hào)v(t)、ka2接端子1。積分器a開始對(duì)信號(hào)進(jìn)行積分,得到積分器a的積分輸出值vao(t),誤差補(bǔ)償單元a對(duì)其輸出電壓進(jìn)行誤差補(bǔ)償,獲得積分器a經(jīng)積分誤差補(bǔ)償后的輸出值va(t)。在mt時(shí)刻,fpga模塊的邏輯控制單元發(fā)出邏輯控制信號(hào),累加保持單元鎖存積分電路mt時(shí)刻輸出信號(hào)v(mt),在[mt,(m+0.5)t]的時(shí)段m1內(nèi)將積分電路mt時(shí)刻輸出信號(hào)v(mt)與輸出值va(t)相加獲得積分電路輸出信號(hào)v(t)。
在[mt+τ,mt+τ+p]的時(shí)間段內(nèi),kb1接地、kb2接端子2,積分器b進(jìn)行積分電容泄放;在[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi),kb2接端子1,積分器b對(duì)地積分,誤差函數(shù)求解存儲(chǔ)單元b求出該段時(shí)間的積分誤差函數(shù)并存儲(chǔ);在[mt+τ+p+q,mt+τ+p+q+p]的時(shí)間段內(nèi),kb2接端子2,對(duì)積分器b進(jìn)行電容泄放。
在[(m+0.5)t-τ,(m+1)t+τ]的時(shí)段內(nèi),fpga模塊的邏輯控制單元發(fā)出邏輯控制信號(hào),使雙擲電子開關(guān)kb1接輸入信號(hào)v(t)、kb2接端子1,積分器b開始對(duì)信號(hào)進(jìn)行積分,得到積分器b的積分輸出值vbo(t),誤差補(bǔ)償單元b利用[mt+τ+p,mt+τ+p+q]的時(shí)段內(nèi)獲得的積分器b的誤差函數(shù)對(duì)于信號(hào)積分值vbo(t)進(jìn)行誤差補(bǔ)償,獲得積分器b經(jīng)積分誤差補(bǔ)償后的輸出值vb(t)。在(m+0.5)t時(shí)刻,fpga模塊的邏輯控制單元發(fā)出邏輯控制信號(hào),累加保持模塊鎖存積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t),在[(m+0.5)t,(m+1)t]時(shí)段m2內(nèi)將積分電路(m+0.5)t時(shí)刻輸出信號(hào)v((m+0.5)t)與輸出值vb(t)相加獲得積分電路輸出信號(hào)v(t)。
在[(m+0.5)t+τ,(m+0.5)t+τ+p]的時(shí)間段內(nèi),ka1接地、ka2接端子2,對(duì)積分器a進(jìn)行積分電容泄放;在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的時(shí)段內(nèi),ka2接端子1,積分器a對(duì)地積分,誤差函數(shù)求解存儲(chǔ)單元a求出該段時(shí)間的積分誤差并存儲(chǔ);在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的時(shí)間段內(nèi),ka2接端子2,積分器a進(jìn)行電容泄放。完成在[mt-τ,(m+1)t+τ]的時(shí)段內(nèi)的積分器a和積分器b的交替工作。
累加保持單元的輸出經(jīng)dac模塊轉(zhuǎn)換為模擬量輸出。積分結(jié)束后,雙擲電子開關(guān)ka2、kb2接端子2,積分電容ca、cb泄放。
考慮到電子開關(guān)ka1、ka2、kb1、kb2的動(dòng)作時(shí)間在μs量級(jí),積分準(zhǔn)備時(shí)間τ確定在ms量級(jí),這樣,當(dāng)一路積分在對(duì)信號(hào)積分時(shí),另一路積分器提前進(jìn)入積分準(zhǔn)備狀態(tài),防止信號(hào)丟失。對(duì)積分電容的泄放,可以清除誤差,防止誤差的累積。泄放時(shí)間p與積分時(shí)間常數(shù)rc相關(guān),p一般取3~5rc,而積分常數(shù)一般在ms量級(jí),所以p的取值在ms量級(jí)。實(shí)現(xiàn)積分器交替工作的關(guān)鍵是選擇合適的交替周期t,交替周期太長,會(huì)使每一路積分器的積分誤差累積,不利于降低積分誤差;交替周期太短,電子開關(guān)頻繁動(dòng)作,不利于積分器穩(wěn)定工作,周期t一般取幾秒到幾十秒不等。積分器對(duì)地積分是為了獲得誤差函數(shù),滿足t=2(2τ+2p+q)即可。