伏永浩, 蔣 贏, 鄭春生
(上海電機(jī)學(xué)院 電氣學(xué)院, 上海 201306)
隔離型雙向全橋DC/DC變換器具有能量雙向流動(dòng)、結(jié)構(gòu)簡(jiǎn)單對(duì)稱、高功率密度、電氣故障隔離且易實(shí)現(xiàn)軟開關(guān)等優(yōu)點(diǎn),在分布式微電網(wǎng)、新能源電動(dòng)汽車、直流固態(tài)變壓器、不間斷電源和儲(chǔ)能裝置等領(lǐng)域有著廣泛的應(yīng)用[1-2]。雙重移相(Dual Phase Shift, DPS)調(diào)制因兼具單重移相(Single Phase Shift, SPS)調(diào)制的簡(jiǎn)單及三重移相(Triple Phase Shift, TPS)調(diào)制的靈活性而成為隔離型雙向全橋DC/DC變換器最常見的調(diào)制策略[3-5]。傳統(tǒng)的數(shù)字信號(hào)處理(Digital Signal Processing, DSP)程序開發(fā)方式在開發(fā)的過(guò)程中花費(fèi)時(shí)間較長(zhǎng),其開發(fā)過(guò)程包括:數(shù)學(xué)模型的建立、算法設(shè)計(jì)等。在開發(fā)的過(guò)程中只要其中一個(gè)環(huán)節(jié)出現(xiàn)問(wèn)題,就需要花費(fèi)很多時(shí)間來(lái)查找錯(cuò)誤或者重新設(shè)計(jì),這使得開發(fā)時(shí)間和開發(fā)難度大大增加。而基于模型的設(shè)計(jì)主要研究控制算法而不是編程語(yǔ)言,從而降低開發(fā)設(shè)計(jì)程序的時(shí)間。其需要通過(guò)DSP、微控制器等硬件平臺(tái)來(lái)進(jìn)行控制,之后這種方法將被應(yīng)用于工程并進(jìn)行相關(guān)測(cè)試。
基于模型的設(shè)計(jì)是系統(tǒng)仿真技術(shù)與自動(dòng)代碼生成技術(shù)的有機(jī)結(jié)合,采用統(tǒng)一、可視化、交互式的開發(fā)測(cè)試平臺(tái),貫穿于整個(gè)軟件開發(fā)過(guò)程,是開發(fā)復(fù)雜控制系統(tǒng)的一種高效模式,廣泛應(yīng)用于汽車電子、航空、工業(yè)控制等領(lǐng)域[6]。
Matlab Simulink應(yīng)用于DSP時(shí)具有很高的價(jià)值,因?yàn)槠淇梢酝瓿煽刂扑惴ǖ哪P驮O(shè)計(jì)、仿真、代碼生成、調(diào)試和運(yùn)行[7],在Simulink中安裝一套包含DSP TMS320F28335各個(gè)模塊的模型,通過(guò)將Simulink中的模型和控制算法相結(jié)合可以建立主電路的電路輸出電壓控制模型,通過(guò)Matlab中的編譯按鍵可生成DSP控制程序,將電腦和TMS320F28335開發(fā)板通過(guò)XDS 100V2仿真器相連,Matlab生成的CCS代碼無(wú)需處理即可直接在CCS(Code Composer Studio)6.1.2的開發(fā)環(huán)境中加載和調(diào)試,然后將生成代碼下載到DSP硬件平臺(tái)。最后,可在示波器中觀察控制電路的控制波形。
在SPS控制中,使用占空比為50%的方波控制每個(gè)開關(guān)管,一、二次側(cè)同一橋臂上的兩個(gè)開關(guān)管互補(bǔ)導(dǎo)通,斜對(duì)角兩只開關(guān)管之間的脈沖信號(hào)相同,通過(guò)控制移相角可改變傳輸功率的大小和方向。
圖1給出了隔離型雙向全橋DC-DC變換器(Isolated Bidirectional Full-bridge DC-DC Converter, IBDC)的拓?fù)浣Y(jié)構(gòu),主要由電源(U1和U2)、開關(guān)管(S1~S8)、反并聯(lián)二極管(VD1~VD8)、電容(C1、C2)、變壓器(T)、等效電感(L)組成。與傳統(tǒng)的SPS控制相比,在DPS控制中,由兩種參數(shù)來(lái)控制雙有源橋中能量的流動(dòng),通過(guò)在一次側(cè)或二次側(cè)斜對(duì)角的兩只開關(guān)管引入新的移相占空比,可以達(dá)到提高功率因數(shù)和效率的目的。
圖1 隔離型雙向全橋DC-DC變換器拓?fù)?/p>
在本文中,對(duì)半個(gè)周期內(nèi)一次側(cè)全橋的移相比D1定義為內(nèi)移相比,對(duì)半個(gè)周期內(nèi)U1側(cè)和U2側(cè)之間的移相比D2定義為外移相比。圖2所示為0≤D1≤D2≤1情況下變換器的工作波形圖[8],D1THS和D2THS為內(nèi)外部的移相角,DPS控制需要內(nèi)外移相比D1和D2之和≤1,如果D1和D2之和>1,則外移相將無(wú)法控制能量的流動(dòng)[9]。Up為全橋逆變器的輸出電壓,Us為U2側(cè)全橋逆變器的輸出電壓折算到U1側(cè)的電壓,UL為等效電感L兩端電壓,iL為流過(guò)電感L的電流。
圖2 DPS控制原理波形
基于模型的設(shè)計(jì)以實(shí)時(shí)軟件為開發(fā)平臺(tái),快速地實(shí)現(xiàn)算法建模、DSP底層驅(qū)動(dòng)集成、自動(dòng)代碼生成、集成測(cè)試等,使開發(fā)者能夠更快捷、更低成本地進(jìn)行開發(fā)[10]。在進(jìn)行建模之前,需要在電腦中安裝CCS、Control SUITE、Matlab軟件,然后進(jìn)行關(guān)聯(lián)配置。目前,MathWorks公司與德州儀器(TI)聯(lián)合推出的Embedded Target for TI C2000 DSP提供了將Matlab和Simulink與Texas Instruments eXpress-DSO工具、TI C2000 DSP處理器,集成在一起進(jìn)行系統(tǒng)開發(fā)的手段,通過(guò)實(shí)時(shí)工作站(RTW)和TI的開發(fā)工具將Simulink模型轉(zhuǎn)變?yōu)閷?shí)時(shí)c代碼[11]。在Matlab中下載安裝Embedded Coder Support Package for Texas Instruments C 2000 Processors。在這個(gè)安裝包中,包含DSP TMS320F28335中的各個(gè)模塊,如ePWM、ADC、GPIO等模塊,在Matlab命令欄中使用
checkEnvSetup(‘ccsv5’,‘f28335’,‘setup’)
對(duì)系統(tǒng)變量進(jìn)行配置,使用命令
“checkEnvSetup(‘ccsv5’,‘f28335’,‘check’)”
可以檢查系統(tǒng)變量是否設(shè)置成功,在Matlab命令窗口輸入“xmakefilesetup”命令并對(duì)相關(guān)參數(shù)進(jìn)行設(shè)置就可以將Matlab與CCS關(guān)聯(lián)配置,之后需要在Target模塊中設(shè)置模型的關(guān)鍵參數(shù),如求解器、采樣時(shí)間、代碼生成等,然后就可以進(jìn)行代碼開發(fā)。MBD開發(fā)流程[12]如圖3所示。通過(guò)將各個(gè)模塊拖拽到模型窗口中,可以完成模型搭建,這樣可將測(cè)試提前到仿真階段,便于發(fā)現(xiàn)早期問(wèn)題,而且可以避免手工編程可能導(dǎo)致的錯(cuò)誤[13]。
圖3 MBD開發(fā)流程
TMS320F28335 DSP具有多達(dá)18個(gè)PWM輸出,足以控制許多三相功率轉(zhuǎn)換器。這些輸出中的12個(gè)模塊是ePWM模塊,TMS320F28335的系統(tǒng)時(shí)鐘SYSCLK最大頻率設(shè)置為150 MHz[14],TMS320F28335 DSP作為TI公司推出的32位浮點(diǎn)數(shù)字控制處理器,其主頻150 MHz,具有外設(shè)豐富、性價(jià)比高、存儲(chǔ)空間大、處理速度快等優(yōu)點(diǎn)[15]。
通過(guò)配置PWM模塊的計(jì)數(shù)器周期、計(jì)數(shù)模式等參數(shù)。其中,ePWM1a和ePWM1b、ePWM2a和ePWM2b、ePWM3a和ePWM3b輸出三路互補(bǔ)波形。在ePWM模塊中,Deadband Unit選項(xiàng)卡可以設(shè)置一個(gè)上升沿或者下降沿,延時(shí)500 ns的死區(qū),防止同一橋臂上的兩個(gè)開關(guān)管同時(shí)導(dǎo)通。
在移相全橋PWM控制中,將ePWM1設(shè)置為主模式,ePWM2、ePWM3設(shè)置為從模式。雙擊打開ePWM1模塊,將Synchronization action選擇Disable,將Synchronization output(SYNCO)選擇Counter equals to zero(CTR=Zero),雙擊打開ePWM2、ePWM3模塊,將Synchronization action選擇Set counter to phase value specified via dialog,SYNCO選擇Pass through(ePWMxSYNCI or SWFSYNC),將ePWM2的時(shí)基相位寄存器(TBPHS)設(shè)置為750作為移相比0.2,ePWM3的TBPHS設(shè)置為1 500作為移相比0.4。
Simulink模型如圖4所示,在這個(gè)模型中,開關(guān)頻率為20 kHz,可以發(fā)現(xiàn)該模型包含PWM等模塊。PWM模塊、Constant模塊均由Simulink中的庫(kù)提供,用戶只需要修改每個(gè)模塊中的參數(shù),而不需要過(guò)多的關(guān)注每個(gè)模塊內(nèi)部的算法本身。通過(guò)調(diào)節(jié)PWM波形的占空比和幅值,使得通過(guò)PWM驅(qū)動(dòng)的開關(guān)管的電路輸出波形趨于穩(wěn)定。
圖4 Simulink仿真模型
CCS軟件可以對(duì)TMS320F28335提供軟件程序部分支持,使用CCS在TMS320F28335上運(yùn)行編寫的程序,同時(shí)可以使用CCS軟件對(duì)在DSP芯片上運(yùn)行的程序狀態(tài)進(jìn)行監(jiān)視,在Matlab中也提供了TMS320F28335的模塊,可以讓Matlab與DSP銜接得更加緊密。
在圖4的Simulink模型中,該模型可以用于生成DPS的PWM波形。
DSP TMS320F28335的時(shí)鐘頻率最高可達(dá)150 MHz,PWM的頻率是由時(shí)基周期寄存器值和TB計(jì)數(shù)器模式共同控制的。PWM模塊具有遞增、遞減、增/減計(jì)數(shù)3種計(jì)數(shù)模式。在模型中采用增/減計(jì)數(shù)模式來(lái)確定波形周期值。
(1) 定時(shí)器周期寄存器設(shè)置為3 750個(gè)時(shí)鐘周期(開關(guān)頻率為20 kHz)。計(jì)算方法如下:
(1)
式中:fsys為CPU時(shí)鐘頻率(TMS320F28335 DSP為150 MHz);fPWM為開關(guān)管的開關(guān)頻率;TPRD為定時(shí)器周期寄存器的值。
(2) 計(jì)數(shù)模式為增/減計(jì)數(shù),比較寄存器的值為1 875(占空比為50%)。計(jì)算方法如下:
(2)
式中:D為PWM波形的占空比;TCMPA為比較寄存器的值。
Matlab具有非常強(qiáng)大的功能,在將程序下載到TMS320F28335之前需要對(duì)Simulink進(jìn)行設(shè)置,模型中使用的是Matlab 2017a和CCS 6.1.2軟件。在CCS選擇合適的DSP目標(biāo)板及仿真器模型,就可以將程序下載到目標(biāo)板,在以上步驟設(shè)置完成后,將TMS320F28335通過(guò)USB連接到主機(jī),然后編譯就可以將程序下載到目標(biāo)板。同時(shí),會(huì)打開CCS軟件,在CCS中生成一個(gè)完整的項(xiàng)目,其中包含源文件、頭文件、庫(kù)文件、鏈接命令文件和可執(zhí)行文件。當(dāng)仿真器和硬件板連接到主機(jī)時(shí),項(xiàng)目文件代碼將自動(dòng)下載到硬件電路板[16]。編譯結(jié)果如圖5所示。
圖5 編譯結(jié)果
通過(guò)DPS PWM控制的雙向DC/DC變換器進(jìn)行仿真。其中,輸入電壓U1=100 V,輸出電壓U2=12 V,等效電感L=200 μH,電阻Rs1=Rs2=0.01 Ω,電容C1=C2=1 mF,變壓器變比為8,負(fù)載電阻為2 Ω,開關(guān)頻率為20 kHz,仿真波形如圖6所示。
圖6 雙向DC-DC仿真波形
編譯完成后,通過(guò)示波器可以看到生成的DPS PWM波形,其結(jié)果如圖7所示。將程序下載到DSP中并運(yùn)行,示波器輸出波形V1、V2、V3分別為開關(guān)管S1、S4、S5(S8)的驅(qū)動(dòng)波形,且S1與
圖7 輸出波形
S2、S3與S4、S5(S8)與S6(S7)分別互補(bǔ)導(dǎo)通,這表明可以使用基于模型的設(shè)計(jì)方法來(lái)產(chǎn)生用于控制電路開關(guān)管的驅(qū)動(dòng)波形。
本文將基于模型的設(shè)計(jì)方法引入到了電力電子的設(shè)計(jì)中,并將其應(yīng)用于DPS PWM波形的實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,通過(guò)基于模型的設(shè)計(jì)來(lái)編寫DPS PWM的程序從而控制雙向全橋DC-DC電路是可行的,此程序開發(fā)的步驟主要包括建模、模型驗(yàn)證、代碼生成、代碼集成。在使用Matlab開發(fā)的過(guò)程中,其可視化圖形、早期驗(yàn)證、自動(dòng)代碼生成等功能節(jié)省了開發(fā)時(shí)間,降低了工作量,提高了開發(fā)效率,使得工程師只需要在開發(fā)時(shí)關(guān)心算法和系統(tǒng)的效率問(wèn)題,這為電力電子軟件開發(fā)提供了新的思路。