![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1605906/image.png)
How to find Jiles Atherton Parameters in non-linear reluctance from simulink?
15 views (last 30 days)
Show older comments
I am working to create the B-H curve using Jiles-Atherton Model. I found that the simulink has the build-in block for that named nonlinear reluctance (attached Image 1). But inside the block, there I find exactly three parameters (alpha, c, k). There are other parameters inside but I could not understand which are the remaining two parameters (Ms and a) (attached Image 2). Has anybody can give me the idea on that? ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/994990/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/994990/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/994995/image.png)
0 Comments
Answers (1)
Jaynik
on 1 Feb 2024
Hi Ananta,
The documentation page for the "Nonlinear Reluctance" block mentions that we can set the parameters "K", "alpha" and "c". For the parameters "a" and "Ms", the documentation provides an equation given below.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1605906/image.png)
You need to set the values of "bhg" that is the "Anhysteretic B-H gradient when H is zero", "flux_density" that is the "flux density point on anhysteretic B-H curve" and "Heff" that is the "corresponding field strength" in the block parameters. Then you can take an initial guess for "a" using "Heff" and iteratively find "Ms" by convergence based on a predefined error threshold.
Here is a sample code snippet to get started with determining "a" and "Ms" but you can use your own technique too:
a = 0.1*Heff; % Initial guess
max_iter = 100; % Set the maximum iterations to stop
number_of_iter = 0;
not_converged = true;
error = 0.0001; % error for convergence
while not_converged && number_of_iter < max_iter
Ms = ((flux_density/mu0-Heff)/(coth(Heff/a)-a/Heff)); % Check wikipedia for Jiles–Atherton model
a = Ms/(bhg/mu0 - 1)/3; % For H = 0
number_of_iter = number_of_iter + 1;
if abs(Ms - ((flux_density/mu0-Heff)/(coth(Heff/a)-a/Heff))) < error*Ms % Checking error for convergence
not_converged = 0;
end
end
This code uses formula from the documentation of "Nonlinear Reluctance" block and the wikipedia page of the Jiles-Atherton model. You can find the page here: https://en.wikipedia.org/wiki/Jiles-Atherton_model
You can also check this documentation to visualize the relationship between these parameters and the B-H curve for better understanding: https://www.mathworks.com/help/sps/ug/inductor-with-hysteresis.html
Hope this helps!
0 Comments
See Also
Categories
Find more on Magnetic Elements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!