數(shù)字電源控制器 UCD3138 的 Single Frame 和前饋功能說(shuō)明
圖 4:前饋輸出最終與環(huán)路輸出相乘
本文引用地址:http://butianyuan.cn/article/175998.htm前饋功能的硬件設(shè)計(jì)主要包含了輸入電壓的檢測(cè)電路,在第一章曾有描述,在此不再贅述。軟件設(shè)計(jì)主要包含了Vref(DAC)值的配置、Kc 的配置和前饋功能的啟用設(shè)置。
1)Vref(DAC)值的配置
如下函數(shù)實(shí)現(xiàn)了根據(jù)v_input_error 的大小對(duì)Vref(DAC)值的更新。v_input_error 為當(dāng)前采集的輸入電壓與前一次采集到的輸入電壓的差值。該函數(shù)包含在一個(gè)狀態(tài)機(jī)中,100us 執(zhí)行一次,將連續(xù)執(zhí)行300 次,以保證在使能前饋功能之前Vref(DAC)近似等于當(dāng)前輸入電壓。
if(v_input_error > 10)
{
if(FeCtrl2Regs.EADCDAC.bit.DAC_VALUE > 3000) //can not lower than 35V;
{FeCtrl2Regs.EADCDAC.bit.DAC_VALUE = FeCtrl2Regs.EADCDAC.bit.DAC_VALUE - 1;}
}
else if(v_input_error -10)
{
if(FeCtrl2Regs.EADCDAC.bit.DAC_VALUE 14000) //can not higher than 80V;
{FeCtrl2Regs.EADCDAC.bit.DAC_VALUE = FeCtrl2Regs.EADCDAC.bit.DAC_VALUE + 1; }
}
如果誤差很小,即輸入電壓已經(jīng)穩(wěn)定,則系統(tǒng)軟件準(zhǔn)備開(kāi)啟前饋功能并隨后進(jìn)入正常運(yùn)行的狀態(tài)機(jī)。
if ( abs(v_input_error) 10) //Vin error is small
{
supply_state = STATE_REGULATED;
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;//Enable Feed Forward
}
2)Kc 值的配置
在輸入電壓穩(wěn)定的情況下,如果Kc 直接配置到0.5 到0.7 的某個(gè)值,則此時(shí)啟用前饋功能會(huì)影響正常環(huán)路的輸出,造成輸出電壓出現(xiàn)跌落。如下圖5 所示。
圖 5:Kc 啟用不當(dāng)造成輸出有跌落
跌落的原因是因?yàn)榇藭r(shí)環(huán)路的正常輸出被突然乘以Gain=Kc=0.5~0.7,所以占空比會(huì)立即被限制,輸出電壓出現(xiàn)跌落。直到環(huán)路經(jīng)過(guò)多個(gè)周期后再將占空比展開(kāi)到正常大小,輸出電壓才恢復(fù)到正常值。
因此,在實(shí)際應(yīng)用中需要將Kc 由1 慢慢減小到需求的值(在本文涉及的硬全橋軟件中選擇Kc 為0.7)。另,在實(shí)際設(shè)計(jì)中使用Filter2 實(shí)現(xiàn)非線性增益和Kc 的設(shè)置,因此軟件配置如下。
Uint32 filter2_kc;
int filter2_kc_step = 0x200;
inline void handle_regulated_state(void)
{
filter2_kc = Filter2Regs.FILTERPRESET.bit.PRESET_VALUE;// It is Kc
if(Filter2Regs.FILTERPRESET.bit.PRESET_VALUE > 0x5A0000)
{
Filter2Regs.FILTERPRESET.bit.PRESET_VALUE = filter2_kc - filter2_kc_step;
Filter2Regs.FILTERPRESET.bit.PRESET_EN = 1;
}
}
其中,handle_regulated_state 為軟件狀態(tài)機(jī)中的一個(gè)狀態(tài),每100us 執(zhí)行一次。通過(guò)這樣一個(gè)循環(huán)函數(shù)就可以保證Kc 是以步進(jìn)的形式由1 配置到0.7(0x5A0000/0x7FFFFF=0.7),防止了輸出電壓出現(xiàn)跌落。
3)前饋功能的啟用
經(jīng)過(guò)上述完善的預(yù)先配置后,可以啟用前饋功能,啟用后KC 從1 慢慢開(kāi)始減小。啟動(dòng)的設(shè)置是通過(guò)下面代碼實(shí)現(xiàn)的。“OUTPUT_MULT_SEL”位用來(lái)選擇與環(huán)路輸出相乘的值,以決定最后的占空比。當(dāng)設(shè)置為2時(shí),將選擇前饋的輸出與環(huán)路輸出相乘,即啟動(dòng)了前饋。
Filter0Regs.FILTERCTRL.bit.OUTPUT_MULT_SEL =2;
評(píng)論