Jiles–Atherton parameters
46 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ANANTA BIJOY BHADRA
el 2 de Feb. de 2022
Comentada: Simon Gans
el 18 de Feb. de 2025 a las 9:25
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 comentario
Rik
el 3 de Feb. de 2022
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.
Respuestas (1)
Anshuman
el 29 de En. de 2024
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 comentario
Simon Gans
el 18 de Feb. de 2025 a las 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 :)
Ver también
Categorías
Más información sobre Problem-Based Optimization Setup en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!