Can the core material have a B-H curve instead of fixed permeability?
-
Hi,
I’m a student at UPM (Madrid) and I’m starting a project on small TMS coils. Basically multi-layer helical coils wound on a ferrite core, and I want to look at the E-field they induce in a mouse or human head model.
I found the thread about ferrous cores (post 1953) and the one about getting the inductance from the magnetic energy (post 65), which helped a lot. But there are a couple of things I couldn’t find anywhere:
In the Magneto Static Vector Potential solver, is there a way to define the core with a nonlinear B-H curve (so it saturates), or does it only take a constant relative permeability? This is the main thing I need, since ferrite saturates.
Is it possible to do the whole thing from Python (build the coil with the core, set up the vector potential + quasi-static simulations and get the E-field and the energy), or are some steps GUI-only?
I also saw in post 1599 that a sweep didn’t work when the quasi-static solver took the vector potential results as input. Is that still the case? I’d like to sweep the current and the coil position.Thanks!
-
Hi David,
No — the Vector Potential solver has no B-H curve input. A magnetic material there is a relative permeability and a conductivity, and that's all it can do: no saturation, hysteresis or remanence in the low-frequency solvers. (FDTD has further magnetic models for dispersive media, but they're linear too.) Nonlinear magnetic materials have been on our development list for a while, but they have not been implemented yet.
For your case I'd suggest the chain from your other thread: solve coil and core with the vector potential solver (lossless, so no tissues in that simulation) and feed the resulting A into the magneto-quasi-static solver on the head model to get the induced E-field. The LF tutorial "Wireless Power Transfer: Exposure Assessment" works exactly like this.
You can handle saturation approximately by iterating the permeability. Solve once with the datasheet mu_r, extract B in the core, read the manufacturer B-H curve at that point, set the secant value mu_r = B/(mu0*H) and re-solve. Two or three passes should already converge quite well. Only the vector potential simulation involves mu, so that's the only one you would iterate. Note that B might be strongly non-uniform in the ferrite core, so a single uniform mu_r would average quite different local operating points. Splitting the core into two or three bodies (poles, yoke, the rest) and iterating each separately might be a good enough approximation, depending on your application.
What this approximation gives you is saturation, not hysteresis: no minor loops, and nothing about core losses or the falling edge of the pulse. Also, ferrite mu depends on frequency as well as on B, and the solver applies one value at one frequency; take mu from the datasheet at a frequency representative of your pulse rise time rather than at DC.
Everything above is scriptable (setup the two linked simulations in the GUI, then use To-Python to generate a good starting point for your scripts).
Sweeping should work fine, even for linked simulations. Let me know if you have issues getting that to work!
Best regards,
Sylvain
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login