基于模型参考自适应(MRAS)的 PMSM 无速度传感器方案

一、总体思路(先对齐概念)

模型参考自适应(Model Reference Adaptive System, MRAS) 的核心思想:

  • 参考模型:不含转速,仅由可测电压、电流、已知电机参数构成
  • 可调模型:显式包含转速 ωr
  • 自适应律:根据两模型的状态误差,调节 ω̂r,使误差 → 0

对 PMSM,最常用的是 基于反电动势(Back-EMF)的 MRAS


二、PMSM 在 αβ 坐标系下的数学模型(核心)

1、电压方程(表面式 / 内嵌式通用)

\[\begin{aligned} u_\alpha &= R_s i_\alpha + \frac{d\psi_\alpha}{dt} \\ u_\beta &= R_s i_\beta + \frac{d\psi_\beta}{dt} \end{aligned}\]

磁链方程:

\[\begin{bmatrix} \psi_\alpha \\ \psi_\beta \end{bmatrix} = \begin{bmatrix} L_s & 0 \\ 0 & L_s \end{bmatrix} \begin{bmatrix} i_\alpha \\ i_\beta \end{bmatrix} + \begin{bmatrix} \psi_f \cos\theta_e \\ \psi_f \sin\theta_e \end{bmatrix}\]

其中:

  • (\(L_s = L_d = L_q\))(表贴 PMSM)
  • (\(\theta_e = \int \omega_e dt = p\int \omega_r dt\))

2、反电动势表达式(MRAS 关键)

对磁链求导并代入电压方程,可得:

\[\begin{aligned} e_\alpha &= -\omega_e \psi_f \sin\theta_e = \psi_f \omega_r p (-\sin\theta_e) \\ e_\beta &= \omega_e \psi_f \cos\theta_e = \psi_f \omega_r p \cos\theta_e \end{aligned}\]

于是:

\[\mathbf{e}_{\alpha\beta} = \begin{bmatrix} e_\alpha \\ e_\beta \end{bmatrix} = \omega_r \begin{bmatrix} -\psi_f p \sin\theta_e \\ \psi_f p \cos\theta_e \end{bmatrix}\]

反电动势正比于转速** → 天然适合做 MRAS。


三、MRAS 结构(参考模型 vs 可调模型)

参考模型(不含 ωr)

从实测电压电流反推磁链(电流模型 → 电压模型):

\[\frac{d}{dt} \begin{bmatrix} \hat{\psi}_\alpha \\ \hat{\psi}_\beta \end{bmatrix} = \begin{bmatrix} u_\alpha - R_s i_\alpha \\ u_\beta - R_s i_\beta \end{bmatrix}\]

这是纯积分器模型,只依赖可测量。


可调模型(含 ω̂r)

\[\begin{bmatrix} \hat{\psi}_\alpha \\ \hat{\psi}_\beta \end{bmatrix} = L_s \begin{bmatrix} i_\alpha \\ i_\beta \end{bmatrix} + \begin{bmatrix} \psi_f \cos\hat{\theta}_e \\ \psi_f \sin\hat{\theta}_e \end{bmatrix}\]

其中:

\[\frac{d\hat{\theta}_e}{dt} = \hat{\omega}_e = p\hat{\omega}_r \]


四、自适应律设计(Popov 超稳定定理)

定义误差:

\[\mathbf{\varepsilon} = \begin{bmatrix} \varepsilon_\alpha \\ \varepsilon_\beta \end{bmatrix} = \begin{bmatrix} \psi_\alpha - \hat{\psi}_\alpha \\ \psi_\beta - \hat{\psi}_\beta \end{bmatrix}\]

1、比例–积分自适应律

\[\hat{\omega}_r = K_p (\varepsilon_\alpha e_\beta - \varepsilon_\beta e_\alpha)K_i \int (\varepsilon_\alpha e_\beta - \varepsilon_\beta e_\alpha) dt \]

物理意义:

  • 误差 × 反电动势 → 转速修正
  • PI 保证稳态无静差

2、稳定性保证

只要满足:

\[\eta(0,t) = \int_0^t \mathbf{\varepsilon}^T \mathbf{W} dt \ge -\gamma_0^2 \]

PI 自适应律天然满足,无需复杂证明(论文可直接引用)。


1、MRAS 转速观测器函数(MATLAB Function)

%% mras_speed_estimator.m
function [wr_hat, theta_hat] = mras_speed_estimator(...
    u_alpha, u_beta, i_alpha, i_beta, ...
    Rs, Ls, psi_f, p, Ts, Kp, Ki)

persistent psi_alpha_int psi_beta_int
persistent int_error
persistent theta

if isempty(psi_alpha_int)
    psi_alpha_int = 0;
    psi_beta_int  = 0;
    int_error     = 0;
    theta         = 0;
end

% ---- 参考模型(电压模型)----
psi_alpha_ref = psi_alpha_int + Ts*(u_alpha - Rs*i_alpha);
psi_beta_ref  = psi_beta_int  + Ts*(u_beta  - Rs*i_beta);

% ---- 可调模型(电流 + 磁链模型)----
psi_alpha_adj = Ls*i_alpha + psi_f*cos(theta);
psi_beta_adj  = Ls*i_beta  + psi_f*sin(theta);

% ---- 误差 ----
eps_alpha = psi_alpha_ref - psi_alpha_adj;
eps_beta  = psi_beta_ref  - psi_beta_adj;

% ---- 反电动势估计(简化)----
e_alpha = -psi_f * sin(theta) * p;
e_beta  =  psi_f * cos(theta) * p;

% ---- 自适应律(PI)----
error = eps_alpha * e_beta - eps_beta * e_alpha;
int_error = int_error + Ts * error;

wr_hat = Kp*error + Ki*int_error;

% ---- 角度积分 ----
theta = theta + Ts * p * wr_hat;

% ---- 更新积分状态 ----
psi_alpha_int = psi_alpha_ref;
psi_beta_int  = psi_beta_ref;
end

2、主仿真脚本(验证 MRAS)

%% main_mras_pmsm.m
clear; clc; close all;

% === PMSM 参数 ===
Rs = 0.2; Ls = 8.5e-3; psi_f = 0.175; p = 4;
J = 0.01; B = 0.001;

% === MRAS 参数 ===
Kp = 120; Ki = 800;
Ts = 1e-4; T = 0.5;
t = 0:Ts:T; N = length(t);

% === 激励(阶跃负载 + 变速)===
wr_cmd = [ones(1,N/2)*100, ones(1,N/2)*150]; % rpm
Te = zeros(1,N); Tl = 0.5;

% === 初始化 ===
i_alpha = 0; i_beta = 0;
wr_hat = zeros(1,N); theta_hat = zeros(1,N);
wr_true = zeros(1,N);

for k = 1:N
    % 真实电机(简化机械模型)
    Te(k) = 2.5*i_beta;   % 简化转矩
    dw = (p*(Te(k)-Tl) - B*wr_true(k)) / J;
    wr_true(k) = wr_true(max(1,k-1)) + Ts*dw;

    % 电压给定(FOC 解耦后)
    u_alpha = 50*cos(p*wr_true(k)*t(k));
    u_beta  = 50*sin(p*wr_true(k)*t(k));

    % MRAS 观测
    [wr_hat(k), theta_hat(k)] = mras_speed_estimator(...
        u_alpha, u_beta, i_alpha, i_beta, ...
        Rs, Ls, psi_f, p, Ts, Kp, Ki);

    % 电流更新(简化)
    di = (u_alpha - Rs*i_alpha - psi_f*wr_true(k)*sin(theta_hat(k)))/Ls;
    i_alpha = i_alpha + Ts*di;
end

%% === 绘图 ===
figure('Color','white','Position',[100 100 1000 400])
subplot(1,2,1)
plot(t, wr_true*30/pi, 'b', t, wr_hat*30/pi, 'r--','LineWidth',1.2)
legend('真实转速','MRAS 估计')
xlabel('Time (s)'); ylabel('Speed (rpm)'); grid on

subplot(1,2,2)
plot(t, wr_true*30/pi - wr_hat*30/pi)
xlabel('Time (s)'); ylabel('Speed Error (rpm)'); grid on
title('估计误差')

参考代码 基于无速度传感器建立的PMSM的模型自参考模型 www.youwenfan.com/contentcnw/82686.html

六、工程调参经验

参数 影响 建议
Kp 动态响应 从 50→200 扫,看超调
Ki 稳态精度 Ki ≈ Kp²/4(典型 II 型)
纯积分 直流漂移 一阶低通 代替纯积分
启动 零速失效 启动时给 开环 I/f 拉转

七、MRAS 与 SMO / EKF 对比

方法 低速性能 计算量 参数敏感
MRAS(反电动势) 中(>5 Hz) 最小
滑模 SMO
EKF
高频注入 极低速/零速 IPM 更适合
posted @ 2026-07-06 20:23  我是一只小小鸟~  阅读(57)  评论(0)    收藏  举报