永磁同步电机的在线参数辨识仿真模型(二)一一一RLS仿真与实现
作者:互联网
永磁同步电机的在线参数辨识仿真模型一一一RLS(递推最小二乘法)
写在前面
在这篇博客的基础之上,运用RLS对电机的定子电阻R, 永磁磁链ψf, dq轴电感Ls进行辨识。
永磁同步电机的在线参数辨识仿真模型(一)一一一最小二乘法及递推最小二乘法
针对表贴式的永磁同步电机SPMSM进行在线参数辨识:
辨识的参数为: 定子电阻R, 永磁磁链ψf, dq轴电感Ls
主要步骤可如下:
1.建立矢量控制的电机模型
2.确定辨识方法
3.将定子的d-q电压方程转化为辨识方程
4.搭建辨识仿真模型,开始仿真。
1.辨识模型的推导
图2 参数辨识的基本原理
通过电机的基本数学模型对其定子电阻R, 永磁磁链ψf, dq轴电感Ls进行递推最小二乘法辨识,具体推导过程如下:
1.1 d-q轴永磁同步电机基本的数学模型
1.2 辨识模型的建立与推导
首先是将所需要辨识的 定子电阻R, 永磁磁链ψf, dq轴电感Ls提取出来,依据电压方程可改写成矩阵的形式如下:
又由于采取的是双闭环矢量PID控制,且id*=0的矢量控制策略,暂时不考虑电流变化率对辨识稳定性所造成的影响,即整个辨识是建立在系统稳态下进行的,由此式(1.19)又可变形为:
可依据q轴电压方程将其变形为最小二乘的辨识模型,如下:
又或者可参考RLS的递推解:
由此,依据式(1.17)可得递推公式并进行编程,如式(1.24)所示。
2.辨识仿真模型的搭建与分析
2.1辨识仿真模型的搭建
首先搭建双闭环矢量PID控制的Simulink仿真模型,如图3所示。并运用.m文件或者MATLAB/FCN函数进行递推最小二乘法的编程与应用,如图4所示。PMSM的参数设定,如图5所示。最终运行过程下得到三个参数Ls、R和ψf的辨识结果,如表2所示。
图3 双闭环矢量PID控制Simulink仿真图
图4 基于RLS的PMSM在线参数辨识仿真模型
其中,图4中的RLS_ident3 S函数代码如下:
function[sys,x0,str,ts]=RLS_ident3(t,x,u,flag)
theta0=[0.05,0.01,10000]; %被辨识参数的初值,取充分小的实向量
Pn0 =0.0008*eye(3); % 协方差矩阵,取充分大的实数为0.5
% Pn0 =[0.0008*eye(1) 0 0;
% 0 0.0008*eye(1) 0;
% 0 0 1*eye(1)] ;
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes(theta0,Pn0);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case {1,4,9}
sys=[];
otherwise
error(['Unhanded flag=',num2str(flag)]);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function[sys,x0,str,ts]=mdlInitializeSizes(theta0,Pn0)
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=12;
sizes.NumOutputs=3; %% 输出量
sizes.NumInputs=4; %% 输入量
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[theta0';Pn0(:)];% 需要更新的状态向量的初值
str=[];
ts=[-1,0]; % 继承输入信号的采样时间
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function sys=mdlUpdate(t,x,u)
h=[u(1),u(2),u(3)]'; %采集数据
Pn0=reshape(x(4:end),3,3); %从状态变量中分离出p0 去除初始化值Pn0---P(k-1)
K=Pn0*h/(1+h'*Pn0*h); %计算增益矩阵
Pn1=(Pn0-K*h'*Pn0); %计算下一个协方差阵
theta0=x(1:3); %从状态变量中分离出theta0
y=[u(4)];
theta1=theta0+K*(y-h'*theta0); %计算下一个theta
sys=[theta1;Pn1(:)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function sys=mdlOutputs(t,x,u)
a1 =1/x(3); %% 电感Ls
a2 =x(1)/x(3); %% 电阻RS
a3 =x(2)/x(3); %% 磁链flux
% theta1 =x(1:3);
theta1 =[a1 a2 a3];
sys=theta1;
图5 PMSM参数模型设定值
2.2 辨识仿真结果的分析
图6~图8分别为定子电阻R, 永磁磁链ψf, dq轴电感Ls的辨识仿真图以及误差图,可知在稳态的情况下很好的可以达到辨识稳定,且辨识误差不超过10%。在这里值得注意的是dq轴电感Ls通过q轴电压方程设计的递推RLS所辨识误差高达51.16%,而通过d轴电压方程重构其RLS辨识模型,辨识误差得到极大的改善。
图6 定子电阻R的辨识仿真结果及误差图
图7 永磁磁链ψf的辨识仿真结果及误差图
图8 dq轴电感Ls的辨识仿真结果及误差图
图9和图10分别为电角速度和转矩的响应曲线,可知该双闭环矢量PID控制下电机的驱动状态是正常的,且可以很好的进行运转,下一步的工作将参数的在线辨识与控制器的参数整定相结合,从而做到电机的参数自整定。
图9 转速的阶跃响应曲线仿真图
图10 转矩的阶跃响应曲线仿真图
3.总结
1.运用RLS搭建辨识仿真模型,首先需要明确哪些是输入量,哪些是输出量,哪些是估计量,哪些是无关量,进而运用上一篇博客永磁同步电机的在线参数辨识仿真模型(一)一一一最小二乘法及递推最小二乘法进行模型的建立与仿真搭建。
2.利用带遗忘因子的最小二乘法进行IPMSM的参数辨识可以加快收敛速度。并且上述推导过程中未考虑暂态过程下
电流的变化率对参数辨识的影响。具体的设计:在动态算法中引入电流变化率,消除辨识误差的剧烈波动;并对用于更新d轴、q轴电感的增益矩阵K进行修正,减小由于引入电流变化率对电感辨识造成的影响。后续有时间的话,将仿真模型分享出来与详细的推导过程。读者也可以参考《基于改进RLS算法的永磁同步电机参数辨识》。
3.本仿真模型也可以作为SPMSM的参数在线辨识的研究基础,基于此结合其他先进的算法与控制策略进行电机控制性能的改进。
参考资料
[1]R. Ramakrishnan, R. Islam, M. Islam and T. Sebastian, “Real time estimation of parameters for controlling and monitoring permanent magnet synchronous motors,” 2009 IEEE International Electric Machines and Drives Conference, Miami, FL, 2009, pp. 1194-1199, doi: 10.1109/IEMDC.2009.5075355.
[2]林巨广,陈桐.基于改进RLS算法的永磁同步电机参数辨识[J].合肥工业大学学报(自然科学版),2019,42(07):876-880+934.
[3]荀倩,王培良,李祖欣,蔡志端,秦海鸿.基于递推最小二乘法的永磁伺服系统参数辨识[J].电工技术学报,2016,31(17):161-169.
标签:仿真,同步电机,永磁,参数,Pn0,辨识,RLS 来源: https://blog.csdn.net/qq_42249050/article/details/111607012