最近开发了一款6.6kW的充电桩产品,和大家一起分享开发过程中的各种坑,特别是数字电源控制算法方面的坑,真的是记忆犹新。如果没有师傅带,要想做好数字电源软件开发工作,我觉得真的不容易。
一、产品主要技术指标如下:
1.输入电压范围:176-264Vac
2.输出电压范围:200-800V
3.最大输出功率6.6kW
4.最大输出电流20A
5.工作环境温度-30℃-55℃
二、拓扑架构
前级采用交错PFC拓扑架构。
交错PFC
后级采用交错LLC输出拓扑架构。
交错LLC拓扑
三、控制算法
PFC控制部分:电压外环采用PI控制器,电流内环也采用PI控制器。电流内环也有人用PR控制器的,具体优缺点,就大家自行百度了。可能是自己对PI控制器比较熟悉吧,我这里就采用的PI控制器。
PFC控制算法
LLC控制部分:LLC控制器电压环和电流环我都采用的是PI控制器,因为要做恒流、恒压两种模式,所以就采用了一个电压电流环,双环竞争的一个算法(这也是一个比较经典的控制算法)。
四、测试带载波形和效果
PFC部分PF值为1(因为设备最高显示分辨率为0.1,我估计PF值应该有0.995以上),Ithd=3.08%,还是不错的,实测264V输入,满载时能到2.2%左右,还是很不错的。
示波器实测,输出电压和输入电流的波形(黄色的是输入电流,紫色的是输入电压)。
五、踩坑分享
1.LLC第一次炸管
(1)相信大家调试都有过炸MOS管吧,踩坑第一站就从炸管开始吧。我调试产品本身还是比较小心的,在调试之前反复测试了LLC的驱动波形,确认死区时间,确认各种硬件保护都OK的情况下,才开始带载工作,当时设置的是600V输出,带载到6.6kW(11A左右)。输出电流纹波也比较小,只有3A左右。
(2)感觉比较良好,就在测试300V的时候,带到5kW(约16.7A),的时候负载就突然炸管了,烧了一大片,LLC的两个输出桥臂的管子全都烧完了。
(3)仔细分析才发现,炸管的原因居然是死区设置太小了导致的(死区时间设置的200ns),400V的时候,LLC工作在谐振点的附近,工作频率约80K。在300V的时候,LLC工作在谐振点的右侧,约180K的频率,两个桥臂工作在硬开关模式下。
(4)通过示波器一步一步的测试,发现在600V/11A的时候死区就已经比较临界了。300V逐步带载测试,发现电流越大的情况下,MOS管的死区在慢慢的被“吃掉”。在15A左右的时候和600V/11A的死区相当。
(5)最终调整死区到400ns,才保证了200V输出的时候到20A的工作电流。
2.PFC电压过冲踩坑
(1)PFC部分的输出电压是由电压外环的PI控制器控制的,电压外环的带宽比较低,我算法里面电压PI控制器执行频率为100hz,在PFC从重载到空载的切换时,PFC过冲直接就触发了PFC硬件过压保护。
(2)把PFC输出电压调低,发现,这个重载到轻载的切换,过冲电压竟然超过了80V(要不是配置了MCU的硬件比较器,PFC的电容肯定就开始放鞭炮了。)
(3)后面对PFC的算法进行优化,在电流内环处增加一个判断:就是电压超过或者低于一定阀值,就触发电压环的PI控制器。
(4)操作说起来简单,但是操作起来也是踩坑不断,这个电流内环处增加的电压环,在调试的时候稍微参数设置不合理就导致输出电压震荡,甚至直接PFC电压被拉低。
(5)此处需要重点注意就是这个增加的电压环,不能一直处于计算状态,一定要有进入和退出的调节,否则会带来反向的效果。调试的时候要不断摸索。
过冲电压还可以根据实际情况调小,上图是因为PFC的纹波电压有25V左右,过冲电压设置的比较大(我这个应用,只要保证器件的使用可靠性即可),上图,黄色是输入电流,紫色是输入电压,蓝色是驱动,绿色是PFC输出电压。
注意:而且这个电压外环的计算时间节点,这个地方也是有一个小坑,最好是在交流电过零点的时候计算是最佳的,这样引入的谐波分量才是最小的,电压环PI控制器的执行频率是100HZ,最开始用的是1khz(1khz引入的谐波分量太大了,ithd过不了,满载的时候超过6%了,后来才调整到100hz的)。
-----------评论区不能发图片,我就直接修改原问题件了,后面打算做个产品开发踩坑的专题,欢迎大家一起交流讨论。
由于时间关系,踩坑的地方就暂时先分享这一个地方,后面再陆续给大家分享。
申明:由于本人水平一般,分享的知识有误,或者采用的方案不够好的,欢迎各路大神指正批评,给大家带来的不便,敬请参考,本文观点仅供参考。