永磁同步电机参数辨识+最小二乘原理

本文介绍了最小二乘法的基本原理及其在电机参数辨识中的应用,包括常规、递推和RLS方法,以及结合遗忘因子的版本。详细推导了电阻、磁链、电感和转动惯量等参数的辨识方程,并通过电机参数辨识仿真实例验证了算法的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学习过程的记录。

1、引言

最小二乘法(Least Square, LS)大约是1795年高斯在其著名的星体运动轨道预报研究工作中提出的。后来,最小二乘法成为了估计理论的基石。最小二乘法由于原理简明、收敛较快、易于编程实现等特点,在系统参数估计中应用相当广泛。
在自适应控制系统中,被控对象通常都可以不断提供新的输入输出数据,而且还希望利用这些新的信息来改善估计精度,因此常常要求对象参数能够在线实时估计。解决这个问题的方法就是采用最小二乘算法的递推算法,其基本思想可以概括为:
在这里插入图片描述

2、最小二乘法原理

在这里插入图片描述
在这里插入图片描述
下面考虑线性参数的最小二乘法处理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、最小二乘法估计与参数辨识

3.1 常规最小二乘法

在这里插入图片描述在这里插入图片描述

3.2 递推最小二乘法

在这里插入图片描述

在这里插入图片描述

3.3 递推最小二乘法RLS结合遗忘因子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 总结

在这里插入图片描述

4、电阻和磁链参数辨识方程详细推导

4.1 表贴式电机

注:我的原文做了很多公式推导,这里只给精炼部分的公式,所以公式序号有点乱,之间从式(21)开始。
在这里插入图片描述
在这里插入图片描述

4.2 内嵌式电机

在这里插入图片描述
在这里插入图片描述

5、电感参数辨识方程详细推导

在这里插入图片描述
在这里插入图片描述

6、转动惯量、阻尼系数及负载转矩辨识

在这里插入图片描述

7、参数辨识仿真

7.1 模型总览

模型下载地址:永磁同步电机递推最小二乘法电机参数辨识Simulink仿真模型
在这里插入图片描述

7.2 电机及系统参数

Rs=0.6;
Ld=1.4e-3;
Lq=1.4e-3;
flux=0.034182;
J=1.1e-5;
B=1e-3;
pole=1;
fx=0.02;
speed_kp=0.028885;
speed_ki=3.8891;
speed_Ba=0.00093819;

7.3 参数辨识模块

在这里插入图片描述
这里有一点需要说明的是,按照原理没有得到很准备的转动惯量,将理论值输入和负载值加入是可以得出理论值的,这里没想通什么原因,后面解决了在更新。

  • 电阻和磁链辨识
function [F,R] = RLS_R_Phi(uq,we,iq)

%定义永久变量
persistent P_K_1 X_K_1
%判断永久变量是否已访问过,第一次进行参数初始化
if isempty(P_K_1),            P_K_1=1e4*eye(2);  end
if isempty(X_K_1),            X_K_1=[0 0]';  end

%遗忘因子lambda 0.9-1 
%lambda小,说明求解时会很快先前的数据,更注重当前的数据,但求解的值波动会更大
%lambda大,说明求解时会依然会考虑一部分先前的数据,求解的波动更小,更平滑
lambda=1;

%定义输入矩阵
phi=[we iq]';

%定义观测矩阵
y=uq;

%计算增益
K=P_K_1*phi/(lambda*eye(1)+phi'*P_K_1*phi);

%计算协方差
P_K=(eye(2)-K*phi')*P_K_1/lambda;

%更新数据
X_K=X_K_1+K*(y-phi'*X_K_1);

%保存当前时刻数据,下次备用
P_K_1=P_K;
X_K_1=X_K;

%提取结果
F=X_K(1);
R=X_K(2);

end
  • 电感辨识
function L = RLS_L(ud,we,iq)

%定义永久变量
persistent P_K_1 X_K_1 P_K X_K
%判断永久变量是否已访问过,第一次进行参数初始化
if isempty(P_K_1),            P_K_1=1e6*eye(1);  end
if isempty(X_K_1),            X_K_1=[0]';  end

%遗忘因子lambda 0.9-1 
%lambda小,说明求解时会很快先前的数据,更注重当前的数据,但求解的值波动会更大
%lambda大,说明求解时会依然会考虑一部分先前的数据,求解的波动更小,更平滑
lambda=1;

%定义输入矩阵
phi=[-we*iq]';

%定义观测矩阵
y=ud;

%计算增益
K=P_K_1*phi/(lambda*eye(1)+phi'*P_K_1*phi);

%计算协方差
P_K=(eye(1)-K*phi')*P_K_1/lambda;

%更新数据
X_K=X_K_1+K*(y-phi'*X_K_1);

%保存当前时刻数据,下次备用
P_K_1=P_K;
X_K_1=X_K;

%提取结果
L=X_K(1);

end
  • 转动惯量及阻尼系数辨识
function [J,B] = RLS_J_B(delta_wm,wm,Tm)

%定义永久变量
persistent P_K_1 X_K_1 P_K X_K
%判断永久变量是否已访问过,第一次进行参数初始化
if isempty(P_K_1),            P_K_1=1e4*eye(2);  end
if isempty(X_K_1),            X_K_1=[0.0001 0]';  end

%遗忘因子lambda 0.9-1 
%lambda小,说明求解时会很快先前的数据,更注重当前的数据,但求解的值波动会更大
%lambda大,说明求解时会依然会考虑一部分先前的数据,求解的波动更小,更平滑
lambda=0.9;

%定义输入矩阵
phi=[delta_wm wm]';

%定义观测矩阵
y=[Tm]';

%计算增益
K=P_K_1*phi/(lambda*eye(1)+phi'*P_K_1*phi);

%计算协方差
P_K=(eye(2)-K*phi')*P_K_1/lambda;

%更新数据
X_K=X_K_1+K*(y-phi'*X_K_1);

%保存当前时刻数据,下次备用
P_K_1=P_K;
X_K_1=X_K;

%提取结果
J=X_K(1);
B=X_K(2);

end

这里将负载转矩作为已知输入,另外为了验证脚本正确性,使用真实值磁链计算了输出转矩Te,从而得到相对稳定的转动惯量和阻尼系数,若使用观测的磁链误差相对很大,因此对系统的稳定性要求较高,在实际情况下还需要考虑死区补充的问题。

7.4 仿真结果

在这里插入图片描述
辨识结果:
在这里插入图片描述
磁链辨识波形(空载)
在这里插入图片描述磁链辨识波形(加载)

在这里插入图片描述电阻辨识波形(空载)
在这里插入图片描述
电阻辨识波形(加载)
在这里插入图片描述
仿真结果显示在加载的情况,参数辨识基本正确,从而一定程度上验证了算法的正确性。

参考

【1】电机仿真系列-基于最小二乘法的永磁同步电机参数辨识:
https://blog.csdn.net/c85759351/article/details/120966164?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170964619216800213054610%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=170964619216800213054610&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-120966164-null-null.142v99pc_search_result_base5&utm_term=%E6%B0%B8%E7%A3%81%E5%90%8C%E6%AD%A5%E7%94%B5%E6%9C%BA%E5%8F%82%E6%95%B0%E8%BE%A8%E8%AF%86&spm=1018.2226.3001.4187
【2】带你深入掌握最经典的最小二乘法:https://www.bilibili.com/video/BV1cv411M7wd/?spm_id_from=333.999.0.0&vd_source=8af6a0e6ffe9eaf216d5b3c382a1ee56
【3】线性回归之最小二乘法公式推导和原理介绍:https://blog.csdn.net/weixin_42364196/article/details/102964407
【4】卡尔曼滤波(1)–递归最小二乘(RLS)推导过程:
https://zhuanlan.zhihu.com/p/59532437
【5】递推最小二乘法推导(RLS)——全网最简单易懂的推导过程:
https://zhuanlan.zhihu.com/p/111758532
【6】递推最小二乘法(Recursive least square, RLS)详细推导:https://blog.csdn.net/qq_39645262/article/details/125691638
【7】递归最小二乘法与参数辨识:
https://www.bilibili.com/video/BV1Xs4y1Q74U/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=5f570a9f261c43941608688d2d31a4c5
【8】参数辨识最小二乘法——永磁同步电机矢量控制课题拓展:
https://blog.csdn.net/sy243772901/article/details/109342696
【9】基于递推遗忘最小二乘的永磁同步电机参数辨识:
https://blog.csdn.net/haloudama/article/details/133259025
【10】带遗忘因子的递推最小二乘法推导(C++实现)
https://blog.csdn.net/qq_34288751/article/details/130276796
【11】交流永磁同步电机的惯量辨识:
https://blog.csdn.net/jiushigedidi/article/details/127840992
【12】李文涛. 基于高频方波注入永磁同步电机无位置传感器控制技术研究[D].中国矿业大学,2021.DOI:10.27623/d.cnki.gzkyu.2020.000444.

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hlpinghcg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值