基于模型参考自适应(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 自适应律天然满足,无需复杂证明(论文可直接引用)。
五、MATLAB/Simulink 实现
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 更适合 |

浙公网安备 33010602011771号