当前位置:首页 > 技术学院 > 技术前线
[导读]在电力电子系统从模拟控制全面转向数字控制的进程中,数字补偿器是决定整机环路稳定性、动态响应速度和稳态精度的核心环节。结合我们之前讨论过的数字控制外设分辨率优化、SiC高频变换器设计的相关背景,很多工程师在完成连续域模拟补偿器的理论设计之后,直接照搬离散化传递函数就写入MCU运行,最终却发现实际控制效果和仿真结果偏差极大,甚至出现系统振荡失控的问题。

在电力电子系统从模拟控制全面转向数字控制的进程中,数字补偿器是决定整机环路稳定性、动态响应速度和稳态精度的核心环节。结合我们之前讨论过的数字控制外设分辨率优化、SiC高频变换器设计的相关背景,很多工程师在完成连续域模拟补偿器的理论设计之后,直接照搬离散化传递函数就写入MCU运行,最终却发现实际控制效果和仿真结果偏差极大,甚至出现系统振荡失控的问题。

出现这类问题的核心原因,是忽略了从离散域传递函数到最终MCU可执行定点运算代码之间的关键环节——数字补偿器的数值变换过程。这个过程绝非简单的数学运算,它需要结合MCU的硬件特性、数字化链路的额外增益、定点数的表示规则做全流程的针对性适配,才能把理论上的高性能补偿器,转化为实际硬件上可以稳定运行的可执行代码,让数字控制系统的性能真正达到理论设计的预期。

数值变换的前置背景与核心目标

在进入数值变换流程之前,工程师通常已经在连续域完成了模拟补偿器的设计,确定了补偿器的零极点分布和增益参数,随后通过双线性变换等方法完成了连续域到离散域的转换,得到了数字补偿器的Z传递函数。但此时得到的传递函数系数都是任意精度的实数,完全无法直接在资源有限的定点MCU中运行。

定点MCU的硬件特性决定了它只能高效处理整数运算,原生不支持小数的直接计算,如果直接用浮点数来实现补偿器,不仅运算速度会慢数倍,还会占用大量的内存资源,完全无法满足高频SiC变换器数十千赫兹甚至数百千赫兹的控制环路实时性要求。数值变换的核心目标,就是把这些任意精度的实数系数,通过系统化的缩放、移位、规整操作,转化为定点MCU可以高效处理的整数格式,同时尽可能保留原始补偿器的全部动态特性,不引入额外的精度损失和相位偏移。

除此之外,整个数字化控制链路本身还会引入一系列模拟补偿器时代不存在的额外增益,包括采样分压网络的增益、ADC模数转换的增益、PWM输出转换的增益,这些额外增益叠加在一起,会彻底改变原始模拟补偿器设计的环路增益,直接破坏之前在连续域完成的稳定性设计。数值变换过程的另一项核心任务,就是在系数变换的环节同步抵消这些数字化链路的额外增益,保证最终数字环路的增益特性和原始模拟补偿器的设计完全一致,不需要再反复调整控制参数来补偿增益偏差。

定点数表示规则与适配选型

在正式开始数值变换之前,首先要根据所用MCU的硬件位宽,选定最合适的定点数表示格式。以电力电子领域最常用的16位定点MCU为例,行业内普遍采用Q15格式来表示实数,这种格式用1位来表示整数部分,剩下的15位全部用来表示小数部分,可以覆盖从-1到接近1的数值范围,同时能提供非常高的小数精度,刚好可以充分利用16位MCU的全部字长资源,最大化定点运算的精度。

定点数的表示逻辑本质上是通过小数点的位置约定,把小数运算转化为整数运算。比如我们约定小数点放在第15位的左侧,那么所有的小数都可以通过整体左移15位的方式,转化为一个16位的整数来存储和运算。在总位数固定的前提下,整数部分的位数越多,能表示的数值范围就越大,但对应的小数精度就会越低;反过来小数部分的位数越多,精度就越高,但能表示的数值范围就会被压缩。对于数字补偿器这类以小数运算为主的控制算法,优先选择小数位更多的Q格式,是平衡运算范围和精度的最优选择。

在实际工程中,不能直接默认选用Q15格式,要先提前评估补偿器所有系数的数值范围。如果部分系数的绝对值大于1,强行使用Q15格式就会出现数值溢出,导致运算结果完全错误。此时可以根据实际的系数分布,灵活调整Q格式的小数位数,或者对部分大数值的系数做单独的缩放处理,在保证所有系数都不溢出的前提下,尽可能保留最高的小数运算精度。

全流程数值变换的分步实施

完成定点数格式选型之后,就可以进入系统化的数值变换流程,整个过程可以分为三个核心步骤,每一步都对应明确的工程目标。

第一步是数字化链路的额外增益抵消。我们需要先把采样分压、ADC转换、PWM输出这几个环节引入的所有额外增益全部计算出来,得到数字化链路的总增益,再计算出对应的反向抵消系数。如果直接在补偿器的运算链路末尾乘以这个抵消系数,每一次环路运算都要多做一次额外的乘法,既浪费MCU的运算时间,还会引入不必要的精度损失。更高效的做法是把这个抵消系数直接合并到补偿器的分子系数中,只对分子的所有系数统一乘以这个反向增益,分母的系数完全保持不变,这样就可以在不增加任何额外运算的前提下,完全抵消数字化链路的额外增益,保证环路增益和原始模拟设计完全一致。

第二步是系数的整体缩放与移位处理。完成增益抵消之后,我们需要找出所有分子、分母系数中的绝对值最大值,以这个最大值为基准,计算出对应的缩放比例,通过整体左移的方式,把所有系数都压缩到我们之前选定的Q格式的数值范围之内。比如我们选用的是Q15格式,就需要让缩放之后的所有系数的绝对值都小于1,同时让其中最大的那个系数尽可能接近1,这样就能充分利用16位MCU的全部字长资源,把定点运算的精度提升到最高水平。这个步骤的核心原则是,在保证所有系数都不溢出的前提下,尽可能把缩放比例拉到最大,最大化运算精度。

第三步是反缩放逻辑的嵌入。完成系数的定点化之后,补偿器的中间运算结果的数值范围也会跟着整体缩放,为了保证最终输出给PWM的结果数值范围正确,需要在补偿器的输出端加入对应的反缩放逻辑,通过右移操作把运算结果还原到正确的数值区间。这个反缩放的移位操作完全可以和之前的系数缩放步骤对应起来,不需要额外的乘法运算,只需要一次简单的移位操作就能完成,几乎不会占用额外的MCU运算资源。

整个数值变换过程完成之后,所有的补偿器系数都已经转化为16位整数格式,后续MCU运行时,只需要通过定点整数的乘加运算就能完成补偿器的迭代计算,运算速度比浮点数实现快数倍,完全可以满足高频变换器的实时性要求。

工程落地的细节优化与验证

数值变换完成之后,还需要通过一系列工程验证步骤,保证变换后的数字补偿器特性和原始设计完全一致。首先要在仿真环境中,把变换后的定点化补偿器和原始的高精度浮点补偿器放在同一个测试用例下做对比,输入相同的阶跃信号,观察两者的输出波形差异,如果差异在可接受的范围内,就说明数值变换过程没有引入明显的精度损失。

在实际硬件运行时,还要注意定点运算的中间结果溢出防护。16位整数的乘加运算很容易出现中间结果超出16位范围的情况,此时要利用MCU内置的32位累加器资源,把所有的中间运算结果先放在32位累加器中处理,最后再统一做移位截断,避免中间步骤的溢出导致运算错误。部分先进的数字信号控制器还内置了饱和运算功能,当运算结果超出数值范围时,会自动钳位到最大值,从硬件层面避免溢出导致的控制异常,进一步提升数字补偿器的运行可靠性。

作为连接理论设计和实际硬件的关键桥梁,数字补偿器的数值变换过程,本质上是在有限的硬件资源下,通过系统化的工程方法,尽可能完整保留理论控制算法性能的核心环节。做好这个环节的优化,才能让数字控制的电力电子系统真正实现比模拟控制更优的动态性能和稳态精度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭