欢迎光临散文网 会员登陆 & 注册

解析图腾柱无桥PFC的状态控制(基于DSP C2000)

2022-05-28 19:33 作者:大方老师单片机课堂  | 我要投稿

解析图腾柱无PFC的状态控制(基DSP C2000


\\\插播一条:

自己在今年整理一套单片机单片机相关论800余篇

论文制作思维导图

原理+源代+开题报++外文资料

想要的同学私信找我。


图腾柱无PFC控制逻辑远复杂BoostPFC


图腾柱无PFC(TTPLPFC)

TTPLPFCAC电压不同相位,需要修正慢管逻辑、调制逻辑、抑制过零点畸变。有Boost PFC中,输入电压经过二极管桥整流,不存在上述问题。

一、图腾PFC状态机设计

1、在数字控制TTPLPFC的电源软件中ISR状态机可按照电网相位,分4大状态:

·PHAC电压正半周

·NHAC电压负半轴

·PZCAC电压正过零

·NZCAC电压负过零

2ISR状态机的四大状态中,待处理的事件:

·慢管逻辑

·快管调制逻辑

·死区调节

·环路参数调节

·软过零算/抑制过零点畸变

3、状态机状态切换条件:

·SPLL提供的电网相位

·电网电压采样值

C2000(DSP)代码解读


TTPLPFC状态机示意图

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过零点畸变抑制

·电流环与电压环设计

·DSPC2000)主EMI技术

·软开PFC技术:谷底开/ZVS

解析图腾柱无桥PFC的状态控制(基于DSP C2000)的评论 (共 条)

分享到微博请遵守国家法律