朱利文,于 雷,金傳喜,陳盼輝,賈正榮,劉明輝
(1. 海軍工程大學 核科學技術學院, 湖北 武漢 430033; 2. 海軍工程大學 艦船綜合電力技術國防科技重點實驗室, 湖北 武漢 430033)
在自動測試系統中,程控電阻的應用越來越廣泛。程控電阻為自動測試系統提供所需的電阻值,可應用于熱電阻溫度傳感器(Resistance Temperature Detector, RTD)、電阻應變式壓力傳感器、高度傳感器以及電位器式位移傳感器等電阻類傳感器的校準與測試[1]。
自20世紀80年代開始,國內外均開展了程控電阻的研究工作,但進展均不理想[2]。21世紀初以來,隨著計算機技術、先進電子技術及元器件工藝的發展,逐漸發展出了多種程控電阻信號源。其中,成熟應用的主要有兩類:電子合成電阻和程控繼電器電阻網絡[3]。
電子合成電阻目前研究較多,它通過編程控制輸入電壓和輸入電流的比值,從而實現可變阻值的輸出[3-4]。常用的設計方法是基于場效應管實現可變阻值輸出,包括控制場效應管導通程度[5]、利用疊加場效應管結構實現變阻[6]、浮動節點電壓控制線性可變電阻[7]、接地電壓控制的正電阻器[8]、接地和浮動電流控制可調電阻[9]。行鴻彥等[10]通過控制柵源電壓實現的可變電阻,其阻值范圍為75.703~141.004 Ω,分辨率為0.025 Ω。美國福祿克公司推出能夠用于Pt100測溫儀表校準的多參數校驗儀525B,在5~400 Ω的范圍內,能夠實現1 mΩ的步進輸出[11]。哈爾濱工業大學的王冰和喻佳健[3,12]相繼提出了電流型和電壓型兩種電路方案,最終實現了高精度模擬基準電阻源。然而,上述電子合成電阻由于使用有源二端口網絡,只能模擬電阻的性能而不能等效于實體電阻,因而可能出現與二次儀表激勵電路不匹配的問題,在應用中受到一定的限制[3]。
程控繼電器電阻網絡使用已經連接好的精密電阻鏈,通過繼電器選擇性地將相鄰的多個電阻進行組合輸出[4]。繼電器切換實體電阻網絡的方式,可解決有源二端口不匹配等問題,其應用范圍比電子合成電阻更廣。2012年,美國國家儀器推出了一種具有代表性的16位電阻板卡PXI-2722,實現了0.25~16 320 Ω的輸出電阻范圍,步進為0.25 Ω,精度等級為0.5%[13]。2016年,英國品英公司推出了一種基于PXI和PCI接口的RTD仿真器,阻值范圍為90~250 Ω,分辨率為0.008 Ω,精度等級為0.1%[14]。雖然精度等級實現了一定程度的提升,但量程范圍內阻值偏差仍達到0.25 Ω。因此,現有程控繼電器電阻網絡在實現毫歐級精度時存在明顯不足。
在高精度輸出場合,由于繼電器導通阻值、基準電阻初始精度等影響,傳統程控繼電器電阻網絡的設計較為復雜[15]。
本文針對高精度程控繼電器電阻網絡設計困難的問題,提出一種高精度程控電阻網絡生成算法,該算法根據阻值范圍和精度需求,自動生成繼電器電阻網絡。首先為程控繼電器電阻網絡建立模型,進行數學描述,將新型程控繼電器電阻網絡設計為主電阻、補償電阻以及偏移電阻三個部分,提出阻值分解算法和子模塊阻值逼近算法對主電阻網絡進行設計,提出精度計算算法對電阻網絡精度進行理論計算;然后分別對主網絡和補償網絡進行優化,最后以一組需求為例,對算法進行驗證。
電阻源設計實質上是一個優化問題,問題表述為在可用電阻集合Ω={Ra,i}中選擇任意數量的電阻,構成一個電阻源,該電阻源能夠在[Rmin,Rmax)內連續取值,在滿足約束條件的前提下優化目標函數。因此,電阻源網絡設計可以用數學語言描述為:
目標函數:選用的電阻總數最少。
約束條件:對于任意設置的阻值Rset∈[Rmin,Rmax),其與電阻源輸出的實際阻值Rprac之間的差值滿足精度要求ΔR,即
|Rset-Rprac|<ΔR
定義1電阻網絡結構為多個基準子模塊串聯,每個子模塊物理模型如圖1所示,設開關變量為bi,bi取1為閉合,bi取0為斷開,則電阻網絡的總電阻可以表示為
(1)
其中,nR為子模塊數量,Ri,1為開關閉合時每個基準子模塊的電阻,Ri,0為開關斷開時每個子模塊的電阻。

圖1 電阻網絡子模塊物理模型Fig.1 Physical model of resistance network sub-module
首先給出定理1,說明理想情況下構建電阻網絡所需的電阻子模塊數量。

(2)
式中,「·?為向上取整。
B=b1…bi…bnR
(3)


定理2在理想情況下,構建取值范圍[Rmin,Rmax)的電阻網絡,精度為ΔR,至少需要nR,min+1個電阻,其中
(4)
證明:根據定理1,定理2顯然成立。
□
定理1與定理2給出了理論上構成電阻網絡所需的最小電阻數量,然而,實際中的可選用電阻阻值并不總是2i-1ΔR,因此需要在可用的電阻中選擇合適的電阻逼近阻值2i-1ΔR。
定理3從可用電阻集合Ω={Ra,i}中任選電阻逼近阻值Rt,最大誤差ΔRt的取值范圍為ΔRt 證明:采用反證法證明。假設最大誤差ΔRt≥min{Ra,i},則可以在Ω中選取nt個阻值為min{Ra,i}的電阻,從而有 其中 (5) □ 定理4在理想情況下,從可用電阻集合Ω={Ra,i}中任選電阻,依次逼近阻值Ri,0=2i-1ΔR,構成電阻網絡[Rmin,Rmax),最大誤差ΔRmax 證明:根據定理2,構成電阻網絡需要至少nR,min個電阻子模塊,從Ω={Ra,i}中任選電阻逼近每個子模塊的阻值Ri,0=2i-1ΔR,子模塊逼近誤差ΔRi小于min{Ra,i},因而有 根據上述問題建模,為實現阻值范圍為[Rmin,Rmax)的電阻源,本文提出一種電阻網絡生成算法。由該算法生成的電阻網絡包括主電阻網絡(Main Resistance Network, MRN)、補償電阻網絡(Compensation Resistance Network, CRN)以及偏移電阻網絡(Offset Resistance Network, ORN)。 電阻源的設計思路為首先設計阻值[0,Rmax-Rmin)的主電阻網絡,之后在考慮開關閉合阻值的條件下求解主電阻網絡在[0,Rmax-Rmin)上的最大逼近誤差,而后使用補償電阻網絡修正這一誤差,最后根據Rmin以及主電阻網絡、補償電阻網絡的零點偏移設計偏移電阻。 主電阻網絡的設計主要與目標電阻源的量程、精度以及可選基準電阻有關,主電阻網絡的主要作用是解決量程范圍的跨度[0,Rmax-Rmin)。在進行主電阻網絡的設計中,重點要關注的是在滿足量程范圍前提下,實現電阻數量最少。具體的設計包括阻值分解、子模塊阻值逼近以及主電阻網絡生成與優化。 首先是阻值分解,其目的在于將主電阻網絡的阻值[0,Rmax-Rmin)分解為nR,min個子模塊阻值Rt,i,如算法1所示,其中Rmain為主電阻網絡阻值。阻值分解算法為主電阻網絡中的子模塊阻值的選取提供依據。 算法1 阻值分解 然后是子模塊阻值逼近,用于從可選電阻集合Ω={Ra,i}中選擇盡量少的基準電阻以逼近每個子模塊的阻值Rt,具體如算法2所示。 算法2 子模塊阻值逼近 在算法2中,由于可能選用相同的電阻逼近Rt,即集合Ψ中可能存在重復元素,因而集合Ψ并不嚴格滿足集合中元素的唯一性。 對于第i個子模塊阻值Rt,i,即逼近電阻集合為Ψi,通過Ψi構成的實際子模塊阻值記為Rrt,i。 最后是主電阻網絡生成與優化。算法1輸入的是主電阻網絡阻值Rmain,滿足Rmain>Rmax-Rmin,以使主電阻網絡阻值覆蓋[0,Rmax-Rmin)。在[Rmax-Rmin,+∞)范圍內取Rmain作為算法1的輸入,之后再通過算法2得到主電阻網絡的結構,主電阻網絡內的電阻數量與Rmain的取值相關,因此需要以Rmain作為變量對主電阻網絡內的電阻數量進行優化。算法3可生成主電阻網絡,并可對電阻數量進行優化。 算法3 主電阻網絡生成與優化 考慮主電阻網絡存在逼近誤差nR,minmin{Ra,i},同時考慮非理想情況下,開關閉合時的電阻值Ri,1>0,因此實際的主電阻網絡逼近誤差極有可能大于理論值nR,minmin{Ra,i},故還需要一個補償電阻網絡用于修正主電阻網絡的逼近誤差。 每個開關閉合后考慮繼電器電阻的實際阻值Ri,1,即對于每個i,有 (6) 其中,Rrelay為繼電器阻值。因此主電阻網絡的零點偏移為 (7) 之后,需要先計算主電阻網絡在[0,Rmax-Rmin)上的取值精度,再根據最大誤差設計補償電阻網絡。 補償電阻網絡的設計主要關注目標電阻源的精度,因此首先需要得到電阻網絡的精度,其計算方法如算法4所示。 在算法4中,Solve_B()是根據電阻網絡模型求解開關陣列的算法,本文采用逐次逼近的算法[15]。該算法將目標阻值與開關對應的權值逐一比較。如果目標阻值大于權值,則該開關為斷開,目標阻值減去權值;否則,開關為閉合。按照此方法,直到所有權值參與比較。Solve_R()是根據電阻網絡開關陣列計算實際電阻值的函數,即定義1。 算法4 電阻網絡精度計算 特別地,Solve_B()求解的開關陣列對應實際電阻值總是小于給定電阻值,其目的在于為后續增加的補償電阻網絡提供條件。 將算法4中得到的量程范圍內最大差值Error記為δRmain,下一步為根據δRmain進行補償電阻網絡設計。與主電阻網絡不同,補償電阻網絡應當更加注重精度而非減少電阻數量。對此,采用算法5進行補償網絡的優化求解。 算法5 補償電阻網絡生成與優化 偏移電阻網絡的主要作用包括兩個:一個是為量程范圍做整體平移,使主電阻網絡需要解決的量程為[0,Rmax-Rmin),而非設計目標量程[Rmin,Rmax),這有利于主電阻網絡基準電阻的靈活選擇;另一個是,由于Ri,1>0,主電阻網絡與補償電阻網絡在開關均閉合時存在零點偏移,偏移電阻網絡還應考慮這一阻值,即考慮主電阻網絡零點偏移Rmain,0和補償電阻網絡零點偏移Rcomp,0等誤差對最終輸出的影響。 因此,偏移電阻網絡阻值Roffset為 Roffset=Rmin-Rmain,0-Rcomp,0 (8) 以輸出90~250 Ω阻值范圍為例,對算法進行驗證。目標精度設置為5 mΩ,選擇接觸電阻小的繼電器,其典型值為1.2 mΩ。 算法3僅給出了優化思路,具體的求解方法可以采取遍歷、線性搜索、進化算法等。考慮本實例規模較小,可采用遍歷的方法。遍歷范圍為[Rmax-Rmin,5(Rmax-Rmin)),即[160 000,800 000)。使用MATLAB進行仿真,遍歷過程如圖2所示。 圖2 主電阻網絡遍歷過程Fig.2 Traversal process of MRN 圖2中Rinput為輸入算法3的阻值,NRs為對應該阻值通過算法1與算法2得到的電阻數量。以圖2中NRs最小的點為最佳值,最終得到主電阻網絡電阻數量為21,主電阻網絡阻值分布如表1所示。 表1 主電阻網絡阻值分布 與算法3類似,算法5僅為求解思路,具體優化方法同樣采用遍歷算法。與主電阻網絡不同,補償電阻網絡更加注重輸出精度。 補償電阻網絡遍歷過程如圖3所示,圖中Rinput為輸入算法5的最大誤差,RmaxError為對應該輸入的補償電阻網絡最大阻值誤差。Rinput的遍歷范圍為[δRmain,5δRmain),即[14,70)。以圖3中RmaxError最小的點為最佳值,可得到對應的補償電阻網絡阻值分布如表2所示。 圖3 補償電阻網絡遍歷過程Fig.3 Traversal process of CRN 表2 補償電阻網絡阻值分布 仿真得到Rmain,0值為18.5 mΩ,Rcomp,0值為2.95 mΩ,再由式(8)可得Roffset為89 978.55 mΩ。最終,該程控繼電器電阻網絡仿真輸出精度為4.431 3 mΩ,滿足目標精度要求。 該算法解算時間僅為18.128 s。相比于人工設計的方式,本文提出的方法大大提高了設計效率。 前文采用的優化準則是主網絡電阻數量最少的原則,本小節綜合考慮目標精度與基準電阻,對整體最優方案深入探討。 以輸出90~250 Ω阻值范圍為例,選擇接觸電阻典型值為1.2 mΩ的繼電器,分別設定目標精度為[2,10]毫歐級,利用本文算法進行求解。 目標精度與實現精度對比如表3所示。結果表明,理論上可以滿足目標精度為[2,10] 毫歐級的精度要求。 表3 目標精度與實現精度對比 目標精度與電阻數量之間的關系如圖4所示。在實現毫歐級目標精度時,總體上遵循的規律為目標精度越高,需要的電阻數量越多。但是,可能存在奇點,如圖4中目標精度為6 mΩ的情況。對于奇點,可利用高目標精度方案與低目標精度方案的包含關系,即目標精度高的方案可滿足目標精度低的需求,從目標精度更高方案中選擇電阻數量最少的方案作為最終結果。 圖4 精度與電阻數量之間的關系Fig.4 Relationship between accuracy and number 因此,聯合考慮電阻數量和精度兩個維度來選擇最終的算法時,存在兩種可能結果:一種是由算法求解該目標精度得到的電阻數量為最少;另一種是算法求解更高目標精度得到的電阻數量為最少。 綜上,綜合考慮電阻數量和精度,為生成最佳方案,可采用的策略為,先按本文算法求出滿足該目標精度的電阻網絡,而后考慮更高目標精度對應的電阻網絡,通過比較電阻數量,選出同時滿足目標精度需求和電阻數量最少的最優方案。 此外,當阻值精度設定為10 mΩ時,便可不需要補償電阻網絡,這也驗證了補償電阻網絡的主要作用范圍為毫歐級精度。 針對高精度程控繼電器電阻網絡設計復雜的問題,提出一種高精度程控繼電器電阻網絡生成算法,該算法根據需求量程和精度,自動生成繼電器電阻網絡。 仿真結果表明,根據本文算法得到的繼電器電阻網絡可滿足目標精度要求。該算法大大提高了設計效率,具有較好的工程應用價值。2 電阻網絡生成算法設計
2.1 主電阻網絡設計



2.2 補償電阻網絡設計


2.3 偏移電阻網絡設計
3 仿真結果與分析
3.1 算法仿真與分析




3.2 目標精度與基準電阻數量分析


4 結論