大家好,我是电源漫谈,前述文章,改善电源数字控制相位裕量的方法 ,通过介绍改变反馈信号触发位置改善相位裕量的方法,本文基于上次实验来探讨Power Smart DCLD中不同的缩放模式带来的影响。
众所周知,控制器设置是精度和性能的折衷,如果增加数字空间,那么控制精度将会增加,但是增加精度后,需要更多的CPU指令去计算控制器。比较幸运的是,当增加开关频率时,补偿器的滤波器系数会变小,所以当CPU负载限制变的紧张时可以使用更高效的缩放模式。
在Power Smart DCLD工具中,为了系统解决这些性能折衷,为每一个控制器配置了四种不同的缩放模式,接下来我们就分别讨论一下不同的缩放模式的特性。
单位移模式
单位移模式,可以在使用定点DSP Core时提供最高的性能,此时他们将所有的系数使用相同的缩放因子,这个缩放因子可以通过位移操作来实现,在大多数标准拓扑应用下是可行的。
带输出因子缩放的单位移模式
在使用单定点缩放时,环路可能会受到精度限制影响,在最差的情况下可能会破坏数字卷积过程,从而影响误差积分。在这个缩放模式下,通过增加一个额外的系数,来对所有系数进行重新缩放最小化系数的舍入误差。
双移位缩放模式
带输出因子缩放的单位移模式可能会有一些缺点,尤其是数字滤波器的系数A和系数B范围变化较大时,这时候就可以使用双移位模式,就是数字滤波器的系数A和系数B使用不同的缩放因子,一个给A系数,另一个给B系数,双移位缩放模式的性能和单移位带输出因子缩放的方法具有类似的性能。
快速的浮点系数缩放
采用快速浮点模式缩放时,每一个系数都有自己的缩放因子,这样可以最大化数字的精度。快速浮点模式具有重新排序的二进制编码,以此改善定点DSP计算过程,这个浮点格式在所有模式中最精确,但是会耗费比较多的CPU计算周期,格式如图1所示。
图1 快速浮点格式的数字编码
上述32位二进制编码中,低16位表示缩放因子,而高16位表示小数部分,其中最高位是符号位。
这里我们举一个例子,比如7.965702247619620这个数据,若编码为快速浮点模式时,需要考虑到小数是一个Q15格式的数据,Q15可以达到的数据范围如图2所示。
图2 16位Q15格式的数据范围
因此受限于定点DSP的浮点表示范围,那么被处理的数据7.965702247619620这个数据需要通过移位达到Q15的范围,通过位移缩放,我们将它处理为Q15的范围内的数据,具体在CPU中通过移位来实现2的次方的乘除法,左移一位表示乘以2,右移一位表示除以2,在单CPU周期中都可以实现。
对于被处理的数据,很明显我们可以通过右移位3次得到Q15数据,0.995712780952453,这个数字是小于Q15的最大值0.999969482421875的,每一个位移操作内容存储在低16位中,后续可以使用这个信息解码。
一般来说,我们推荐先采用最基本的单位移模式,观察输出窗口的系数是否有较大误差的警告出现,会以黄色显示,如果有更大的误差出现,会出现红色报错。如果有任何告警出现,那么就可以通过增加缩放模式的复杂度来解决,同时需要注意观察CPU的负载情况,计算执行时间,及计算时序等。
图3 系数计算输出窗口
如图3所示的窗口中,Scaled Float为移位后的小数数据,而Fractional表示Q15数据所能表示的最接近的数据,同时Power Smart DCLD 还会给出计算误差精度FP Error。
结论,在使用定点DSP去处理数字补偿器系数时,多种缩放模式可以提供不同的精度的数据处理,带来非常大的灵活性。
参考文档:PowerSmart DCLD User Guide