在附件中有WDS環(huán)路計(jì)算工具和筆者的源程序代碼。
下面開始環(huán)路控制的代碼編寫。
在本例中,其實(shí)是用到了兩個(gè)環(huán)路補(bǔ)償?shù)挠?jì)算函數(shù),電壓環(huán)路和電流環(huán)路。都是用的3P3Z的補(bǔ)償算法。不同的是電壓環(huán)路在FMAC硬件中進(jìn)行計(jì)算,不占用CPU的時(shí)間,而電流環(huán)路只能用CPU進(jìn)行軟件計(jì)算,比較耗費(fèi)CPU時(shí)間。下圖是FMAC工作在IIR濾波器模式下的結(jié)構(gòu)圖:
從上圖中,可以看到環(huán)路的差分方程的計(jì)算過程。
在程序的初始化時(shí),要初始化這兩個(gè)環(huán)路參數(shù)。
/* Init 2p2z using the FMAC */
if (__3p3zInitFmacInt16( &USER_APPL_FMAC, &cntrlFmac,
A1, A2, 0.0,
B0, B1, B2, 0.0,
post_shift, DUTY_TICKS_MIN, DUTY_TICKS_MAX ) != HAL_OK)
{
/* Configuration Error */
Init_Error_Handler();
}
/* Init 2p2z using the CPU */
CNTRL_3p3zInit(&myDcdc.iLoop, iREF,
iA1, iA2, 0.0,
iB0, iB1, iB2, 0.0,
iK, (float_t)iDUTY_TICKS_MIN, (float_t)iDUTY_TICKS_MAX );
還有一點(diǎn)要注意:FMAC硬件計(jì)算電壓環(huán)路參數(shù)用的是定點(diǎn)數(shù),而CPU計(jì)算的電流環(huán)路用的是浮點(diǎn)數(shù)。
在這里,給讀者推薦一款環(huán)路參數(shù)軟件(STM32 Biricha WDS,簡稱WDS),專門為STM32平臺(tái)開發(fā)的環(huán)路計(jì)算軟件,支持STM32G474VE,而且是免費(fèi)的。
可以去這個(gè)網(wǎng)站https://www.biricha.com/下載,要翻墻!??!
對(duì)應(yīng)STM32的平臺(tái),這個(gè)軟件是全功能免費(fèi)的。當(dāng)然該軟件也有對(duì)應(yīng)TI平臺(tái)的、Microchip平臺(tái)的版本,不過后面的這兩個(gè)平臺(tái)就是收費(fèi)的了。
下載完后,網(wǎng)站會(huì)免費(fèi)提供給下載者一個(gè)注冊(cè)密碼,可以自行獲取,在輸入注冊(cè)碼后,在ST平臺(tái)就可以使用全功能的版本了。這里筆者會(huì)在附件中提供該軟件,但不提供注冊(cè)碼,避免麻煩。
因?yàn)楸纠杏玫氖莾上嘟诲e(cuò)并聯(lián)BUCK電路,不是純BUCK電路,而WDS又沒有交錯(cuò)并聯(lián)BUCK的拓普,所以只能用BUCK電路拓普算出一組環(huán)路參數(shù)后,再其基礎(chǔ)上進(jìn)行調(diào)節(jié)。
在此頁面中設(shè)定電路的拓普和預(yù)想要達(dá)到的穿越頻率和相位裕度。
輸出電感和輸出電容的相關(guān)參數(shù)。
這樣根據(jù)前面預(yù)想要達(dá)到的環(huán)路性能指標(biāo),該軟件可以自動(dòng)計(jì)算出補(bǔ)償器的零極點(diǎn)的位置,如果對(duì)自動(dòng)計(jì)算的結(jié)果不太滿意,也可以手動(dòng)放置補(bǔ)償器零極點(diǎn)的位置。
同時(shí)根據(jù)補(bǔ)償器的參數(shù),會(huì)實(shí)時(shí)將該補(bǔ)償器傳遞函數(shù)的波特圖、功率電路及整體開環(huán)傳遞函數(shù)的波特圖繪制出來,如上圖所示。
然后是PWM周期和ADC采樣參數(shù)的設(shè)置,這些工作進(jìn)行完畢后,會(huì)自動(dòng)計(jì)算出FMAC所需要的參數(shù)。
然后在其基礎(chǔ)上調(diào)試環(huán)路參數(shù),使環(huán)路穩(wěn)定。
當(dāng)要用到CPU計(jì)算3P3Z補(bǔ)償器時(shí),就應(yīng)該選擇浮點(diǎn)數(shù)據(jù)。如下圖所示:
上述過程將環(huán)路參數(shù)整定完成,再計(jì)算恒壓環(huán)路,等待FMAC計(jì)算出結(jié)果后,然后用該結(jié)果更新DAC1和DAC3的參考值。
因?yàn)镈C電源工作在恒壓恒流的模式下,所以要判斷恒壓環(huán)路的結(jié)果與恒流環(huán)路的結(jié)果,哪個(gè)比較小,然后用那個(gè)較小的值去更新DAC的參考值,以達(dá)到自動(dòng)切換恒壓、恒流這兩種輸出方式的目地。在FMAC的中斷中完成了電壓環(huán)路的閉環(huán)。
電流環(huán)路在ADC1的中斷中進(jìn)行。
在本例中,還有更多的細(xì)節(jié),筆者并沒有進(jìn)行更深一步的展開。比如DMA的工作方式,ADC發(fā)出DMA請(qǐng)求的響應(yīng),F(xiàn)MAC的工作方式、FMAC緩存的運(yùn)行機(jī)制、COMP如何快速保護(hù)等技術(shù)細(xì)節(jié)都需要讀者詳細(xì)閱讀芯片的技術(shù)手冊(cè)。
在輸入電壓48V,輸出電壓26V,輸出電流60A條件下,用網(wǎng)絡(luò)分析儀測試電源開環(huán)bode圖:
在WDS理論計(jì)算結(jié)果的基礎(chǔ)上,進(jìn)行微調(diào)后的bode圖如上圖所示。穿越頻率為2.4KHz,相位裕度為106°,基本上達(dá)到了設(shè)計(jì)目標(biāo)。
下圖是交錯(cuò)并聯(lián)的兩個(gè)主MOS管源極波形
本程序中,還沒用實(shí)現(xiàn)同步MOS管的驅(qū)動(dòng)。如果想實(shí)現(xiàn)同步整流的功能也比較簡單,如下圖所示,當(dāng)檢測到輸出電流超過一個(gè)限值后,驅(qū)動(dòng)PC7(DCM_CTL)引腳為低電平,即可。
電源工作