首页/文章/ 详情

数字补偿器的数值变换过程

2年前浏览1228

前述文章,BUCK电路模拟补偿器的数字化过程,我们讨论了由设计好零极点的模拟补偿器,如何得到对应z传递函数的系数,但是这些系数都是实数,它在定点计算的MCU内是无法直接实施去计算线性差分方程的,所以我们必须进行一定的数值变换,以方便定点MCU处理。另外,为了利用16MCU的最大字长,我们需要对系数进行一定的缩放以满足其最大表示范围。本文就详细探讨一下这些为了得到MCU处理的定点数据而进行的数值变换过程。

 

.定点MCU对实数的处理

8位的整数为例,我们先回顾一下整数所表示的数字范围。图1中,列出了8位有符号数表示的范围,最高位为符号位S,可知8位整数表示的范围-128-127,这种格式可以称之为I0Q8,每一位表示的精度为1.

1 I0Q8的数据表示范围


如果我们改为I5Q3这种形式,看看相应的范围和精度是多少呢?相应的,由于I5Q3格式由5为整数,3位小数,所以在bit2bit3之间放一个隐藏的小数点,如下计算出来对应的正数最大值为15.875,最小负数为-16,每一位表示的精度为0.125.

2 I5Q3的数据表示范围


从上述分析,可以看出,当表示位数一定的情况下,整数位越多,则精度越低,但是表示的数据范围大。小数位越多,则精度变高,但是表示的数据范围比较变小。


由于我们的MCU sPIC33C16位的处理器,数据位数为16位,所以,为了可以在计算中实现最大精度,通常采用Q15格式来表示实数,Q15I1Q15,具有1位整数,15位小数。我们接下来看一下Q15格式小数表示的范围是多少?

3 Q15的数据表示范围


从图3可知,Q15最大的正数是0.99996948,而最小负数就是-1,每一位的精度为0.00003051758,所以,只要让补偿器中的系数转化为-10.99996948之间的小数用Q15格式表示,MCU就可以去处理这些小数的计算。


.数字化过程的增益系数

模拟补偿器进行数字化后,和原有模拟补偿回路的差异是,除了补偿器本身的增益之外,引入了一些额外的数字化的增益,如图4所示。

数字化引入的增益计算


举例来说,电源开关频率为500k,输出采样分压电阻为1k1k,同前述文章中的设定,在高分辨率模式PWM下周期为8000ADC供电为3.3V,且保持12bit精度。


首先,由分压电阻造成的增益为1k/2k,即0.5,这个很容易理解。其次,ADC造成的增益为4095/3.3,因为通过ADC将模拟量转化为一个数字,转化系数就是4095/3.3.再次,从补偿器计算值,到占空比,也引入了一个系数1/8000.


总的增益系数K1如下式所示,

所以在进行数字补偿器设计时,为了不改变环路增益,我们需要将这部分增益抵消掉,即乘以K,而K=1/K1,此处示例中,计算出的K系数为12.89.


.Z传递函数的实数系数变换

由第二部分的讨论得知,在数字补偿器计算结果输出给PWM之前,为了抵消数字化过程的额外增益,我们用一个系数K去乘以计算结果,再给赋给PWM模块的占空比寄存器,这样导致的结果是每一次环路计算都要做一次固定的乘以K的动作,这显然是比较费时间,且无意义的,如图5所示。

数字化环路的额外增益抵消计算


数字补偿器表达输出量


我们对数字补偿器进行变换,如图6所示,用z变换传递函数表示输出量,则发现如果对输出量进行乘以一个系数K,那么只是分子中的B系数和K相乘就可以了,A系数是没有影响的。那么我们可以等效为对B系数进行乘以K的变换,得到新的B系数,而将K设为1即可,以此简化运算。


接下来,我们需要通过移位将A,B系数变为-1-0.99996942之间的数据,并且为了最大程度利用16MCU的字长,需要将这些数据其中的最大值变为0.99996942,当做完这些移位和缩放操作后,A,B系数可以表示为Q15数据格式,但是需要注意的是在反馈计算量结果yn之前,需要进行反缩放,以保持数据范围不变,如图7所示。

7 AB系数的移位缩放和反移位反缩放


接下来,我们通过实例进行说明。


根据前述分析,首先我们将得到的B系数乘以一个K值,这个K值在前面的示例中为12.89,得到如下的修正后的B系数,A系数保持不变,K最后设为1.

8 B系数统一乘以K增益系数


然后同时对A,B系数做缩放,此处通过右移5位,让它处在Q15小数表达的范围内,即-1-0.9999694824219之间,如图9所示。

9 A,B系数的统一缩放至Q15小数范围



10 A,B系数放大G2倍充分利用16位字长


11 计算G2缩放倍数


通过图11所述关系,将缩放后的AB系数中最大值乘以一个数字,变为0.9999694824219求得G2系数,即将A,B系数同时乘以G2,让最大的数达到Q15的最大值,0x7FFF,如图10所示,以便充分利用16位的最大字长。


12 Q15格式的数据


由最终得到的小数,乘以32768,进而得到相应的16进制数据,如图12所示,最后一列就是我们需要放到SMPS控制库函数中进行计算的Q15数据。


.采用DCDT工具进行实际验证AB系数

图13 DCDT插件工具

DCDT工具是一个在MPLAB XIDE中运行的插件,它可以帮助用户计算数字补偿器的相关实数系数及Q15数据。DCDT的具体安装我们后面有机会再做具体说明。


这里我们以上述实例,基于已有的电压模式控制buck电路功率级传递函数,做相应的变换,在DCDT工具中得到对应的Q15数据,及相关的系数。


具体示例对应图4中的描述,我们把图4直接搬到此处,如图14所示,方便分析。


14 基于DCDT分析的功率级被控对象


根据图14所示的基本条件,及第二部分讨论的K系数计算方式,可计算出相应的K系数为12.89.


15 DCDT中选择单环设计电压模式补偿器


由于是电压模式buck电路,因此在DCDT的页面上,选择单环补偿器,如图15所示。


16 DCDT中写入功率级零极点


基于功率级特性的研究,我们填入相应的零极点,如图16所示,并调整Gain系数Kdc满足真实的低频增益,在图17,图18中得到相应的功率级增益和相位曲线,当然也可以用仿真的方式将数据导入这里,或者用实测波特图的方式将数据导入到这里,这里不做太多说明。

17 功率级增益曲线

18 功率级相位曲线

19 设置输出分压电阻及ADC相关参数


根据电路硬件填入分压电阻,dsPIC33CKADC12bit分辨率,且转换时间在300ns以内,供电为AVDD电压3.3V,输出电压我们这里案例为3.3V,如图19所示。

图20 设置补偿器零极点


根据功率级的零极点,我们设置相应的补偿器的零极点位置,补偿器的直流增益,根据参考文档,我们设为默认值1。如何设置补偿器零极点频率这里我们不做详细探讨,请参考前述文章,BUCK电路电压模式CCM环路补偿设计及仿真 .

图21 设置PWM相关配置


此处由于我们使用dsPIC33CK器件,因此我们按照250ps的最大PWM分辨率,且每一个周期都进行ADC采样,则采样系数为1,开关频率为500k,对应采样间隔频率就是500k,其它值为估计值。此处注意,实际应用中,需要用户确保合适的采样频率以满足环路运算和执行其它任务。

22 得到实数的原始数字补偿器系数


得到的原始的数字补偿器系数,和前述文章通过我们另一个工具DCLD得到的系数是完全一致的,因为他们对应相同的零极点的数字补偿器,工具计算结果非常准确,如图22所示。

23 选择实施Kuc增益系数


点击实施Kuc增益系数后,如图23所示,可见B系数被乘以Kuc了,A系数保持不变,此处DCDT计算出来的Kuc和我们前面部分手动计算的结果12.89一致,当然也可以在补偿器Kdc中输入这个值,也可以得到相应的改进后的B系数,如图24所示。

24 直接采用Kdc引入Kuc增益


25 实施系数归一化

点击实施归一化后,可见A,B系数都经过缩放后变到-1-0.9999694864219之间的数据,且经过一个放大系数G2使得最大的值变为接近0.9999的值,此处DCDT显示出它经过了5位移位,最大系数数据为28.49,则调整系数1/G229181对应的Q15小数,如图25所示。

26 模拟和数字化后的补偿器增益曲线

27 模拟和数字化后的补偿器相位曲线


由图26,27所示,可见模拟补偿器和数字补偿器在100k以上有较大的不一致,但是100k以下基本重合,蓝色为双线性变换后的数字化补偿器,红色为模拟补偿器。

28 模拟和数字化的loop增益曲线

29 模拟和数字化的loop相位曲线


由上述环路增益和相位曲线来看,图28,29所示,在低频和中频段数字化增益和相位和模拟的增益和相位曲线较一致,但是高频下数字化曲线(黑色)有一定的下掉,这是因为数字化过程对系统造成一定的相位损失。

图30 数字补偿器和对应的Q15格式数字

图31 最终的数字补偿器AB系数

32 DCDT工具的作用说明

 

总结,通过分析MCU内部对实数的处理方式,重点讨论了Q15的定标方式,然后分析了数字化过程中方便MCU处理所做的一系列的缩放及系数变化措施,最后通过实际计算和DCDT工具计算得到一致的结果,这个结果就可以在MCU中结合数字补偿器的库函数进行运算。


事实上,用户只要能够理解如何设置系统零极点频率,DCDT就可以帮助产生相应的z传递函数的系数,及对应的Q15格式数据,在dsPIC33中去用SMPS控制库执行补偿器,如图32所示。以上对理解数字补偿器的数学变化过程有一定的帮助。


相关文章:

BUCK电路模拟补偿器的数字化过程 

ADC采样效应及相关影响分析

BUCK电路电压模式CCM环路补偿设计及仿真

来源:电源漫谈
科普电源电路控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-19
最近编辑:2年前
仿真秀32093466624
硕士 签名征集中
获赞 89粉丝 74文章 163课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈