基于这种情况,3P3Z的波特图的增益曲线关系是,-1,+1,+1,-1,-1.从这个关系上来看,我们可以用把BOOST的双极点位置用3P3Z的两个零点进行补偿,并且把这两个零点都设计在双极点的位置,这样,补偿过后的环路在通过双极点位置过后,会继续与-1的斜率往下走,直到穿过0dB线,并且把3P3Z的第二个极点补偿boost的ESR零点,这样整个补偿后的环路会以-1的斜率继续远离0dB线,并且在遇见3P3Z的第三个极点后,会以-2的斜率继续远离0dB线,使因为离散参数造成的二次穿越将不在发生。大大增加了环路的稳定性。
去microchip的官网上面扣了一个LOGO下来,哈哈,填进去了这个小显示屏。显示的功能可以通过按键进行切换,切换成四种工作状态,显示在显示屏幕上。
BUCK CC MODE.
BUCK CV MODE.
BOOST CC MODE.
BOOST CV MODE.
每个页面的内容还需要完善,但主要功能已经差不多完成了。
现在可以实现BUCK 恒流/恒压输出,BOOST恒流/恒压输出。电压为9V/12V。
但现在存在的问题就是双向的功能还得手工切换,软件自己判断切换的逻辑还没有加进去。
当然,在代码从开发板上移植到这个双向板子上的时候,还是出现了一些问题。最开始就是电流采样电阻的取值过小,造成恒流工作一直工作不正常。分析了很久,终于解决。
另外,在这个环路的应用过程中,我使用了辅助工作寄存器,但是dsPIC33EP64GS502只有2组辅助工作寄存器,而我的环路有4路。刚开始确实让我头痛了一阵子。后来仔细分析,其实这个电路在任何情况下,都只有2套环路在工作,那么我可以选择在切换的时候工作模式的时候,重新初始化辅助工作寄存器,结果发现,非常好用,完全没有问题,这样看来,辅助工作寄存器真是强大啊。
辅助工作寄存器初始化部分我定义四个,如下:
void InitAltRegContext1Setup(void);
void InitAltRegContext2Setup(void);
void InitAltRegContext1Setup_BOOST_Current(void);
void InitAltRegContext2Setup_BOOST_Voltage(void);

从上面可以看到,除了两个预留的脚以为,IO脚已经用的满打满算了,最后可能那两个引脚我也会用上,做为软件自动切换方向的逻辑判断。

BOOST恒流输出,BOOST输入电压9V,
我要赚赏金
