解析图腾柱无桥PFC的状态控制(基于DSP C2000)
\\\插播一条:
自己在今年整理一套单片机单片机相关论文800余篇
论文制作思维导图
原理图+源代码+开题报告+正文+外文资料
想要的同学私信找我。
图腾柱无桥PFC控制逻辑远复杂于Boost有桥PFC。
TTPLPFC在AC电压不同相位,需要修正慢管逻辑、调制逻辑、抑制过零点畸变。有桥Boost PFC中,输入电压经过二极管桥整流,不存在上述问题。
一、图腾柱PFC状态机设计
1、在数字控制的TTPLPFC的电源软件中,ISR状态机可按照电网相位,分为4大状态:
·PH:AC电压正半周
·NH:AC电压负半轴
·PZC:AC电压正过零
·NZC:AC电压负过零
2、ISR状态机的四大状态中,待处理的事件:
·慢管逻辑
·快管调制逻辑
·死区调节
·环路参数调节
·软过零算法/抑制过零点畸变
3、状态机状态切换条件:
·SPLL提供的电网相位
·电网电压采样值
二、C2000(DSP)代码解读
以TIDA-010062《数字1kW高功率密度80plus钛金交流/直流电源》前级图腾柱没桥PFC电源软件代码为例,状态机示意图如上图所示。
ISR状态机分为八个状态:
正半周+负半周+正过零3个状态+负过零3个状态。
状态切换条件为:SPLL相位与电网电压采样值取“或”逻辑
状态机实现采用“switch + case + default”架构,为了便于浏览,代码构建了union用于标识状态。
typedef union{
enum
{
pwmSwState_normalOperation = 0,
pwmSwState_positiveHalf = 1,
pwmSwState_negativeZeroCrossing1 = 2,
pwmSwState_negativeZeroCrossing2 = 3,
pwmSwState_negativeZeroCrossing3 = 4,
pwmSwState_negativeHalf = 5,
pwmSwState_positiveZeroCrossing1 = 6,
pwmSwState_positiveZeroCrossing2 = 7,
pwmSwState_positiveZeroCrossing3 = 8,
pwmSwState_defaultState = 9,
}enum_pwmSwState;
int32_t pad;}TTPLPFC_pwmSwState;
状态机实现如下,每个状态处理对应的事情。
switch(TTPLPFC_pwm_SwState.enum_pwmSwState)
{
/*First state after B2 Tasks initialization*/
【文章福利】:小编整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!~点击绿色通讯软件搜索wujidanpianji加入(需要自取)
casepwmSwState_normalOperation:
--过零启动相关程序
break;
/*Positive half state*/
casepwmSwState_positiveHalf:
--慢管驱动信号(ePWM.AQ控制)。
--死区控制(ePWM.DB)。
--控制参数(DCL库参数)。
break;
/*NZC state1:*/
casepwmSwState_negativeZeroCrossing1:
--快管封锁(ePWM.DB,用死区模块封锁快管,方便实现软过零算法)
--慢管封锁(ePWM.AQ)。
break;
/*NZC state2:*/
casepwmSwState_negativeZeroCrossing2:
--duty重置。
--软过零状态标志重置。
--调制管更换(ePWM.DB[SWAP])。
break;
/*NZC state3:*/
casepwmSwState_negativeZeroCrossing3:
--软过零(softtransition)算法。(TTPLPFC一大痛点解决方案)
--死区调节(ePWM.DB)。
--控制环路参数重置。
break;
/*Negative half state*/
casepwmSwState_negativeHalf:
--慢管驱动信号(ePWM.AQ控制)。
--死区控制(ePWM.DB)。
break;
/*PZC state1:*/
casepwmSwState_positiveZeroCrossing1:
--快管封锁(ePWM.DB,用死区模块封锁快管,方便实现软过零算法)
--慢管封锁(ePWM.AQ)。
break;
/*PZC state2:*/
casepwmSwState_positiveZeroCrossing2:
duty重置。
--软过零状态标志重置。
--调制管更换(ePWM.DB[SWAP])。
break;
/*PZC state3:*/
casepwmSwState_positiveZeroCrossing3:
--软过零(softtransition)算法。(TTPLPFC一大痛点解决方案)
--死区调节(ePWM.DB)。
--控制环路参数重置。
break;
/*Protect state: OCP OVP*/
casepwmSwState_defaultState:
--异常状态、保护状态。
break;
default:
TTPLPFC_pwm_SwState.enum_pwmSwState=pwmSwState_defaultState;
}
三、总结
建议大家阅读对应的代码,加深理解。
之后的文章中会更新:
·TTPLPFC功率因数补偿方法
·TTPLPFC过零点畸变抑制
·电流环与电压环设计
·基于DSP(C2000)主动EMI技术
·软开关PFC技术:谷底开关/扩展ZVS