一、动态逆JA模型(B为时间函数)
(一) 概述
由于实际工程应用中,变压器等设备的激励都是电压,根据法拉第电磁感应定律,电压激励与磁感应强度有关,因此,需要建立以磁感应强度B为输入,磁场强度为输出的逆JA模型.
关键点1:
我们假设
B
=
B
m
s
i
n
(
2
π
f
t
)
B=B_msin(2\pi f t)
B=Bmsin(2πft) 从而 编程得到 以这样一个以时间t为自变量的磁通密度的函数为输入逆JA模型。与静态JA模型不同的是,静态JA模型中是直接输入的离散的B的序列,而动态JA模型中则是以时间t的离散序列输入进而得到的离散的B的关于时间t的离散序列。在程序中这样一个思路可以由以下代码实现:
对以时间t为函数的B离散化,然后对其进行插值进而得到一系列B关于时间离散的点:
ft=linspace(0,5/4/f,1000);
Bl=Bm.*sin(2*pi*f.*ft);
B=interp1(ft,Bl,t);
关键点2:
关于静态JA模型改为动态JA模型,我参考的文献为:
Dynamic Loss Inclusion in the Jiles–Atherton (JA) Hysteresis Model Using the Original JA Approach and the Field Separation Approach
文献中介绍了静态变为动态的两种方法:
A: Original JA Approach-Based Inverse Dynamic Model (在静态JA方程推导过程中的能量平衡方程引入涡流项和异常损耗项)
B: Field Separation-Based Inverse Dynamic JA Model(在损耗统计理论的能量平衡方程的基础上求导进而得到场的关系,如下式)
H
e
=
H
+
α
M
−
(
H
e
d
d
y
+
H
a
n
o
m
)
H_e=H+\alpha M-(H_{eddy}+H_{anom})
He=H+αM−(Heddy+Hanom)
本程序采用的则是基于场分离方法的动态逆JA模型,本质上就是对原静态JA模型中的有效场进行替换.
关键点3:
对于静态中有效场的推导,也应根据
B
=
μ
0
(
M
+
H
)
B=\mu_0(M+H)
B=μ0(M+H)的关系推导得到:
H
e
=
B
/
μ
0
+
(
α
−
1
)
∗
M
He=B/\mu_0 +(\alpha-1)*M
He=B/μ0+(α−1)∗M
关键点4:
程序中求解H或者B序列应该与试验数据相同
(二)程序实现:
构建动态JA模型:dMdB_dyn.m
function result=dMdB_dyn_0(a,k,c,alpha,Ms,Bm,f,t,M)
ft=linspace(0,5/4/f,1000);
Bl=Bm.*sin(2*pi*f.*ft);
B=interp1(ft,Bl,t);
dBl=Bm.*2.*pi.*f.*cos(2.*pi.*f.*ft);
dB=interp1(ft,dBl,t);
%-----------------------------------------------------------------------------------------
V0=-0.3333; %剩余损耗系数 实际中应该由公式,通过实验数据拟合得到;
%-----------------------------------------------------------------------------------------------
miu0=4*pi*1e-7;d=30e-6;G=0.1357;sigma=1e8/130;S=24.066e-6; % 分别为试验对象的一些物理参数,由不同材料的具体参数确定,miu0:真空磁导率;d:带材厚度;G:一般都取这个;simga:电导率;S:叠片横截面积;
He=B./miu0+(alpha-1).*M;
Hed=sigma.*d^2./12.*dB;
Hex=sign(dB).*sqrt(sigma*G*S*V0).*(abs(dB).^0.5);
Hdyn=He-(Hed+Hex);
Malpha=Mah_iso(a,Ms,Hdyn);
dM1 = (Malpha-M);
delta=sign(dB);
if sign(dB)>0
dM1(dM1<0)=0;
end
if sign(dB)<0
dM1(dM1>0)=0;
end
dM2=c*delta*k.*dMah_iso(a,Ms,Hdyn); %
dM3=miu0.*((1-alpha).*(dM1+dM2)+k*delta);
result=(dM1+dM2)./dM3.*dB; %返回得到以B为输入量的dM/dB=f(B(t),M(t))的动态逆JA模型的微分返程表达式,只需要调用龙格库塔方法对其进行求解即可
end
%-------------------------------------------------------------------------%'
function result = Mah_iso(a,Ms,He) #与静态一样,就是返回无磁滞磁化强度Man
if (max(size(a))>1 || max(size(Ms)>1))
fprintf('\n*** ERROR in Mah_iso: a or Ms is not a scalar. ***\n');
return;
end
if (Ms==0) || (a==0)
result=zeros(size(He));
return;
end % of if
i=(He==0); % find singularities for He==0
He(i)=1; % remove singularities
result=Ms.*(coth(He./a)-(a./He)); % calculate anhysteretic, isotropic magnetization #无磁滞磁化强度Man
result(i)=0; % correct values for singularities
end % of function
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function result = dMah_iso(a,Ms,He) % 就是得到dMan/dHe
result=(Mah_iso(a,Ms,He+1e-6)-Mah_iso(a,Ms,He-1e-6))./2e-6; % value of numerical differentiation 用导数的增量式来求导,而不是导数公式!!!!
end % of function
%---------------------------------------------------------------------------
%---------------------------------------------------------------------------
对新的动态逆JA模型进行求解,返回得到一系列的(H,B)
function [H,B]=JA_dyn_0(Bm,f,a0,k0,c0,alpha0,Ms0)
miu0=4*pi*1e-7;
% a=19.9;k=6.703406727;c=0.19;alpha=6.9e-5;Ms=830000;
% Bm=0.3;f=10;
tspan=[0 5/4/f];M0=0;
opts = odeset('RelTol',1e-8,'AbsTol',1e-8,"MaxStep",1e-5,"InitialStep",1e-5);
dM_dB=@(t,M) dMdB_dyn_0(a,k,c,alpha,Ms,Bm,f,t,M);
[t,M]=ode45(dM_dB,tspan,M0,opts);
B=Bm*sin(2.*pi.*f.*t);
H=B./miu0-M;
end
对得到的(H,B)用plot画图即可:
plot(H,B,"r-")
下图为 B=0.88 Tf=100Hz的动态JA模型结果:
: 2755-2757.
[2] BAGHEL A P S, KULKARNI S V. Dynamic Loss Inclusion in the Jiles–Atherton (JA) Hysteresis Model Using the Original JA Approach and the Field Separation Approach[J/OL]. IEEE Transactions on Magnetics, 2014, 50(2): 369-372.
[3] 赵越. J-A磁滞模型的仿真与实验研究[D/OL]. 华北电力大学(北京), 2019.
采用智能优化算法对磁滞模型参数进行辨识,该放法语静态方法原理相同,方法将在静态模型的章节补充(已经更新)。