朱利文,于 雷,金傳喜,陳盼輝,賈正榮,劉明輝
(1. 海軍工程大學(xué) 核科學(xué)技術(shù)學(xué)院, 湖北 武漢 430033; 2. 海軍工程大學(xué) 艦船綜合電力技術(shù)國防科技重點(diǎn)實(shí)驗(yàn)室, 湖北 武漢 430033)
在自動(dòng)測試系統(tǒng)中,程控電阻的應(yīng)用越來越廣泛。程控電阻為自動(dòng)測試系統(tǒng)提供所需的電阻值,可應(yīng)用于熱電阻溫度傳感器(Resistance Temperature Detector, RTD)、電阻應(yīng)變式壓力傳感器、高度傳感器以及電位器式位移傳感器等電阻類傳感器的校準(zhǔn)與測試[1]。
自20世紀(jì)80年代開始,國內(nèi)外均開展了程控電阻的研究工作,但進(jìn)展均不理想[2]。21世紀(jì)初以來,隨著計(jì)算機(jī)技術(shù)、先進(jìn)電子技術(shù)及元器件工藝的發(fā)展,逐漸發(fā)展出了多種程控電阻信號(hào)源。其中,成熟應(yīng)用的主要有兩類:電子合成電阻和程控繼電器電阻網(wǎng)絡(luò)[3]。
電子合成電阻目前研究較多,它通過編程控制輸入電壓和輸入電流的比值,從而實(shí)現(xiàn)可變阻值的輸出[3-4]。常用的設(shè)計(jì)方法是基于場效應(yīng)管實(shí)現(xiàn)可變阻值輸出,包括控制場效應(yīng)管導(dǎo)通程度[5]、利用疊加場效應(yīng)管結(jié)構(gòu)實(shí)現(xiàn)變阻[6]、浮動(dòng)節(jié)點(diǎn)電壓控制線性可變電阻[7]、接地電壓控制的正電阻器[8]、接地和浮動(dòng)電流控制可調(diào)電阻[9]。行鴻彥等[10]通過控制柵源電壓實(shí)現(xiàn)的可變電阻,其阻值范圍為75.703~141.004 Ω,分辨率為0.025 Ω。美國福祿克公司推出能夠用于Pt100測溫儀表校準(zhǔn)的多參數(shù)校驗(yàn)儀525B,在5~400 Ω的范圍內(nèi),能夠?qū)崿F(xiàn)1 mΩ的步進(jìn)輸出[11]。哈爾濱工業(yè)大學(xué)的王冰和喻佳健[3,12]相繼提出了電流型和電壓型兩種電路方案,最終實(shí)現(xiàn)了高精度模擬基準(zhǔn)電阻源。然而,上述電子合成電阻由于使用有源二端口網(wǎng)絡(luò),只能模擬電阻的性能而不能等效于實(shí)體電阻,因而可能出現(xiàn)與二次儀表激勵(lì)電路不匹配的問題,在應(yīng)用中受到一定的限制[3]。
程控繼電器電阻網(wǎng)絡(luò)使用已經(jīng)連接好的精密電阻鏈,通過繼電器選擇性地將相鄰的多個(gè)電阻進(jìn)行組合輸出[4]。繼電器切換實(shí)體電阻網(wǎng)絡(luò)的方式,可解決有源二端口不匹配等問題,其應(yīng)用范圍比電子合成電阻更廣。2012年,美國國家儀器推出了一種具有代表性的16位電阻板卡PXI-2722,實(shí)現(xiàn)了0.25~16 320 Ω的輸出電阻范圍,步進(jìn)為0.25 Ω,精度等級(jí)為0.5%[13]。2016年,英國品英公司推出了一種基于PXI和PCI接口的RTD仿真器,阻值范圍為90~250 Ω,分辨率為0.008 Ω,精度等級(jí)為0.1%[14]。雖然精度等級(jí)實(shí)現(xiàn)了一定程度的提升,但量程范圍內(nèi)阻值偏差仍達(dá)到0.25 Ω。因此,現(xiàn)有程控繼電器電阻網(wǎng)絡(luò)在實(shí)現(xiàn)毫歐級(jí)精度時(shí)存在明顯不足。
在高精度輸出場合,由于繼電器導(dǎo)通阻值、基準(zhǔn)電阻初始精度等影響,傳統(tǒng)程控繼電器電阻網(wǎng)絡(luò)的設(shè)計(jì)較為復(fù)雜[15]。
本文針對(duì)高精度程控繼電器電阻網(wǎng)絡(luò)設(shè)計(jì)困難的問題,提出一種高精度程控電阻網(wǎng)絡(luò)生成算法,該算法根據(jù)阻值范圍和精度需求,自動(dòng)生成繼電器電阻網(wǎng)絡(luò)。首先為程控繼電器電阻網(wǎng)絡(luò)建立模型,進(jìn)行數(shù)學(xué)描述,將新型程控繼電器電阻網(wǎng)絡(luò)設(shè)計(jì)為主電阻、補(bǔ)償電阻以及偏移電阻三個(gè)部分,提出阻值分解算法和子模塊阻值逼近算法對(duì)主電阻網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),提出精度計(jì)算算法對(duì)電阻網(wǎng)絡(luò)精度進(jìn)行理論計(jì)算;然后分別對(duì)主網(wǎng)絡(luò)和補(bǔ)償網(wǎng)絡(luò)進(jìn)行優(yōu)化,最后以一組需求為例,對(duì)算法進(jìn)行驗(yàn)證。
電阻源設(shè)計(jì)實(shí)質(zhì)上是一個(gè)優(yōu)化問題,問題表述為在可用電阻集合Ω={Ra,i}中選擇任意數(shù)量的電阻,構(gòu)成一個(gè)電阻源,該電阻源能夠在[Rmin,Rmax)內(nèi)連續(xù)取值,在滿足約束條件的前提下優(yōu)化目標(biāo)函數(shù)。因此,電阻源網(wǎng)絡(luò)設(shè)計(jì)可以用數(shù)學(xué)語言描述為:
目標(biāo)函數(shù):選用的電阻總數(shù)最少。
約束條件:對(duì)于任意設(shè)置的阻值Rset∈[Rmin,Rmax),其與電阻源輸出的實(shí)際阻值Rprac之間的差值滿足精度要求ΔR,即
|Rset-Rprac|<ΔR
定義1電阻網(wǎng)絡(luò)結(jié)構(gòu)為多個(gè)基準(zhǔn)子模塊串聯(lián),每個(gè)子模塊物理模型如圖1所示,設(shè)開關(guān)變量為bi,bi取1為閉合,bi取0為斷開,則電阻網(wǎng)絡(luò)的總電阻可以表示為
(1)
其中,nR為子模塊數(shù)量,Ri,1為開關(guān)閉合時(shí)每個(gè)基準(zhǔn)子模塊的電阻,Ri,0為開關(guān)斷開時(shí)每個(gè)子模塊的電阻。
圖1 電阻網(wǎng)絡(luò)子模塊物理模型Fig.1 Physical model of resistance network sub-module
首先給出定理1,說明理想情況下構(gòu)建電阻網(wǎng)絡(luò)所需的電阻子模塊數(shù)量。
(2)
式中,「·?為向上取整。
B=b1…bi…bnR
(3)
定理2在理想情況下,構(gòu)建取值范圍[Rmin,Rmax)的電阻網(wǎng)絡(luò),精度為ΔR,至少需要nR,min+1個(gè)電阻,其中
(4)
證明:根據(jù)定理1,定理2顯然成立。
□
定理1與定理2給出了理論上構(gòu)成電阻網(wǎng)絡(luò)所需的最小電阻數(shù)量,然而,實(shí)際中的可選用電阻阻值并不總是2i-1ΔR,因此需要在可用的電阻中選擇合適的電阻逼近阻值2i-1ΔR。
定理3從可用電阻集合Ω={Ra,i}中任選電阻逼近阻值Rt,最大誤差ΔRt的取值范圍為ΔRt 證明:采用反證法證明。假設(shè)最大誤差ΔRt≥min{Ra,i},則可以在Ω中選取nt個(gè)阻值為min{Ra,i}的電阻,從而有 其中 (5) □ 定理4在理想情況下,從可用電阻集合Ω={Ra,i}中任選電阻,依次逼近阻值Ri,0=2i-1ΔR,構(gòu)成電阻網(wǎng)絡(luò)[Rmin,Rmax),最大誤差ΔRmax 證明:根據(jù)定理2,構(gòu)成電阻網(wǎng)絡(luò)需要至少nR,min個(gè)電阻子模塊,從Ω={Ra,i}中任選電阻逼近每個(gè)子模塊的阻值Ri,0=2i-1ΔR,子模塊逼近誤差ΔRi小于min{Ra,i},因而有 根據(jù)上述問題建模,為實(shí)現(xiàn)阻值范圍為[Rmin,Rmax)的電阻源,本文提出一種電阻網(wǎng)絡(luò)生成算法。由該算法生成的電阻網(wǎng)絡(luò)包括主電阻網(wǎng)絡(luò)(Main Resistance Network, MRN)、補(bǔ)償電阻網(wǎng)絡(luò)(Compensation Resistance Network, CRN)以及偏移電阻網(wǎng)絡(luò)(Offset Resistance Network, ORN)。 電阻源的設(shè)計(jì)思路為首先設(shè)計(jì)阻值[0,Rmax-Rmin)的主電阻網(wǎng)絡(luò),之后在考慮開關(guān)閉合阻值的條件下求解主電阻網(wǎng)絡(luò)在[0,Rmax-Rmin)上的最大逼近誤差,而后使用補(bǔ)償電阻網(wǎng)絡(luò)修正這一誤差,最后根據(jù)Rmin以及主電阻網(wǎng)絡(luò)、補(bǔ)償電阻網(wǎng)絡(luò)的零點(diǎn)偏移設(shè)計(jì)偏移電阻。 主電阻網(wǎng)絡(luò)的設(shè)計(jì)主要與目標(biāo)電阻源的量程、精度以及可選基準(zhǔn)電阻有關(guān),主電阻網(wǎng)絡(luò)的主要作用是解決量程范圍的跨度[0,Rmax-Rmin)。在進(jìn)行主電阻網(wǎng)絡(luò)的設(shè)計(jì)中,重點(diǎn)要關(guān)注的是在滿足量程范圍前提下,實(shí)現(xiàn)電阻數(shù)量最少。具體的設(shè)計(jì)包括阻值分解、子模塊阻值逼近以及主電阻網(wǎng)絡(luò)生成與優(yōu)化。 首先是阻值分解,其目的在于將主電阻網(wǎng)絡(luò)的阻值[0,Rmax-Rmin)分解為nR,min個(gè)子模塊阻值Rt,i,如算法1所示,其中Rmain為主電阻網(wǎng)絡(luò)阻值。阻值分解算法為主電阻網(wǎng)絡(luò)中的子模塊阻值的選取提供依據(jù)。 算法1 阻值分解 然后是子模塊阻值逼近,用于從可選電阻集合Ω={Ra,i}中選擇盡量少的基準(zhǔn)電阻以逼近每個(gè)子模塊的阻值Rt,具體如算法2所示。 算法2 子模塊阻值逼近 在算法2中,由于可能選用相同的電阻逼近Rt,即集合Ψ中可能存在重復(fù)元素,因而集合Ψ并不嚴(yán)格滿足集合中元素的唯一性。 對(duì)于第i個(gè)子模塊阻值Rt,i,即逼近電阻集合為Ψi,通過Ψi構(gòu)成的實(shí)際子模塊阻值記為Rrt,i。 最后是主電阻網(wǎng)絡(luò)生成與優(yōu)化。算法1輸入的是主電阻網(wǎng)絡(luò)阻值Rmain,滿足Rmain>Rmax-Rmin,以使主電阻網(wǎng)絡(luò)阻值覆蓋[0,Rmax-Rmin)。在[Rmax-Rmin,+∞)范圍內(nèi)取Rmain作為算法1的輸入,之后再通過算法2得到主電阻網(wǎng)絡(luò)的結(jié)構(gòu),主電阻網(wǎng)絡(luò)內(nèi)的電阻數(shù)量與Rmain的取值相關(guān),因此需要以Rmain作為變量對(duì)主電阻網(wǎng)絡(luò)內(nèi)的電阻數(shù)量進(jìn)行優(yōu)化。算法3可生成主電阻網(wǎng)絡(luò),并可對(duì)電阻數(shù)量進(jìn)行優(yōu)化。 算法3 主電阻網(wǎng)絡(luò)生成與優(yōu)化 考慮主電阻網(wǎng)絡(luò)存在逼近誤差nR,minmin{Ra,i},同時(shí)考慮非理想情況下,開關(guān)閉合時(shí)的電阻值Ri,1>0,因此實(shí)際的主電阻網(wǎng)絡(luò)逼近誤差極有可能大于理論值nR,minmin{Ra,i},故還需要一個(gè)補(bǔ)償電阻網(wǎng)絡(luò)用于修正主電阻網(wǎng)絡(luò)的逼近誤差。 每個(gè)開關(guān)閉合后考慮繼電器電阻的實(shí)際阻值Ri,1,即對(duì)于每個(gè)i,有 (6) 其中,Rrelay為繼電器阻值。因此主電阻網(wǎng)絡(luò)的零點(diǎn)偏移為 (7) 之后,需要先計(jì)算主電阻網(wǎng)絡(luò)在[0,Rmax-Rmin)上的取值精度,再根據(jù)最大誤差設(shè)計(jì)補(bǔ)償電阻網(wǎng)絡(luò)。 補(bǔ)償電阻網(wǎng)絡(luò)的設(shè)計(jì)主要關(guān)注目標(biāo)電阻源的精度,因此首先需要得到電阻網(wǎng)絡(luò)的精度,其計(jì)算方法如算法4所示。 在算法4中,Solve_B()是根據(jù)電阻網(wǎng)絡(luò)模型求解開關(guān)陣列的算法,本文采用逐次逼近的算法[15]。該算法將目標(biāo)阻值與開關(guān)對(duì)應(yīng)的權(quán)值逐一比較。如果目標(biāo)阻值大于權(quán)值,則該開關(guān)為斷開,目標(biāo)阻值減去權(quán)值;否則,開關(guān)為閉合。按照此方法,直到所有權(quán)值參與比較。Solve_R()是根據(jù)電阻網(wǎng)絡(luò)開關(guān)陣列計(jì)算實(shí)際電阻值的函數(shù),即定義1。 算法4 電阻網(wǎng)絡(luò)精度計(jì)算 特別地,Solve_B()求解的開關(guān)陣列對(duì)應(yīng)實(shí)際電阻值總是小于給定電阻值,其目的在于為后續(xù)增加的補(bǔ)償電阻網(wǎng)絡(luò)提供條件。 將算法4中得到的量程范圍內(nèi)最大差值Error記為δRmain,下一步為根據(jù)δRmain進(jìn)行補(bǔ)償電阻網(wǎng)絡(luò)設(shè)計(jì)。與主電阻網(wǎng)絡(luò)不同,補(bǔ)償電阻網(wǎng)絡(luò)應(yīng)當(dāng)更加注重精度而非減少電阻數(shù)量。對(duì)此,采用算法5進(jìn)行補(bǔ)償網(wǎng)絡(luò)的優(yōu)化求解。 算法5 補(bǔ)償電阻網(wǎng)絡(luò)生成與優(yōu)化 偏移電阻網(wǎng)絡(luò)的主要作用包括兩個(gè):一個(gè)是為量程范圍做整體平移,使主電阻網(wǎng)絡(luò)需要解決的量程為[0,Rmax-Rmin),而非設(shè)計(jì)目標(biāo)量程[Rmin,Rmax),這有利于主電阻網(wǎng)絡(luò)基準(zhǔn)電阻的靈活選擇;另一個(gè)是,由于Ri,1>0,主電阻網(wǎng)絡(luò)與補(bǔ)償電阻網(wǎng)絡(luò)在開關(guān)均閉合時(shí)存在零點(diǎn)偏移,偏移電阻網(wǎng)絡(luò)還應(yīng)考慮這一阻值,即考慮主電阻網(wǎng)絡(luò)零點(diǎn)偏移Rmain,0和補(bǔ)償電阻網(wǎng)絡(luò)零點(diǎn)偏移Rcomp,0等誤差對(duì)最終輸出的影響。 因此,偏移電阻網(wǎng)絡(luò)阻值Roffset為 Roffset=Rmin-Rmain,0-Rcomp,0 (8) 以輸出90~250 Ω阻值范圍為例,對(duì)算法進(jìn)行驗(yàn)證。目標(biāo)精度設(shè)置為5 mΩ,選擇接觸電阻小的繼電器,其典型值為1.2 mΩ。 算法3僅給出了優(yōu)化思路,具體的求解方法可以采取遍歷、線性搜索、進(jìn)化算法等??紤]本實(shí)例規(guī)模較小,可采用遍歷的方法。遍歷范圍為[Rmax-Rmin,5(Rmax-Rmin)),即[160 000,800 000)。使用MATLAB進(jìn)行仿真,遍歷過程如圖2所示。 圖2 主電阻網(wǎng)絡(luò)遍歷過程Fig.2 Traversal process of MRN 圖2中Rinput為輸入算法3的阻值,NRs為對(duì)應(yīng)該阻值通過算法1與算法2得到的電阻數(shù)量。以圖2中NRs最小的點(diǎn)為最佳值,最終得到主電阻網(wǎng)絡(luò)電阻數(shù)量為21,主電阻網(wǎng)絡(luò)阻值分布如表1所示。 表1 主電阻網(wǎng)絡(luò)阻值分布 與算法3類似,算法5僅為求解思路,具體優(yōu)化方法同樣采用遍歷算法。與主電阻網(wǎng)絡(luò)不同,補(bǔ)償電阻網(wǎng)絡(luò)更加注重輸出精度。 補(bǔ)償電阻網(wǎng)絡(luò)遍歷過程如圖3所示,圖中Rinput為輸入算法5的最大誤差,RmaxError為對(duì)應(yīng)該輸入的補(bǔ)償電阻網(wǎng)絡(luò)最大阻值誤差。Rinput的遍歷范圍為[δRmain,5δRmain),即[14,70)。以圖3中RmaxError最小的點(diǎn)為最佳值,可得到對(duì)應(yīng)的補(bǔ)償電阻網(wǎng)絡(luò)阻值分布如表2所示。 圖3 補(bǔ)償電阻網(wǎng)絡(luò)遍歷過程Fig.3 Traversal process of CRN 表2 補(bǔ)償電阻網(wǎng)絡(luò)阻值分布 仿真得到Rmain,0值為18.5 mΩ,Rcomp,0值為2.95 mΩ,再由式(8)可得Roffset為89 978.55 mΩ。最終,該程控繼電器電阻網(wǎng)絡(luò)仿真輸出精度為4.431 3 mΩ,滿足目標(biāo)精度要求。 該算法解算時(shí)間僅為18.128 s。相比于人工設(shè)計(jì)的方式,本文提出的方法大大提高了設(shè)計(jì)效率。 前文采用的優(yōu)化準(zhǔn)則是主網(wǎng)絡(luò)電阻數(shù)量最少的原則,本小節(jié)綜合考慮目標(biāo)精度與基準(zhǔn)電阻,對(duì)整體最優(yōu)方案深入探討。 以輸出90~250 Ω阻值范圍為例,選擇接觸電阻典型值為1.2 mΩ的繼電器,分別設(shè)定目標(biāo)精度為[2,10]毫歐級(jí),利用本文算法進(jìn)行求解。 目標(biāo)精度與實(shí)現(xiàn)精度對(duì)比如表3所示。結(jié)果表明,理論上可以滿足目標(biāo)精度為[2,10] 毫歐級(jí)的精度要求。 表3 目標(biāo)精度與實(shí)現(xiàn)精度對(duì)比 目標(biāo)精度與電阻數(shù)量之間的關(guān)系如圖4所示。在實(shí)現(xiàn)毫歐級(jí)目標(biāo)精度時(shí),總體上遵循的規(guī)律為目標(biāo)精度越高,需要的電阻數(shù)量越多。但是,可能存在奇點(diǎn),如圖4中目標(biāo)精度為6 mΩ的情況。對(duì)于奇點(diǎn),可利用高目標(biāo)精度方案與低目標(biāo)精度方案的包含關(guān)系,即目標(biāo)精度高的方案可滿足目標(biāo)精度低的需求,從目標(biāo)精度更高方案中選擇電阻數(shù)量最少的方案作為最終結(jié)果。 圖4 精度與電阻數(shù)量之間的關(guān)系Fig.4 Relationship between accuracy and number 因此,聯(lián)合考慮電阻數(shù)量和精度兩個(gè)維度來選擇最終的算法時(shí),存在兩種可能結(jié)果:一種是由算法求解該目標(biāo)精度得到的電阻數(shù)量為最少;另一種是算法求解更高目標(biāo)精度得到的電阻數(shù)量為最少。 綜上,綜合考慮電阻數(shù)量和精度,為生成最佳方案,可采用的策略為,先按本文算法求出滿足該目標(biāo)精度的電阻網(wǎng)絡(luò),而后考慮更高目標(biāo)精度對(duì)應(yīng)的電阻網(wǎng)絡(luò),通過比較電阻數(shù)量,選出同時(shí)滿足目標(biāo)精度需求和電阻數(shù)量最少的最優(yōu)方案。 此外,當(dāng)阻值精度設(shè)定為10 mΩ時(shí),便可不需要補(bǔ)償電阻網(wǎng)絡(luò),這也驗(yàn)證了補(bǔ)償電阻網(wǎng)絡(luò)的主要作用范圍為毫歐級(jí)精度。 針對(duì)高精度程控繼電器電阻網(wǎng)絡(luò)設(shè)計(jì)復(fù)雜的問題,提出一種高精度程控繼電器電阻網(wǎng)絡(luò)生成算法,該算法根據(jù)需求量程和精度,自動(dòng)生成繼電器電阻網(wǎng)絡(luò)。 仿真結(jié)果表明,根據(jù)本文算法得到的繼電器電阻網(wǎng)絡(luò)可滿足目標(biāo)精度要求。該算法大大提高了設(shè)計(jì)效率,具有較好的工程應(yīng)用價(jià)值。2 電阻網(wǎng)絡(luò)生成算法設(shè)計(jì)
2.1 主電阻網(wǎng)絡(luò)設(shè)計(jì)
2.2 補(bǔ)償電阻網(wǎng)絡(luò)設(shè)計(jì)
2.3 偏移電阻網(wǎng)絡(luò)設(shè)計(jì)
3 仿真結(jié)果與分析
3.1 算法仿真與分析
3.2 目標(biāo)精度與基準(zhǔn)電阻數(shù)量分析
4 結(jié)論