Summary for: DemagMaterial1 < Material
Class summary
DemagMaterial1 Simple demagnetizable magnet material model.
The class utilizes a simple demagnetization model based on given material data. The demagnetization behaviour along the material axis is defined as follows:
- A demagnetization curve of type (H, B) is given by the user, for the temperature in question
- This is set to
this.BH_table_now
- Material permeability (absolute, not relative) is set by the user.
- For each element, the B(H) behaviour follows a linear relationship with the slope
this.mu
, going through the point (Bmin, Hmin), whereBmin
is the lowest flux density encountered by the element so far, andHmin
is the corresponding field strength.
For the last bullet, the get_equivalent_Br
method is used, returning the H=0
intersect of the current BH curve followed, for each element.
BH behaviour on the axis perpendicular to the magnetization direction follows a linear relationship with the slope this.mu_now
.
See
this.evaluate_H_vector
this.evaluate_magnetization_axis_H
this.get_equivalent_Br
Notes:
- The default demagnetization evaluation functions (maximum_demag_field function, demag_check script) don’t work with this class.
- When creating geometries, a deep copy of this material class is generally created. Thus, changing the state of the originally-defined material object has no effect on simulation results; you must first do e.g. the following
mat_new = rotor.materials.get(mat_name)
mat_new.ignore_demag = true
Properties
.BH_table_now Demagnetization curve to follow.
A structure with the fields H
and B
containing lookup values for the current demagnetization curve to follow.
.Bmin Elementwise lowest flux density.
Lowest magnetization-direction flux density encountered so far.
Note: only set when this.set_step
is called, thus ignoring the latest time-step by default.
.Bmin_cand Candidate minimum flux density.
Used during the newest time-step.
.Br_now Current non-demagnetized remanence flux density.
Used by the demag model to clamp extrapolated values.
.ignore_demag Ignore demagnetization model.
When true, the default linear approximation is used.
.mu_now Current permeability.
Used as the slope of the recoil curve.
.remanence_direction_angles Elementwise remanence direction.
.retain_state Retain state between successive simulations?
Default false
, in which case the state (this.Bmin
) is reset to this.Bmin
whenever the .set_step
method is called with a step index smaller than this.step
.
.step Index of the current/latest time-step.
Methods
Class methods are listed below. Inherited methods are not included.
.basic copy stuff
.differential_reluctivity (H, dHdB) function.
Reverts to the superclass implementation in case of harmonic analysis or if this.ignore_demag
is set to true.
Otherwise, calls this.evaluate_H_vector
to obtain H, and numerically differentiates to obtain dHdB by calling the same method
.evaluate_H_vector Evaluates the H(B) vector relationship.
H = evaluate_H_vector(this, Bvector, update_state) evaluates the H(B) vector relationship by decomposing Bvector into components parallel and perpendicular to the elementwise remanence direction. The perpendicular component follows a linear relationship with the slope this.mu_now
, while the parallel component is evaluated with evaluate_magnetization_axis_H(this, update_state)
The results are then rotated back to the global frame.
.evaluate_magnetization_axis_H Evaluate H on the magnetization direction.
H = evaluate_magnetization_axis_H(this, B, update_state) returns the magnetization-axis H following the linear relationship H = (B - Br_eq) / this.mu_now
where Br_eq = this.get_equivalent_Br(B);
If update_state == true
, this.Bmin_cand
is updated to B
.
.DemagMaterial1/from_material is a function.
this = from_material(this_dummy, mat)
.get_equivalent_Br Equivalent remanence.
Br = get_equivalent_Br(this, B) returns the H=0 intercept of the elementwise (H,B) trace.
The value is computed as
Bmin = min(this.Bmin, B);
Hmin
is interpolated fromthis.BH_table_now.H
withBmin
as input **Br = Bmin - this.mu_now**
Hmin;`- Values outside the data range of
this.BH_table_now.B
are clamped to+/- this.Br_now
If this.ignore_demag
is true, this.Br_now
is returned instead.
.DemagMaterial1/parse_element_remanence_directions is a function.
parse_element_remanence_directions(this)
.remanence_flux_density_at_temperature Remanence flux density.%
Br = remanence_flux_density_at_temperature(this, T) returns zero, as this method is called by the MagneticsProblem.set_load_vector
method, to account for the non-demagnetizable magnet behaviour.
Br = remanence_flux_density_at_temperature(this, T, true) returns the H=0 intercept of the current-set BH curve (this.BH_table_now)
.set_step Set new time-step.
set_step(this, kstep, t, varargin)
.set_symmetric_BH_table_from_BH_data Sets a symmetric BH table to follow.
set_symmetric_BH_table_from_BH_data(this, data) parses and sets this.BH_table_now
from the given BH curve, a structure data
with the fields B
and H
.
The method first computes the magnetization M from the given data, then creates a new magnetization curve that is anti-symmetric with respect to the intrinsic coercivity, and then computes the corresponding B values.
.visualize_BH Visualize demagnetization/BH behaviour.
[Bs_test, Hs_test] = visualize_BH(this, Bampls) draws (H, B) traces (numel(Bampls) in total) (magnetization axis only) as B is changed linearly from Br to Bampls(k) and back.
.visualize_lost_remanence Visualize lost remanance.
Visualizes the amount of remanence flux density lost, elementwise, compared to the non-demagnetized case.