diff --git a/Modelica/Magnetic/FluxTubes/Examples/BasicExamples/SaturatedInductor.mo b/Modelica/Magnetic/FluxTubes/Examples/BasicExamples/SaturatedInductor.mo index 9baca1998a..d89fcf5c62 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/BasicExamples/SaturatedInductor.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/BasicExamples/SaturatedInductor.mo @@ -89,5 +89,42 @@ The magnetisation characteristics of the flux tube element representing the ferr

If the supply voltage has a zero-crossing when applied to the inductor at time t=0 (i.e., source.phase set to zero instead of π/2), then the inrush current that is typical for switching of inductive loads can be observed.

-")); +", + figures = { + Figure( + title = "Coil current", + identifier = "7b2ef", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = coil.i) + } + ) + } + ), + Figure( + title = "Permeability vs flux density", + identifier = "faf9b", + plots = { + Plot( + curves = { + Curve(x = r_mFe.mu_r, y = r_mFe.B, legend = "Relative permeability vs. flux density") + } + ) + } + ), + Figure( + title = "Magnetisation curve", + identifier = "c6fcd", + plots = { + Plot( + curves = { + Curve(x = r_mFe.B, y = r_mFe.H, legend = "Magnetisation curve B(H)") + } + ) + } + ) + } + )); end SaturatedInductor; diff --git a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/HysteresisModelComparison.mo b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/HysteresisModelComparison.mo index ff9dc22f6f..78d7053a77 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/HysteresisModelComparison.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/HysteresisModelComparison.mo @@ -125,5 +125,48 @@ Compared to the complex Preisach hysteresis model the Tellinen model is very sim -")); +", + figures = { + Figure( + title = "Flux density vs. field strength", + identifier = "10449", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = tellinenSoft.H, y = tellinenSoft.B, legend = "Magnetic flux density vs. magnetic field strength from TellinenSoft model") + } + ), + Plot( + curves = { + Curve(x = tellinenTable.H, y = tellinenTable.B, legend = "Magnetic flux density vs. magnetic field strength from TellinenTable model") + } + ), + Plot( + curves = { + Curve(x = preisachEverett.H, y = preisachEverett.B, legend = "Magnetic flux density vs. magnetic field strength from PreisachEverett model") + } + ) + } + ), + Figure( + title = "Flux density and field strength", + identifier = "9bb26", + plots = { + Plot( + curves = { + Curve(y = preisachEverett.H, legend = "Magnetic field strength for all models") + } + ), + Plot( + curves = { + Curve(y = tellinenSoft.B, legend = "Magnetic flux density for TellinenSoft model"), + Curve(y = tellinenTable.B, legend = "Magnetic flux density for TellinenTable model"), + Curve(y = preisachEverett.B, legend = "Magnetic flux density for PreisachEverett model") + } + ) + } + ) + } + )); end HysteresisModelComparison; diff --git a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/InductorWithHysteresis.mo b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/InductorWithHysteresis.mo index f1881f829e..ffbbac19d7 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/InductorWithHysteresis.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/InductorWithHysteresis.mo @@ -46,5 +46,31 @@ This is a simple model of an inductor with a ferromagnetic core. The used Generi -")); +", + figures = { + Figure( + title = "Flux density vs. field strength", + identifier = "514be", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = core.H, y = core.B, legend = "Magnetic flux density vs. magnetic field strength of core, B(H)") + } + ) + } + ), + Figure( + title = "Magnetic flux density", + identifier = "c206b", + plots = { + Plot( + curves = { + Curve(y = core.B, legend = "Magnetic flux density from core, B(t)") + } + ) + } + ) + } + )); end InductorWithHysteresis; diff --git a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis1.mo b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis1.mo index b32123eca1..68ab486a34 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis1.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis1.mo @@ -69,5 +69,37 @@ Then plot the flux density of the Core Core.B over the magnetic field strength C -")); +", + figures = { + Figure( + title = "Flux density vs. field strength", + identifier = "131b7", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = core.H, y = core.B, legend = "Magnetic flux density vs. magnetic field strength of core, B(H)") + } + ) + } + ), + Figure( + title = "Currents and power loss", + identifier = "0a0be", + plots = { + Plot( + curves = { + Curve(y = winding1.i, legend = "Primary current"), + Curve(y = winding2.i, legend = "Secondary current") + } + ), + Plot( + curves = { + Curve(y = core.LossPower, legend = "Power consumption of the iron core (LossPower)") + } + ) + } + ) + } + )); end SinglePhaseTransformerWithHysteresis1; diff --git a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis2.mo b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis2.mo index ff1d7df132..21c53c1d6c 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis2.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/Hysteresis/SinglePhaseTransformerWithHysteresis2.mo @@ -48,5 +48,20 @@ The figure shows the magnetic hysteresis in the transformer core. In (a) the con -")); +", + figures = { + Figure( + title = "Flux density vs. field strength", + identifier = "1c0de", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = transformer.H, y = transformer.B, legend = "Magnetic flux density vs. magnetic field strength of core, B(H)") + } + ) + } + ) + } + )); end SinglePhaseTransformerWithHysteresis2; diff --git a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ArmatureStroke.mo b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ArmatureStroke.mo index aace7e5dc8..b82ac38264 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ArmatureStroke.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ArmatureStroke.mo @@ -95,5 +95,31 @@ The initial current rise in both actuator models is due to the inductance of the

Whereas the steady state current is the same in both models, the steady state actuator force is not due to the neglect of the non-linear force component in the converter constant model. Differences in the current rise of both models are due to the neglect of the coil inductance variation in the converter constant model.

-")); +", + figures = { + Figure( + title = "Constant actuator vs. permeance actuator", + identifier = "eeca9", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = cActuator.p.i, legend = "Input current to constant actuator model"), + Curve(y = pmActuator.p.i, legend = "Input current to permeance actuator model"), + Curve(y = cActuator.armature.flange_a.f, legend = "Actuator force of constant actuator model"), + Curve(y = pmActuator.armature.flange_a.f, legend = "Actuator force of permeance actuator model") + } + ), + Plot( + curves = { + Curve(y = cActuator.x, legend = "Armature position of constant actuator model"), + Curve(y = pmActuator.x, legend = "Armature position of permeance actuator model"), + Curve(y = cActuator.L, legend = "Inductance of constant actuator model"), + Curve(y = pmActuator.L, legend = "Inductance of permeance actuator model") + } + ) + } + ) + } + )); end ArmatureStroke; diff --git a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceCurrentBehaviour.mo b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceCurrentBehaviour.mo index 485159ed3c..ccc9824ea5 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceCurrentBehaviour.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceCurrentBehaviour.mo @@ -92,5 +92,22 @@ pmFixedPos.flange_b.f // force of permeance model cFixedPos.flange_b.f // force of converter constant model comparisonWithFEA.y[1] // force of FEA model for comparison -")); +", + figures = { + Figure( + title = "Force current characteristics", + identifier = "9ca98", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = iSensor.i, y = pmFixedPos.flange.f, legend = "Permeance actuator force vs. current"), + Curve(x = iSensor.i, y = cFixedPos.flange.f, legend = "Constant actuator force vs. current"), + Curve(x = iSensor.i, y = comparisonWithFEA.y[1], legend = "FEA force vs. current (use this as reference result)") + } + ) + } + ) + } + )); end ForceCurrentBehaviour; diff --git a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceStrokeBehaviour.mo b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceStrokeBehaviour.mo index d72828ef25..66ef666840 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceStrokeBehaviour.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/MovingCoilActuator/ForceStrokeBehaviour.mo @@ -67,5 +67,34 @@ actuator.g_mb.G_m // permeance G_mb actuator.L // inductance of permeance model comparisonWithFEA.y[3] // inductance of FEA model for comparison (mu_rFe=const.=1000). -")); +", + figures = { + Figure( + title = "Variables vs. armature position", + identifier = "ba806", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = feedX.flange.s, y = feedX.flange.f, legend = "Force of permeance model vs. armature position"), + Curve(x = feedX.flange.s, y = comparisonWithFEA.y[1], legend = "Force of FEA model with non-linear stator iron 1.0718 vs. armature position"), + Curve(x = feedX.flange.s, y = comparisonWithFEA.y[2], legend = "Force of FEA model with mu_rFe=const=1000 vs. armature position") + } + ), + Plot( + curves = { + Curve(x = feedX.flange.s, y = actuator.g_ma.G_m, legend = "Permeance G_ma vs. armature position"), + Curve(x = feedX.flange.s, y = actuator.g_mb.G_m, legend = "Permeance G_mb vs. armature position") + } + ), + Plot( + curves = { + Curve(x = feedX.flange.s, y = actuator.L, legend = "Inductance of permeance model vs. armature position"), + Curve(x = feedX.flange.s, y = comparisonWithFEA.y[3], legend = "Inductance of FEA model vs. armature position") + } + ) + } + ) + } + )); end ForceStrokeBehaviour; diff --git a/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonPullInStroke.mo b/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonPullInStroke.mo index cc0a6992cc..621e62983f 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonPullInStroke.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonPullInStroke.mo @@ -441,5 +441,36 @@ Plot window for position:

The characteristic current drop during pull-in is due to both armature motion and increasing inductance with decreasing air gap length. Bouncing occurs when armature and load of each model arrive at the stopper at minimum position. Although the pull-in times of the two magnetic network models are relatively close to the time obtained with the reference model, the accuracy of the advanced solenoid model is better, as one can tell from a comparison of the current rise at the beginning of the stroke.

-")); +", + figures = { + Figure( + title = "Simple vs advanced solenoid", + identifier = "ff1cf", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = simpleSolenoid.p.i, legend = "Current from simple solenoid model"), + Curve(y = advancedSolenoid.p.i, legend = "Current from advanced solenoid model"), + Curve(y = comparisonWithFEA.y[1], legend = "Current from FEA model") + } + ), + Plot( + curves = { + Curve(y = simpleSolenoid.armature.flange_a.f, legend = "Reluctance force of simple solenoid model"), + Curve(y = advancedSolenoid.armature.flange_a.f, legend = "Reluctance force of advanced solenoid model"), + Curve(y = comparisonWithFEA.y[2], legend = "Reluctance force of FEA model") + } + ), + Plot( + curves = { + Curve(y = simpleSolenoid.x, legend = "Armature position of simple solenoid model"), + Curve(y = advancedSolenoid.x, legend = "Armature position of advanced solenoid model"), + Curve(y = comparisonWithFEA.y[3], legend = "Armature position of FEA model") + } + ) + } + ) + } + )); end ComparisonPullInStroke; diff --git a/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonQuasiStatic.mo b/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonQuasiStatic.mo index 688ab5cd81..98765075ea 100644 --- a/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonQuasiStatic.mo +++ b/Modelica/Magnetic/FluxTubes/Examples/SolenoidActuator/ComparisonQuasiStatic.mo @@ -121,5 +121,36 @@ comparisonWithFEA.y[3] // static inductance obtained with FEA as

As mentioned in the description of both magnetic network models, one can tell the higher armature flux and inductance of the advanced solenoid model at large air gaps compared to that of the simple model. The effect of this difference on dynamic model behaviour can be analysed in ComparisonPullInStroke.

-")); +", + figures = { + Figure( + title = "Simple vs. advanced solenoid", + identifier = "e851b", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = x_set.y, y = simpleSolenoid.armature.flange_a.f, legend = "Simple solenoid model electromagnetic force vs. armature position"), + Curve(x = x_set.y, y = advancedSolenoid.armature.flange_a.f, legend = "Advanced solenoid model electromagnetic force vs. armature position"), + Curve(x = x_set.y, y = comparisonWithFEA.y[1], legend = "FEA model electromagnetic force vs. armature position") + } + ), + Plot( + curves = { + Curve(x = x_set.y, y = simpleSolenoid.g_mFeArm.Phi, legend = "Simple solenoid model magnetic flux vs. armature position"), + Curve(x = x_set.y, y = advancedSolenoid.g_mFeArm.Phi, legend = "Advanced solenoid model magnetic flux vs. armature position"), + Curve(x = x_set.y, y = comparisonWithFEA.y[2], legend = "FEA model magnetic flux vs. armature position") + } + ), + Plot( + curves = { + Curve(x = x_set.y, y = simpleSolenoid.coil.L_stat, legend = "Simple solenoid model static inductance vs. armature position"), + Curve(x = x_set.y, y = advancedSolenoid.L_statTot, legend = "Advanced solenoid model static inductance vs. armature position"), + Curve(x = x_set.y, y = comparisonWithFEA.y[3], legend = "FEA model static inductance vs. armature position") + } + ) + } + ) + } + )); end ComparisonQuasiStatic; diff --git a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_DOL.mo b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_DOL.mo index 733e367f68..40c5bf1a79 100644 --- a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_DOL.mo +++ b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_DOL.mo @@ -196,5 +196,22 @@ Simulate for 1.5 seconds and plot (versus time):
  • aimcM|E.wMechanical: machine speed
  • aimcM|E.tauElectrical: machine torque
  • -")); +", + figures = { + Figure( + title = "Machine variables", + identifier = "aef89", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = currentRMSsensorM.I, legend = "Stator current RMS"), + Curve(y = aimcM.wMechanical, legend = "Motor angular velocity of rotor against stator"), + Curve(y = aimcM.tauElectrical, legend = "Motor torque") + } + ) + } + ) + } + )); end IMC_DOL; diff --git a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMS_Start.mo b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMS_Start.mo index 43ac9c2a7d..e757f61a2f 100644 --- a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMS_Start.mo +++ b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMS_Start.mo @@ -221,5 +221,22 @@ Simulate for 1.5 seconds and plot (versus time):
  • aimsM/E.wMechanical: machine speed
  • aimsM|E.tauElectrical: machine torque
  • -")); +", + figures = { + Figure( + title = "Machine variables", + identifier = "23d18", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = currentRMSsensorM.I, legend = "Stator current RMS"), + Curve(y = aimsM.wMechanical, legend = "Motor angular velocity of rotor against stator"), + Curve(y = aimsM.tauElectrical, legend = "Motor torque") + } + ) + } + ) + } + )); end IMS_Start; diff --git a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo index 4a650c7dba..d0d0477ff3 100644 --- a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo +++ b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo @@ -298,5 +298,25 @@ Simulate for 30 seconds and plot (versus rotorAngleM.rotorDisplacementAngl
  • speedM|E.tauElectrical: machine torque
  • mechanicalPowerSensorM|E.P: mechanical power
  • -")); +", + figures = { + Figure( + title = "Torque and power vs. rotor displacement angle", + identifier = "c7d67", + preferred = true, + plots = { + Plot( + curves = { + Curve(x = rotorAngleM.rotorDisplacementAngle, y = smeeM.tauElectrical, legend = "Motor torque vs. rotor displacement angle") + } + ), + Plot( + curves = { + Curve(x = rotorAngleM.rotorDisplacementAngle, y = mechanicalPowerSensorM.P, legend = "Mechanical power vs. rotor displacement angle") + } + ) + } + ) + } + )); end SMEE_Generator; diff --git a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_Inverter.mo b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_Inverter.mo index 56b95a2414..10338089ae 100644 --- a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_Inverter.mo +++ b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_Inverter.mo @@ -220,5 +220,27 @@ and accelerate the inertias.

  • smpmM|E.tauElectrical: machine torque
  • rotorAnglepmsmM|E.rotorDisplacementAngle: rotor displacement angle
  • -")); +", + figures = { + Figure( + title = "Machine variables", + identifier = "6c7bc", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = currentRMSsensorM.I, legend = "Stator current RMS"), + Curve(y = smpmM.wMechanical, legend = "Motor angular velocity of rotor against stator"), + Curve(y = smpmM.tauElectrical, legend = "Motor torque") + } + ), + Plot( + curves = { + Curve(y = rotorAngleM.rotorDisplacementAngle, legend = "Rotor displacement angle") + } + ) + } + ) + } + )); end SMPM_Inverter; diff --git a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMR_Inverter.mo b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMR_Inverter.mo index aae9d2acd2..b2a43c622e 100644 --- a/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMR_Inverter.mo +++ b/Modelica/Magnetic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMR_Inverter.mo @@ -215,5 +215,27 @@ Simulate for 1.5 seconds and plot (versus time):
  • smrM|E.tauElectrical: machine torque
  • rotorAngleM|R.rotorDisplacementAngle: rotor displacement angle
  • -")); +", + figures = { + Figure( + title = "Machine variables", + identifier = "33b98", + preferred = true, + plots = { + Plot( + curves = { + Curve(y = currentRMSsensorM.I, legend = "Stator current RMS"), + Curve(y = smrM.wMechanical, legend = "Motor angular velocity of rotor against stator"), + Curve(y = smrM.tauElectrical, legend = "Motor torque") + } + ), + Plot( + curves = { + Curve(y = rotorAngleM.rotorDisplacementAngle, legend = "Rotor displacement angle") + } + ) + } + ) + } + )); end SMR_Inverter;