三相永磁同步电机模型预测电流控制(MPCC)。

最近在研究永磁同步电机控制,发现模型预测电流控制(MPCC)这玩意儿有点意思。传统PI控制虽然稳如老狗,但遇到参数变化或者动态响应要求高的时候,总感觉差点意思。MPCC就像个预言家,提前算好未来几步的操作,直接挑个最优解,这思路确实骚。

先说预测模型的核心——电机状态方程。用个离散化的电压方程表示电流变化:

def predict_current(id_k, iq_k, vd, vq, Ts, Rs, Ld, Lq, lambda_m):
    id_next = (1 - Rs*Ts/Ld)*id_k + (Lq/Ld)*omega_e*Ts*iq_k + (vd/Ld)*Ts
    iq_next = (1 - Rs*Ts/Lq)*iq_k - (Ld/Lq)*omega_e*Ts*id_k + (vq/Lq)*Ts - (lambda_m*omega_e/Lq)*Ts
    return id_next, iq_next

这里Ts是采样时间,lambdam是永磁体磁链。注意Ld和Lq这两个电感参数,表贴式电机这俩差不多,内置式电机得分开处理。代码里那个omegae是电角速度,得从编码器或者观测器搞来。

代价函数才是灵魂所在:

# 代价函数计算
def cost_function(id_ref, iq_ref, id_pre, iq_pre, v_used):
    error_d = id_ref - id_pre
    error_q = iq_ref - iq_pre
    return error_d**2 + error_q**2 + 0.01*(v_used**2)  # 最后项是电压抑制项

平方误差看着普通,但后面那个电压抑制项才是精髓。不加的话控制器可能会选个电压跳变的矢量,加了能让开关频率稳定点。这个0.01的系数得试,大了影响动态,小了镇不住高频抖动。

三相永磁同步电机模型预测电流控制(MPCC)。

实际跑起来得遍历所有电压矢量:

# 电压矢量集合,这里用最简单的两电平逆变器7个基本矢量
voltage_vectors = [
    [0, 0],
    [2/3*Vdc, 0],
    [1/3*Vdc, np.sqrt(3)/3*Vdc],
    [-1/3*Vdc, np.sqrt(3)/3*Vdc],
    [-2/3*Vdc, 0],
    [-1/3*Vdc, -np.sqrt(3)/3*Vdc],
    [1/3*Vdc, -np.sqrt(3)/3*Vdc]
]

# 遍历所有电压矢量找最优
min_cost = float('inf')
best_vector = voltage_vectors[0]
for vec in voltage_vectors:
    vd, vq = vec
    id_pre, iq_pre = predict_current(id_now, iq_now, vd, vq, Ts, Rs, Ld, Lq, lambda_m)
    current_cost = cost_function(id_ref, iq_ref, id_pre, iq_pre, np.sqrt(vd**2 + vq**2))
    if current_cost < min_cost:
        min_cost = current_cost
        best_vector = vec

这个暴力搜索看着蠢,但实际运行时每个控制周期也就7次计算,现在STM32都能轻松hold住。注意Vdc要实时测量,不然母线电压波动会翻车。

调参有三板斧:

  1. 预测步长别超过采样周期1/5,否则预测结果跟实际差太远
  2. 电压权重系数从0.001开始试,示波器看电流纹波和开关频率折中
  3. 参数不准的话,在代价函数里加个参数辨识项,比如加个(estLd - realLd)^2这种惩罚项

实测时候发现个坑:当转速接近极限时,预测模型可能算出来需要超过逆变器输出能力的电压,这时候得加个电压前馈补偿。或者更骚的操作是在代价函数里把不可达的矢量直接排除。

最后说个骚操作——用查表法替代实时计算。把常见工作点的最优矢量提前算好存成二维表,运行时直接查表。实测能让计算时间砍掉一半,适合老古董DSP。不过这方法在过调制区可能翻车,得做好安全边界。

反正MPCC这玩意儿就像炒菜,火候(参数)掌握好了比PI控制香,但千万别迷信理论模型,示波器+电流探头才是亲爹。下次有机会聊聊怎么用卡尔曼滤波做无感MPCC,那才是真·刺激战场。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐