Jiles–Atherton parameters
46 次查看(过去 30 天)
显示 更早的评论
How can I calculate Jiles-Atherton parameters. What will be the equations and how to write them in MATLAB code. can anyone give me code or suggestions?
1 个评论
Rik
2022-2-3
I don't think this is a Matlab problem yet. Would you be able to explain with pen and paper how to do it? You need to explain the actual Matlab problem, otherwise you reduce the number of people who can help you to only those who understand this specific problem as well.
回答(1 个)
Anshuman
2024-1-29
Hi Ananta, the core equations of the Jiles-Atherton model describe the relationship between the magnetization ( M ), the applied magnetic field ( H ), and the anhysteretic magnetization ( M_a ). The Jiles-Atherton model parameters are:
- ( M_s ): Saturation magnetization
- ( a ): Exchange coupling constant
- ( k ): Anisotropy constant
- ( c ): Magnetization reversal constant
- ( alpha ): Parameter representing losses due to eddy currents and other effects
To calculate the Jiles-Atherton parameters, you typically perform a nonlinear curve fitting to experimental data. This can be done using MATLAB's optimization toolbox, specifically the "lsqcurvefit" function or similar. Here's a sample code of how you might set this up in MATLAB:
% Experimental data (H: applied magnetic field, M_exp: measured magnetization)
H = [...]; % Applied magnetic field vector
M_exp = [...]; % Measured magnetization vector
% Initial guesses for Jiles-Atherton parameters
params0 = [Ms0, a0, k0, c0, alpha0];
% Define the Jiles-Atherton model equation as a function
JA_model = @(params, H) ... % Implement the Jiles-Atherton equations here
% Set options for the fitting algorithm
options = optimoptions('lsqcurvefit', 'Display', 'iter', 'Algorithm', 'trust-region-reflective');
% Perform the curve fitting to find the best parameters
[params_fit, resnorm, residual, exitflag, output] = lsqcurvefit(JA_model, params0, H, M_exp, [], [], options);
% Extract the fitted parameters
Ms_fit = params_fit(1);
a_fit = params_fit(2);
k_fit = params_fit(3);
c_fit = params_fit(4);
alpha_fit = params_fit(5);
This is a general outline of how you can calculate Jiles-Atherton parameters using MATLAB.
1 个评论
Simon Gans
2025-2-18,9:25
Hello. I do not think that the provided algorithm will do any good when estimating the parameter values of the Jiles-Atherton model, because the model itself consists of only one differential equation which has 5 parameters in it which have somewhat of a physical meaning. And the optimization function has many local minima so most "local" solvers just find the minimum of the cost function that is nearest to them which is very improbable to be the true global minimum.
There are some options, like the particle swarm optimization method (Link) which has been used succesfully for such problems. Any of the default optimization methods that resemble gradient descent are completely useless.
Hope this helps :)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Problem-Based Optimization Setup 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!