Specifying a demagnetization curve of a permanent magnet

Thread index  |  Previous thread  |  Next thread  |  Start a new discussion

RSS FeedRSS feed   |   Email notificationsTurn on email notifications   |   19 Replies   Last post: September 20, 2015 3:10pm UTC
Johan Gustafsson

Johan Gustafsson

February 14, 2011 4:58pm UTC

Specifying a demagnetization curve of a permanent magnet

Hi all,

I use the magnetic fields interface (AC/DC module) to simulate a magnetic system with permanent magnets and soft iron parts.

Currently I use the "remanent flux density" constitutive relation (B = mu0 * mur * H + Br) for the permanent magnet domain of the model, with Br=constant and mur=1.

However, I have realized that this is likely not a sufficiently accurate model of the permanent magnet. I have attached a demagnetization plot (J vs. H) of our magnet with the load line marked, and I think that I need to include the complete curve and not just the specifying a value for the remanent flux density as the intrinsic flux density is highly dependent on the field strength.

The magnetic fields interface solve my model for the magnetic vector potential, A, as the dependent variable. In this case, I believe, that I need to express the material properties as functions of the magnetic flux density B, to avoid a circular variable definition (e.g. the permeability, mur, of the soft iron parts is specified as a functions of the magnetic flux density, B).

My question is: How can I specify the demagnetization curve of the permanent magnet in my model?

Thanks in advance,
Johan Gustafsson

Attachments:   demagnetization_plot.PNG  

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Ivar Kjelberg

Ivar Kjelberg

February 14, 2011 8:28pm UTC in response to Johan Gustafsson

Re: Specifying a demagnetization curve of a permanent magnet

Hi

It has also puzzled me that there are no magnets defined in the material library, I agree today most hard magnets have more or less a constant B-H relationship in their normal operation range.

You have the "soft iron with/out losses" that saturates, that is one example, not too different from the magnet (apart from the quadrant for operation).

I'm also interested to hear what are the conclusions to have a good example available, pls keep us infored ;)

--
Good luck
Ivar

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Johan Gustafsson

Johan Gustafsson

February 22, 2011 12:04pm UTC in response to Ivar Kjelberg

Re: Specifying a demagnetization curve of a permanent magnet

Hi,

I got some help from the support, and it appears to work fine! This is how I did:

Define an interpolation function:

HofB(B)

from the B-H curve (the normal curve, not the intrinsic curve), where the H-field is defined as a function of the B-field (the inverse of the usual B-H curve. Use linear extrapolation.

Create a separate Ampere’s Law for the magnet domain and specify anisotropic relative permeability.

If the magnet is magnetized in x-direction specify the following diagonal relative permeability tensor:

murxx = mf.Bx/(mu0_const*HofB(mf.Bx))
muryy = murzz = 1
murxy = 0

If Br is in the negative x-direction use:

murxx = mf.Bx/(mu0_const*-HofB(-mf.Bx))

Because this material model (relative permeability) attains mur = B/(mu0*H), I will get the correct result on the B-H curve for Hx(Bx), and Br and Hc will be correct as they are inherently on the B-H curve.

It is easy to specify another coordinate direction for the magnetization. A general direction requires a rotational transform of the tensor (which is a bit tricky).

Regards,
Johan

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Jose Perez

Jose Perez

September 1, 2011 11:09am UTC in response to Johan Gustafsson

Re: Specifying a demagnetization curve of a permanent magnet

Hej Johan,

I would like to add the demagnetization curve to my simulations as well. I have tried to implent it as you described it in the post. Unfortunately I am getting an error message.

Would you mind checking out the attached file?

B.R;

J. José

Attachments:   demag_curve.mph  

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

brockap3

brockap3

November 18, 2011 3:34pm UTC in response to Johan Gustafsson

Re: Specifying a demagnetization curve of a permanent magnet

Would you please attach an example of what you've explained here? Also how does this run a BH loop? Is it only the demagnetization portion of the curve? Thanks for the info.
Brock

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Cesare Tozzo

Cesare Tozzo
COMSOL Employee
Italy

August 5, 2013 1:45pm UTC in response to Jose Perez

Re: Specifying a demagnetization curve of a permanent magnet


Would you mind checking out the attached file?


(A user pointed me to this posting). About the non-converging model, it is enough to specify an initial value (e.g. "Az" equalls to "y") and the model solve (even thogh I guess the BH curve value could be not appropriate).

Modeling of hysteresis can start from this method, but need further elaboration which depends from the actual case. Then different method (as Jiles Atherton) could be more appropriate. It strongly depends from the need.

Bye

Cesare

Reply  |  Reply with Quote  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

August 5, 2013 9:40pm UTC in response to Cesare Tozzo

Re: Specifying a demagnetization curve of a permanent magnet

Hi,

Following Cesare advice I have the model working.
but I have the same error if I try to change mu matrix and I cannot deal with the initial value of A.

Moreover I try to solve the model with the magnetic flux, in the same way but adding a "zero potential" condition on the external boundary box, but it says

"undefined value found in the stiffness matrix comsol
mod1.mfnc.murxx
geometry 1
domain 2 "

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Cesare Tozzo

Cesare Tozzo
COMSOL Employee
Italy

August 6, 2013 9:05am UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

In a mfnc (default ID name for "magnetic fields no current") simulation you do not have at all. There you have (solve for) .
In mf (default ID name for "magnetic field" - then possibly with currents) simulation you solve for .
(just for clarity I remember what I mean for and which are defined in our documentation and )
For your problem, Francesco, which is unrelated to this thread, I will answer from support.
B.R.
Cesare

Reply  |  Reply with Quote  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

August 6, 2013 9:17am UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

hi again,

I'm not able to understand why I have to set:
1) murxx = mf.Bx/(mu0_const*HofB(mf.Bx)) (Br in positive x-direction)
muryy = murzz = 1
murxy = 0
INITIAL VALUE Az = y

2) murxx = mf.Bx/(mu0_const*-HofB(-mf.Bx)) (Br is negative x-direction)
INITIAL VALUE Az = -y

3) muryy = mf.By/(mu0_const*HofB(mf.By)) (Br is positive y-direction)
murxx = murzz = 1
murxy = 0
INITIAL VALUE Az = -x

4) muryy = mf.By/(mu0_const*-HofB(-mf.By)) (Br is negative y-direction)
INITIAL VALUE Az = x

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

August 6, 2013 9:21am UTC in response to Cesare Tozzo

Re: Specifying a demagnetization curve of a permanent magnet


In a mfnc (default ID name for "magnetic fields no current") simulation you do not have at all. There you have (solve for) .
In mf (default ID name for "magnetic field" - then possibly with currents) simulation you solve for .
(just for clarity I remember what I mean for and which are defined in our documentation and )
For your problem, Francesco, which is unrelated to this thread, I will answer from support.
B.R.
Cesare


I read you answer after my last post.
Anyway, it is clear what you said, but how to solve the problem with mfnc?

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Cesare Tozzo

Cesare Tozzo
COMSOL Employee
Italy

August 6, 2013 9:52am UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

In mfnc problems (sorry do not have time now to enter in details why - standard topic in our courses) you are required to use BH curve in the form of BofH and not HofB. The same apply when specifying instead; it has to be function of H. This does not prevent the fact that probably you need to specify an initial value for as the problem will be non-linear.

Reply  |  Reply with Quote  |  Report Abuse

Nabhiraj Yalagoud

Nabhiraj Yalagoud

September 15, 2015 6:27am UTC in response to Johan Gustafsson

Re: Specifying a demagnetization curve of a permanent magnet

Dear Johan,
Where can I find some details about the "diagonal relative permeability tensor" that you have mentioned in your replies. Also I would like to know where to find out details of some functions that are used in COMSOL such as mf.Bx or mf. By etc. etc.

I wish to use two types of magnets in my design one has Br of 1.47 T and Hcj of 955kA/m and other has Br of 1.18 and Hcj of 2465 kA/m. How do you model these two magnets in the same model. I am working on design of halbach hexapole where i wish to use these to types. can you please suggest me the best way to go about this problem?

with Kind regards,
Nabhiraj

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

September 15, 2015 12:04pm UTC in response to Nabhiraj Yalagoud

Re: Specifying a demagnetization curve of a permanent magnet




I wish to use two types of magnets in my design one has Br of 1.47 T and Hcj of 955kA/m and other has Br of 1.18 and Hcj of 2465 kA/m. How do you model these two magnets in the same model. I am working on design of halbach hexapole where i wish to use these to types. can you please suggest me the best way to go about this problem?




Hi Nabhiraj,

I did something similar for a quadrupoles.
First of all I use the mfnc module. I define two interpolation functions "Global definition -> functions -> interpolations"
As Data source I chose "table" and I put the BH curve data of the magnetic material, you can find the BH curve on the web if you don't have it.
Thick "define inverse function" and use linear interpolation and extrapolation.
Then I define a variable named modM = ((BofH(mfnc.normH)/(mu0_const))-mfnc.normH) which represents the magnetization module.
You need to define two of them, like modM2=((BofH2(mfnc.normH)/(mu0_const))-mfnc.normH) for the second material

Finally define a magnetic flux density law for each magnet and in the constitutive relation chose "magnetization" and give your variable to each block with the proper angle if you need.

Cheers
Francesco


Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Nabhiraj Yalagoud

Nabhiraj Yalagoud

September 16, 2015 12:20pm UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

Hi Francesco,
Thanks a lot for so quick reply.
I shall try these suggestions you have posted. Do you have any examples so that i can follow them?
what is this "modM = ((BofH(mfnc.normH)/(mu0_const))-mfnc.normH)" Where can I find some details regarding this type of functions?
I shall try your suggestions and get back to you with doubts if any.

thanks
Nabhiraj

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

September 16, 2015 4:36pm UTC in response to Nabhiraj Yalagoud

Re: Specifying a demagnetization curve of a permanent magnet


Hi Francesco,
Thanks a lot for so quick reply.
I shall try these suggestions you have posted. Do you have any examples so that i can follow them?
what is this "modM = ((BofH(mfnc.normH)/(mu0_const))-mfnc.normH)" Where can I find some details regarding this type of functions?
I shall try your suggestions and get back to you with doubts if any.

thanks
Nabhiraj


Sorry, my reply get lost...

modM = ((BofH(mfnc.normH)/(mu0_const))-mfnc.normH) is the variable I define to make easier and it is the magnetization of the material.
BofH is the BHcurve interpolation function Mu0_const is the permeability and normH is the independent variable in Comsol.

You need to define 2 BHcurve named BofH_i (i=1,2 depending on the material)
Then you go on model->definitions->variables and define two modM varialbles:

modM_i = ((BofH_i(mfnc.normH)/(mu0_const))-mfnc.normH)

It is basically eq(8) at page 6 here: ocw.mit.edu/resources/res-6-00...y-spring-2008/chapter-9/09.pdf

Then you use you modM1 or modM2 for the two material in the ocnstituve relations

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Nabhiraj Yalagoud

Nabhiraj Yalagoud

September 20, 2015 7:27am UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

Dear Francesco,
I chose the interpolation function and import the HB curve that I created. Then I define the global function that you suggested, while inputting the expression, if I use HB (since I gave the name the interpolation function as HB) and rest of the expression, the expression remain brown. i.e, comsol does not recognise the expression. Somewhere I am doing the mistake. Can you please tell me the steps to correct this problem?
Regards,
Nabhiraj

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

September 20, 2015 8:11am UTC in response to Nabhiraj Yalagoud

Re: Specifying a demagnetization curve of a permanent magnet

it is hard to say in this way.
Could you upload your model?

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Nabhiraj Yalagoud

Nabhiraj Yalagoud

September 20, 2015 10:53am UTC in response to Francesco Schillaci

Re: Specifying a demagnetization curve of a permanent magnet

Dear Francesco,
pl find attached the model that i worked on with remnant flux density as the constitutive relation. Please also find attached the HB curve that i wish to use. this is for the magnet VACODYM 722HR NdBFe magnet. If you can kindly use it in the model and attach the model back to me it will be of great help. I am absolutely new user and hence... the questions are little silly in nature. I hope I will be able to catch up faster. COMSOL is a huge code and lots of features. I am finding it difficult to learn them fast.
thanks a lot for your keen interest in help us.

Regards,
Nabhiraj

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Nabhiraj Yalagoud

Nabhiraj Yalagoud

September 20, 2015 11:30am UTC in response to Nabhiraj Yalagoud

Re: Specifying a demagnetization curve of a permanent magnet

Dear Francesco,
Instead of creating a new geometry, i inserted the geometrical sequences from my old .mph file.
There when i try to insert a blank material only one property appears which is mur. (relative permeability). There are no other parameters visible in the parameter window except mur.
I shall try making a fresh file from the beginning.
Regards,
Nabhiraj

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse

Francesco Schillaci

Francesco Schillaci

September 20, 2015 3:10pm UTC in response to Nabhiraj Yalagoud

Re: Specifying a demagnetization curve of a permanent magnet


Dear Francesco,
Instead of creating a new geometry, i inserted the geometrical sequences from my old .mph file.
There when i try to insert a blank material only one property appears which is mur. (relative permeability). There are no other parameters visible in the parameter window except mur.
I shall try making a fresh file from the beginning.
Regards,
Nabhiraj


Dear Nabhiraj

I would say that the approach you use is not the correct one.
You are using the mf module, I would suggest to use the mfnc (magnetic field no current) module for permanent magnet.
I think that the setting of the simulation would be correct if you want to use the Br max value, but you have to change the physics.

Try to set up the simulation with the correct comsol module.
If you want to use BH function you do not need to specify the material. with the mfnc module you have to select "magnetization" in the constitutive relation (probably I made a mistake in may previous answer, sorry fr that) and put the modM variable * sin(theta) (or *cos(theta)) in the M fields.
Comsol is quite hard to learn, so you will need time, of course.

Good luck

Reply  |  Reply with Quote  |  Send private message  |  Report Abuse


Rules and guidelines