對于大功率的DC-DC來說,效率和體積是工程師重點關注的方面。
提高開關頻率能有效的減小體積。通過交錯并聯的方式,減少輸出電容的數量,并降低輸出電流的紋波。
輸出大電流的Buck電路拓普中,一般用同步整流MOS管替代硅整流二極管,可以提高電源的整體效率。
數字dsp芯片ePWM輸出配置的靈活性,特別適合交錯+同步整流Buck電路。
附件中有完整的程序代碼。
DC-DC電源參數(非隔離Buck):
輸入: 48V±10VDC
輸出電壓: 26V±0.5VDC
輸出電流: 77A
輸出電流紋波: <1%
輸出電壓峰峰值:<100mV
整機效率: >95%
控制方式: 峰值電流型BUCK電路
從上面的參數可知,采用非隔離BUCK電路拓普時,額定條件下工作時,主開關管的占空比接近50%,所以選擇兩路交錯并聯的方式能有效的減小輸出電流的紋波。
由于輸出電流較大,采用同步整流的方式提高效率。
主電路框圖如下:
如果用模擬芯片來實現對上面主電路的控制,會非常復雜。而用TI的F28035來實現就會非常簡單。28035芯片資源分配如下:
PWM輸出:按照上面框圖驅動四個MOS管。
ADC采樣:輸出電壓采樣Vout_FB——ADCINA1
輸出電流采樣Iout_FB——ADCINA6
輸入電壓采樣Vin_SEN——ADCINA3
模擬比較器:輸入電流互感器信號CS1+——COMP1A
輸入電流互感器信號CS2+——COMP2A
由28035構成的數字控制環路框圖如下:
主功率電路中的MOS管的驅動芯片,用的是IR2181s,驅動電路(部分原理圖)如下:
因為IR2181s的Ho驅動輸出,需要通過47uF/50V泵升電容進行供電,而泵升電容每個開關周期都需要在同步整流MOS導通時進行充電,否則同步MOS管不導通,泵升電容就無法充電,Ho也就無法正常輸出。所以同步MOS要有一個最小的占空比限制,即占空比不能為0%。本例中設定的最小占空比為8%。
同步降壓電路中,要重點關注電感不連續時,如何控制同步MOS管的驅動。主開關管與同步管是互補輸出的,在主開關管關斷時,經過一定的死區時間后,同步管要處于導通狀態。但在電感電流不連續時,如果同步MOS管處于導通狀態,會引起同步MOS管D-S端短路。所以在電感電流非連續時,要關閉同步MOS管的驅動,在ePWM輸出模塊中要有相關的保護機制。
軟件的代碼是以TI的模板為基礎編寫的,模板文件如下,可以通過導入工程的方式獲得:
筆者為了在沒有安裝controlSUITE的電腦上編譯,就將所有TI的數字電源庫(DPL)文件導入到工程文件夾中,并重新修改了工程的搜索目錄和相關的配置參數。
下面來詳細介紹程序代碼:
首先是ePWM的配置:
PWM1A和PWM1B是互補的關系,且要有一定的死區時間,防止發生直通。
PWM2A和PWM2B也是互補的關系,但PWM1x與PWM2x是交錯180°導通。在TI的數字電源庫中并沒有合適的配置文件,所以要拿現有的配置文件進行一些修改。
將上面的配置文件導入到工程文件夾中,因為筆者的工程中已經包含該配置文件了,所以直接修改。
經過這樣的修改,就可以得到PWMxA和PWMxB互補的PWM,但這時的死區時間為0。
在數字電源庫(DPL)初始化的時候設置PWM1的頻率(100KHz)和死區時間(200ns)。因為模板中的PWM2是在中斷里進行環路運算的,要改為在CLA中運算,然后配置PWM2。
完成上面的代碼后,可以看到PWM1x和PWM2x已經有互補的PWM輸出了,但PWM2x還沒有移相。PWM1設為主,PWM2設為從,與PWM1同步,PWM2的相移設為開關周期的一半,即相移180°。
因為同步MOS管的最小占空比為8%,也就是說主降壓MOS管的最大占空比為92%。
此時四路驅動波形
然后是ADC和模擬比較器的設定。這些內容在筆者前面的文章中介紹過,就不再具體說明了。這里提一下,在ePWM模塊中也有一個比較器子模塊,稱為數字比較器子模塊。要將它與用于電感電流峰值比較的模擬比較器區分開。因為主功率電路開關管的占空比存在大于50%的可能,所以要在模擬比較器的電流參考端加一定的斜率補償,防止次諧波振蕩。
因為PWM1A和PWM2A導通的起點相差180°的,要產生的兩個斜率補償的起點也是不一樣的,所以可以看到在模擬比較器的配置函數要如下圖方式配置:
斜率補償為16,如果實際工作中出現次諧波振蕩的情況,適當增加這個值,就會改善。
接下來,詳細說明電感電流不連續時,同步MOS管的保護機制。
應當知道,當負載電流小于電感紋波電流的1/2時,主功率電路的電感就會進入非連續工作模式。
一般會有兩種檢測方法來判斷電感是否進入非連續工作模式:
1)在主MOS管PWMxA處于關斷狀態時,檢測A點和B點的電壓,如果為負值(一般會在-1.2V至-0.5V之間)則電感有持續的電流通過,電感兩端有壓降(等于輸出電壓值),同步MOS管可以導通,以減小導通損耗。如果出現大于0的值,則電感電流消失,電感不再有壓降,此時要關斷同步MOS管,防止短路。
該方法涉及到負值的采樣和采樣時機的把控,比較麻煩。
2)根據DC電源的工作范圍和功率電感的電感量,可以得到電感電流紋波的最大值,然后采樣輸出電流,即負載電流,將負載電流采樣值與電流紋波的1/2做比較,如果負載電流采樣值超過電流紋波的1/2則可以驅動同步MOS管導通。否則要關斷同步MOS管。
第二種方法比較好實現,因此用來做為同步MOS管的保護機制。
筆者是通過ePWM模塊的TZ子模塊來完成同步MOS管的關斷保護的。這里有必要介紹一下TZ子模塊的結構。如下圖:
從上面的框圖可以看出ePWM模塊的TZ子模塊是如何實現的峰值電流控制,電感電流與參考值在模擬比較器中進行比較,當電感電流大于參考值時,會觸發PWM數字比較器的DCAEVT2.force或DCBEVT2.force事件,使主MOS管的驅動PWMxA的關斷,其占空比由參考值來決定。
當負載電流小于電感電流的1/2時,將寄存器TZCTL[TZB]的值寫為0,就能關斷PWMxB,即關斷同步MOS管。
在沒有出現電感峰值限流時,即沒有觸發PWM數字比較器的DCAEVT2.force或DCBEVT2.force事件時,寄存器TZCTL[TZB]的值寫0是沒有作用的,所以也就不會出現關斷同步MOS管的情況,這時的同步MOS管與主MOS管是互補輸出。
只要主MOS管的最大占空比不是100%(設定最大占空比為92%),則同步MOS管的最小占空比就不是0%(最小占空比為8%),這樣同步管一定會導通一小段時間,這確保了電源在上電啟動的階段,負載電流較小時,不會始終關閉同步MOS管的驅動,使IR2181s的泵升電容能夠正常充電來驅動主MOS管,不會出現上電后,電源無法啟動的問題。
另外要說的一點是,寄存器TZCTL[TZB]只能在中斷或主循環中進行寫入操作,在CLA中是不能寫入的。因此只能構建一個外設的中斷服務函數來實現。在本例中,在ePWM3的CTR_ZERO中斷服務函數中改寫TZCTL[TZB]。
先配置ePWM3的寄存器:
還要正確配置ePWM3工作頻率(100KHz)和工作模式(單路輸出)
在main.c文件的最后,插入epwm3的中斷函數代碼:
在中斷服務中判斷是否應該開啟同步整流。
到此,同步MOS管的保護機制已經搭建完成了。
下面是環路控制算法。
環路控制的運算是在CLA空間中進行的,CLA空間支持浮點運算,并且進入PWM中斷的時間開銷小,運算速度也比較快。下面是控制環路的算法:
這樣就能實現DC電源的恒壓恒流輸出的工作狀態。
還有一個問題要注意:CLA的Task1是由ePWM1來觸發的,應當此處同時更新Comp1和Comp2的電感電流參考值,即兩個交錯并聯功率電路的控制環路要做到“同時采樣,同時運算,同時寫入,分時更新”。因為ePWM1和ePWM2交錯180°,所以就只能分時更新電感電流的參考值。
如果不能“同時采樣,同時運算”就可能出現兩個功率電路不均流的情況,這時某一路的電感就可能處于非連續狀態,導致同步MOS管錯誤的驅動,引起炸機。這點,筆者是有深刻教訓的。為了避免交錯并聯功率電路出現不均流問題,在PCB畫板時,要盡量對稱布局,同時兩個電感的參數要一致,最好磁芯都要用一個批次的。總之,盡量做到一致性。
在輸入48V,輸出26V/77A時,測到最高效率95.8%。當強制關閉同步整流功能時,效率只能做到94%。同步MOS管在導通時的壓降只有不到0.2V,遠遠低于大電流肖特基二極管的正向導通壓降0.64V。