PI控制标幺处理

标幺

在电力电子中使用PI控制器计算占空比时进行标幺处理,主要是为了**实现控制器的通用化、简化设计过程、

提高代码的可读性和可移植性,并增强系统的鲁棒性。下面我们从几个层面来详细解释为什么要这么做。


1. 问题的根源:物理量与控制量的不匹配

首先,我们要理解PI控制器在数字控制系统中是如何工作的。

*   **输入**: PI控制器的输入通常是误差信号,比如电压误差 `V_err = V_ref - V_fb`。这个误差是一个

物理量,单位是伏特。

*   **输出**: PI控制器的输出,在电压模式控制中,直接是**占空比** `D`。占空比是一个**无量纲**的比值,

范围通常在0到1(或0%到100%)之间。

如果我们直接进行运算,PI控制器的公式为:

D = Kp * V_err + Ki * ∫(V_err) dt


这里会出现几个问题:

*   **比例系数 Kp 的量纲**: `Kp` 的量纲是 `1/V`(因为 `Kp * V` 必须得到一个无量纲的D)。这很不直观。

*   **积分系数 Ki 的量纲**: `Ki` 的量纲是 `1/(V * s)`。这更加奇怪。

*   **数值范围差异巨大**:

    *   误差信号 `V_err` 可能是几伏特(例如,12V系统,误差在0.1V量级)。

    *   占空比 `D` 必须在0~1之间。

    *   如果 `Kp` 和 `Ki` 设计不当,很容易导致输出饱和(D>1或D<0),或者响应极其缓慢。

2. 标幺化如何解决这个问题?

标幺化的核心思想是:**将所有物理量都转化为与其基准值的比值,从而变成无量纲的“标幺值”。

在电力电子控制中,我们通常为关键变量设定一个“满量程”或“基值”,并用ADC的位数来表示。

**标幺化过程:**

(1)**信号采集(AD转换)**:

    *   假设我们使用一个12位的ADC去采样输出电压。ADC的量程是0~3.3V,对应的数字量是0~4095。

    *   我们为输出电压设定一个“电压基值” `V_base`,比如它是ADC量程3.3V,对应我们关心的最大输出电压。

    *   那么,任何一个物理电压 `V_actual` 转换成的数字量 `ADC_value`,其标幺值 `V_pu` 为:

        V_pu = ADC_value / (2^12) = ADC_value / 4095

    *   这样,**实际的物理电压(例如0V~20V)就被归一化到了0~1之间的标幺值**。参考电压 `V_ref` 也同样

         被表示为标幺值。

(2) **PI控制器运算**:

    *   现在,PI控制器的输入是标幺化的误差 `V_err_pu`,输出是标幺化的占空比 `D_pu`。

    *   PI公式变为:D_pu = Kp_pu * V_err_pu + Ki_pu * ∑(V_err_pu)

    *   **注意**: 这里的积分项在离散系统中是累加和 `∑`。

    *   此时,Kp_pu 和 Ki_pu 都是**无量纲**的纯数字。因为输入和输出都是标幺值。


(3)**输出(PWM模块)**:

    *   PWM模块的输入通常是一个与计数器比较的寄存器值(如CCR)。如果PWM计数器也是12位(0~4095)

    那么标幺化的占空比 D_pu 直接乘以PWM的周期值(如4095),就得到了CCR寄存器的值。

    *   CCR_value = D_pu * (PWM_Period)


3. 标幺化处理的核心优势

现在我们可以看到标幺化的巨大好处:

(1)控制器参数无量纲化,物理意义清晰**:

    *   Kp_pu 和 Ki_pu 不再与具体的物理单位(伏特、安培)绑定。它们只代表控制器的“刚度”和“消除静

差的速度”。

    *   这使得控制器的设计和调试变得**通用化**。一套调试好的PI参数,在更换了功率等级不同的电路(比如从

1kW换到3kW,只要控制结构相同)后,很有可能无需大改就能工作,因为系统动态被标幺值“拉平”了。


(2)天然防止饱和,简化限幅设计**:

    *   由于所有的信号(电压、电流、占空比)都被归一化到0~1(或者-1~1)附近,控制器的输出 D_pu 也自

然地落在合理的范围内。

    *   你可以非常方便地设置输出限幅,比如 D_min_pu = 0.05, D_max_pu = 0.95,这比去计算对应的物理

电压或CCR值要直观得多。


(3)数值稳定性好,利于定点数处理**:

    *   在微处理器(尤其是定点DSP或MCU)中,浮点数运算可能较慢或占用资源多。标幺化后,所有变量都可

以用Q格式(例如Q15)等定点数格式来表示,极大地提高了计算效率和确定性。

    *   避免了在运算过程中出现极大值和极小值相乘除导致的数值溢出或精度丢失问题。


(4) 代码可读性和可移植性极强**:

    *   代码中出现的都是 V_pu, I_pu, D_pu, Kp_pu 这样的变量,一看就知道是标幺值,便于工程师理解和

维护。

    *   将代码从一个项目移植到另一个项目时,只需要根据新项目的ADC量程、PWM周期等重新定义基值,而PI

控制器内核的代码和参数几乎可以原封不动地复制过去。


举例说明

假设一个Buck电路,输入20V,输出要稳定在12V。

*   **不标幺**:

    *   误差 V_err = 12V - V_fb。

    *   你调出一组参数 Kp = 0.02, Ki = 1。这两个数怎么来的?很难解释。而且如果换个15V输出的系统,这

组参数可能完全失效。


*   **标幺化**:

    *   设定电压基值 V_base = 20V(对应ADC最大值)。

    *   参考电压标幺值 V_ref_pu = 12 / 20 = 0.6。

    *   反馈电压也被转换为 V_fb_pu。

    *   你调出一组参数 Kp_pu = 0.5, Ki_pu = 50。

    *   这组参数描述的是系统闭环的响应速度(如带宽、相位裕度),它与绝对的电压值脱钩了。如果同一个拓扑

的电路输出改为15V(`V_ref_pu = 0.75`),这组参数大概率依然能提供良好的动态性能。


总结

在电力电子PI控制中进行标幺处理,本质上是一种**工程上的最佳实践**。它通过归一化的方法,将控制系统从具

体的、繁杂的物理世界中**抽象**出来,变成一个纯粹的、无量纲的数学问题。这样做极大地降低了系统设计、参

数整定、代码实现和维护的复杂度**,是连接理论控制算法与实际工程应用的一座关键桥梁。



下一篇: 没有了