TI官方两相LLC交错并联程序的几个关键点(to be continued)
2017-05-15 13:45
330 查看
TI的电源设计示例工程里有一个两相交错并联的LLC变换器设计,使用的是F28379D芯片做主控,这款芯片资源跟F28377S差不多,只不过前者是双核的,但是示例程序只用到了其中的一个核,所以以下程序基本上可以无障碍移植到F28377S芯片上,以下对程序中的一些重点做一个备忘记笔记。
变换器的拓扑是半桥同步整流型LLC,谐振频率设计在250.13kHz,工作频率设计在200kHz到350kHz之间,采用两相交错并联以提高功率,利用软件算法可以实现两相动态均流,在负载比较轻的情况下可以关闭一相实现单相运行,并且可以在轻载时,副边从同步整流模式切换到常规的二极管整流模式,以提高低载效率。
硬件情况如下:
CPU 频率200MHz,EPWM Time Base 100MHz(默认为CPU频率的一半)
Phase 1 原边MOS管驱动信号EPWM1A/B, 副边同步整流MOS管驱动信号EPWM2A/B
Phase 2 原边MOS管驱动信号EPWM4A/B, 副边同步整流MOS管驱动信号EPWM5A/B
Phase 1 原边电感电流检测ADCA3,Phase 2 原边电感电流检测A5;输出电流B0,输入电压B5, 输出电压C2
ADC触发源:A3-EPWM2 SOCA,A5-EPWM2 SOCB, B0,B5,C2-EPWM3 SOCA(EPWM 3 ISR 50kHz
运行PID)
在学习的过程中遇到的一些不理解的问题:
1. 为什么在闭环运行情况下(Build 2),Duty初始化设置成了一个很小的0.05值,不是应该为LLC运行所常用的0.5占空比吗?
答:这是因为在闭环情况下,输入电压很高接近400V,而在软启动情况下,输出电压设定值不会一下达到12V(假设是12V),开始
a0e2
会很小,在这种情况下,如果一开始就设定50%占空比,那么及时在开关频率为350kHz的情况下,输出的电压也会远大于输出电压的小软启动值,所以在闭环运行时,Duty会很小,在软启动过程中Duty慢慢加到0.996(接近1),PWM输出的就会是50%的占空比,代码(在50kHz 的控制ISR里)如下。
2. 上面一个问题中,为什么Duty=0.996时EPWM才会输出50%占空比?我理解的是Duty=0.5才是50%占空比。
答:这是因为在用PWM_HB_LLC_2PHIL_SR(PWM_HS_PH1, PWM_HS_PH2, ScaledPrd)初始化设置EPWM1,2,4,5的时候,把这几 个PWM的计数方式设定成了上下计数模式,然后这个函数里有几行非常关键的代码:
变换器的拓扑是半桥同步整流型LLC,谐振频率设计在250.13kHz,工作频率设计在200kHz到350kHz之间,采用两相交错并联以提高功率,利用软件算法可以实现两相动态均流,在负载比较轻的情况下可以关闭一相实现单相运行,并且可以在轻载时,副边从同步整流模式切换到常规的二极管整流模式,以提高低载效率。
硬件情况如下:
CPU 频率200MHz,EPWM Time Base 100MHz(默认为CPU频率的一半)
Phase 1 原边MOS管驱动信号EPWM1A/B, 副边同步整流MOS管驱动信号EPWM2A/B
Phase 2 原边MOS管驱动信号EPWM4A/B, 副边同步整流MOS管驱动信号EPWM5A/B
Phase 1 原边电感电流检测ADCA3,Phase 2 原边电感电流检测A5;输出电流B0,输入电压B5, 输出电压C2
ADC触发源:A3-EPWM2 SOCA,A5-EPWM2 SOCB, B0,B5,C2-EPWM3 SOCA(EPWM 3 ISR 50kHz
运行PID)
在学习的过程中遇到的一些不理解的问题:
1. 为什么在闭环运行情况下(Build 2),Duty初始化设置成了一个很小的0.05值,不是应该为LLC运行所常用的0.5占空比吗?
答:这是因为在闭环情况下,输入电压很高接近400V,而在软启动情况下,输出电压设定值不会一下达到12V(假设是12V),开始
a0e2
会很小,在这种情况下,如果一开始就设定50%占空比,那么及时在开关频率为350kHz的情况下,输出的电压也会远大于输出电压的小软启动值,所以在闭环运行时,Duty会很小,在软启动过程中Duty慢慢加到0.996(接近1),PWM输出的就会是50%的占空比,代码(在50kHz 的控制ISR里)如下。
Vout_diff = Adc_Vout - Vout_Ref_wInj; if (Vout_diff > Duty_mode_threshold && (var1.Out <= coeff1.Min)) // If output voltage > desired voltage by this amount and operating at max frequency { //已经达到最大频率了,输出电压仍然高于设定值, enter duty mode Duty = Duty - Duty_mode_adjust; Duty = (Duty < MIN_DUTY)? MIN_DUTY:Duty; //Clamp min Duty } else { Duty = Duty + Duty_mode_adjust;//软启动过程,随着电压目标值达到设定值,将Duty增加到0.99,以达到正常状态下的0.5占空比输出PWM Duty = (Duty > MAX_DUTY)? MAX_DUTY:Duty; //Clamp max Duty }
2. 上面一个问题中,为什么Duty=0.996时EPWM才会输出50%占空比?我理解的是Duty=0.5才是50%占空比。
答:这是因为在用PWM_HB_LLC_2PHIL_SR(PWM_HS_PH1, PWM_HS_PH2, ScaledPrd)初始化设置EPWM1,2,4,5的时候,把这几 个PWM的计数方式设定成了上下计数模式,然后这个函数里有几行非常关键的代码:
EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR; EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR; EPwm4Regs.AQCTLA.bit.ZRO = AQ_CLEAR; EPwm4Regs.AQCTLA.bit.CBD = AQ_SET; EPwm4Regs.AQCTLA.bit.PRD = AQ_CLEAR;所以只需要设定EPWM1的CMPA寄存器和EPWM4的CMPB寄存器,就可以改变PWM的占空比,然后在运行PID(2P2Z)的ISR里,EPWM1/4的TBPRD值就是控制运算的输出值,在这个值的基础上去乘以Duty,得到CMPA和CMPB值,所以Duty=1的时候输出的才是50%的占空比,当两相电感电流不平衡时,会将电流大的那一相的占空比从50%降下来,也就是那一相的Duty值要从0.996往下降,直到两相电流平衡,此时另外一相的占空比为50%,刚刚电流大的那一相占空比小于50%
相关文章推荐
- 推荐几个好用的asp.net控件(to be continued)
- Survey over pattern string match algorithm[6 items updated && to be continued]
- Live Migration (SLES10 SP2 XEN) (3-问题篇)TO BE CONTINUED
- VS2010调试程序出现错误:vc/atlmfc/include/atlcore.h(35): fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at le
- 《鸟哥的linux》---To be continued
- 图像处理函数--to be continued
- 2004 To be continued!
- linux用户管理简要说明 ......to be continued
- Very Useful Idioms I Truly Believed (To be continued...)
- 算法基元(to be continued)
- 散装笔记 ...to be continued
- To be Continued
- 梳状滤波器(to be continued)
- 看美剧学英语,lie te me s01e01 重点单词 to be continued
- flex 学习开发心得 to be continued...
- Head First Design Parttern学习笔记(to be continued)
- 常用正则(to be continued)
- Serializing - 序列化 综述 – To be continued.
- CC Project -- A Javalette compiler -- to be continued
- dns & bind (to be continued)