Skip to content

Commit

Permalink
Remove unit-casting
Browse files Browse the repository at this point in the history
  • Loading branch information
HansOlsson committed Jun 19, 2023
1 parent cf0d64a commit a655fc1
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
Expand Up @@ -71,7 +71,7 @@ model SMPM_Braking
origin={-10,30})));
Analog.Basic.VariableResistor variableResistor
annotation (Placement(transformation(extent={{0,50},{-20,70}})));
Blocks.Math.Gain gain(k=unitK*R/wNominal)
Blocks.Math.Gain gain(k=R/wNominal)
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
Expand Down
Expand Up @@ -7,18 +7,18 @@ model GenericHystTellinenPermanentMagnet

parameter SI.MagneticFluxDensity Br=1.2 "Remanence" annotation (Dialog(group="Hysteresis", groupImage="modelica://Modelica/Resources/Images/Magnetic/FluxTubes/Shapes/HysteresisAndMagnets/GenericHystTellinenHard/HardMagneticHysteresis.png"));
parameter SI.MagneticFieldStrength Hc=5e5 "Coercitivity" annotation (Dialog(group="Hysteresis"));
parameter Real M(final unit="1") = unitH*10/Hc
parameter Real M(final unit="m/A") = 10/Hc
"Slope of tanh()-function" annotation (Dialog(group="Hysteresis"));
parameter Real K(final unit="1")=1 "mu_0 multiplier" annotation (Dialog(group="Hysteresis"));

protected
constant SI.MagneticFieldStrength unitH = 1;
parameter SI.MagneticFluxDensity eps= Br/1000;
parameter SI.MagneticFieldStrength H0= 0.5*log((1+mu0*Hc/Br)/(1-mu0*Hc/Br)) + M*Hc;
parameter Real H0(final unit="1")= 0.5*log((1+mu0*Hc/Br)/(1-mu0*Hc/Br)) + M*Hc;

equation
hystR = Br*tanh((M*H - H0)/unitH) + mu0*H - eps/2;
hystF = Br*tanh((M*H + H0)/unitH) + mu0*H + eps/2;
hystR = Br*tanh((M*H - H0)) + mu0*H - eps/2;
hystF = Br*tanh((M*H + H0)) + mu0*H + eps/2;

annotation (defaultComponentName="pm",
Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,
Expand Down
Expand Up @@ -76,7 +76,7 @@ model SMPM_Braking
origin={-10,30})));
Modelica.Electrical.Analog.Basic.VariableResistor variableResistor
annotation (Placement(transformation(extent={{0,50},{-20,70}})));
Modelica.Blocks.Math.Gain gain(k=unitK*R/wNominal) annotation (Placement(
Modelica.Blocks.Math.Gain gain(k=R/wNominal) annotation (Placement(
transformation(
extent={{-10,-10},{10,10}},
rotation=90,
Expand Down

0 comments on commit a655fc1

Please sign in to comment.