王鑫慧,趙 剛*,王立珂,弓曉陽(yáng),張 賓
(1.北方自動(dòng)控制技術(shù)研究所,太原 030006;2.陸軍裝備部駐北京地區(qū)軍事代表局駐太原地區(qū)第二軍事代表室,太原 030006)
在嵌入式武器裝備系統(tǒng)中,隨著設(shè)備功能的增強(qiáng),功耗急劇增大,對(duì)電源提出了更高的要求,多電源并聯(lián)運(yùn)行成為電源設(shè)計(jì)中需要考慮的問(wèn)題,不僅可以解決單個(gè)電源變換模塊供電功率不足的問(wèn)題,還可以實(shí)現(xiàn)電源冗余備份、均流功能,以達(dá)到分散電流熱應(yīng)力的效果,當(dāng)其中一個(gè)電源模塊出現(xiàn)故障或失效時(shí),其余電源模塊可以繼續(xù)運(yùn)行,維持系統(tǒng)功率需求,提高整個(gè)電源系統(tǒng)的可靠性。
RISC-V 是一種新型的指令集架構(gòu),不同于傳統(tǒng)的X86、ARM 架構(gòu),具有開(kāi)源、架構(gòu)簡(jiǎn)單、可定制模塊化的特點(diǎn)。作為軟硬件交互的規(guī)范,既滿(mǎn)足了軟硬件協(xié)同設(shè)計(jì)又具備面向系統(tǒng)需求精準(zhǔn)定制的能力,迎合了現(xiàn)代系統(tǒng)體系架構(gòu)和設(shè)計(jì)需求,具有較高的理論價(jià)值和實(shí)踐意義。
本文基于RISC-V 指令集架構(gòu)和PID 控制算法設(shè)計(jì)了一種多電源負(fù)載均衡的方法,根據(jù)PID 控制原理,監(jiān)測(cè)被控對(duì)象的實(shí)時(shí)輸出信息,通過(guò)控制策略調(diào)整輸出信息,使系統(tǒng)輸出處于期望值范圍內(nèi),通過(guò)主、從電源循環(huán)控制,實(shí)現(xiàn)均流。主、從電源模塊均采用RISC-V 架構(gòu)MCU GD32VF103RBT6 作為控制核心,完成信息傳輸和均衡控制功能。與傳統(tǒng)的電源模塊相比,本次設(shè)計(jì)不僅結(jié)合自主可控的開(kāi)源指令集架構(gòu)RISC-V 實(shí)現(xiàn)均流控制,使用Matlab完成對(duì)系統(tǒng)建模完成仿真模擬,而且設(shè)計(jì)防倒灌電路提高系統(tǒng)可靠性,完成實(shí)物搭建,從而驗(yàn)證所設(shè)計(jì)的多電源負(fù)載均衡具有良好的性能。
隨著火控計(jì)算機(jī)更新?lián)Q代,計(jì)算機(jī)功能、集成度、功耗不斷的增加,單個(gè)電源模塊承載火控計(jì)算機(jī)高負(fù)載工作已經(jīng)受限,多模塊并聯(lián)使得功率器件受電、熱應(yīng)力明顯減少,系統(tǒng)散熱也得到最大化改進(jìn)。然而,直接將多個(gè)電源模塊并聯(lián)接入系統(tǒng)并不可行,當(dāng)多個(gè)電源模塊輸出電壓不一致時(shí),輸出電壓低的模塊會(huì)被輸出電壓高的模塊視為負(fù)載,從而發(fā)生倒灌,同時(shí)輸出電壓高的模塊發(fā)生過(guò)載,過(guò)載嚴(yán)重時(shí)會(huì)有模塊失效的風(fēng)險(xiǎn),導(dǎo)致整個(gè)系統(tǒng)失效[1]。因此,多個(gè)電源模塊并聯(lián)運(yùn)行時(shí)需要引入負(fù)載均衡控制方法,以確保電源模塊之間電流應(yīng)力和熱應(yīng)力均勻分布,避免出現(xiàn)單個(gè)電源模塊工作狀態(tài)達(dá)到極限的狀態(tài),觸發(fā)保護(hù)機(jī)制,影響電源系統(tǒng)的正常運(yùn)行。
本次設(shè)計(jì)采用“1+N”分布式主、從多電源模塊進(jìn)行冗余供電,分別通過(guò)電壓和電流兩個(gè)控制環(huán)實(shí)現(xiàn)負(fù)載均流。主、從電源模塊之間通過(guò)CAN 通信進(jìn)行協(xié)同工作。主電源模塊負(fù)責(zé)調(diào)整輸出電壓,保證電壓的準(zhǔn)確、穩(wěn)定。從電源模塊控制輸出電流,能夠根據(jù)總的負(fù)載快速調(diào)整從電源模塊負(fù)載,調(diào)節(jié)主、從電源模塊負(fù)載均衡。當(dāng)任何一個(gè)電源模塊發(fā)生故障時(shí),另一個(gè)電源模塊能夠快速切換成主電源模塊,并能夠瞬時(shí)承擔(dān)全部負(fù)載,維持輸出電壓恒定,保證設(shè)備不停機(jī)工作。主從模塊采用相同的電路布局,根據(jù)啟動(dòng)瞬間的帶載情況,隨機(jī)確定主、從身份,分別通過(guò)PID 修正輸出穩(wěn)定電壓和實(shí)現(xiàn)均流。最后經(jīng)過(guò)XC4355 防倒灌電路將電壓輸出到負(fù)載,完成整個(gè)電源系統(tǒng)設(shè)計(jì)。系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示。
圖1 多電源均衡系統(tǒng)設(shè)計(jì)總體框圖Fig.1 Overall block diagram of a multi-power supply equalization system design
多電源模塊并聯(lián)運(yùn)行的核心是均流技術(shù),硬件電路搭建的均流方法存在差異性大、穩(wěn)定性差等問(wèn)題,本次設(shè)計(jì)選用RISC-V 硬核軟編程實(shí)現(xiàn)均流功能,形成電壓、電流調(diào)整閉環(huán)反饋控制的機(jī)制,具備系統(tǒng)供電準(zhǔn)確、穩(wěn)定、可靠的特點(diǎn)[2]。RISC-V 處理器采用北京兆易創(chuàng)新(Gigadevice)和芯來(lái)科技(Nuclei System Technology)聯(lián)合開(kāi)發(fā)的GD32VF103 系列MCU,采用32 位通用微控制器,配備Bumblebee內(nèi)核,支持小端RV32IMAC,提供了108 MHz 的運(yùn)算主頻,以及16 KB 到128 KB 的片上閃存和8 KB到32 KB 的SRAM 緩存。配備3 個(gè)USART、2 個(gè)UART、3 個(gè)SPI、2 個(gè)I2C、2 個(gè)I2S、2 個(gè)CAN2.0B 和1 個(gè)USB 2.0 FS OTG,以及外部總線(xiàn)擴(kuò)展控制器,還集成了兩個(gè)高采樣率ADC。
單個(gè)電源模塊以雙GD32VF103RBT6 MCU 為核心搭建電路實(shí)現(xiàn)均流,分為核心MCU 和輔助MCU,核心MCU 與輔助MCU 配合點(diǎn)亮電源模塊工作燈。核心MCU 主要完成主、從身份識(shí)別、輸入輸出電源監(jiān)控、PID 電源控制策略等工作,還通過(guò)UART 接口與輔助MCU 進(jìn)行信息交互,通過(guò)CAN總線(xiàn)與上位機(jī)、其他電源進(jìn)行信息交互。輔助MCU主要負(fù)責(zé)輸入電源監(jiān)控,開(kāi)關(guān)信號(hào)監(jiān)控、工作狀態(tài)指示、與核心MCU 進(jìn)行信息交互等工作。
各個(gè)電源模塊通過(guò)啟動(dòng)時(shí)的帶載情況,自主協(xié)商確定主從關(guān)系。各模塊通過(guò)模式識(shí)別電阻判斷兩個(gè)MCU 身份,若為低電平則為輔助MCU,負(fù)責(zé)監(jiān)控輸入電壓、電流、溫度以及開(kāi)關(guān)信號(hào)等信息并進(jìn)行邏輯判斷,當(dāng)開(kāi)關(guān)打開(kāi)時(shí)每隔5 ms 將電壓、電流、溫度等信息通過(guò)隔離串口送入核心MCU。若為高電平則為核心MCU,核心MCU 有兩路CAN,CAN1 與上位機(jī)相連,將輔助MCU 發(fā)送的電壓、電流等BIT 信息,通過(guò)CAN 總線(xiàn)發(fā)送給上位機(jī)。CAN2 為各個(gè)電源模塊內(nèi)部CAN 總線(xiàn)。
主電源模塊的核心MCU 采集遠(yuǎn)端的輸出電壓,與設(shè)定的12 V 期望值求差,通過(guò)PID 修正算法實(shí)時(shí)修正得到DA,經(jīng)運(yùn)算放大器SGM8250,將電壓值返回電源模塊trim 端進(jìn)行調(diào)壓,使得輸出端電壓滿(mǎn)足12 V±5%。從電源模塊的核心MCU 采集電流傳感器的電壓值,運(yùn)算求出對(duì)應(yīng)采集電流并與主模塊電流值比較,差值通過(guò)PID 修正算法實(shí)時(shí)修正得到DA,經(jīng)運(yùn)算放大器SGM8250,將電壓值返回電源模塊trim 端進(jìn)行調(diào)壓,形成電流控制環(huán)路實(shí)現(xiàn)均流。GD32VF103RBT6 控制策略流程圖如圖2 所示。
圖2 GD32VF103RBT6 控制策略流程圖Fig.2 Flow chart of control strategy of GD32VF103RBT6
實(shí)際電路應(yīng)用中,系統(tǒng)修復(fù)和擴(kuò)容主要通過(guò)單板熱插拔來(lái)實(shí)現(xiàn),當(dāng)其中一個(gè)電源模塊發(fā)生故障或熱插拔時(shí),由于電壓不平衡就會(huì)發(fā)生電壓倒灌,導(dǎo)致模塊電路失效[3]。防倒灌電路設(shè)計(jì)考慮了電壓不平衡導(dǎo)致電路失效的問(wèn)題,選擇XC4355DDA 芯片與MOS 管搭建防倒灌電路。XC4355DAA 是一款電源監(jiān)控芯片,通過(guò)控制MOSFET 壓降來(lái)驅(qū)動(dòng)外部N溝道MOSFET 的關(guān)斷,當(dāng)電源發(fā)生故障或短路時(shí),芯片會(huì)快速響應(yīng)并在300 ns 內(nèi)快速關(guān)斷MOSFET,最大限度地減小瞬時(shí)的反向電流,防止倒灌。在熱插拔時(shí)XC4355DDA 內(nèi)部調(diào)節(jié)機(jī)制保證負(fù)載電流平滑切換,有效減小了熱插拔過(guò)程中MOSFET 振蕩。實(shí)現(xiàn)電路如圖3 所示。
圖3 防倒灌電路設(shè)計(jì)圖Fig.3 Design diagram of a circuit to prevent current backflow
PID(proportional intergral derivative)算法多用于工業(yè)控制,具有魯棒性強(qiáng),控制參數(shù)相對(duì)獨(dú)立等優(yōu)點(diǎn)。
PID 控制算法是一種閉環(huán)控制算法,集比例(P)、積分(I)、微分(D)于一體,分別表示誤差的現(xiàn)在、過(guò)去和未來(lái)變化趨勢(shì),通過(guò)三者計(jì)算組合,將控制對(duì)象值與設(shè)定值反復(fù)比較,當(dāng)實(shí)際值與設(shè)定值發(fā)生偏差時(shí),按照設(shè)定的參數(shù)進(jìn)行計(jì)算糾正,經(jīng)執(zhí)行器完成本次控制調(diào)節(jié)任務(wù),從而實(shí)現(xiàn)對(duì)系統(tǒng)的動(dòng)態(tài)控制[4,7]。PID 控制算法的結(jié)構(gòu)圖如圖4 所示。
圖4 PID 控制算法結(jié)構(gòu)圖Fig.4 Structure diagram of PID control algorithm
圖中,r(t)為輸入采樣值,y(t)是輸出反饋值,e(t)為采樣值與反饋值相減的誤差值,u(t)為經(jīng)PID 控制調(diào)節(jié)后得到的結(jié)果??刂埔?guī)律可用式(1)表達(dá):
式中,Kp為比例系數(shù);Ti為積分時(shí)間常數(shù);Td為微分時(shí)間常數(shù)。
將式(1)離散化處理得到式(2):
式中,T 為積分時(shí)間。
RISC-V 指令集包括基礎(chǔ)指令集和擴(kuò)展指令集兩類(lèi),設(shè)計(jì)使用固定基礎(chǔ)指令集和多種擴(kuò)展指令集自由組合的模式[5]。RISC-V 還具有很高的可擴(kuò)展性,RISC-V 的擴(kuò)展指令集不僅為指令級(jí)架構(gòu)提供一些可擴(kuò)展的特定的功能操作指令,還提供了預(yù)定義的Custom 指令供用戶(hù)自行擴(kuò)展,使得RISC-V 的靈活性大大提高。RISC-V 架構(gòu)在32 位指令中預(yù)定義了4 組Custom 指令類(lèi)型,每種Custom 指令都有自己的Opcode,用戶(hù)可以利用這4 種指令類(lèi)型擴(kuò)展成自定義的協(xié)處理指令[6]。本次設(shè)計(jì)中主要選用RV32I,是針對(duì)32 位系統(tǒng)設(shè)計(jì)的指令集,也是最常用的指令集之一。
本次設(shè)計(jì)開(kāi)發(fā)GD32VF103 系列芯片的專(zhuān)用協(xié)處理接口,映入預(yù)定義的Custom 指令,將自主設(shè)計(jì)的獨(dú)立PID 硬件加速模塊掛載到專(zhuān)用協(xié)處理接口,定義了9 個(gè)控制指令,包括修正函數(shù)參數(shù)設(shè)置、目標(biāo)參數(shù)設(shè)置、使能、關(guān)閉、復(fù)位。在通用寄存器輸入控制參數(shù)KP、Ti、Td、T 后,從主處理器寄存器組獲得復(fù)位信號(hào)和目標(biāo)參數(shù)信號(hào),根據(jù)針對(duì)主電源模塊和從電源模塊設(shè)計(jì)的PID 算法分別進(jìn)行輸出數(shù)據(jù)修正[7]。PID 使能有效后,協(xié)處理模塊將自動(dòng)根據(jù)輸入的目標(biāo)參數(shù)值進(jìn)行PID 修正,不需要和主處理模塊繼續(xù)通信,也不再打斷上位機(jī)主進(jìn)程[8-9]。當(dāng)主處理模塊再次發(fā)出指令時(shí),協(xié)處理模塊立即自動(dòng)復(fù)位,根據(jù)更新的指令和參數(shù)進(jìn)行操作。
主電源模塊電壓控制PID 算法:
式中,Vexp為期望輸出值;Vad為實(shí)際輸出電壓;Vda為MCU 的DA 輸出值。
從電源模塊電流控制PID 算法:
式中,Vda為MCU 的DA 輸出值;Iout為電源模塊輸出電流;Imaster為主電源模塊電流。
與傳統(tǒng)的PID 修正算法相比,基于RISC-V 的PID 控制策略的優(yōu)勢(shì)體現(xiàn)在響應(yīng)速度更快,協(xié)處理指令處理時(shí)間更短,修正函數(shù)參數(shù)設(shè)置指令和使能、停止、復(fù)位3 個(gè)控制指令都在一個(gè)時(shí)鐘周期內(nèi)完成且不設(shè)置寫(xiě)回,保證不打斷主處理模塊執(zhí)行例化任務(wù),也保證主處理模塊遇到其他中斷時(shí)不打斷PID 算法正常運(yùn)行。
CAN 總線(xiàn)是控制器局域網(wǎng)絡(luò)(controller area network,CAN)的簡(jiǎn)稱(chēng),以報(bào)文的形式完成設(shè)備之間的數(shù)據(jù)傳輸[10]。CAN 總線(xiàn)采用多主機(jī)工作方式,每個(gè)掛載在總線(xiàn)上的設(shè)備都可以向總線(xiàn)發(fā)送數(shù)據(jù)。在大型復(fù)雜武器系統(tǒng)中,多電源供電已經(jīng)成為系統(tǒng)設(shè)計(jì)必須考慮的部分,CAN 總線(xiàn)上可以?huà)燧d多個(gè)從電源模塊[11]。主、從電源模塊之間通過(guò)CAN 總線(xiàn)進(jìn)行信息交互。電源模塊設(shè)計(jì)兩路CAN:CAN1 掛載在外部CAN 總線(xiàn)上用于與上位機(jī)進(jìn)行通信,上報(bào)電源模塊的BIT 狀態(tài),CAN2 為各模塊之間的通信CAN 總線(xiàn),各個(gè)電源模塊每隔5 ms 將各自電壓、電流、心跳等工作狀態(tài)信息發(fā)到CAN 總線(xiàn)上。主電源模塊監(jiān)測(cè)各個(gè)從電源模塊的工作狀態(tài),從電源模塊根據(jù)各個(gè)電源模塊的負(fù)載情況調(diào)整自己的負(fù)載,實(shí)現(xiàn)均流。
電源在對(duì)外供電時(shí),傳輸路徑上會(huì)通過(guò)開(kāi)關(guān)Pmos,防倒灌保護(hù)Nmos,電流傳感器以及導(dǎo)線(xiàn)等。當(dāng)負(fù)載增大或變化時(shí),會(huì)造成輸出電壓壓降或波動(dòng),可能會(huì)超出規(guī)定值,造成其他模塊工作不穩(wěn)定。
傳輸鏈路電阻計(jì)算:
電壓調(diào)整傳遞函數(shù)為:
式中,Vref為MCU 參考電壓;Dfact為運(yùn)算放大器放大倍數(shù)。
在MATLAB 仿真中電源模塊輸出電壓Vda,按如下公式計(jì)算
由式(3)、式(4)、式(10)構(gòu)建仿真模型,仿真條件為電源輸出電壓12 V,電流波動(dòng)4 A。
PID 參數(shù)設(shè)置:KP=500,Ti=0.014,Td=0;T=1 ms。
通過(guò)仿真實(shí)驗(yàn)得到電壓調(diào)整數(shù)據(jù),如下頁(yè)表1所示。
表1 調(diào)整電壓與輸出電壓關(guān)系Table 1 The relationship between adjustment voltage and output voltage
擬合為曲線(xiàn)后可以看到輸出電壓隨電流變化產(chǎn)生波動(dòng),后經(jīng)PID 修正又迅速回到12V±5%的輸出值。傳統(tǒng)PID 控制策略下主電源模塊輸出電壓變化圖如圖5 所示,基于RISC-V 的PID 控制策略下的主電源模塊輸出電壓變化圖如圖6 所示。
圖5 傳統(tǒng)PID 策略下主電源模塊輸出電壓變化圖Fig.5 The output voltage change of the main power module under the traditional PID strategy
圖6 基于RISC-V 的PID 策略下主電源模塊輸出電壓變化圖Fig.6 The output voltage change of the main power module under the PID strategy based on RISC-V
對(duì)比可以看出基于RISC-V 的PID 控制策略下,輸出電壓振蕩范圍縮小,比傳統(tǒng)PID 控制策略下輸出電壓回到正常值的時(shí)間縮短。
MATLAB 電流傳感器的電流值按如下公式計(jì)算:
由式(5)~式(7)、式(9)、式(11)構(gòu)建仿真模型,仿真條件為輸出電壓12 V,電流波動(dòng)4 A。
PID 參數(shù)設(shè)置:KP=60,Ti=0.006,Td=0;T=2 ms。
從電源模塊輸出電流經(jīng)PID 修正后,電流變化曲線(xiàn)與期望值變化曲線(xiàn)貼合,實(shí)現(xiàn)均流。
傳統(tǒng)PID 策略下從電源模塊輸出電流變化圖如183 頁(yè)圖7 所示,基于RISC-V 的PID 策略下從電源模塊輸出電流變化圖如圖8 所示。
圖7 傳統(tǒng)PID 策略下從電源模塊輸出電流變化圖Fig.7 Output current change from power supply module under traditional PID strategy
圖8 基于RISC-V 的PID 策略下從電源模塊輸出電流變化圖Fig.8 Output current change from power supply module under RISC-V-based PID strategy
對(duì)比可以看出基于RISC-V 的PID 控制策略下,輸出電流立即跟隨期望值的時(shí)間縮短,相比傳統(tǒng)的PID 控制策略,電流振蕩范圍明顯變小,輸出效果得到改善。
接入12A 恒流負(fù)載,兩個(gè)電源模塊輸出電壓穩(wěn)定在12 V±5%范圍內(nèi),達(dá)到了輸出電壓準(zhǔn)確、穩(wěn)定的要求。兩個(gè)電源模塊輸出電流差值小于0.5 A,實(shí)現(xiàn)多電源均流。電源模塊帶載輸出數(shù)據(jù)如下頁(yè)表2所示。
表2 電源模塊帶載輸出數(shù)據(jù)表Table 2 On-load output data table of power supply module
關(guān)斷一個(gè)電源模塊,其余電源模塊可以迅速承擔(dān)所有負(fù)載,保證供電系統(tǒng)穩(wěn)定輸出,設(shè)備不斷電工作。
本設(shè)計(jì)以基于RISC-V 的MCU 芯片GD32VF 103RBT6 為核心,掛載自研PID 修正控制模塊,實(shí)現(xiàn)多電源模塊冗余供電。通過(guò)實(shí)驗(yàn)驗(yàn)證,基于RISC-V 的多電源均衡系統(tǒng)設(shè)計(jì)可以使輸出電壓穩(wěn)定保持在12 V±5%范圍內(nèi),最高輸出功率達(dá)到300 W,兩個(gè)電源模塊輸出電流值逼近期望值,實(shí)現(xiàn)均流。任意插拔一個(gè)電源模塊,另一個(gè)電源模塊可以迅速承擔(dān)全部負(fù)載,保證系統(tǒng)不斷電工作,提高了供電系統(tǒng)的可靠性和穩(wěn)定性,實(shí)現(xiàn)火控計(jì)算機(jī)輸出電壓穩(wěn)定、準(zhǔn)確、可靠的要求。