4. 电机MPC的数学建模

模型预测控制(MPC)在电机驱动中的核心思想,是用一个可预测的数学模型,在有限时域内滚动求解最优电压矢量。要让MPC真正可用,第一步不是写优化器,而是把电机“翻译”成控制器能计算的状态空间形式。本节围绕四个关键环节展开:连续状态空间建模、离散化、预测方程推导,以及约束条件的数学表达。

一、核心原理:从电机方程到状态空间

以表贴式永磁同步电机(SPMSM)为例,在dq旋转坐标系下,忽略铁损与磁路饱和,电压方程可写为:

ud = Rs·id + Ld·did/dt - ωe·Lq·iq
uq = Rs·iq + Lq·diq/dt + ωe·Ld·id + ωe·ψf

其中 Rs 为定子电阻,Ld、Lq 为dq轴电感,ωe 为电角速度,ψf 为永磁体磁链。若取状态变量 x = [id, iq]ᵀ,输入 u = [ud, uq]ᵀ,扰动项包含 ωe 与 ψf 的耦合,则连续状态空间模型为:

dx/dt = A·x + B·u + E·d
A = [-Rs/Ld,  ωe·Lq/Ld;
     -ωe·Ld/Lq, -Rs/Lq]
B = [1/Ld, 0; 0, 1/Lq]
E = [0; -ωe·ψf/Lq]

这个模型是MPC的“心脏”。它把电流动态、反电动势耦合和参数影响全部显式表达出来,使控制器能够预测未来若干步的电流响应。

二、离散化方法:让模型适配数字控制器

实际控制器在固定采样周期 Ts 下运行,因此必须将连续模型离散化。常用方法有三种:

  • 前向欧拉法:x(k+1) = x(k) + Ts·(A·x(k) + B·u(k)),计算简单,但 Ts 较大时精度下降。
  • 后向欧拉法:x(k+1) = (I - Ts·A)⁻¹·(x(k) + Ts·B·u(k)),稳定性更好,适合刚性系统。
  • 零阶保持(ZOH)精确离散:Ad = e^(A·Ts),Bd = ∫₀^Ts e^(A·τ)·B dτ,精度最高,但需矩阵指数运算。

在电机MPC中,若 Ts 为 50~100 μs,前向欧拉法通常已足够;若追求高精度或 Ts 较大,建议采用ZOH离散。离散后的模型统一写为:

x(k+1) = Ad·x(k) + Bd·u(k) + Ed·d(k)
y(k)   = C·x(k)
离散化不是“数学装饰”,它直接决定预测精度。若离散模型与真实电机偏差过大,MPC会出现稳态误差或振荡。

三、预测方程推导:从一步到N步

MPC的核心是“预测未来”。以预测时域 Np、控制时域 Nc(通常 Nc ≤ Np)为例,从当前时刻 k 出发,递推可得:

x(k+1|k) = Ad·x(k) + Bd·u(k) + Ed·d(k)
x(k+2|k) = Ad²·x(k) + Ad·Bd·u(k) + Bd·u(k+1) + ...
...
x(k+Np|k) = Ad^Np·x(k) + Σ Ad^(Np-i)·Bd·u(k+i-1) + ...

将上述递推写成矩阵形式,得到紧凑预测方程:

Y = F·x(k) + Φ·U + Ψ·D

其中 Y 为未来Np步输出序列,U 为待优化电压序列,F、Φ、Ψ 由 Ad、Bd、Ed 构造。目标函数通常取电流跟踪误差与控制量增量的加权平方和:

J = Σ ||y(k+i|k) - y_ref(k+i)||²_Q + Σ ||Δu(k+i)||²_R

该二次型问题可转化为标准QP形式,由在线求解器在每个采样周期内求解。

四、约束条件表达:让控制量“守规矩”

电机MPC必须考虑物理约束,否则求解出的电压可能超出逆变器能力。常见约束包括:

约束类型数学表达物理含义
电压幅值约束ud² + uq² ≤ Udc²/3受母线电压与SVPWM线性调制区限制
电流幅值约束id² + iq² ≤ Imax²保护功率器件与电机绕组
电压增量约束|Δud| ≤ ΔUmax,|Δuq| ≤ ΔUmax限制电压变化率,抑制电流冲击
状态约束x_min ≤ x(k+i|k) ≤ x_max限制电流、转速等状态变量范围

在QP求解器中,这些约束统一写成线性不等式形式:

A_ineq·U ≤ b_ineq

例如电压圆约束可近似为多边形约束,或直接采用二阶锥约束。若采用显式MPC,还可将约束分区离线计算,在线仅做查表与插值。

常见误区:把约束写成“软约束”却不设惩罚权重,导致求解器为满足约束而牺牲跟踪性能;或忽略电压圆约束,使实际输出电压被限幅,预测模型与真实系统失配。

五、案例与复盘:一个完整的建模流程

以一台额定功率 1.5 kW 的SPMSM为例,参数为 Rs = 0.5 Ω,Ld = Lq = 5 mH,ψf = 0.1 Wb,Udc = 300 V,Ts = 100 μs。建模步骤如下:

  1. 列写dq电压方程,确定 A、B、E 矩阵。
  2. 采用前向欧拉法离散,得到 Ad、Bd、Ed。
  3. 设定 Np = 10,Nc = 3,构造预测矩阵 F、Φ、Ψ。
  4. 定义目标函数权重 Q = diag(1,1),R = 0.01·I。
  5. 加入电压圆约束与电流幅值约束,形成QP问题。
  6. 在MATLAB/Simulink中搭建仿真,对比PI与MPC的电流阶跃响应。

复盘时重点关注:离散化误差是否导致稳态偏差;预测时域是否覆盖电流主要动态;约束是否过紧导致无可行解。若出现无解,可引入松弛变量,将硬约束转为软约束,并在目标函数中加入松弛惩罚项。

建模质量决定MPC上限。状态空间模型、离散化、预测方程与约束表达四者环环相扣,任何一环失配,都会在实机验证中表现为电流纹波增大、动态变慢或系统失稳。
电机MPC数学建模流程 ① 连续状态空间 dx/dt = Ax + Bu + Ed dq电压方程 → A,B,E ② 离散化 x(k+1)=Ad·x+Bd·u+Ed·d 欧拉 / ZOH ③ 预测方程 Y = F·x + Φ·U + Ψ·D Np步递推 → 矩阵形式 ④ 约束 电压圆 电流限 二次规划 QP 求解器 min J = Σ||y - y_ref||²_Q + Σ||Δu||²_R s.t. A_ineq·U ≤ b_ineq 最优电压序列 U* = [ud*, uq*] 仅施加第一步 → 滚动优化 电机 + 逆变器 电流采样 → 状态更新 x(k+1) 反馈校正 约束条件 ud²+uq² ≤ Udc²/3 id²+iq² ≤ Imax² |Δu| ≤ ΔUmax x_min ≤ x ≤ x_max 关键参数 Ts = 100 μs Np = 10 Nc = 3 Q=diag(1,1), R=0.01I