这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【设计竞赛】双向DCDC变换器

共33条 2/4 1 2 3 4 跳转至
管理员
2018-04-16 14:31:55     打赏
11楼

期待后续呀~~~

开发手记撰写得越完善,得奖几率越高呀~



菜鸟
2018-04-22 22:21:06     打赏
12楼

把最近的一些进展整理一下吧,前段时间电路图基本完成,也发现有些功能比之前预想的要复杂了一些,所以原理图还没有完全定稿,在MICROCHIP寄过来的硬件上先完成部分功能的验证。

通过代码发现,寄过来的硬件是一个dsPIC33EP64GS506实现了两部分电路的功能,分别是同步的BUCKBOOST。开关频率是350KHz,并且是峰值电流控制模式。

我这里先对BUCK部分进行描述说明。


通过上图我们可以看到,送入到dsPIC33EP64GS506的有电压和电流反馈,但实际上电流的反馈并非使用的是ADC,而是使用的是比较器CMP1的一个引脚输入。

通过ADC1采输出电压值,然后送入到补偿器做环路运算,把运算的结果送到比较器CMP1的一端,比较器的另外一端是电流检测。

我的设计不需要用上峰值电流检测,故需要去掉比较器这个环路环节,仔细分析代码,你会发现,这个代码采用了辅助工作寄存器,MICROCHIP的辅助工作寄存器专门为数字电源环路设计的。

整个环路设计的思路是:

1、  PWM触发ADC采样。

2、  ADC采样转换完成后触发ADC中断。

3、  进入ADC中断后自动切入到辅助工作寄存器。

4、  ADC中断里面完成2P2Z的算法。

5、  2P2Z的输出送到给比较器CMP1DAC

6、  这里CMP1DAC的输出送到CMP1的一个引脚,CMP1的另外一个引脚为电流采样的输入

7、  比较器CMP1的输出控制PWM的占空比。

8、  完成整个环路的控制。

2.png

从上面代码可以看出,环路有两个输入量,一个是ADCBUF1CMP1DAC.在这里,我不需要用到CMP1,我的2P2Z的输出值用于控制PDC1。所以我在辅助工作寄存器初始化代码的部分,把CMP1映射到W2,更改为了PDC1映射到W2。如下。


1.png


菜鸟
2018-04-22 22:35:38     打赏
13楼

 

当然,完成上述更改,这里对应的环路参数也要更改,MICROCHIP在这方面可以说做的非常人性化,在XIDE的开发环境里面,有一个叫做DCDT的环路设计工具,通过使用这个环路工具,你可以极大的方便你完成环路的设计,我打开电压单环设计界面,如下。

2.png

整个单环被分成了三部分,主功率部分(硬件参数),反馈部分,补偿器部分。

我们就是通过对主功率部分的参数进行补偿,从而完成整个的设计。

DCDT的输出是补偿器A,B系数以及一些定标,缩放等。这个需要配合microchip的环路库文件进行使用。





菜鸟
2018-04-22 22:48:23     打赏
14楼

点击”Compensator”,出现以下画面。

3.png

因为我采用的是2P2Z补偿网络,故选择第二个”2P2Z Compensator”,出现以下界面。

4.png

这个界面就是需要填写补偿器的界面,从这里可以看出,DCDT是里面是可以输入零极点。

5.png

先要计算出主功率的零极点,然后对主功率的零极点进行补偿,然后从左边的波特图观察,最后输出环路参数。



菜鸟
2018-04-30 15:41:02     打赏
15楼

在最初的环路调试过程中,由于是硬件和软件交叉调试的,所以很多时候在microchip寄过来的开发板上做验证。

其中把BOOST的峰值电流控制模式切换成电压单环的控制模式的时候,保留了原来的2P2Z的补偿方式,BOOST空载的输出正常,但是一但带上负载,输出就异常,电流采样电阻就会烧毁,分析波形发现,占空比几乎打到了最大,接近100%占空比,这可不得了了,因为环路参数刚开始并没有做调整,我就猜想是否我的环路参数有问题,我利用DCDT进行环路参数的调整。

首先DCDT选择的是单环模式,输入反馈的参数如下。

43001.png

根据BOOST的小信号模型和传递函数,网上很多,这里就不累述,输入参数如下。

43002.png

在点开补偿器部分,问题就来了,首先我们可以看到波特图如下。

43003.png


菜鸟
2018-04-30 15:52:56     打赏
16楼

我们环路的稳定性判据是,以-1的斜率穿过0dB增益线,使我们的增益裕量和相位裕量都得到满足。但是实际上我们可以看出,2P2Z的波特图的斜率关系是-1,+1,-1。而BOOST的电压单环的传递函数波形可以看出,是-2(双极点产生的-2斜率),+1(输出电容的ESR的零点产生的+1的斜率上升)。那么,要能够使-1的斜率穿过0dB线是不可能,主功率双极点之前的位置是无法完成穿越的,在双极点后面穿越的点必定不是-1斜率穿越,而在ESR零点之后完成穿越也是不可能的,这样的环路带宽得高到天上去啊。哈哈。

基于这种情况,就必须抛弃2P2Z补偿,使用3P3Z补偿。



菜鸟
2018-04-30 17:09:01     打赏
17楼

基于这种情况,3P3Z的波特图的增益曲线关系是,-1+1+1-1-1.从这个关系上来看,我们可以用把BOOST的双极点位置用3P3Z的两个零点进行补偿,并且把这两个零点都设计在双极点的位置,这样,补偿过后的环路在通过双极点位置过后,会继续与-1的斜率往下走,直到穿过0dB线,并且把3P3Z的第二个极点补偿boostESR零点,这样整个补偿后的环路会以-1的斜率继续远离0dB线,并且在遇见3P3Z的第三个极点后,会以-2的斜率继续远离0dB线,使因为离散参数造成的二次穿越将不在发生。大大增加了环路的稳定性。



菜鸟
2018-05-07 00:19:53     打赏
18楼

把上周的进度整理一下吧。

由于前期有些软件功能需要在MICROCHIP发的开发板上进行验证,所以原理图细节迟迟没有定稿,终于在这周定稿完成,并且加快了速度,做封装,把PCB布局,走线。然后头出去打样PCB,回来后埋头苦焊接,把之前的开发板上的代码移植到最新的板子上。最终效果还是出来了。如下图。

Capture.JPG


菜鸟
2018-05-07 00:32:57     打赏
19楼

去microchip的官网上面扣了一个LOGO下来,哈哈,填进去了这个小显示屏。显示的功能可以通过按键进行切换,切换成四种工作状态,显示在显示屏幕上。

  1. BUCK CC MODE.

  2. BUCK CV MODE.

  3. BOOST CC MODE.

  4. 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);


菜鸟
2018-05-07 00:36:56     打赏
20楼

最终定稿后的控制器部分如下:

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


共33条 2/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]