采用GaN图腾柱无桥PFC电路,工作在150KHz的硬开关模式。目前系统功率20W左右,电流单闭环时输入电流出现了10K左右的低频纹波,且纹波很大。
波形中紫色为输入电流波形,浅蓝色为驱动信号波形,深蓝色为输入电压波形。
采用霍尔测电流,运放测输入电压。用DSP28335进行控制,控制中断频率50KHz,以下为中断程序
__interrupt void epwm1_timer_ISR(void)
{
GpioDataRegs.GPBSET.bit.GPIO41 = 1; // 对GPIO41置1开始计时
Vin = (AdcRegs.ADCRESULT0)/K; //直接从寄存器读取采样值
Iin = (AdcRegs.ADCRESULT1)/K;
Vout =(AdcRegs.ADCRESULT2)/K;
//对采样数据归一化,弥补采样偏置后,除以额定电压电流值
Vin_n=(Vin-1.47)*1.59; // 交流采样偏置1.63V,336.7/311V=1.083对采样值进行归一化
Iin_n=(Iin*1.66-2.477)*4.82; // 分压前采样偏置2.477V,1/(0.094*3.38A)
Vout_n=Vout*4; // 161.29/380=0.424
Iin_ref=Vin_n*Vout_PI; // 输入电流参考值为输入电压,输出电压闭环计算值之积
// PFC_I_PI_parameter.Kp=_IQ(10);
PFC_I_PI_parameter.Ki=_IQ(pi);
PIControl_loop();
// Clear INT flag for this timer
EPwm1Regs.ETCLR.bit.INT = 1;
// Acknowledge this interrupt to receive more interrupts from group 3
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
GpioDataRegs.GPBCLEAR.bit.GPIO41 = 1; // 对GPIO41清零结束计时
// GpioDataRegs.GPBCLEAR.bit.GPIO43 = 1;
// }
}
void PIControl_loop()
{
PFC_I_PI_parameter.Fdb=_IQ(Iin_n); // 采样值 送入反馈控制函数
PFC_I_PI_parameter.Ref=_IQ(Iin_ref); // 参考值送入反馈控制函数
PID_REG3_MACRO(PFC_I_PI_parameter); // 运行PI控制回路程序
Duty2A = (_IQ24toF(PFC_I_PI_parameter.Out))*0.5+0.5;//PI输出转为0~1的占空比
// Duty2A =0.5;
EPwm2Regs.CMPA.half.CMPA =SP_2*Duty2A; // PWM2上管占空比为 1-Duty2A
}
user5105608:
电流波形
Johnsin Tao:
回复 user5105608:
HI
能否将电路传上来看一下? 或者说明一下你参考哪个设计?
user5831803:
回复 user5105608:
您好,您的问题解决了吗