Simulink实现RELS递推最小二乘算法
目录
一. 算法推导
二. RELS公式
1. 增益矩阵
2. 协方差矩阵
3. 参数更新
三. RELS参数辨识应用实例——PMSM参数辨识
一. 算法推导
详见递推最小二乘法推导.pdf
二. RELS公式
1. 增益矩阵
λ为遗忘因子矩阵,一般为0.95-1,若取1则为RLS(不带遗忘因子的递推最小二乘法);
模型搭建:
注意乘除法模块都应该在模块参数中选择矩阵;
2. 协方差矩阵
模型搭建:
协方差矩阵的初值不能为0,一般可设为单位阵I;
3. 参数更新
三. RELS参数辨识应用实例——PMSM参数辨识
PMSM电机绕组的电学方程(dq坐标系下):
想要辨识Ld、Lq、Rs,将方程变形:
写成矩阵形式:
为了实现建模,将公式离散化(导数进行差分):
那么观测值和带估计参数就都清晰了:已经写成了Y=HX的形式了。
这里仿真的输入采用的是DeepSeek生成的数据:
Rs_true = 0.5; % 定子电阻 (Ω)
Ld_true = 0.01; % d轴电感 (H)
Lq_true = 0.015; % q轴电感 (H)
psi_f = 0.1; % 永磁磁链 (Wb)
np = 4;
% 极对数
% 生成时间序列
t = 0:0.001:1;
N = length(t);
% 1秒仿真,1kHz采样率
% 注入激励信号(正弦+阶跃,保证参数可辨识)
id_ref = 0.5 * sin(2*pi*10*t);
iq_ref = 2 * (t > 0.2) - 1;
we = 100 * (t > 0.5);
% d轴电流激励 (10Hz正弦)
% q轴电流激励(阶跃变化)
% 电角速度 (rad/s),0.5秒后加速
% 生成电压方程(忽略反电势,简化问题)
vd = Rs_true * id_ref - we * Lq_true * iq_ref;
vq = Rs_true * iq_ref + we * (Ld_true * id_ref + psi_f);
仿真模型如下:
(RELS公式部分已省略,模型同上)
最终结果: