1. PMSM数学模型建立与参数辨识

任务目标

建立表贴式永磁同步电机(SPMSM)在dq旋转坐标系下的电压方程与磁链方程,并基于直流注入法与静止脉冲电压法,辨识定子电阻Rs、d/q轴电感Ls和转子磁链ψf。本案例聚焦参数辨识的算法实现与仿真验证,不涉及实际硬件电流环调试。

数学模型

在dq坐标系下(d轴与转子磁极对齐),SPMSM的电压方程与磁链方程为:

u<sub>d</sub> = R<sub>s</sub>·i<sub>d</sub> + L<sub>s</sub>·(di<sub>d</sub>/dt) − ω<sub>e</sub>·L<sub>s</sub>·i<sub>q</sub>
u<sub>q</sub> = R<sub>s</sub>·i<sub>q</sub> + L<sub>s</sub>·(di<sub>q</sub>/dt) + ω<sub>e</sub>·(L<sub>s</sub>·i<sub>d</sub> + ψ<sub>f</sub>)

其中ωe为电角速度。稳态(di/dt=0)且转子锁定(ωe=0)时,方程退化为纯电阻模型,这是直流注入法的辨识基础。

辨识原理与实现

电阻辨识:向d轴注入直流电压Ud,转子锁定,待电流稳定后读取id,则Rs = Ud/id。

电感辨识:转子锁定,施加短时脉冲电压Upulse,记录电流上升斜率Δi/Δt。忽略电阻压降时,Ls ≈ Upulse/(Δi/Δt)。

磁链辨识:转子以恒定电角速度ωe旋转,q轴电流控制为0,d轴电流为0,此时q轴电压uq = ωe·ψf,故ψf = uq/ωe。

关键完整代码(Python仿真验证)

import numpy as np

# 电机真实参数(用于生成仿真数据)
Rs_true = 2.5      # 欧姆
Ls_true = 0.008    # 亨利
flux_true = 0.175  # 韦伯

def simulate_dc_resistance():
    """直流注入法辨识电阻:转子锁定,d轴加直流电压"""
    U_d = 5.0  # 注入电压(V)
    i_d_steady = U_d / Rs_true  # 稳态电流
    Rs_est = U_d / i_d_steady
    return Rs_est

def simulate_pulse_inductance():
    """脉冲电压法辨识电感:转子锁定,短脉冲测电流斜率"""
    dt = 0.001          # 采样周期(s)
    U_pulse = 10.0      # 脉冲电压(V)
    i_prev = 0.0
    # 模拟电流上升(忽略电阻,纯电感特性)
    di = (U_pulse / Ls_true) * dt
    i_now = i_prev + di
    Ls_est = U_pulse / (di / dt)
    return Ls_est

def simulate_backemf_flux():
    """反电动势法辨识磁链:转子恒速旋转,q轴电流为0"""
    omega_e = 100.0     # 电角速度(rad/s)
    u_q = omega_e * flux_true  # q轴电压测量值
    flux_est = u_q / omega_e
    return flux_est

# 执行辨识
Rs_est = simulate_dc_resistance()
Ls_est = simulate_pulse_inductance()
flux_est = simulate_backemf_flux()

print(f"电阻辨识结果: {Rs_est:.3f} Ω (真实值 {Rs_true} Ω)")
print(f"电感辨识结果: {Ls_est:.5f} H (真实值 {Ls_true} H)")
print(f"磁链辨识结果: {flux_est:.4f} Wb (真实值 {flux_true} Wb)")

# 验证误差
assert abs(Rs_est - Rs_true) < 1e-6, "电阻辨识失败"
assert abs(Ls_est - Ls_true) < 1e-6, "电感辨识失败"
assert abs(flux_est - flux_true) < 1e-6, "磁链辨识失败"
print("全部辨识误差 < 1e-6,验证通过")

运行与验证

  1. 保存代码为 pmsm_param_id.py,运行 python pmsm_param_id.py。
  2. 程序输出三种参数的辨识值与真实值对比。
  3. 通过条件:辨识值与真实值误差小于1e-6,且断言语句无异常抛出。
PMSM参数辨识流程 阶段1:电阻辨识 转子锁定,d轴加直流 R = U_d / i_d 阶段2:电感辨识 转子锁定,脉冲电压 L = U / (Δi/Δt) 阶段3:磁链辨识 恒速旋转,q轴电流=0 ψ = u_q / ω_e 输出:R_s, L_s, ψ_f 辨识值 与真实值对比,误差 < 1e-6 即通过 辨识前提:转子位置已知(需要编码器或观测器) 实际应用中需多次测量取平均以抑制噪声

常见问题

  • 电阻辨识误差大:确保转子完全锁定,且电流已进入稳态(等待时间 > 5·L/R时间常数)。
  • 电感辨识受电阻影响:脉冲宽度应远小于L/R时间常数,使电阻压降可忽略。
  • 磁链辨识需速度稳定:转速波动会直接引入误差,建议使用速度闭环或多次采样取平均。