4、状态空间平均法:从推导到实战

状态空间平均法,这个名字听起来挺唬人的。说白了,它就是把一个开关变换器这种时变系统,用一个连续的平均模型来近似。为什么要这么做?因为咱们做环路设计时,需要的是连续、线性的传递函数,而不是一堆开关波形。

我个人习惯把这种方法叫做“开关变换器的翻译器”——它把开关动作翻译成连续系统能懂的语言。今天咱们就把它掰开揉碎,看看怎么推导,怎么用在Buck上,以及DCM和CCM到底差在哪。

4.1 状态空间平均法的核心思想

先问一个问题:一个Buck变换器,开关管导通和关断时,电路结构一样吗?

不一样。对吧?导通时是一个二阶电路,关断时是另一个二阶电路。这就是时变系统的麻烦——每个开关周期内,系统在两个子拓扑之间来回切换。

状态空间平均法的思路很简单:

  • 写出每个子拓扑的状态方程
  • 按占空比加权平均
  • 得到一个连续的平均模型

嗯,这里要注意:平均的前提是开关频率远高于系统带宽。如果开关频率只有10kHz,你要建模的环路带宽是5kHz,那平均法就不太靠谱了。

核心假设:开关频率 >> 系统自然频率。一般要求至少高一个数量级。

4.2 状态空间平均法的推导步骤

推导过程其实就四步,我当年学的时候总觉得复杂,后来发现只要按部就班走,一点都不难。

  1. 写出子拓扑的状态方程

    开关导通时:

    dx/dt = A₁·x + B₁·u
    y = C₁·x + E₁·u

    开关关断时:

    dx/dt = A₂·x + B₂·u
    y = C₂·x + E₂·u
  2. 加权平均

    设占空比为d,则平均状态方程为:

    dx/dt = [d·A₁ + (1-d)·A₂]·x + [d·B₁ + (1-d)·B₂]·u
    y = [d·C₁ + (1-d)·C₂]·x + [d·E₁ + (1-d)·E₂]·u
  3. 求稳态工作点

    令dx/dt = 0,解出稳态值X、U、Y。

  4. 小信号扰动线性化

    在稳态点附近加入小扰动,忽略高阶项,得到小信号模型。

我的经验:第四步最容易出错。扰动时别忘了占空比d本身也是变量,要同时考虑d̂的影响。我曾经在这个坑里爬了三天才出来。

4.3 CCM下的Buck变换器建模

咱们拿Buck变换器开刀。CCM模式下,电感电流连续,两个子拓扑都很规整。

先选状态变量。我习惯用电感电流iL和输出电压vo作为状态变量,输入是输入电压vin。

子拓扑1(开关导通,二极管截止):

diL/dt = (vin - vo) / L
dvo/dt = (iL - vo/R) / C

子拓扑2(开关截止,二极管续流):

diL/dt = -vo / L
dvo/dt = (iL - vo/R) / C

加权平均后:

diL/dt = (d·vin - vo) / L
dvo/dt = (iL - vo/R) / C

稳态时,令导数为零:

V_o = D · V_in
I_L = V_o / R

嗯,这不就是咱们熟悉的Buck公式吗?

小信号模型呢?我直接给结果:

Gvd(s) = V_in · (1 + s·R_c·C) / (s²·L·C + s·(L/R + R_c·C) + 1)

这里Rc是电容的ESR。实际项目中,ESR会在高频引入一个零点,对环路补偿影响很大。

注意:上面的传递函数忽略了电感DCR和开关管导通电阻。如果要做精确建模,这些寄生参数不能省。我曾经在一个48V转12V的项目中,因为没考虑电感DCR,算出来的穿越频率和实测差了30%。

4.4 DCM下的建模差异

DCM模式就有点意思了。电感电流会降到零,多了一个“电感电流为零”的子拓扑。

你想想看,CCM是两个子拓扑,DCM是三个子拓扑。但状态空间平均法还能用吗?

能用,但要小心。

DCM的三个子拓扑:

  • 阶段1:开关导通,电感电流上升
  • 阶段2:开关截止,电感电流下降(但还没到零)
  • 阶段3:电感电流为零,负载由电容供电

加权平均时,占空比d₁和d₂都要考虑。而且d₂不是独立的,它由电路参数决定:

d₂ = (2·L·I_o) / (d₁·V_in·T_s)

这里Ts是开关周期。你看,d₂和负载电流Io有关,这就导致DCM的小信号模型比CCM复杂得多。

DCM下Buck的传递函数:

Gvd_DCM(s) = G_dc · (1 - s·L/R) / (1 + s·R·C)

注意看,DCM的传递函数是一阶的!为什么?因为电感电流在每个周期都归零,电感不再存储能量,系统降阶了。

对比项 CCM DCM
子拓扑数量 2个 3个
系统阶数 二阶 一阶(近似)
传递函数形式 二阶系统,有共轭极点 一阶系统,单极点
右半平面零点 无(Buck) 有(轻载时明显)
建模复杂度 中等 较高

关键差异:DCM下系统降阶,但多了一个右半平面零点。这个零点在轻载时会让相位滞后,补偿起来要格外小心。

4.5 状态空间平均法的知识体系

下面这张图是我自己整理的,把整个状态空间平均法的脉络画清楚了。你看一眼就能知道每一步在做什么。

状态空间平均法知识体系 状态空间平均法知识体系 开关变换器(时变系统) 子拓扑分解(导通/关断/断续) 写出各子拓扑状态方程 按占空比加权平均 稳态工作点求解 小信号扰动线性化 传递函数 / 环路设计 适用条件 • 开关频率 >> 系统带宽 • 小信号扰动假设 • 连续导通/断续导通 CCM vs DCM • CCM:二阶系统 • DCM:一阶系统 • DCM有RHP零点

4.6 实战中的避坑指南

做了这么多年电源设计,我用状态空间平均法踩过的坑不少。分享几个典型的:

  • 忽略寄生参数:我曾经在一个5V/2A的Buck设计中,直接用理想模型算补偿,结果实测相位裕度只有25度。后来加上ESR和DCR,模型才和实测对上。
  • DCM下的右半平面零点:轻载时这个零点会跑到低频,如果不处理,环路很容易振荡。我建议在DCM下用Type III补偿,把零点提前抵消掉。
  • 平均模型的有效频率范围:状态空间平均法在1/5开关频率以下才准确。超过这个范围,要考虑采样效应和延迟。

重要提醒:状态空间平均法得到的模型,一定要用仿真或实测验证。我见过太多人算完传递函数就直接画补偿,结果板子调不通。记住:模型是工具,不是真理。