基于TMS320F28035的移相全桥变换器控制
1. 硬件设计
硬件设计主要包括控制级、脉冲地址分配、采样电路、驱动电路和功率子模块部分。对于移相全桥变换器,需要设计合适的驱动电路来控制全桥的开关管,并确保信号隔离和电路保护。
2. EPWM配置
EPWM模块用于生成控制全桥开关管的脉冲信号。
#define HSFB_PERIOD 205 // 146kHz
void PWM_Config(void) {
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // Disable TBCLK within the EPWM
EDIS;
// Time Base SubModule Register
EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set Immediate load
EPwm1Regs.TBPRD = HSFB_PERIOD;
EPwm1Regs.TBPHS.half.TBPHS = 0;
EPwm1Regs.TBCTR = 0;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_CMPB; // Used to sync EPWM(n+1) "down-stream"
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
// Counter compare submodule registers
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_IMMEDIATE;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_IMMEDIATE;
EPwm1Regs.CMPA.half.CMPA = HSFB_PERIOD - 68; // trig_up
EPwm1Regs.CMPB = HSFB_PERIOD;
// ADC SOC generation
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_PRDZERO; // Use ZRO and PRD events as trigger
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
EPwm2Regs.ETSEL.bit.SOCAEN = 1;
EPwm2Regs.ETSEL.bit.SOCASEL = ET_CTR_ZERO; // Use ZRO event as trigger
EPwm2Regs.ETPS.bit.SOCAPRD = ET_2ND; // Generate pulse on 1st event
EPwm4Regs.ETSEL.bit.SOCAEN = 1;
EPwm4Regs.ETSEL.bit.SOCASEL = ET_CTRU_CMPA; // Use CAU event as trigger
EPwm4Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
EPwm4Regs.CMPA.half.CMPA = 40; // Note: This value is based on 100 KHz switching frequency
EPwm4Regs.ETSEL.bit.SOCBEN = 1;
EPwm4Regs.ETSEL.bit.SOCBSEL = ET_CTRU_CMPB; // Use CBU event as trigger
EPwm4Regs.ETPS.bit.SOCBPRD = 1; // Generate pulse on 1st event
EPwm4Regs.CMPB = 165; // Note: This value is based on 100 KHz switching frequency
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
}
3. 中断配置
中断配置用于处理EPWM模块的事件,如比较器事件和ADC采样。以下是一个中断处理函数的示例:
#define DACDRV_RAMP_In 38400 // 环路计算值
if (TB_DIR_UP == EPwm1Regs.TBSTS.bit.CTRDIR) { // PWM counter direction is UP
EPwm2Regs.TZCLR.all |= 0x0C;
EPwm2Regs.TZCTL.all = 0x0FFF; // Force EPWMxB to a low state
EPwm2Regs.AQCTLB.all = 0x0215; // CBU=HIGH, CAU=LOW, PRD=LOW, ZERO=LOW
EPwm2Regs.AQCTLA.all = 0x0124; // CBU=LOW, CAU=HIGH, PRD=LOW, ZERO=Nothing
EPwm2Regs.CMPA.half.CMPA = DB_AtoP;
EPwm2Regs.CMPB = (HSFB_PERIOD);
EPwm2Regs.DCFWINDOW = DB_PtoA + 3;
EPwm1Regs.CMPA.half.CMPA = trig_up;
EPwm1Regs.CMPB = (HSFB_PERIOD + 10); // set to 0, avoid CMPB to force EPWM2 sync event. Use DCAEVT1.sync to sync EPwm2 module.
EPwm1Regs.ETSEL.all = 0x0B0D;
// Update RAMP value
Comp3Regs.RAMPMAXREF_SHDW = DACDRV_RAMP_In; // Q16 type, max value is 0xFFFF
Comp3Regs.DACVAL.all = (DACDRV_RAMP_In >> 6); // Q10 type
} else { // PWM counter direction is DOWN
EPwm2Regs.TZCLR.all |= 0x0C;
EPwm2Regs.TZCTL.all = 0x0FFF; // Force EPWMxA to a low state
EPwm2Regs.AQCTLA.all = 0x0125; // CBU=LOW, CAU=HIGH, PRD=LOW, ZERO=LOW
EPwm2Regs.AQCTLB.all = 0x0214; // CBU=HIGH, CAU=LOW, PRD=LOW, ZERO=Nothing
EPwm2Regs.CMPB = DB_AtoP;
EPwm2Regs.CMPA.half.CMPA = (HSFB_PERIOD);
EPwm2Regs.DCFWINDOW = DB_PtoA + 3; // Need confirm
EPwm1Regs.CMPA.half.CMPA = trig_dwn;
EPwm1Regs.CMPB = HSFB_PERIOD + 10; // set to period, avoid CMPB to force EPWM2 sync event. Use DCAEVT1.sync to sync EPwm2 module.
EPwm1Regs.ETSEL.all = 0x0B0C;
}
4. 控制算法实现
控制算法的核心是调节移相角以实现零电压开关(ZVS)和稳定的输出电压。以下是一个控制算法的示例:
void ControlAlgorithm(void) {
// 读取ADC采样的电压和电流值
int voltage = ADC_ReadVoltage();
int current = ADC_ReadCurrent();
// 计算误差和控制信号
int error = reference_voltage - voltage;
int control_signal = PI_Controller(error);
// 调整移相角
phase_shift_angle = control_signal;
// 更新EPWM模块的移相角
UpdateEPWMPhaseShift(phase_shift_angle);
}
int PI_Controller(int error) {
static int integral = 0;
static int last_error = 0;
int proportional = error;
integral += error;
int derivative = error - last_error;
last_error = error;
return proportional * Kp + integral * Ki + derivative * Kd;
}
void UpdateEPWMPhaseShift(int angle) {
// 更新EPWM模块的移相角
EPwm2Regs.CMPA.half.CMPA = angle;
}
参考代码 基于TMS320F28035的移相全桥变换器控制程序 www.youwenfan.com/contentcni/71872.html,包含移相ePWM配置方式,中断配置等
5. 实际应用案例
在实际应用中,移相全桥变换器被广泛应用于高压直流变换器、电机驱动、电池充电系统及光伏逆变器等场合。例如,某3kW通信直流供电系统采用PSFB结构作为DC/DC变换主模块,使用TMS320F28035作为控制核心,通过相位比较法调节移相角,控制输出电压稳定在48V。
浙公网安备 33010602011771号