From 1118d7634de54ec2b0add5d960d2603e71b7c2e1 Mon Sep 17 00:00:00 2001
From: AHaumer
Date: Sun, 3 May 2026 10:55:25 +0200
Subject: [PATCH 1/4] Prepare CI by reducing size of reference results of
Magnetic.QuasiStatic.FundamentalWave
---
.../InductionMachines/IMC_Initialize.mo | 5 +-
.../InductionMachines/IMC_withLosses.mo | 2 +-
.../IMC_Conveyor/comparisonSignals.txt | 9 -
.../IMC_Initialize/comparisonSignals.txt | 14 -
.../IMC_Transformer/comparisonSignals.txt | 10 -
.../IMC_YD/comparisonSignals.txt | 8 -
.../SMEE_Generator/comparisonSignals.txt | 11 +-
.../SMPM_CurrentSource/comparisonSignals.txt | 14 -
.../InductionMachines/IMC_Conveyor.mo | 227 +++++++++++
.../InductionMachines/IMC_Initialize.mo | 202 ++++++++++
.../InductionMachines/IMC_Transformer.mo | 277 ++++++++++++++
.../BasicMachines/InductionMachines/IMC_YD.mo | 205 ++++++++++
.../InductionMachines/package.mo | 4 +
.../InductionMachines/package.order | 4 +
.../SynchronousMachines/SMEE_Generator.mo | 351 ++++++++++++++++++
.../SynchronousMachines/SMPM_CurrentSource.mo | 338 +++++++++++++++++
.../SynchronousMachines/package.mo | 4 +
.../SynchronousMachines/package.order | 2 +
.../Examples/BasicMachines/package.mo | 4 +
.../Examples/BasicMachines/package.order | 2 +
.../FundamentalWave/Examples/package.mo | 4 +
.../FundamentalWave/Examples/package.order | 1 +
.../QuasiStatic/FundamentalWave/package.mo | 4 +
.../QuasiStatic/FundamentalWave/package.order | 1 +
.../Magnetic/QuasiStatic/package.order | 1 +
.../IMC_Conveyor/comparisonSignals.txt | 12 +
.../IMC_Initialize/comparisonSignals.txt | 17 +
.../IMC_Transformer/comparisonSignals.txt | 13 +
.../IMC_YD/comparisonSignals.txt | 11 +
.../SMEE_Generator/comparisonSignals.txt | 12 +
.../SMPM_CurrentSource/comparisonSignals.txt | 17 +
ModelicaTest/package.order | 2 +-
32 files changed, 1721 insertions(+), 67 deletions(-)
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.order
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.order
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.order
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.order
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.mo
create mode 100644 ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.order
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
create mode 100644 ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
diff --git a/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo b/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
index 8e978c76db..c5fc877658 100644
--- a/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
+++ b/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
@@ -169,7 +169,10 @@ equation
connect(terminalBox.starpoint, starMachine.plug_p) annotation (Line(points={{-20,-38},{-40,-38},{-40,-52}}, color={0,0,255}));
connect(starMachine.pin_n, ground.p) annotation (Line(points={{-40,-72},{-40,-80},{-70,-80}}, color={0,0,255}));
connect(starMachineQS.pin_n, groundQS.pin) annotation (Line(points={{-40,28},{-40,20},{-70,20}}, color={85,170,255}));
- annotation (experiment(StopTime=1.5, Interval=0.00001, Tolerance=1e-06), Documentation(
+ annotation (experiment(
+ StopTime=1.5,
+ Interval=0.0001,
+ Tolerance=1e-06), Documentation(
info="
Test example: Steady-State Initialization of an induction machine with squirrel cage
The induction machine with squirrel cage is initialized in steady-state at no-load;
diff --git a/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_withLosses.mo b/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_withLosses.mo
index 2832e9520d..d6aa8c4e04 100644
--- a/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_withLosses.mo
+++ b/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_withLosses.mo
@@ -153,7 +153,7 @@ equation
annotation (
experiment(
StopTime=10,
- Interval=0.0001,
+ Interval=0.01,
Tolerance=1e-06),
Documentation(info="
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
index af4fc9be58..cfab01e7f9 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
@@ -1,12 +1,3 @@
time
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-// imc.stator.zeroInductor.i0
-imcQS.rotorCage.port_p.reference.gamma
-mass.s
mass.v
-massQS.s
massQS.v
-vfController.x
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
index abcee2ec69..29434db071 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
@@ -1,17 +1,3 @@
time
-imc.airGap.V_mrr.im
-imc.airGap.V_mrr.re
-imc.airGap.V_msr.im
-imc.airGap.V_msr.re
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-imc.stator.port_p.V_m.im
-imc.stator.port_p.V_m.re
-// imc.stator.zeroInductor.i0
-imcQS.rotorCage.port_p.reference.gamma
-loadInertia.phi
loadInertia.w
-loadInertiaQS.phi
loadInertiaQS.w
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
index 02aeeeefc6..29434db071 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
@@ -1,13 +1,3 @@
time
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-// imc.stator.zeroInductor.i0
-imcQS.rotorCage.port_p.reference.gamma
-loadInertia.phi
loadInertia.w
-loadInertiaQS.phi
loadInertiaQS.w
-transformer.l2sigma.inductor[1].i
-transformer.l2sigma.inductor[3].i
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
index b3bf54d566..29434db071 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
@@ -1,11 +1,3 @@
time
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-// imc.stator.zeroInductor.i0
-imcQS.rotorCage.port_p.reference.gamma
-loadInertia.phi
loadInertia.w
-loadInertiaQS.phi
loadInertiaQS.w
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
index 864b0ba25d..1713a2764c 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
@@ -1,10 +1,3 @@
time
-constantSpeed.phi
-constantSpeedQS.phi
-smee.excitation.electroMagneticConverter.Phi.re
-smee.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
-smee.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
-smee.stator.stray.port_p.Phi.im
-smee.stator.stray.port_p.Phi.re
-// smee.stator.zeroInductor.i0
-smeeQS.short.port_p.reference.gamma
+Ptr
+Pqs
diff --git a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
index 52f5422dba..c0545c6cad 100644
--- a/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
+++ b/Modelica/Resources/Reference/Modelica/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
@@ -1,17 +1,3 @@
time
-inertiaLoad.phi
inertiaLoad.w
-inertiaLoadQS.phi
inertiaLoadQS.w
-terminalBoxQS.plugSupply.pin[1].v.re
-terminalBoxQS.plugSupply.pin[1].v.im
-terminalBoxQS.plugSupply.pin[1].i.re
-terminalBoxQS.plugSupply.pin[1].i.im
-terminalBoxQS.plugSupply.pin[2].v.re
-terminalBoxQS.plugSupply.pin[2].v.im
-terminalBoxQS.plugSupply.pin[2].i.re
-terminalBoxQS.plugSupply.pin[2].i.im
-terminalBoxQS.plugSupply.pin[3].v.re
-terminalBoxQS.plugSupply.pin[3].v.im
-terminalBoxQS.plugSupply.pin[3].i.re
-terminalBoxQS.plugSupply.pin[3].i.im
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
new file mode 100644
index 0000000000..45925a9430
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
@@ -0,0 +1,227 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
+model IMC_Conveyor
+ "Induction machine with squirrel cage and inverter driving a conveyor"
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
+ constant SI.Frequency unitFrequency=1 annotation(HideResult=true);
+ parameter SI.Voltage VNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fNominal=imcData.fsNominal
+ "Nominal frequency";
+ parameter SI.AngularVelocity wNominal=2*pi*fNominal/imcData.p
+ "Nominal speed";
+ parameter SI.Torque TLoad=161.4 "Nominal load torque";
+ parameter SI.Inertia JLoad=0.29
+ "Load's moment of inertia";
+ parameter SI.Length r=0.05 "Transmission radius";
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imcQS(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ wMechanical(fixed=true),
+ gammar(fixed=true, start=pi/2),
+ gamma(fixed=true, start=-pi/2),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{60,10},{40,30}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m)
+ annotation (Placement(transformation(extent={{20,100},{40,80}})));
+ Modelica.Blocks.Sources.CombiTimeTable dutyCycle(
+ table=[0,0; 1,1; 4,1; 5,0; 10,0; 11,-1; 14,-1; 15,0; 20,0],
+ extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic)
+ annotation (Placement(transformation(extent={{-100,40},{-80,60}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.VfController vfControllerQS(
+ final m=m,
+ VNominal=VNominal,
+ fNominal=fNominal)
+ annotation (Placement(transformation(extent={{-20,40},{0,60}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.VariableVoltageSource signalVoltageQS(final m=m)
+ annotation (Placement(transformation(origin={0,90}, extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(extent={{-40,80},{-60,100}})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
+ origin={-70,70},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(
+ terminalConnection="Y", m=m)
+ annotation (Placement(transformation(extent={{60,26},{40,46}})));
+ parameter
+ Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
+ imcData "Induction machine data"
+ annotation (Placement(transformation(extent={{70,72},{90,92}})));
+ Modelica.Blocks.Math.Gain gainQS(k=fNominal)
+ annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
+ Modelica.Mechanics.Translational.Components.IdealGearR2T idealGearR2TQS(ratio=1/r)
+ annotation (Placement(transformation(extent={{32,10},{12,30}})));
+ Modelica.Mechanics.Translational.Components.Mass massQS(m=JLoad/r^2)
+ annotation (Placement(transformation(extent={{0,10},{-20,30}})));
+ Modelica.Mechanics.Translational.Sources.SignForce signForceQS(v0(displayUnit
+ ="m/s") = 0.01*wNominal*r, f_nominal=-TLoad/r)
+ annotation (Placement(transformation(extent={{-50,10},{-30,30}})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundMachineQS
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}}, origin={90,
+ 10})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMachineQS(m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
+ annotation (Placement(transformation(
+ extent={{10,10},{-10,-10}},
+ rotation=180,
+ origin={80,32})));
+ Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imc(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ phiMechanical(fixed=true),
+ wMechanical(fixed=true),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lszero=imcData.Lszero*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{60,-90},{40,-70}})));
+ Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor(m=m)
+ annotation (Placement(transformation(extent={{20,0},{40,-20}})));
+ Modelica.Electrical.Machines.Utilities.VfController
+ vfController(
+ final m=m,
+ VNominal=VNominal,
+ fNominal=fNominal) annotation (Placement(transformation(extent={{-30,-60},{-10,-40}})));
+ Modelica.Electrical.Polyphase.Sources.SignalVoltage signalVoltage(
+ final m=m) annotation (Placement(transformation(
+ origin={0,-10},
+ extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(extent={{-40,-20},{-60,0}})));
+ Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
+ transformation(
+ origin={-70,-30},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(
+ terminalConnection="Y", m=m)
+ annotation (Placement(transformation(extent={{60,-74},{40,-54}})));
+ Modelica.Blocks.Math.Gain
+ gain(k=fNominal)
+ annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
+ Modelica.Mechanics.Translational.Components.IdealGearR2T
+ idealGearR2T(ratio=1/r)
+ annotation (Placement(transformation(extent={{32,-90},{12,-70}})));
+ Modelica.Mechanics.Translational.Components.Mass
+ mass(m=JLoad/r^2)
+ annotation (Placement(transformation(extent={{0,-90},{-20,-70}})));
+ Modelica.Mechanics.Translational.Sources.SignForce
+ signForce( v0(
+ displayUnit="m/s") = 0.01*wNominal*r, f_nominal=-TLoad/r)
+ annotation (Placement(transformation(extent={{-50,-90},{-30,-70}})));
+ Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
+ annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=180,
+ origin={80,-68})));
+ Modelica.Electrical.Analog.Basic.Ground groundMachine annotation (Placement(
+ transformation(origin={90,-90}, extent={{-10,-10},{10,10}})));
+initial equation
+ sum(imc.is) = 0;
+ imc.is[1:2] = zeros(2);
+ imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
+equation
+ connect(signalVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-10,90},{-40,90}}, color={85,170,255}));
+ connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-60,90},{-70,90},{-70,80}}, color={85,170,255}));
+ connect(signalVoltageQS.plug_p, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{10,90},{20,90}}, color={85,170,255}));
+ connect(terminalBoxQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{50,32},{50,90},{40,90}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{56,30},{56,30}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{44,30},{44,30}}, color={85,170,255}));
+ connect(imcQS.flange, idealGearR2TQS.flangeR) annotation (Line(points={{40,20},{32,20}}));
+ connect(idealGearR2TQS.flangeT, massQS.flange_a) annotation (Line(points={{12,20},{0,20}}, color={0,127,0}));
+ connect(massQS.flange_b, signForceQS.flange) annotation (Line(points={{-20,20},{-30,20}}, color={0,127,0}));
+ connect(vfControllerQS.y, signalVoltageQS.V) annotation (Line(points={{1,50},{6,50},{6,78}}, color={85,170,255}));
+ connect(groundMachineQS.pin,starMachineQS. pin_n) annotation (Line(
+ points={{90,20},{90,32}}, color={85,170,255}));
+ connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (Line(points={{70,32},{60,32}}, color={85,170,255}));
+ connect(dutyCycle.y[1], gainQS.u) annotation (Line(points={{-79,50},{-72,50},{-72,50},{-62,50}}, color={0,0,127}));
+ connect(gainQS.y, signalVoltageQS.f) annotation (Line(points={{-39,50},{-30,50},{-30,70},{-6,70},{-6,78}}, color={0,0,127}));
+ connect(gainQS.y, vfControllerQS.u) annotation (Line(points={{-39,50},{-22,50}}, color={0,0,127}));
+ connect(signalVoltage.plug_n,star. plug_p)
+ annotation (Line(points={{-10,-10},{-40,-10}}, color={0,0,255}));
+ connect(star.pin_n,ground. p)
+ annotation (Line(points={{-60,-10},{-70,-10},{-70,-20}},
+ color={0,0,255}));
+ connect(vfController.y,signalVoltage. v)
+ annotation (Line(points={{-9,-50},{0,-50},{0,-22}},
+ color={0,0,255}));
+ connect(signalVoltage.plug_p,currentQuasiRMSSensor. plug_p)
+ annotation (Line(points={{10,-10},{20,-10}}, color={0,0,255}));
+ connect(terminalBox.plugSupply,currentQuasiRMSSensor. plug_n)
+ annotation (Line(
+ points={{50,-68},{50,-10},{40,-10}}, color={0,0,255}));
+ connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{56,-70},{56,-70}}, color={0,0,255}));
+ connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{44,-70},{44,-70}}, color={0,0,255}));
+ connect(vfController.u,gain. y)
+ annotation (Line(points={{-32,-50},{-39,-50}},
+ color={0,0,127}));
+ connect(imc.flange, idealGearR2T.flangeR) annotation (Line(points={{40,-80},{32,-80}}));
+ connect(idealGearR2T.flangeT,mass. flange_a)
+ annotation (Line(points={{12,-80},{0,-80}}, color={0,127,0}));
+ connect(mass.flange_b,signForce. flange)
+ annotation (Line(points={{-20,-80},{-30,-80}}, color={0,127,0}));
+ connect(dutyCycle.y[1], gain.u) annotation (Line(points={{-79,50},{-70,50},{-70,20},{-90,20},{-90,-50},{-62,-50}}, color={0,0,127}));
+ connect(groundMachine.p,starMachine. pin_n) annotation (Line(points={{90,-80},{90,-68}}, color={0,0,255}));
+ connect(terminalBox.starpoint, starMachine.plug_p) annotation (Line(points={{60,-68},{70,-68}}, color={0,0,255}));
+ annotation (experiment(StopTime=5.00, Interval=0.0001, Tolerance=1e-06),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(4.00, 5.00)}))),
+ Documentation(
+ info="
+
+An ideal frequency inverter is modeled by using a VfController and a three-phase SignalVoltage.
+Frequency is driven by a load cycle of acceleration, constant speed, deceleration and standstill.
+The mechanical load is a constant torque like a conveyor (with regularization around zero speed).
+
+Simulate for 20 seconds and plot (versus time):
+
+currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
+imc|imcQS.wMechanical: machine speed
+imc|imcQS.tauElectrical: machine torque
+
+Default machine parameters are used.
+"),
+ Diagram(graphics={
+ Text(
+ extent={{20,60},{100,52}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"),
+ Text(
+ extent={{20,-40},{100,-48}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end IMC_Conveyor;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
new file mode 100644
index 0000000000..89c1a36df4
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
@@ -0,0 +1,202 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
+model IMC_Initialize
+ "Steady-state initialization of induction machine with squirrel cage"
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
+ parameter SI.Voltage VNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
+ parameter SI.AngularVelocity wSync=2*pi*fNominal/imcData.p "Synchronous speed";
+ parameter SI.Time tStart=0.5 "Start time";
+ parameter SI.Torque TLoad=161.4 "Nominal load torque";
+ parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
+ 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
+ parameter SI.Inertia JLoad=0.29
+ "Load's moment of inertia";
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imcQS(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ wMechanical(fixed=true, start=2*pi*imcData.fsNominal/imcData.p),
+ gammar(fixed=true, start=pi/2),
+ gamma(fixed=true, start=-pi/2),
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ m=m,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{-20,40},{0,60}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m)
+ annotation (Placement(transformation(origin={-40,80}, extent={{-10,10},{10,
+ -10}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
+ final m=m,
+ f=fNominal,
+ V=fill(VNominal, m))
+ annotation (Placement(transformation(
+ origin={-70,70},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-70,40})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(origin={-70,10}, extent={{-10,-10},{10,10}})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{10,40},{30,60}})));
+ Modelica.Mechanics.Rotational.Sources.TorqueStep torqueStepQS(
+ useSupport=false,
+ startTime=tStart,
+ stepTorque=-TLoad,
+ offsetTorque=0)
+ annotation (Placement(transformation(extent={{60,40},{40,60}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(m=m,
+ terminalConnection="Y")
+ annotation (Placement(transformation(extent={{-20,56},{0,76}})));
+ parameter
+ Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
+ imcData "Induction machine data"
+ annotation (Placement(transformation(extent={{70,72},{90,92}})));
+
+ Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imc(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ phiMechanical(fixed=true),
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lszero=imcData.Lszero*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{-20,-60},{0,-40}})));
+
+ Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor(m=m)
+ annotation (Placement(transformation(origin={-40,-20}, extent={{-10,10},{10,
+ -10}})));
+ Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
+ final m=m,
+ f=fill(fNominal, m),
+ V=fill(sqrt(2)*VNominal, m)) annotation (Placement(transformation(
+ origin={-70,-30},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-70,-60})));
+ Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
+ transformation(
+ origin={-70,-90},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
+ annotation (Placement(transformation(extent={{10,-60},{30,-40}})));
+ Modelica.Mechanics.Rotational.Sources.TorqueStep torqueStep(
+ useSupport=false,
+ startTime=tStart,
+ stepTorque=-TLoad,
+ offsetTorque=0) annotation (Placement(transformation(extent={{60,-60},{40,-40}})));
+ Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(m=m,
+ terminalConnection="Y")
+ annotation (Placement(transformation(extent={{-20,-44},{0,-24}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMachineQS(final m=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-40,38})));
+ Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-40,-62})));
+initial equation
+ imc.wMechanical = wSync;
+ sum(imc.is) = 0;
+ der(imc.airGap.V_msr.re) = 0;
+ der(imc.airGap.V_msr.im) = 0;
+ der(imc.airGap.V_mrr.re) = 0;
+ der(imc.airGap.V_mrr.im) = 0;
+equation
+ connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-70,30},{-70,20}}, color={85,170,255}));
+ connect(sineVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-70,60},{-70,50}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{-16,60},{-16,60}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{-4,60},{-4,60}}, color={85,170,255}));
+ connect(terminalBoxQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{-10,62},{-10,80},{-30,80}}, color={85,170,255}));
+ connect(loadInertiaQS.flange_b, torqueStepQS.flange) annotation (Line(points={{30,50},{40,50}}));
+ connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{0,50},{10,50}}));
+ connect(sineVoltageQS.plug_p, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{-70,80},{-50,80}}, color={85,170,255}));
+ connect(star.pin_n,ground. p) annotation (Line(points={{-70,-70},{-70,-80}},
+ color={0,0,255}));
+ connect(sineVoltage.plug_n,star. plug_p)
+ annotation (Line(points={{-70,-40},{-70,-50}},
+ color={0,0,255}));
+ connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{-16,-40},{-16,-40}}, color={0,0,255}));
+ connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{-4,-40},{-4,-40}}, color={0,0,255}));
+ connect(terminalBox.plugSupply,currentQuasiRMSSensor. plug_n)
+ annotation (Line(
+ points={{-10,-38},{-10,-20},{-30,-20}},
+ color={0,0,255}));
+ connect(loadInertia.flange_b,torqueStep. flange) annotation (Line(
+ points={{30,-50},{40,-50}}));
+ connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{0,-50},{10,-50}}));
+ connect(sineVoltage.plug_p,currentQuasiRMSSensor. plug_p) annotation (
+ Line(
+ points={{-70,-20},{-50,-20}}, color={0,0,255}));
+ connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (Line(points={{-40,48},{-40,62},{-20,62}}, color={85,170,255}));
+ connect(terminalBox.starpoint, starMachine.plug_p) annotation (Line(points={{-20,-38},{-40,-38},{-40,-52}}, color={0,0,255}));
+ connect(starMachine.pin_n, ground.p) annotation (Line(points={{-40,-72},{-40,-80},{-70,-80}}, color={0,0,255}));
+ connect(starMachineQS.pin_n, groundQS.pin) annotation (Line(points={{-40,28},{-40,20},{-70,20}}, color={85,170,255}));
+ annotation (experiment(
+ StopTime=0.60,
+ Interval=0.0001,
+ Tolerance=1e-06),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.45, 0.60)}))),
+ Documentation(
+ info="
+Test example: Steady-State Initialization of an induction machine with squirrel cage
+The induction machine with squirrel cage is initialized in steady-state at no-load;
+at time tStart a load torque step is applied.
+Simulate for 1.5 seconds and plot (versus time):
+
+currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) RMS stator current
+imc|imcQS.wMechanical: machine speed
+imc|imcQS.tauElectrical: machine torque
+
+Default machine parameters of model IM_SquirrelCage are used.
+"),
+ Diagram(graphics={
+ Text(
+ extent={{20,8},{100,0}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"),
+ Text(
+ extent={{20,-92},{100,-100}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end IMC_Initialize;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
new file mode 100644
index 0000000000..f4a4a6808c
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
@@ -0,0 +1,277 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
+model IMC_Transformer
+ "Induction machine with squirrel cage starting with transformer"
+ import Modelica.Constants.pi;
+ extends Modelica.Icons.Example;
+ constant Integer m=3 "Number of phases";
+ parameter SI.Voltage VNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
+ parameter SI.Time tStart1=0.1 "Start time";
+ parameter SI.Time tStart2=2.0
+ "Start time of bypass transformer";
+ parameter SI.Torque TLoad=161.4 "Nominal load torque";
+ parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
+ 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
+ parameter SI.Inertia JLoad=0.29
+ "Load's moment of inertia";
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imcQS(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ Rs=imcData.Rs,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Lssigma=imcData.Lssigma,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ wMechanical(fixed=true),
+ gammar(fixed=true, start=pi/2),
+ gamma(fixed=true, start=-pi/2),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ Lm=imcData.Lm,
+ Lrsigma=imcData.Lrsigma,
+ Rr=imcData.Rr,
+ TrRef=imcData.TrRef,
+ TsOperational=293.15,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{80,10},{60,30}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor iSensorQS(m=m) annotation (Placement(transformation(
+ origin={-40,80},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
+ final m=m,
+ f=fNominal,
+ V=fill(VNominal/sqrt(3), m)) annotation (Placement(transformation(origin={-70,80}, extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-80,50})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
+ origin={-80,20},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep1QS[m](each startTime=tStart1) annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealClosingSwitch idealCloserQS(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(1e-5, m)) annotation (Placement(transformation(
+ origin={-10,80},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Electrical.QuasiStatic.Machines.BasicMachines.Transformers.Yy.Yy00 transformerQS(
+ n=transformerData.n,
+ R1=transformerData.R1,
+ L1sigma=transformerData.L1sigma,
+ R2=transformerData.R2,
+ L2sigma=transformerData.L2sigma,
+ alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ T1Ref=293.15,
+ T2Ref=293.15,
+ T1Operational=293.15,
+ T2Operational=293.15) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ origin={20,80})));
+
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground ground2QS annotation (Placement(transformation(
+ origin={20,50},
+ extent={{-10,-10},{10,10}})));
+ parameter Modelica.Electrical.Machines.Utilities.TransformerData transformerData(
+ f=fNominal,
+ V1=VNominal,
+ C1=Modelica.Utilities.Strings.substring(
+ transformerQS.VectorGroup,
+ 1,
+ 1),
+ V2=VNominal/sqrt(3),
+ C2=Modelica.Utilities.Strings.substring(
+ transformerQS.VectorGroup,
+ 2,
+ 2),
+ SNominal=50E3,
+ v_sc=0.06,
+ P_sc=500) "Transformer data" annotation (Placement(transformation(extent={{80,80},{100,100}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep2QS[m](each startTime=tStart2) annotation (Placement(transformation(extent={{-60,10},{-40,30}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealCommutingSwitch idealCommutingSwitchQS(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(50E-5, m)) annotation (Placement(transformation(
+ extent={{10,10},{-10,-10}},
+ origin={50,80})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{50,10},{30,30}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorqueQS(
+ w_nominal=wLoad,
+ TorqueDirection=false,
+ tau_nominal=-TLoad,
+ useSupport=false) annotation (Placement(transformation(extent={{0,10},{20,30}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.TerminalBox terminalBoxQS(
+ terminalConnection="D", m=m)
+ annotation (Placement(transformation(extent={{80,26},{60,46}})));
+ parameter Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData imcData "Induction machine data" annotation (Placement(transformation(extent={{80,52},{100,72}})));
+ Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imc(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ phiMechanical(fixed=true),
+ wMechanical(fixed=true),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lszero=imcData.Lszero*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{80,-90},{60,-70}})));
+ Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor iSensor(m=m) annotation (Placement(transformation(
+ origin={-40,-20},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
+ final m=m,
+ f=fill(fNominal, m),
+ V=fill(sqrt(2/3)*VNominal, m)) annotation (Placement(transformation(
+ origin={-70,-20},
+ extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={-80,-50})));
+ Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
+ transformation(
+ origin={-80,-80},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep1[m](each startTime=
+ tStart1) annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
+ Modelica.Electrical.Polyphase.Ideal.IdealClosingSwitch idealCloser(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(1e-5, m)) annotation (Placement(transformation(
+ origin={-10,-20},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Electrical.Machines.BasicMachines.Transformers.Yy.Yy00 transformer(
+ n=transformerData.n,
+ R1=transformerData.R1,
+ L1sigma=transformerData.L1sigma,
+ R2=transformerData.R2,
+ L2sigma=transformerData.L2sigma,
+ T1Ref=293.15,
+ alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ T2Ref=293.15,
+ alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ T1Operational=293.15,
+ T2Operational=293.15) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ origin={20,-20})));
+ Modelica.Electrical.Analog.Basic.Ground ground2 annotation (Placement(
+ transformation(
+ origin={20,-50},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStep2[m](each startTime=
+ tStart2) annotation (Placement(transformation(extent={{-60,-90},{-40,-70}})));
+ Modelica.Electrical.Polyphase.Ideal.IdealCommutingSwitch
+ idealCommutingSwitch(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(50E-5, m)) annotation (Placement(transformation(
+ extent={{60,-10},{40,-30}})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
+ annotation (Placement(transformation(extent={{50,-90},{30,-70}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
+ quadraticLoadTorque(
+ w_nominal=wLoad,
+ TorqueDirection=false,
+ tau_nominal=-TLoad,
+ useSupport=false) annotation (Placement(transformation(extent={{0,-90},{20,-70}})));
+ Modelica.Electrical.Machines.Utilities.TerminalBox terminalBox(terminalConnection="D") annotation (Placement(transformation(extent={{80,-74},{60,-54}})));
+initial equation
+ sum(imc.is) = 0;
+ imc.is[1:2] = zeros(2);
+ imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
+ transformer.i2[1:2] = zeros(2);
+equation
+ connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-80,40},{-80,30}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{76,30},{76,30}}, color={85,170,255}));
+ connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{64,30},{64,30}}, color={85,170,255}));
+ connect(loadInertiaQS.flange_b, quadraticLoadTorqueQS.flange) annotation (Line(points={{30,20},{20,20}}));
+ connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{60,20},{50,20}}));
+ connect(starQS.plug_p, sineVoltageQS.plug_n) annotation (Line(points={{-80,60},{-80,80}}, color={85,170,255}));
+ connect(booleanStep2QS.y, idealCommutingSwitchQS.control) annotation (Line(points={{-39,20},{-10,20},{-10,40},{50,40},{50,68}}, color={255,0,255}));
+ connect(transformerQS.starpoint2, ground2QS.pin) annotation (Line(points={{25,70},{24,70},{24,60},{20,60}}, color={85,170,255}));
+ connect(idealCommutingSwitchQS.plug_p, terminalBoxQS.plugSupply) annotation (Line(points={{60,80},{70,80},{70,32}}, color={85,170,255}));
+ connect(transformerQS.plug2, idealCommutingSwitchQS.plug_n1) annotation (Line(points={{30,80},{36,80},{36,76},{40,76}}, color={85,170,255}));
+ connect(sineVoltageQS.plug_p, iSensorQS.plug_p) annotation (Line(points={{-60,80},{-50,80}}, color={85,170,255}));
+ connect(booleanStep1QS.y, idealCloserQS.control) annotation (Line(points={{-39,50},{-10,50},{-10,68}}, color={255,0,255}));
+ connect(iSensorQS.plug_n, idealCloserQS.plug_p) annotation (Line(points={{-30,80},{-20,80}}, color={85,170,255}));
+ connect(transformerQS.plug1, idealCloserQS.plug_n) annotation (Line(points={{10,80},{0,80}}, color={85,170,255}));
+ connect(idealCloserQS.plug_n, idealCommutingSwitchQS.plug_n2) annotation (Line(points={{0,80},{0,100},{40,100},{40,80}}, color={85,170,255}));
+ connect(star.pin_n,ground. p)
+ annotation (Line(points={{-80,-60},{-80,-70}},
+ color={0,0,255}));
+ connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{64,-70},{64,-70}}, color={0,0,255}));
+ connect(loadInertia.flange_b,quadraticLoadTorque. flange) annotation (
+ Line(
+ points={{30,-80},{20,-80}}));
+ connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{60,-80},{50,-80}}));
+ connect(star.plug_p,sineVoltage. plug_n) annotation (Line(
+ points={{-80,-40},{-80,-20}},
+ color={0,0,255}));
+ connect(booleanStep2.y,idealCommutingSwitch. control) annotation (Line(
+ points={{-39,-80},{-10,-80},{-10,-60},{50,-60},{50,-32}},
+ color={255,0,255}));
+ connect(transformer.starpoint2,ground2. p) annotation (Line(
+ points={{25,-30},{25,-40},{20,-40}}, color={0,0,255}));
+ connect(idealCommutingSwitch.plug_p, terminalBox.plugSupply) annotation (Line(points={{60,-20},{70,-20},{70,-68}}, color={0,0,255}));
+ connect(transformer.plug2,idealCommutingSwitch. plug_n1) annotation (Line(points={{30,-20},{36,-20},{36,-24},{40,-24}}, color={0,0,255}));
+ connect(sineVoltage.plug_p, iSensor.plug_p) annotation (Line(points={{-60,-20},{-50,-20}}, color={0,0,255}));
+ connect(booleanStep1.y,idealCloser. control) annotation (Line(
+ points={{-39,-50},{-10,-50},{-10,-32},{-10,-32}},
+ color={255,0,255}));
+ connect(iSensor.plug_n, idealCloser.plug_p) annotation (Line(points={{-30,-20},{-20,-20}}, color={0,0,255}));
+ connect(transformer.plug1,idealCloser. plug_n) annotation (Line(
+ points={{10,-20},{0,-20}},color={0,0,255}));
+ connect(idealCloser.plug_n,idealCommutingSwitch. plug_n2) annotation (
+ Line(
+ points={{0,-20},{0,0},{40,0},{40,-20}},
+ color={0,0,255}));
+ connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{76,-70},{76,-70}}, color={0,0,255}));
+ annotation (experiment(StopTime=2.1, Interval=0.0001, Tolerance=1e-06),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
+ Documentation(
+ info="
+At start time tStart1 three-phase voltage is supplied to the induction machine with squirrel cage via the transformer;
+the machine starts from standstill, accelerating inertias against load torque quadratic dependent on speed;
+at start time tStart2 the machine is fed directly from the voltage source, finally reaching nominal speed.
+
+Simulate for 2.5 seconds and plot (versus time):
+
+
+currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
+imc|imcQS.wMechanical: machine speed
+imc|imcQS.tauElectrical: machine torque
+
+Default machine parameters are used.
+"),
+ Diagram(graphics={
+ Text(
+ extent={{80,8},{160,0}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"),
+ Text(
+ extent={{80,-92},{160,-100}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end IMC_Transformer;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
new file mode 100644
index 0000000000..dcb09e1d9c
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
@@ -0,0 +1,205 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
+model IMC_YD "Induction machine with squirrel cage starting Y-D"
+ import Modelica.Constants.pi;
+ extends Modelica.Icons.Example;
+ constant Integer m=3 "Number of phases";
+ parameter SI.Voltage VNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
+ parameter SI.Time tStart1=0.1 "Start time";
+ parameter SI.Time tStart2=2.0 "Start time from Y to D";
+ parameter SI.Torque TLoad=161.4 "Nominal load torque";
+ parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
+ 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
+ parameter SI.Inertia JLoad=0.29
+ "Load's moment of inertia";
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imcQS(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ wMechanical(fixed=true),
+ gammar(fixed=true, start=pi/2),
+ gamma(fixed=true, start=-pi/2),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ Lrsigma=imcData.Lrsigma,
+ TrRef=imcData.TrRef,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lm=imcData.Lm*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{20,10},{40,30}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m) annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=270,
+ origin={30,70})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
+ final m=m,
+ f=fNominal,
+ V=fill(VNominal/sqrt(3), m)) annotation (Placement(transformation(
+ origin={-30,90},
+ extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(extent={{-50,80},{-70,100}})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
+ origin={-90,90},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Blocks.Sources.BooleanStep booleanStepQS[m](each startTime=tStart1) annotation (Placement(transformation(extent={{-80,50},{-60,70}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealClosingSwitch idealCloserQS(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(1e-5, m)) annotation (Placement(transformation(
+ origin={0,90},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.SwitchYD switchYDQS(final m=m)
+ annotation (Placement(transformation(extent={{20,30},{40,50}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStepYDQS[m](each startTime=tStart2) annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{50,10},{70,30}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorqueQS(
+ w_nominal=wLoad,
+ TorqueDirection=false,
+ tau_nominal=-TLoad,
+ useSupport=false) annotation (Placement(transformation(extent={{100,10},{80,30}})));
+ parameter
+ Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
+ imcData "Induction machine data"
+ annotation (Placement(transformation(extent={{70,72},{90,92}})));
+
+ Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
+ imc(
+ p=imcData.p,
+ fsNominal=imcData.fsNominal,
+ TsRef=imcData.TsRef,
+ alpha20s(displayUnit="1/K") = imcData.alpha20s,
+ Jr=imcData.Jr,
+ Js=imcData.Js,
+ frictionParameters=imcData.frictionParameters,
+ phiMechanical(fixed=true),
+ wMechanical(fixed=true),
+ statorCoreParameters=imcData.statorCoreParameters,
+ strayLoadParameters=imcData.strayLoadParameters,
+ TrRef=imcData.TrRef,
+ Rs=imcData.Rs*m/3,
+ Lssigma=imcData.Lssigma*m/3,
+ Lszero=imcData.Lszero*m/3,
+ Lm=imcData.Lm*m/3,
+ Lrsigma=imcData.Lrsigma*m/3,
+ Rr=imcData.Rr*m/3,
+ m=m,
+ TsOperational=293.15,
+ effectiveStatorTurns=imcData.effectiveStatorTurns,
+ alpha20r=imcData.alpha20r,
+ TrOperational=293.15,
+ stator(zeroInductor(i0(nominal=10))))
+ annotation (Placement(transformation(extent={{20,-90},{40,-70}})));
+ Modelica.Electrical.Machines.Sensors.CurrentQuasiRMSSensor
+ currentQuasiRMSSensor annotation (Placement(transformation(extent={{-10,10},{10,-10}}, rotation=270,
+ origin={30,-30})));
+ Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
+ final m=m,
+ f=fill(fNominal, m),
+ V=fill(sqrt(2/3)*VNominal, m)) annotation (Placement(transformation(
+ origin={-30,-10},
+ extent={{10,10},{-10,-10}})));
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(extent={{-50,-20},{-70,0}})));
+ Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
+ transformation(
+ origin={-90,-10},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Blocks.Sources.BooleanStep booleanStep[m](each startTime=
+ tStart1) annotation (Placement(transformation(extent={{-80,-50},{-60,-30}})));
+ Modelica.Electrical.Polyphase.Ideal.IdealClosingSwitch idealCloser(
+ final m=m,
+ Ron=fill(1e-5, m),
+ Goff=fill(1e-5, m)) annotation (Placement(transformation(
+ origin={0,-10},
+ extent={{-10,10},{10,-10}})));
+ Modelica.Electrical.Machines.Utilities.SwitchYD
+ switchYD(m=m) annotation (Placement(transformation(extent={{20,-70},{40,-50}})));
+ Modelica.Blocks.Sources.BooleanStep booleanStepYD[m](each startTime=
+ tStart2) annotation (Placement(transformation(extent={{-40,-70},{-20,-50}})));
+ Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
+ annotation (Placement(transformation(extent={{50,-90},{70,-70}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
+ quadraticLoadTorque(
+ w_nominal=wLoad,
+ TorqueDirection=false,
+ tau_nominal=-TLoad,
+ useSupport=false) annotation (Placement(transformation(extent={{100,-90},{80,-70}})));
+initial equation
+ sum(imc.is) = 0;
+ imc.is[1:2] = zeros(2);
+ imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
+equation
+ connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-70,90},{-80,90}}, color={85,170,255}));
+ connect(sineVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-40,90},{-50,90}}, color={85,170,255}));
+ connect(sineVoltageQS.plug_p, idealCloserQS.plug_p) annotation (Line(points={{-20,90},{-10,90}}, color={85,170,255}));
+ connect(loadInertiaQS.flange_b, quadraticLoadTorqueQS.flange) annotation (Line(points={{70,20},{80,20}}));
+ connect(booleanStepQS.y, idealCloserQS.control) annotation (Line(points={{-59,60},{0,60},{0,78}}, color={255,0,255}));
+ connect(booleanStepYDQS.y, switchYDQS.control) annotation (Line(points={{-19,40},{18,40}}, color={255,0,255}));
+ connect(idealCloserQS.plug_n, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{10,90},{10,90},{28,90},{28,90},{30,90},{30,80},{30,80}}, color={85,170,255}));
+ connect(switchYDQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{24,30},{24,30}}, color={85,170,255}));
+ connect(switchYDQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{36,30},{36,30}}, color={85,170,255}));
+ connect(switchYDQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{30,50},{30,60}}, color={85,170,255}));
+ connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{40,20},{50,20}}));
+ connect(star.pin_n,ground. p)
+ annotation (Line(points={{-70,-10},{-80,-10}},
+ color={0,0,255}));
+ connect(sineVoltage.plug_n,star. plug_p)
+ annotation (Line(points={{-40,-10},{-50,-10}}, color={0,0,255}));
+ connect(sineVoltage.plug_p,idealCloser. plug_p) annotation (Line(points={{-20,-10},{-10,-10}},
+ color={0,0,255}));
+ connect(loadInertia.flange_b,quadraticLoadTorque. flange)
+ annotation (Line(points={{70,-80},{80,-80}}));
+ connect(booleanStep.y,idealCloser. control) annotation (Line(points={{-59,-40},{0,-40},{0,-22}},
+ color={255,0,255}));
+ connect(booleanStepYD.y,switchYD. control)
+ annotation (Line(points={{-19,-60},{18,-60}}, color={255,0,255}));
+ connect(idealCloser.plug_n,currentQuasiRMSSensor. plug_p)
+ annotation (Line(points={{10,-10},{30,-10},{30,-20}},
+ color={0,0,255}));
+ connect(switchYD.plug_sn, imc.plug_sn) annotation (Line(points={{24,-70},{24,-70}}, color={0,0,255}));
+ connect(switchYD.plug_sp, imc.plug_sp) annotation (Line(points={{36,-70},{36,-70}}, color={0,0,255}));
+ connect(switchYD.plugSupply,currentQuasiRMSSensor. plug_n) annotation (
+ Line(
+ points={{30,-50},{30,-40}}, color={0,0,255}));
+ connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{40,-80},{50,-80}}));
+ annotation (experiment(StopTime=2.1,Interval=0.0001,Tolerance=1e-06),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
+ Documentation(
+ info="
+
+At start time tStart three-phase voltage is supplied to the induction machine with squirrel cage, first star-connected, then delta-connected; the machine starts from standstill, accelerating inertias against load torque quadratic dependent on speed, finally reaching nominal speed.
+
+Simulate for 2.5 seconds and plot (versus time):
+
+
+currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
+imc|imcQS.wMechanical: machine speed
+imc|imcQS.tauElectrical: machine torque
+
+
+Default machine parameters are used.
+"),
+ Diagram(graphics={
+ Text(
+ extent={{-60,20},{20,12}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"), Text(
+ extent={{-60,-80},{20,-88}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end IMC_YD;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.mo
new file mode 100644
index 0000000000..1a6878bee7
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.mo
@@ -0,0 +1,4 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines;
+package InductionMachines "Modelica.Icons.ExamplesPackage"
+ extends Modelica.Icons.ExamplesPackage;
+end InductionMachines;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.order b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.order
new file mode 100644
index 0000000000..c3cc382482
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/package.order
@@ -0,0 +1,4 @@
+IMC_YD
+IMC_Transformer
+IMC_Conveyor
+IMC_Initialize
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
new file mode 100644
index 0000000000..6cac8225b9
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
@@ -0,0 +1,351 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines;
+model SMEE_Generator
+ "Electrical excited synchronous machine operating as generator"
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ parameter Integer m=3 "Number of stator phases" annotation(Evaluate=true);
+ parameter SI.Voltage VsNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fsNominal=smeeData.fsNominal "Nominal frequency";
+ parameter SI.AngularVelocity w=
+ Modelica.Units.Conversions.from_rpm(1499) "Nominal speed";
+ parameter SI.Current Ie=19 "Excitation current";
+ parameter SI.Current Ie0=10
+ "Initial excitation current";
+ parameter SI.Angle gamma0(displayUnit="deg") = 0
+ "Initial rotor displacement angle";
+ SI.Angle thetaQS=rotorAngleQS.rotorDisplacementAngle "Rotor displacement angle, quasi-static";
+ SI.Angle theta=rotorAngle.rotorDisplacementAngle "Rotor displacement angle, transient";
+
+ output SI.Power Ptr=powerSensor.power "Transient power";
+ output SI.Power Pqs=powerSensorQS.apparentPower.re "QS power";
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(extent={{-50,-30},{-70,-10}})));
+ Modelica.Electrical.Analog.Basic.Ground grounde annotation (Placement(
+ transformation(
+ origin={-90,-20},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
+ final m=m,
+ final V=fill(VsNominal*sqrt(2), m),
+ final f=fill(fsNominal, m)) annotation (Placement(
+ transformation(extent={{-20,-30},{-40,-10}})));
+ Modelica.Electrical.Polyphase.Sensors.PowerSensor powerSensor(m=m)
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={0,-34})));
+ Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBoxM(
+ terminalConnection="Y", m=m)
+ annotation (Placement(transformation(extent={{-10,-64},{10,-44}})));
+ Modelica.Magnetic.FundamentalWave.BasicMachines.SynchronousMachines.SM_ElectricalExcited
+ smee(
+ phiMechanical(start=-(Modelica.Constants.pi + gamma0)/smee.p, fixed=true),
+ Jr=0.29,
+ Js=0.29,
+ p=2,
+ fsNominal=smeeData.fsNominal,
+ TsRef=smeeData.TsRef,
+ alpha20s(displayUnit="1/K") = smeeData.alpha20s,
+ Lrsigmad=smeeData.Lrsigmad,
+ Lrsigmaq=smeeData.Lrsigmaq,
+ Rrd=smeeData.Rrd,
+ Rrq=smeeData.Rrq,
+ TrRef=smeeData.TrRef,
+ alpha20r(displayUnit="1/K") = smeeData.alpha20r,
+ VsNominal=smeeData.VsNominal,
+ IeOpenCircuit=smeeData.IeOpenCircuit,
+ Re=smeeData.Re,
+ TeRef=smeeData.TeRef,
+ alpha20e(displayUnit="1/K") = smeeData.alpha20e,
+ statorCoreParameters(VRef=100),
+ strayLoadParameters(IRef=100),
+ brushParameters(ILinear=0.01),
+ ir(each fixed=true),
+ useDamperCage=false,
+ m=m,
+ frictionParameters(PRef=0),
+ Rs=smeeData.Rs*m/3,
+ Lssigma=smeeData.Lssigma*m/3,
+ Lmd=smeeData.Lmd*m/3,
+ Lmq=smeeData.Lmq*m/3,
+ effectiveStatorTurns=smeeData.effectiveStatorTurns,
+ TsOperational=293.15,
+ TrOperational=293.15,
+ TeOperational=293.15,
+ sigmae=smeeData.sigmae*m/3)
+ annotation (Placement(transformation(extent={{-10,-80},{10,-60}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.SynchronousMachines.SM_ElectricalExcited
+ smeeQS(
+ p=2,
+ fsNominal=smeeData.fsNominal,
+ TsRef=smeeData.TsRef,
+ alpha20s(displayUnit="1/K") = smeeData.alpha20s,
+ Jr=0.29,
+ Js=0.29,
+ frictionParameters(PRef=0),
+ statorCoreParameters(PRef=0, VRef=100),
+ strayLoadParameters(PRef=0, IRef=100),
+ Lrsigmad=smeeData.Lrsigmad,
+ Rrd=smeeData.Rrd,
+ Rrq=smeeData.Rrq,
+ alpha20r(displayUnit="1/K") = smeeData.alpha20r,
+ VsNominal=smeeData.VsNominal,
+ IeOpenCircuit=smeeData.IeOpenCircuit,
+ Re=smeeData.Re,
+ TeRef=smeeData.TeRef,
+ alpha20e(displayUnit="1/K") = smeeData.alpha20e,
+ brushParameters(V=0, ILinear=0.01),
+ Lrsigmaq=smeeData.Lrsigmaq,
+ TrRef=smeeData.TrRef,
+ useDamperCage=false,
+ m=m,
+ gammar(fixed=true, start=pi/2),
+ gamma(fixed=true, start=-pi/2),
+ Rs=smeeData.Rs*m/3,
+ Lssigma=smeeData.Lssigma*m/3,
+ Lmd=smeeData.Lmd*m/3,
+ Lmq=smeeData.Lmq*m/3,
+ TsOperational=293.15,
+ effectiveStatorTurns=smeeData.effectiveStatorTurns,
+ TrOperational=293.15,
+ TeOperational=293.15)
+ annotation (Placement(transformation(extent={{-10,20},{10,40}})));
+ Modelica.Electrical.Analog.Basic.Ground groundr annotation (Placement(
+ transformation(
+ origin={-50,-88},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.Analog.Basic.Ground groundrQS annotation (
+ Placement(transformation(
+ origin={-50,12},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.Analog.Sources.RampCurrent rampCurrent(
+ duration=0.1,
+ I=Ie - Ie0,
+ offset=Ie0) annotation (Placement(transformation(
+ origin={-30,-70},
+ extent={{-10,-10},{10,10}},
+ rotation=90)));
+ Modelica.Electrical.Analog.Sources.RampCurrent rampCurrentQS(
+ duration=0.1,
+ I=Ie - Ie0,
+ offset=Ie0) annotation (Placement(transformation(
+ origin={-28,30},
+ extent={{-10,-10},{10,10}},
+ rotation=90)));
+ Modelica.Electrical.Machines.Sensors.MechanicalPowerSensor
+ mechanicalPowerSensor annotation (Placement(transformation(extent={{50,-80},{70,-60}})));
+ Modelica.Electrical.Machines.Sensors.MechanicalPowerSensor
+ mechanicalPowerSensorQS annotation (Placement(transformation(extent={{50,20},{70,40}})));
+ Modelica.Mechanics.Rotational.Sources.ConstantSpeed constantSpeed(
+ final w_fixed=w, useSupport=false) annotation (Placement(
+ transformation(extent={{100,-80},{80,-60}})));
+ Modelica.Mechanics.Rotational.Sources.ConstantSpeed constantSpeedQS(
+ final w_fixed=w, useSupport=false) annotation (Placement(
+ transformation(extent={{100,20},{80,40}})));
+ parameter
+ Modelica.Electrical.Machines.Utilities.SynchronousMachineData
+ smeeData(
+ SNominal=30e3,
+ VsNominal=100,
+ fsNominal=50,
+ IeOpenCircuit=10,
+ x0=0.1,
+ xd=1.6,
+ xdTransient=0.1375,
+ xdSubtransient=0.121428571,
+ xqSubtransient=0.148387097,
+ Ta=0.014171268,
+ Td0Transient=0.261177343,
+ Td0Subtransient=0.006963029,
+ Tq0Subtransient=0.123345081,
+ alpha20s(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ alpha20r(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ alpha20e(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
+ xq=1.1,
+ TsSpecification=293.15,
+ TsRef=293.15,
+ TrSpecification=293.15,
+ TrRef=293.15,
+ TeSpecification=293.15,
+ TeRef=293.15) "Synchronous machine data"
+ annotation (Placement(transformation(extent={{70,70},{90,90}})));
+
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource
+ voltageSourceQS(
+ m=m,
+ phi=-Modelica.Electrical.Polyphase.Functions.symmetricOrientation(
+ m),
+ V=fill(VsNominal, m),
+ f=fsNominal) annotation (Placement(transformation(
+ origin={-30,80},
+ extent={{-10,-10},{10,10}},
+ rotation=180)));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(m=m)
+ annotation (Placement(transformation(
+ origin={-60,80},
+ extent={{-10,-10},{10,10}},
+ rotation=180)));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
+ groundeQS annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-90,80})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.PowerSensor
+ powerSensorQS(m=m) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={0,66})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(m=m,
+ terminalConnection="Y")
+ annotation (Placement(transformation(extent={{-10,36},{10,56}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star
+ starMachineQS(m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(
+ m))
+ annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-20,50})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
+ groundMachineQS annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-50,50})));
+ Modelica.Electrical.Machines.Sensors.RotorDisplacementAngle rotorAngle(m=m, p=
+ smee.p) annotation (Placement(transformation(
+ origin={30,-70},
+ extent={{-10,10},{10,-10}},
+ rotation=270)));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Sensors.RotorDisplacementAngle rotorAngleQS(m=m, p=
+ smeeQS.p) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={30,30})));
+ Modelica.Electrical.Analog.Basic.Ground groundMachine annotation (Placement(
+ transformation(
+ extent={{-10,-10},{10,10}},
+ origin={-50,-50},
+ rotation=270)));
+ Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
+ annotation (Placement(transformation(extent={{10,-10},{-10,10}}, origin={-20,
+ -50})));
+initial equation
+ sum(smee.is) = 0;
+ smee.is[1:2] = zeros(2);
+
+equation
+ connect(star.pin_n, grounde.p)
+ annotation (Line(points={{-70,-20},{-80,-20}}, color={0,0,255}));
+ connect(star.plug_p, sineVoltage.plug_n)
+ annotation (Line(points={{-50,-20},{-40,-20}}, color={0,0,255}));
+ connect(mechanicalPowerSensorQS.flange_b, constantSpeedQS.flange)
+ annotation (Line(points={{70,30},{80,30}}));
+ connect(rampCurrentQS.p, groundrQS.p) annotation (Line(points={{-28,
+ 20},{-34,20},{-34,12},{-40,12}}, color={0,0,255}));
+ connect(rampCurrentQS.p, smeeQS.pin_en) annotation (Line(points={{-28,
+ 20},{-20,20},{-20,24},{-10,24}}, color={0,0,255}));
+ connect(rampCurrentQS.n, smeeQS.pin_ep) annotation (Line(points={{-28,
+ 40},{-20,40},{-20,36},{-10,36}}, color={0,0,255}));
+ connect(smee.flange, mechanicalPowerSensor.flange_a)
+ annotation (Line(points={{10,-70},{50,-70}}));
+ connect(mechanicalPowerSensor.flange_b, constantSpeed.flange)
+ annotation (Line(points={{70,-70},{80,-70}}));
+ connect(rampCurrent.p, groundr.p) annotation (Line(points={{-30,-80},
+ {-36,-80},{-36,-88},{-38,-88},{-38,-88},{-40,-88},{-40,-88}},
+ color={0,0,255}));
+ connect(rampCurrent.p, smee.pin_en) annotation (Line(points={{-30,-80},
+ {-20,-80},{-20,-76},{-10,-76}}, color={0,0,255}));
+ connect(rampCurrent.n, smee.pin_ep) annotation (Line(points={{-30,-60},
+ {-20,-60},{-20,-64},{-10,-64}}, color={0,0,255}));
+ connect(smee.plug_sn, terminalBoxM.plug_sn)
+ annotation (Line(points={{-6,-60},{-6,-60}}, color={0,0,255}));
+ connect(smee.plug_sp, terminalBoxM.plug_sp)
+ annotation (Line(points={{6,-60},{6,-60}}, color={0,0,255}));
+ connect(groundeQS.pin, starQS.pin_n) annotation (Line(points={{-80,80},
+ {-80,80},{-70,80}}, color={85,170,255}));
+ connect(starQS.plug_p, voltageSourceQS.plug_n) annotation (Line(
+ points={{-50,80},{-50,80},{-40,80}}, color={85,170,255}));
+ connect(voltageSourceQS.plug_p, powerSensorQS.currentP) annotation (
+ Line(points={{-20,80},{-20,80},{0,80},{0,76}},
+ color={85,170,255}));
+ connect(powerSensorQS.voltageP, powerSensorQS.currentP) annotation (
+ Line(points={{10,66},{10,76},{0,76}}, color={85,170,255}));
+ connect(powerSensorQS.voltageN, starQS.plug_p) annotation (Line(
+ points={{-10,66},{-10,66},{-42,66},{-50,66},{-50,80}}, color={
+ 85,170,255}));
+ connect(sineVoltage.plug_p, powerSensor.pc)
+ annotation (Line(points={{-20,-20},{0,-20},{0,-24}}, color={0,0,255}));
+ connect(powerSensor.pc, powerSensor.pv)
+ annotation (Line(points={{0,-24},{10,-24},{10,-34}}, color={0,0,255}));
+ connect(powerSensor.nv, star.plug_p)
+ annotation (Line(points={{-10,-34},{-50,-34},{-50,-20}}, color={0,0,255}));
+ connect(powerSensor.nc, terminalBoxM.plugSupply)
+ annotation (Line(points={{0,-44},{0,-58}}, color={0,0,255}));
+ connect(terminalBoxQS.plug_sn, smeeQS.plug_sn) annotation (Line(
+ points={{-6,40},{-6,40}},
+ color={85,170,255}));
+ connect(terminalBoxQS.plug_sp, smeeQS.plug_sp) annotation (Line(
+ points={{6,40},{6,40}},
+ color={85,170,255}));
+ connect(powerSensorQS.currentN, terminalBoxQS.plugSupply) annotation (
+ Line(
+ points={{0,56},{0,42}},
+ color={85,170,255}));
+ connect(starMachineQS.pin_n, groundMachineQS.pin) annotation (Line(
+ points={{-30,50},{-40,50}},
+ color={85,170,255}));
+ connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (
+ Line(
+ points={{-10,50},{-10,42},{-10,42}},
+ color={85,170,255}));
+ connect(smee.flange, rotorAngle.flange) annotation (Line(points={{10,-70},{20,-70}}));
+ connect(rotorAngle.plug_p, smee.plug_sp) annotation (Line(points={{24,-60},{6,-60}}, color={0,0,255}));
+ connect(smee.plug_sn, rotorAngle.plug_n) annotation (Line(points={{-6,-60},{-6,-54},{36,-54},{36,-60}}, color={0,0,255}));
+ connect(terminalBoxQS.plug_sp, rotorAngleQS.plug_p) annotation (Line(points={{6,40},{24,40}}, color={85,170,255}));
+ connect(rotorAngleQS.plug_n, terminalBoxQS.plug_sn) annotation (Line(points={{36,40},{36,46},{-6,46},{-6,40}}, color={85,170,255}));
+ connect(smeeQS.flange, rotorAngleQS.flange) annotation (Line(points={{10,30},{20,30}}));
+ connect(smeeQS.flange, mechanicalPowerSensorQS.flange_a) annotation (Line(points={{10,30},{50,30}}));
+ connect(starMachine.pin_n,groundMachine. p) annotation (Line(points={{-30,-50},{-40,-50}}, color={0,0,255}));
+ connect(starMachine.plug_p, terminalBoxM.starpoint) annotation (Line(points={{-10,-50},{-10,-54},{-10,-58},{-10,-58}},color={0,0,255}));
+ annotation (
+ experiment(
+ StopTime=15.1,
+ Interval=1E-4,
+ Tolerance=1e-06),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(14.9, 15.1)}))),
+ Documentation(info="
+
+This example compares a time transient and a quasi-static model of a electrically excited synchronous machine.
+The electrically excited synchronous generators are connected to the grid and driven with constant speed.
+Since speed is slightly smaller than synchronous speed corresponding to mains frequency,
+rotor angle is very slowly increased. This allows to see several characteristics dependent on rotor angle.
+
+
+
+Simulate for 30 seconds and plot versus rotorAngle|rotorAngleQS.rotorDisplacementAngle:
+
+
+
+smpm|smpmQS.tauElectrical: machine torque
+
+
+Since the rotor slip is very low the transient and quasi-static electromagnetic torque are practically equal.
+"),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}}),
+ graphics={ Text(
+ extent={{20,8},{100,0}},
+ fillColor={255,255,170},
+ fillPattern=FillPattern.Solid,
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"), Text(
+ extent={{20,-92},{100,-100}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end SMEE_Generator;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
new file mode 100644
index 0000000000..f2806a9831
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
@@ -0,0 +1,338 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines;
+model SMPM_CurrentSource
+ "Test example: PermanentMagnetSynchronousMachine fed by current source"
+ extends Modelica.Icons.Example;
+ import Modelica.Constants.pi;
+ parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
+ parameter SI.Voltage VNominal=100
+ "Nominal RMS voltage per phase";
+ parameter SI.Frequency fNominal=smpmData.fsNominal "Nominal frequency";
+ parameter SI.Frequency f=50 "Actual frequency";
+ parameter SI.Time tRamp=1 "Frequency ramp";
+ parameter SI.Torque TLoad=181.4 "Nominal load torque";
+ parameter SI.Time tStep=1.2 "Time of load torque step";
+ parameter SI.Inertia JLoad=0.29
+ "Load's moment of inertia";
+ SI.Angle thetaQS=rotorAngleQS.rotorDisplacementAngle "Rotor displacement angle, quasi-static";
+ SI.Angle theta=rotorAngle.rotorDisplacementAngle "Rotor displacement angle, transient";
+
+ Modelica.Magnetic.FundamentalWave.BasicMachines.SynchronousMachines.SM_PermanentMagnet
+ smpm(
+ p=smpmData.p,
+ fsNominal=smpmData.fsNominal,
+ Rs=smpmData.Rs,
+ TsRef=smpmData.TsRef,
+ Lszero=smpmData.Lszero,
+ Lssigma=smpmData.Lssigma,
+ Jr=smpmData.Jr,
+ Js=smpmData.Js,
+ frictionParameters=smpmData.frictionParameters,
+ phiMechanical(fixed=true),
+ wMechanical(fixed=true),
+ statorCoreParameters=smpmData.statorCoreParameters,
+ strayLoadParameters=smpmData.strayLoadParameters,
+ VsOpenCircuit=smpmData.VsOpenCircuit,
+ Lmd=smpmData.Lmd,
+ Lmq=smpmData.Lmq,
+ useDamperCage=smpmData.useDamperCage,
+ Lrsigmad=smpmData.Lrsigmad,
+ Lrsigmaq=smpmData.Lrsigmaq,
+ Rrd=smpmData.Rrd,
+ Rrq=smpmData.Rrq,
+ TrRef=smpmData.TrRef,
+ permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters,
+ m=m,
+ TsOperational=293.15,
+ alpha20s=smpmData.alpha20s,
+ effectiveStatorTurns=smpmData.effectiveStatorTurns,
+ alpha20r=smpmData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{-10,-90},{10,-70}})));
+ Modelica.Electrical.Polyphase.Sources.SignalCurrent signalCurrent(
+ final m=m) annotation (Placement(transformation(
+ origin={0,-10},
+ extent={{-10,10},{10,-10}},
+ rotation=270)));
+ Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
+ Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={50,-10})));
+ Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
+ transformation(
+ origin={50,-30},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Electrical.Machines.Utilities.DQToThreePhase dqToThreePhase(
+ p=smpm.p, m=m)
+ annotation (Placement(transformation(extent={{-50,-20},{-30,0}})));
+ Modelica.Blocks.Sources.Constant iq(k=84.6*3/m)
+ annotation (Placement(
+ transformation(extent={{-100,-20},{-80,0}})));
+ Modelica.Blocks.Sources.Constant id(k=-53.5*3/m)
+ annotation (Placement(transformation(extent={{-100,20},{-80,40}})));
+ Modelica.Electrical.Polyphase.Sensors.VoltageQuasiRMSSensor
+ voltageQuasiRMSSensor(m=m)
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=180,
+ origin={-30,-50})));
+ Modelica.Electrical.Polyphase.Basic.Star starM(final m=m)
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={-60,-60})));
+ Modelica.Electrical.Analog.Basic.Ground groundM annotation (Placement(
+ transformation(
+ origin={-60,-90},
+ extent={{-10,-10},{10,10}})));
+ Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(
+ terminalConnection="Y", m=m)
+ annotation (Placement(transformation(extent={{-10,-74},{10,-54}})));
+ Modelica.Electrical.Machines.Sensors.RotorDisplacementAngle rotorAngle(m=m, p=smpmData.p) annotation (Placement(transformation(
+ origin={30,-80},
+ extent={{-10,10},{10,-10}},
+ rotation=270)));
+ Modelica.Mechanics.Rotational.Sensors.AngleSensor angleSensor
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={30,-40})));
+ Modelica.Mechanics.Rotational.Components.Inertia inertiaLoad(J=0.29)
+ annotation (Placement(transformation(extent={{50,-90},{70,-70}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
+ quadraticSpeedDependentTorque(tau_nominal=-181.4, w_nominal(
+ displayUnit="rpm") = 157.07963267949)
+ annotation (Placement(transformation(extent={{100,-90},{80,-70}})));
+ parameter
+ Modelica.Electrical.Machines.Utilities.ParameterRecords.SM_PermanentMagnetData
+ smpmData(useDamperCage=false) "Synchronous machine data"
+ annotation (Placement(transformation(extent={{70,72},{90,92}})));
+ Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentRMSsensor(m=m)
+ annotation (Placement(transformation(
+ origin={0,-40},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.SynchronousMachines.SM_PermanentMagnet
+ smpmQS(
+ p=smpmData.p,
+ fsNominal=smpmData.fsNominal,
+ Rs=smpmData.Rs,
+ TsRef=smpmData.TsRef,
+ Lssigma=smpmData.Lssigma,
+ Jr=smpmData.Jr,
+ Js=smpmData.Js,
+ frictionParameters=smpmData.frictionParameters,
+ wMechanical(fixed=true),
+ statorCoreParameters=smpmData.statorCoreParameters,
+ strayLoadParameters=smpmData.strayLoadParameters,
+ VsOpenCircuit=smpmData.VsOpenCircuit,
+ Lmd=smpmData.Lmd,
+ Lmq=smpmData.Lmq,
+ useDamperCage=smpmData.useDamperCage,
+ Lrsigmad=smpmData.Lrsigmad,
+ Lrsigmaq=smpmData.Lrsigmaq,
+ Rrd=smpmData.Rrd,
+ Rrq=smpmData.Rrq,
+ TrRef=smpmData.TrRef,
+ permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters,
+ phiMechanical(fixed=true, start=0),
+ m=m,
+ TsOperational=293.15,
+ alpha20s=smpmData.alpha20s,
+ effectiveStatorTurns=smpmData.effectiveStatorTurns,
+ alpha20r=smpmData.alpha20r,
+ TrOperational=293.15)
+ annotation (Placement(transformation(extent={{-10,10},{10,30}})));
+
+ Modelica.Mechanics.Rotational.Components.Inertia inertiaLoadQS(J=0.29)
+ annotation (Placement(transformation(extent={{50,10},{70,30}})));
+ Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
+ quadraticSpeedDependentTorqueQS(tau_nominal=-181.4, w_nominal(
+ displayUnit="rpm") = 157.07963267949)
+ annotation (Placement(transformation(extent={{100,10},{80,30}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star
+ starMachineQS(m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(
+ m))
+ annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=180,
+ origin={-30,20})));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
+ groundMQS annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ origin={-60,10})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(
+ terminalConnection="Y", m=m)
+ annotation (Placement(transformation(extent={{-10,26},{10,46}})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.CurrentController dqToThreePhaseQS(m=m, p=
+ smpmQS.p)
+ annotation (Placement(transformation(extent={{-50,80},{-30,100}})));
+ Modelica.Mechanics.Rotational.Sensors.AngleSensor angleSensorQS
+ annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=90,
+ origin={30,60})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sources.ReferenceCurrentSource referenceCurrentSourceQS(m=m)
+ annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={0,90})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(m=m)
+ annotation (Placement(transformation(
+ origin={50,90},
+ extent={{-10,-10},{10,10}},
+ rotation=270)));
+ Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
+ groundeQS annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ origin={50,70})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Resistor resistorQS(m=m, R_ref=fill(1e5, m)) annotation (Placement(transformation(
+ extent={{-10,-10},{10,10}},
+ rotation=270,
+ origin={20,90})));
+ Modelica.Magnetic.QuasiStatic.FundamentalWave.Sensors.RotorDisplacementAngle rotorAngleQS(m=m, p=
+ smpmData.p) annotation (Placement(transformation(
+ extent={{10,-10},{-10,10}},
+ rotation=90,
+ origin={30,20})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentRMSSensorQS(m=m)
+ annotation (Placement(transformation(
+ extent={{10,10},{-10,-10}},
+ rotation=90,
+ origin={0,60})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Sensors.VoltageQuasiRMSSensor voltageQuasiRMSSensorQS(m=m)
+ annotation (Placement(transformation(extent={{-40,60},{-20,40}})));
+ Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMQS(m=m) annotation (Placement(transformation(
+ extent={{-10,10},{10,-10}},
+ rotation=270,
+ origin={-50,40})));
+ Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
+ Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
+ annotation (Placement(transformation(extent={{10,-10},{-10,10}}, origin={-30,
+ -80})));
+equation
+ connect(star.pin_n, ground.p)
+ annotation (Line(points={{50,-20},{50,-20}}, color={0,0,255}));
+ connect(rotorAngle.plug_n, smpm.plug_sn) annotation (Line(points={{36,-70},{36,-64},{-6,-64},{-6,-70}}, color={0,0,255}));
+ connect(rotorAngle.plug_p, smpm.plug_sp) annotation (Line(points={{24,-70},{6,-70}}, color={0,0,255}));
+ connect(terminalBox.plug_sn, smpm.plug_sn) annotation (Line(
+ points={{-6,-70},{-6,-70}},
+ color={0,0,255}));
+ connect(terminalBox.plug_sp, smpm.plug_sp) annotation (Line(
+ points={{6,-70},{6,-70}},
+ color={0,0,255}));
+ connect(smpm.flange, rotorAngle.flange) annotation (Line(points={{10,-80},{20,-80}}));
+ connect(signalCurrent.plug_p, star.plug_p) annotation (Line(
+ points={{0,0},{50,0}},
+ color={0,0,255}));
+ connect(angleSensor.flange, rotorAngle.flange) annotation (Line(points={{30,-50},{30,-60},{20,-60},{20,-80}}));
+ connect(voltageQuasiRMSSensor.plug_p, terminalBox.plugSupply)
+ annotation (Line(
+ points={{-20,-50},{0,-50},{0,-68}},
+ color={0,0,255}));
+ connect(starM.plug_p, voltageQuasiRMSSensor.plug_n) annotation (Line(
+ points={{-60,-50},{-40,-50}},
+ color={0,0,255}));
+ connect(starM.pin_n, groundM.p) annotation (Line(
+ points={{-60,-70},{-60,-80}},
+ color={0,0,255}));
+ connect(quadraticSpeedDependentTorque.flange, inertiaLoad.flange_b)
+ annotation (Line(
+ points={{80,-80},{70,-80}}));
+ connect(signalCurrent.plug_n, currentRMSsensor.plug_p) annotation (
+ Line(
+ points={{0,-20},{0,-30}},
+ color={0,0,255}));
+ connect(currentRMSsensor.plug_n, voltageQuasiRMSSensor.plug_p)
+ annotation (Line(
+ points={{0,-50},{-20,-50}},
+ color={0,0,255}));
+ connect(smpm.flange, inertiaLoad.flange_a) annotation (Line(
+ points={{10,-80},{50,-80}}));
+ connect(quadraticSpeedDependentTorqueQS.flange, inertiaLoadQS.flange_b)
+ annotation (Line(
+ points={{80,20},{70,20}}));
+ connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (
+ Line(
+ points={{-20,20},{-20,32},{-10,32}},
+ color={85,170,255}));
+ connect(groundMQS.pin, starMachineQS.pin_n) annotation (Line(
+ points={{-60,20},{-40,20}},
+ color={85,170,255}));
+ connect(terminalBoxQS.plug_sn, smpmQS.plug_sn) annotation (Line(
+ points={{-6,30},{-6,30}},
+ color={85,170,255}));
+ connect(terminalBoxQS.plug_sp, smpmQS.plug_sp) annotation (Line(
+ points={{6,30},{6,30}},
+ color={85,170,255}));
+ connect(dqToThreePhaseQS.I, referenceCurrentSourceQS.I) annotation (
+ Line(points={{-29,94},{-20,94},{-20,96},{-12,96}}, color={85,170,
+ 255}));
+ connect(referenceCurrentSourceQS.plug_p, starQS.plug_p) annotation (Line(points={{0,100},{50,100}}, color={85,170,255}));
+ connect(starQS.pin_n, groundeQS.pin) annotation (Line(
+ points={{50,80},{50,80}},
+ color={85,170,255}));
+ connect(angleSensorQS.flange, smpmQS.flange) annotation (Line(
+ points={{30,50},{30,40},{20,40},{20,20},{10,20}}));
+ connect(referenceCurrentSourceQS.plug_p, resistorQS.plug_p) annotation (Line(points={{0,100},{20,100}}, color={85,170,255}));
+ connect(resistorQS.plug_n, referenceCurrentSourceQS.plug_n) annotation (Line(points={{20,80},{0,80}}, color={85,170,255}));
+ connect(dqToThreePhase.y, signalCurrent.i)
+ annotation (Line(points={{-29,-10},{-12,-10}}, color={0,0,127}));
+ connect(dqToThreePhaseQS.gamma, referenceCurrentSourceQS.gamma)
+ annotation (Line(points={{-29,86},{-20,86},{-20,84},{-12,84}},
+ color={0,0,127}));
+ connect(angleSensorQS.phi, dqToThreePhaseQS.phi) annotation (Line(
+ points={{30,71},{30,74},{-40,74},{-40,78}}, color={0,0,127}));
+ connect(angleSensor.phi, dqToThreePhase.phi) annotation (Line(points={{30,-29},
+ {30,-26},{-40,-26},{-40,-22}}, color={0,0,127}));
+ connect(smpmQS.flange, rotorAngleQS.flange) annotation (Line(points={{10,20},{20,20}}));
+ connect(terminalBoxQS.plug_sp, rotorAngleQS.plug_p) annotation (Line(points={{6,30},{24,30}}, color={85,170,255}));
+ connect(terminalBoxQS.plugSupply, currentRMSSensorQS.plug_n) annotation (Line(points={{0,32},{0,50}}, color={85,170,255}));
+ connect(currentRMSSensorQS.plug_p, referenceCurrentSourceQS.plug_n) annotation (Line(points={{0,70},{0,80}}, color={85,170,255}));
+ connect(inertiaLoadQS.flange_a, smpmQS.flange) annotation (Line(points={{50,20},{10,20}}));
+ connect(rotorAngleQS.plug_n, terminalBoxQS.plug_sn) annotation (Line(points={{36,30},{36,36},{-6,36},{-6,30}}, color={85,170,255}));
+ connect(voltageQuasiRMSSensorQS.plug_n, currentRMSSensorQS.plug_n) annotation (Line(points={{-20,50},{0,50}}, color={85,170,255}));
+ connect(starMQS.pin_n, starMachineQS.pin_n) annotation (Line(points={{-50,30},{-50,20},{-40,20}}, color={85,170,255}));
+ connect(starMQS.plug_p, voltageQuasiRMSSensorQS.plug_p) annotation (Line(points={{-50,50},{-40,50}}, color={85,170,255}));
+ connect(starMachine.plug_p, terminalBox.starpoint) annotation (Line(points={{-20,-80},{-20,-68},{-10,-68}},color={0,0,255}));
+ connect(starMachine.pin_n, groundM.p) annotation (Line(points={{-40,-80},{-60,-80}}, color={0,0,255}));
+ connect(id.y, dqToThreePhaseQS.id_rms) annotation (Line(points={{-79,
+ 30},{-74,30},{-74,96},{-52,96}}, color={0,0,127}));
+ connect(id.y, dqToThreePhase.d) annotation (Line(points={{-79,30},{-74,
+ 30},{-74,-4},{-52,-4}}, color={0,0,127}));
+ connect(iq.y, dqToThreePhaseQS.iq_rms) annotation (Line(points={{-79,
+ -10},{-68,-10},{-68,84},{-52,84}}, color={0,0,127}));
+ connect(iq.y, dqToThreePhase.q) annotation (Line(points={{-79,-10},{-68,
+ -10},{-68,-16},{-52,-16}}, color={0,0,127}));
+ annotation (
+ experiment(StopTime=0.20, Interval=1E-4, Tolerance=1E-6),
+ TestCase(shouldPass = true,
+ __ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.00, 0.20)}))),
+ Documentation(info="
+
+This example compares a time transient and a quasi-static model of a permanent magnet synchronous machine. The machines are fed by a current source. The current components are oriented at the magnetic field orientation and transformed to the stator fixed reference frame. This way the machines are operated at constant torque. The machines start to accelerate from standstill.
+
+
+Simulate for 2 seconds and plot (versus time):
+
+
+
+smpm|smpmQS.wMechanical: machine speed
+smpm|smpmQS.tauElectrical: machine torque
+
+
+Note
+The resistors connected to the terminals of the windings of the quasi-static machine model are necessary
+to numerically stabilize the simulation.
+"),
+ Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
+ -100},{100,100}}), graphics={
+ Text(
+ extent={{30,48},{110,40}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase quasi-static"), Text(
+ extent={{30,-52},{110,-60}},
+ textStyle={TextStyle.Bold},
+ textString="%m phase transient")}));
+end SMPM_CurrentSource;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.mo
new file mode 100644
index 0000000000..3a0a9bbfe3
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.mo
@@ -0,0 +1,4 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines;
+package SynchronousMachines
+ extends Modelica.Icons.ExamplesPackage;
+end SynchronousMachines;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.order b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.order
new file mode 100644
index 0000000000..34bf0a6c1a
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/package.order
@@ -0,0 +1,2 @@
+SMPM_CurrentSource
+SMEE_Generator
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.mo
new file mode 100644
index 0000000000..5b9de0a3a4
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.mo
@@ -0,0 +1,4 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples;
+package BasicMachines
+ extends Modelica.Icons.ExamplesPackage;
+end BasicMachines;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.order b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.order
new file mode 100644
index 0000000000..d6e4f818da
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/package.order
@@ -0,0 +1,2 @@
+InductionMachines
+SynchronousMachines
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.mo
new file mode 100644
index 0000000000..62973c49bf
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.mo
@@ -0,0 +1,4 @@
+within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave;
+package Examples
+ extends Modelica.Icons.ExamplesPackage;
+end Examples;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.order b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.order
new file mode 100644
index 0000000000..e727ddd7e8
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/package.order
@@ -0,0 +1 @@
+BasicMachines
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.mo
new file mode 100644
index 0000000000..c8d36005af
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.mo
@@ -0,0 +1,4 @@
+within ModelicaTest.Magnetic.QuasiStatic;
+package FundamentalWave
+ extends Modelica.Icons.ExamplesPackage;
+end FundamentalWave;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.order b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.order
new file mode 100644
index 0000000000..ad6b7fb4b6
--- /dev/null
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/package.order
@@ -0,0 +1 @@
+Examples
diff --git a/ModelicaTest/Magnetic/QuasiStatic/package.order b/ModelicaTest/Magnetic/QuasiStatic/package.order
index 2a1bd553ba..a0f9826444 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/package.order
+++ b/ModelicaTest/Magnetic/QuasiStatic/package.order
@@ -1 +1,2 @@
FluxTubes
+FundamentalWave
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
new file mode 100644
index 0000000000..af4fc9be58
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor/comparisonSignals.txt
@@ -0,0 +1,12 @@
+time
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+// imc.stator.zeroInductor.i0
+imcQS.rotorCage.port_p.reference.gamma
+mass.s
+mass.v
+massQS.s
+massQS.v
+vfController.x
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
new file mode 100644
index 0000000000..abcee2ec69
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize/comparisonSignals.txt
@@ -0,0 +1,17 @@
+time
+imc.airGap.V_mrr.im
+imc.airGap.V_mrr.re
+imc.airGap.V_msr.im
+imc.airGap.V_msr.re
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+imc.stator.port_p.V_m.im
+imc.stator.port_p.V_m.re
+// imc.stator.zeroInductor.i0
+imcQS.rotorCage.port_p.reference.gamma
+loadInertia.phi
+loadInertia.w
+loadInertiaQS.phi
+loadInertiaQS.w
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
new file mode 100644
index 0000000000..02aeeeefc6
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer/comparisonSignals.txt
@@ -0,0 +1,13 @@
+time
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+// imc.stator.zeroInductor.i0
+imcQS.rotorCage.port_p.reference.gamma
+loadInertia.phi
+loadInertia.w
+loadInertiaQS.phi
+loadInertiaQS.w
+transformer.l2sigma.inductor[1].i
+transformer.l2sigma.inductor[3].i
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
new file mode 100644
index 0000000000..b3bf54d566
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD/comparisonSignals.txt
@@ -0,0 +1,11 @@
+time
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.rotorCage.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+imc.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+// imc.stator.zeroInductor.i0
+imcQS.rotorCage.port_p.reference.gamma
+loadInertia.phi
+loadInertia.w
+loadInertiaQS.phi
+loadInertiaQS.w
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
new file mode 100644
index 0000000000..ec9c9f2aca
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator/comparisonSignals.txt
@@ -0,0 +1,12 @@
+time
+constantSpeed.phi
+constantSpeedQS.phi
+smee.excitation.electroMagneticConverter.Phi.re
+smee.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[1].Phi.re
+smee.stator.electroMagneticConverter.singlePhaseElectroMagneticConverter[2].Phi.im
+smee.stator.stray.port_p.Phi.im
+smee.stator.stray.port_p.Phi.re
+// smee.stator.zeroInductor.i0
+smeeQS.short.port_p.reference.gamma
+theta
+thetaQS
diff --git a/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
new file mode 100644
index 0000000000..52f5422dba
--- /dev/null
+++ b/ModelicaTest/Resources/Reference/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource/comparisonSignals.txt
@@ -0,0 +1,17 @@
+time
+inertiaLoad.phi
+inertiaLoad.w
+inertiaLoadQS.phi
+inertiaLoadQS.w
+terminalBoxQS.plugSupply.pin[1].v.re
+terminalBoxQS.plugSupply.pin[1].v.im
+terminalBoxQS.plugSupply.pin[1].i.re
+terminalBoxQS.plugSupply.pin[1].i.im
+terminalBoxQS.plugSupply.pin[2].v.re
+terminalBoxQS.plugSupply.pin[2].v.im
+terminalBoxQS.plugSupply.pin[2].i.re
+terminalBoxQS.plugSupply.pin[2].i.im
+terminalBoxQS.plugSupply.pin[3].v.re
+terminalBoxQS.plugSupply.pin[3].v.im
+terminalBoxQS.plugSupply.pin[3].i.re
+terminalBoxQS.plugSupply.pin[3].i.im
diff --git a/ModelicaTest/package.order b/ModelicaTest/package.order
index d16b87c585..9f2afcba10 100644
--- a/ModelicaTest/package.order
+++ b/ModelicaTest/package.order
@@ -3,6 +3,7 @@ Blocks
Tables
Electrical
Fluid
+Magnetic
Media
Math
MultiBody
@@ -10,4 +11,3 @@ Rotational
Translational
Utilities
ComplexMath
-Magnetic
From eedff8eebae44bee9c1b984db6e9e72aaf7bc403 Mon Sep 17 00:00:00 2001
From: AHaumer
Date: Mon, 4 May 2026 06:21:23 +0200
Subject: [PATCH 2/4] using extends instead of copy-paste
---
.../InductionMachines/IMC_Conveyor.mo | 200 +----------
.../InductionMachines/IMC_Initialize.mo | 174 +---------
.../InductionMachines/IMC_Transformer.mo | 249 +-------------
.../BasicMachines/InductionMachines/IMC_YD.mo | 176 +---------
.../SynchronousMachines/SMEE_Generator.mo | 315 +-----------------
.../SynchronousMachines/SMPM_CurrentSource.mo | 308 +----------------
6 files changed, 11 insertions(+), 1411 deletions(-)
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
index 45925a9430..d510e0eb51 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
@@ -1,202 +1,6 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
-model IMC_Conveyor
- "Induction machine with squirrel cage and inverter driving a conveyor"
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
- constant SI.Frequency unitFrequency=1 annotation(HideResult=true);
- parameter SI.Voltage VNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fNominal=imcData.fsNominal
- "Nominal frequency";
- parameter SI.AngularVelocity wNominal=2*pi*fNominal/imcData.p
- "Nominal speed";
- parameter SI.Torque TLoad=161.4 "Nominal load torque";
- parameter SI.Inertia JLoad=0.29
- "Load's moment of inertia";
- parameter SI.Length r=0.05 "Transmission radius";
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imcQS(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- wMechanical(fixed=true),
- gammar(fixed=true, start=pi/2),
- gamma(fixed=true, start=-pi/2),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{60,10},{40,30}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m)
- annotation (Placement(transformation(extent={{20,100},{40,80}})));
- Modelica.Blocks.Sources.CombiTimeTable dutyCycle(
- table=[0,0; 1,1; 4,1; 5,0; 10,0; 11,-1; 14,-1; 15,0; 20,0],
- extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic)
- annotation (Placement(transformation(extent={{-100,40},{-80,60}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.VfController vfControllerQS(
- final m=m,
- VNominal=VNominal,
- fNominal=fNominal)
- annotation (Placement(transformation(extent={{-20,40},{0,60}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.VariableVoltageSource signalVoltageQS(final m=m)
- annotation (Placement(transformation(origin={0,90}, extent={{10,10},{-10,-10}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(extent={{-40,80},{-60,100}})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
- origin={-70,70},
- extent={{-10,-10},{10,10}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(
- terminalConnection="Y", m=m)
- annotation (Placement(transformation(extent={{60,26},{40,46}})));
- parameter
- Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
- imcData "Induction machine data"
- annotation (Placement(transformation(extent={{70,72},{90,92}})));
- Modelica.Blocks.Math.Gain gainQS(k=fNominal)
- annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
- Modelica.Mechanics.Translational.Components.IdealGearR2T idealGearR2TQS(ratio=1/r)
- annotation (Placement(transformation(extent={{32,10},{12,30}})));
- Modelica.Mechanics.Translational.Components.Mass massQS(m=JLoad/r^2)
- annotation (Placement(transformation(extent={{0,10},{-20,30}})));
- Modelica.Mechanics.Translational.Sources.SignForce signForceQS(v0(displayUnit
- ="m/s") = 0.01*wNominal*r, f_nominal=-TLoad/r)
- annotation (Placement(transformation(extent={{-50,10},{-30,30}})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundMachineQS
- annotation (Placement(transformation(extent={{-10,-10},{10,10}}, origin={90,
- 10})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMachineQS(m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
- annotation (Placement(transformation(
- extent={{10,10},{-10,-10}},
- rotation=180,
- origin={80,32})));
- Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imc(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- phiMechanical(fixed=true),
- wMechanical(fixed=true),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lszero=imcData.Lszero*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{60,-90},{40,-70}})));
- Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor(m=m)
- annotation (Placement(transformation(extent={{20,0},{40,-20}})));
- Modelica.Electrical.Machines.Utilities.VfController
- vfController(
- final m=m,
- VNominal=VNominal,
- fNominal=fNominal) annotation (Placement(transformation(extent={{-30,-60},{-10,-40}})));
- Modelica.Electrical.Polyphase.Sources.SignalVoltage signalVoltage(
- final m=m) annotation (Placement(transformation(
- origin={0,-10},
- extent={{10,10},{-10,-10}})));
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(extent={{-40,-20},{-60,0}})));
- Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
- transformation(
- origin={-70,-30},
- extent={{-10,-10},{10,10}})));
- Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(
- terminalConnection="Y", m=m)
- annotation (Placement(transformation(extent={{60,-74},{40,-54}})));
- Modelica.Blocks.Math.Gain
- gain(k=fNominal)
- annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
- Modelica.Mechanics.Translational.Components.IdealGearR2T
- idealGearR2T(ratio=1/r)
- annotation (Placement(transformation(extent={{32,-90},{12,-70}})));
- Modelica.Mechanics.Translational.Components.Mass
- mass(m=JLoad/r^2)
- annotation (Placement(transformation(extent={{0,-90},{-20,-70}})));
- Modelica.Mechanics.Translational.Sources.SignForce
- signForce( v0(
- displayUnit="m/s") = 0.01*wNominal*r, f_nominal=-TLoad/r)
- annotation (Placement(transformation(extent={{-50,-90},{-30,-70}})));
- Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
- annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=180,
- origin={80,-68})));
- Modelica.Electrical.Analog.Basic.Ground groundMachine annotation (Placement(
- transformation(origin={90,-90}, extent={{-10,-10},{10,10}})));
-initial equation
- sum(imc.is) = 0;
- imc.is[1:2] = zeros(2);
- imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
-equation
- connect(signalVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-10,90},{-40,90}}, color={85,170,255}));
- connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-60,90},{-70,90},{-70,80}}, color={85,170,255}));
- connect(signalVoltageQS.plug_p, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{10,90},{20,90}}, color={85,170,255}));
- connect(terminalBoxQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{50,32},{50,90},{40,90}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{56,30},{56,30}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{44,30},{44,30}}, color={85,170,255}));
- connect(imcQS.flange, idealGearR2TQS.flangeR) annotation (Line(points={{40,20},{32,20}}));
- connect(idealGearR2TQS.flangeT, massQS.flange_a) annotation (Line(points={{12,20},{0,20}}, color={0,127,0}));
- connect(massQS.flange_b, signForceQS.flange) annotation (Line(points={{-20,20},{-30,20}}, color={0,127,0}));
- connect(vfControllerQS.y, signalVoltageQS.V) annotation (Line(points={{1,50},{6,50},{6,78}}, color={85,170,255}));
- connect(groundMachineQS.pin,starMachineQS. pin_n) annotation (Line(
- points={{90,20},{90,32}}, color={85,170,255}));
- connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (Line(points={{70,32},{60,32}}, color={85,170,255}));
- connect(dutyCycle.y[1], gainQS.u) annotation (Line(points={{-79,50},{-72,50},{-72,50},{-62,50}}, color={0,0,127}));
- connect(gainQS.y, signalVoltageQS.f) annotation (Line(points={{-39,50},{-30,50},{-30,70},{-6,70},{-6,78}}, color={0,0,127}));
- connect(gainQS.y, vfControllerQS.u) annotation (Line(points={{-39,50},{-22,50}}, color={0,0,127}));
- connect(signalVoltage.plug_n,star. plug_p)
- annotation (Line(points={{-10,-10},{-40,-10}}, color={0,0,255}));
- connect(star.pin_n,ground. p)
- annotation (Line(points={{-60,-10},{-70,-10},{-70,-20}},
- color={0,0,255}));
- connect(vfController.y,signalVoltage. v)
- annotation (Line(points={{-9,-50},{0,-50},{0,-22}},
- color={0,0,255}));
- connect(signalVoltage.plug_p,currentQuasiRMSSensor. plug_p)
- annotation (Line(points={{10,-10},{20,-10}}, color={0,0,255}));
- connect(terminalBox.plugSupply,currentQuasiRMSSensor. plug_n)
- annotation (Line(
- points={{50,-68},{50,-10},{40,-10}}, color={0,0,255}));
- connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{56,-70},{56,-70}}, color={0,0,255}));
- connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{44,-70},{44,-70}}, color={0,0,255}));
- connect(vfController.u,gain. y)
- annotation (Line(points={{-32,-50},{-39,-50}},
- color={0,0,127}));
- connect(imc.flange, idealGearR2T.flangeR) annotation (Line(points={{40,-80},{32,-80}}));
- connect(idealGearR2T.flangeT,mass. flange_a)
- annotation (Line(points={{12,-80},{0,-80}}, color={0,127,0}));
- connect(mass.flange_b,signForce. flange)
- annotation (Line(points={{-20,-80},{-30,-80}}, color={0,127,0}));
- connect(dutyCycle.y[1], gain.u) annotation (Line(points={{-79,50},{-70,50},{-70,20},{-90,20},{-90,-50},{-62,-50}}, color={0,0,127}));
- connect(groundMachine.p,starMachine. pin_n) annotation (Line(points={{90,-80},{90,-68}}, color={0,0,255}));
- connect(terminalBox.starpoint, starMachine.plug_p) annotation (Line(points={{60,-68},{70,-68}}, color={0,0,255}));
+model IMC_Conveyor "Induction machine with squirrel cage and inverter driving a conveyor"
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Conveyor;
annotation (experiment(StopTime=5.00, Interval=0.0001, Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(4.00, 5.00)}))),
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
index 89c1a36df4..bd7f894582 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
@@ -1,176 +1,6 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
-model IMC_Initialize
- "Steady-state initialization of induction machine with squirrel cage"
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
- parameter SI.Voltage VNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
- parameter SI.AngularVelocity wSync=2*pi*fNominal/imcData.p "Synchronous speed";
- parameter SI.Time tStart=0.5 "Start time";
- parameter SI.Torque TLoad=161.4 "Nominal load torque";
- parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
- 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
- parameter SI.Inertia JLoad=0.29
- "Load's moment of inertia";
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imcQS(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- wMechanical(fixed=true, start=2*pi*imcData.fsNominal/imcData.p),
- gammar(fixed=true, start=pi/2),
- gamma(fixed=true, start=-pi/2),
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- m=m,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{-20,40},{0,60}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m)
- annotation (Placement(transformation(origin={-40,80}, extent={{-10,10},{10,
- -10}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
- final m=m,
- f=fNominal,
- V=fill(VNominal, m))
- annotation (Placement(transformation(
- origin={-70,70},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-70,40})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(origin={-70,10}, extent={{-10,-10},{10,10}})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{10,40},{30,60}})));
- Modelica.Mechanics.Rotational.Sources.TorqueStep torqueStepQS(
- useSupport=false,
- startTime=tStart,
- stepTorque=-TLoad,
- offsetTorque=0)
- annotation (Placement(transformation(extent={{60,40},{40,60}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(m=m,
- terminalConnection="Y")
- annotation (Placement(transformation(extent={{-20,56},{0,76}})));
- parameter
- Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
- imcData "Induction machine data"
- annotation (Placement(transformation(extent={{70,72},{90,92}})));
-
- Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imc(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- phiMechanical(fixed=true),
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lszero=imcData.Lszero*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{-20,-60},{0,-40}})));
-
- Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensor(m=m)
- annotation (Placement(transformation(origin={-40,-20}, extent={{-10,10},{10,
- -10}})));
- Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
- final m=m,
- f=fill(fNominal, m),
- V=fill(sqrt(2)*VNominal, m)) annotation (Placement(transformation(
- origin={-70,-30},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-70,-60})));
- Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
- transformation(
- origin={-70,-90},
- extent={{-10,-10},{10,10}})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
- annotation (Placement(transformation(extent={{10,-60},{30,-40}})));
- Modelica.Mechanics.Rotational.Sources.TorqueStep torqueStep(
- useSupport=false,
- startTime=tStart,
- stepTorque=-TLoad,
- offsetTorque=0) annotation (Placement(transformation(extent={{60,-60},{40,-40}})));
- Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(m=m,
- terminalConnection="Y")
- annotation (Placement(transformation(extent={{-20,-44},{0,-24}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMachineQS(final m=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-40,38})));
- Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-40,-62})));
-initial equation
- imc.wMechanical = wSync;
- sum(imc.is) = 0;
- der(imc.airGap.V_msr.re) = 0;
- der(imc.airGap.V_msr.im) = 0;
- der(imc.airGap.V_mrr.re) = 0;
- der(imc.airGap.V_mrr.im) = 0;
-equation
- connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-70,30},{-70,20}}, color={85,170,255}));
- connect(sineVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-70,60},{-70,50}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{-16,60},{-16,60}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{-4,60},{-4,60}}, color={85,170,255}));
- connect(terminalBoxQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{-10,62},{-10,80},{-30,80}}, color={85,170,255}));
- connect(loadInertiaQS.flange_b, torqueStepQS.flange) annotation (Line(points={{30,50},{40,50}}));
- connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{0,50},{10,50}}));
- connect(sineVoltageQS.plug_p, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{-70,80},{-50,80}}, color={85,170,255}));
- connect(star.pin_n,ground. p) annotation (Line(points={{-70,-70},{-70,-80}},
- color={0,0,255}));
- connect(sineVoltage.plug_n,star. plug_p)
- annotation (Line(points={{-70,-40},{-70,-50}},
- color={0,0,255}));
- connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{-16,-40},{-16,-40}}, color={0,0,255}));
- connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{-4,-40},{-4,-40}}, color={0,0,255}));
- connect(terminalBox.plugSupply,currentQuasiRMSSensor. plug_n)
- annotation (Line(
- points={{-10,-38},{-10,-20},{-30,-20}},
- color={0,0,255}));
- connect(loadInertia.flange_b,torqueStep. flange) annotation (Line(
- points={{30,-50},{40,-50}}));
- connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{0,-50},{10,-50}}));
- connect(sineVoltage.plug_p,currentQuasiRMSSensor. plug_p) annotation (
- Line(
- points={{-70,-20},{-50,-20}}, color={0,0,255}));
- connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (Line(points={{-40,48},{-40,62},{-20,62}}, color={85,170,255}));
- connect(terminalBox.starpoint, starMachine.plug_p) annotation (Line(points={{-20,-38},{-40,-38},{-40,-52}}, color={0,0,255}));
- connect(starMachine.pin_n, ground.p) annotation (Line(points={{-40,-72},{-40,-80},{-70,-80}}, color={0,0,255}));
- connect(starMachineQS.pin_n, groundQS.pin) annotation (Line(points={{-40,28},{-40,20},{-70,20}}, color={85,170,255}));
+model IMC_Initialize "Steady-state initialization of induction machine with squirrel cage"
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Initialize;
annotation (experiment(
StopTime=0.60,
Interval=0.0001,
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
index f4a4a6808c..d49a879fcb 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
@@ -1,252 +1,7 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
-model IMC_Transformer
- "Induction machine with squirrel cage starting with transformer"
- import Modelica.Constants.pi;
- extends Modelica.Icons.Example;
- constant Integer m=3 "Number of phases";
- parameter SI.Voltage VNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
- parameter SI.Time tStart1=0.1 "Start time";
- parameter SI.Time tStart2=2.0
- "Start time of bypass transformer";
- parameter SI.Torque TLoad=161.4 "Nominal load torque";
- parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
- 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
- parameter SI.Inertia JLoad=0.29
- "Load's moment of inertia";
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imcQS(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- Rs=imcData.Rs,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Lssigma=imcData.Lssigma,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- wMechanical(fixed=true),
- gammar(fixed=true, start=pi/2),
- gamma(fixed=true, start=-pi/2),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- Lm=imcData.Lm,
- Lrsigma=imcData.Lrsigma,
- Rr=imcData.Rr,
- TrRef=imcData.TrRef,
- TsOperational=293.15,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{80,10},{60,30}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor iSensorQS(m=m) annotation (Placement(transformation(
- origin={-40,80},
- extent={{-10,10},{10,-10}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
- final m=m,
- f=fNominal,
- V=fill(VNominal/sqrt(3), m)) annotation (Placement(transformation(origin={-70,80}, extent={{10,10},{-10,-10}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-80,50})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
- origin={-80,20},
- extent={{-10,-10},{10,10}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep1QS[m](each startTime=tStart1) annotation (Placement(transformation(extent={{-60,40},{-40,60}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealClosingSwitch idealCloserQS(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(1e-5, m)) annotation (Placement(transformation(
- origin={-10,80},
- extent={{-10,10},{10,-10}})));
- Modelica.Electrical.QuasiStatic.Machines.BasicMachines.Transformers.Yy.Yy00 transformerQS(
- n=transformerData.n,
- R1=transformerData.R1,
- L1sigma=transformerData.L1sigma,
- R2=transformerData.R2,
- L2sigma=transformerData.L2sigma,
- alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- T1Ref=293.15,
- T2Ref=293.15,
- T1Operational=293.15,
- T2Operational=293.15) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- origin={20,80})));
+model IMC_Transformer "Induction machine with squirrel cage starting with transformer"
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer;
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground ground2QS annotation (Placement(transformation(
- origin={20,50},
- extent={{-10,-10},{10,10}})));
- parameter Modelica.Electrical.Machines.Utilities.TransformerData transformerData(
- f=fNominal,
- V1=VNominal,
- C1=Modelica.Utilities.Strings.substring(
- transformerQS.VectorGroup,
- 1,
- 1),
- V2=VNominal/sqrt(3),
- C2=Modelica.Utilities.Strings.substring(
- transformerQS.VectorGroup,
- 2,
- 2),
- SNominal=50E3,
- v_sc=0.06,
- P_sc=500) "Transformer data" annotation (Placement(transformation(extent={{80,80},{100,100}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep2QS[m](each startTime=tStart2) annotation (Placement(transformation(extent={{-60,10},{-40,30}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealCommutingSwitch idealCommutingSwitchQS(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(50E-5, m)) annotation (Placement(transformation(
- extent={{10,10},{-10,-10}},
- origin={50,80})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{50,10},{30,30}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorqueQS(
- w_nominal=wLoad,
- TorqueDirection=false,
- tau_nominal=-TLoad,
- useSupport=false) annotation (Placement(transformation(extent={{0,10},{20,30}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.TerminalBox terminalBoxQS(
- terminalConnection="D", m=m)
- annotation (Placement(transformation(extent={{80,26},{60,46}})));
- parameter Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData imcData "Induction machine data" annotation (Placement(transformation(extent={{80,52},{100,72}})));
- Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imc(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- phiMechanical(fixed=true),
- wMechanical(fixed=true),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lszero=imcData.Lszero*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{80,-90},{60,-70}})));
- Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor iSensor(m=m) annotation (Placement(transformation(
- origin={-40,-20},
- extent={{-10,10},{10,-10}})));
- Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
- final m=m,
- f=fill(fNominal, m),
- V=fill(sqrt(2/3)*VNominal, m)) annotation (Placement(transformation(
- origin={-70,-20},
- extent={{10,10},{-10,-10}})));
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(extent={{10,-10},{-10,10}},
- rotation=90,
- origin={-80,-50})));
- Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
- transformation(
- origin={-80,-80},
- extent={{-10,-10},{10,10}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep1[m](each startTime=
- tStart1) annotation (Placement(transformation(extent={{-60,-60},{-40,-40}})));
- Modelica.Electrical.Polyphase.Ideal.IdealClosingSwitch idealCloser(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(1e-5, m)) annotation (Placement(transformation(
- origin={-10,-20},
- extent={{-10,10},{10,-10}})));
- Modelica.Electrical.Machines.BasicMachines.Transformers.Yy.Yy00 transformer(
- n=transformerData.n,
- R1=transformerData.R1,
- L1sigma=transformerData.L1sigma,
- R2=transformerData.R2,
- L2sigma=transformerData.L2sigma,
- T1Ref=293.15,
- alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- T2Ref=293.15,
- alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- T1Operational=293.15,
- T2Operational=293.15) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- origin={20,-20})));
- Modelica.Electrical.Analog.Basic.Ground ground2 annotation (Placement(
- transformation(
- origin={20,-50},
- extent={{-10,-10},{10,10}})));
- Modelica.Blocks.Sources.BooleanStep booleanStep2[m](each startTime=
- tStart2) annotation (Placement(transformation(extent={{-60,-90},{-40,-70}})));
- Modelica.Electrical.Polyphase.Ideal.IdealCommutingSwitch
- idealCommutingSwitch(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(50E-5, m)) annotation (Placement(transformation(
- extent={{60,-10},{40,-30}})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
- annotation (Placement(transformation(extent={{50,-90},{30,-70}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
- quadraticLoadTorque(
- w_nominal=wLoad,
- TorqueDirection=false,
- tau_nominal=-TLoad,
- useSupport=false) annotation (Placement(transformation(extent={{0,-90},{20,-70}})));
- Modelica.Electrical.Machines.Utilities.TerminalBox terminalBox(terminalConnection="D") annotation (Placement(transformation(extent={{80,-74},{60,-54}})));
-initial equation
- sum(imc.is) = 0;
- imc.is[1:2] = zeros(2);
- imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
- transformer.i2[1:2] = zeros(2);
-equation
- connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-80,40},{-80,30}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{76,30},{76,30}}, color={85,170,255}));
- connect(terminalBoxQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{64,30},{64,30}}, color={85,170,255}));
- connect(loadInertiaQS.flange_b, quadraticLoadTorqueQS.flange) annotation (Line(points={{30,20},{20,20}}));
- connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{60,20},{50,20}}));
- connect(starQS.plug_p, sineVoltageQS.plug_n) annotation (Line(points={{-80,60},{-80,80}}, color={85,170,255}));
- connect(booleanStep2QS.y, idealCommutingSwitchQS.control) annotation (Line(points={{-39,20},{-10,20},{-10,40},{50,40},{50,68}}, color={255,0,255}));
- connect(transformerQS.starpoint2, ground2QS.pin) annotation (Line(points={{25,70},{24,70},{24,60},{20,60}}, color={85,170,255}));
- connect(idealCommutingSwitchQS.plug_p, terminalBoxQS.plugSupply) annotation (Line(points={{60,80},{70,80},{70,32}}, color={85,170,255}));
- connect(transformerQS.plug2, idealCommutingSwitchQS.plug_n1) annotation (Line(points={{30,80},{36,80},{36,76},{40,76}}, color={85,170,255}));
- connect(sineVoltageQS.plug_p, iSensorQS.plug_p) annotation (Line(points={{-60,80},{-50,80}}, color={85,170,255}));
- connect(booleanStep1QS.y, idealCloserQS.control) annotation (Line(points={{-39,50},{-10,50},{-10,68}}, color={255,0,255}));
- connect(iSensorQS.plug_n, idealCloserQS.plug_p) annotation (Line(points={{-30,80},{-20,80}}, color={85,170,255}));
- connect(transformerQS.plug1, idealCloserQS.plug_n) annotation (Line(points={{10,80},{0,80}}, color={85,170,255}));
- connect(idealCloserQS.plug_n, idealCommutingSwitchQS.plug_n2) annotation (Line(points={{0,80},{0,100},{40,100},{40,80}}, color={85,170,255}));
- connect(star.pin_n,ground. p)
- annotation (Line(points={{-80,-60},{-80,-70}},
- color={0,0,255}));
- connect(terminalBox.plug_sp, imc.plug_sp) annotation (Line(points={{64,-70},{64,-70}}, color={0,0,255}));
- connect(loadInertia.flange_b,quadraticLoadTorque. flange) annotation (
- Line(
- points={{30,-80},{20,-80}}));
- connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{60,-80},{50,-80}}));
- connect(star.plug_p,sineVoltage. plug_n) annotation (Line(
- points={{-80,-40},{-80,-20}},
- color={0,0,255}));
- connect(booleanStep2.y,idealCommutingSwitch. control) annotation (Line(
- points={{-39,-80},{-10,-80},{-10,-60},{50,-60},{50,-32}},
- color={255,0,255}));
- connect(transformer.starpoint2,ground2. p) annotation (Line(
- points={{25,-30},{25,-40},{20,-40}}, color={0,0,255}));
- connect(idealCommutingSwitch.plug_p, terminalBox.plugSupply) annotation (Line(points={{60,-20},{70,-20},{70,-68}}, color={0,0,255}));
- connect(transformer.plug2,idealCommutingSwitch. plug_n1) annotation (Line(points={{30,-20},{36,-20},{36,-24},{40,-24}}, color={0,0,255}));
- connect(sineVoltage.plug_p, iSensor.plug_p) annotation (Line(points={{-60,-20},{-50,-20}}, color={0,0,255}));
- connect(booleanStep1.y,idealCloser. control) annotation (Line(
- points={{-39,-50},{-10,-50},{-10,-32},{-10,-32}},
- color={255,0,255}));
- connect(iSensor.plug_n, idealCloser.plug_p) annotation (Line(points={{-30,-20},{-20,-20}}, color={0,0,255}));
- connect(transformer.plug1,idealCloser. plug_n) annotation (Line(
- points={{10,-20},{0,-20}},color={0,0,255}));
- connect(idealCloser.plug_n,idealCommutingSwitch. plug_n2) annotation (
- Line(
- points={{0,-20},{0,0},{40,0},{40,-20}},
- color={0,0,255}));
- connect(terminalBox.plug_sn, imc.plug_sn) annotation (Line(points={{76,-70},{76,-70}}, color={0,0,255}));
annotation (experiment(StopTime=2.1, Interval=0.0001, Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
index dcb09e1d9c..b32da701a4 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
@@ -1,181 +1,7 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
model IMC_YD "Induction machine with squirrel cage starting Y-D"
- import Modelica.Constants.pi;
- extends Modelica.Icons.Example;
- constant Integer m=3 "Number of phases";
- parameter SI.Voltage VNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fNominal=imc.fsNominal "Nominal frequency";
- parameter SI.Time tStart1=0.1 "Start time";
- parameter SI.Time tStart2=2.0 "Start time from Y to D";
- parameter SI.Torque TLoad=161.4 "Nominal load torque";
- parameter SI.AngularVelocity wLoad(displayUnit="rev/min")=
- 1440.45*2*Modelica.Constants.pi/60 "Nominal load speed";
- parameter SI.Inertia JLoad=0.29
- "Load's moment of inertia";
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imcQS(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- wMechanical(fixed=true),
- gammar(fixed=true, start=pi/2),
- gamma(fixed=true, start=-pi/2),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- Lrsigma=imcData.Lrsigma,
- TrRef=imcData.TrRef,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lm=imcData.Lm*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{20,10},{40,30}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentQuasiRMSSensorQS(m=m) annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=270,
- origin={30,70})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource sineVoltageQS(
- final m=m,
- f=fNominal,
- V=fill(VNominal/sqrt(3), m)) annotation (Placement(transformation(
- origin={-30,90},
- extent={{10,10},{-10,-10}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(final m=m) annotation (Placement(transformation(extent={{-50,80},{-70,100}})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground groundQS annotation (Placement(transformation(
- origin={-90,90},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Blocks.Sources.BooleanStep booleanStepQS[m](each startTime=tStart1) annotation (Placement(transformation(extent={{-80,50},{-60,70}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Ideal.IdealClosingSwitch idealCloserQS(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(1e-5, m)) annotation (Placement(transformation(
- origin={0,90},
- extent={{-10,10},{10,-10}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.SwitchYD switchYDQS(final m=m)
- annotation (Placement(transformation(extent={{20,30},{40,50}})));
- Modelica.Blocks.Sources.BooleanStep booleanStepYDQS[m](each startTime=tStart2) annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad) annotation (Placement(transformation(extent={{50,10},{70,30}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque quadraticLoadTorqueQS(
- w_nominal=wLoad,
- TorqueDirection=false,
- tau_nominal=-TLoad,
- useSupport=false) annotation (Placement(transformation(extent={{100,10},{80,30}})));
- parameter
- Modelica.Electrical.Machines.Utilities.ParameterRecords.IM_SquirrelCageData
- imcData "Induction machine data"
- annotation (Placement(transformation(extent={{70,72},{90,92}})));
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD;
- Modelica.Magnetic.FundamentalWave.BasicMachines.InductionMachines.IM_SquirrelCage
- imc(
- p=imcData.p,
- fsNominal=imcData.fsNominal,
- TsRef=imcData.TsRef,
- alpha20s(displayUnit="1/K") = imcData.alpha20s,
- Jr=imcData.Jr,
- Js=imcData.Js,
- frictionParameters=imcData.frictionParameters,
- phiMechanical(fixed=true),
- wMechanical(fixed=true),
- statorCoreParameters=imcData.statorCoreParameters,
- strayLoadParameters=imcData.strayLoadParameters,
- TrRef=imcData.TrRef,
- Rs=imcData.Rs*m/3,
- Lssigma=imcData.Lssigma*m/3,
- Lszero=imcData.Lszero*m/3,
- Lm=imcData.Lm*m/3,
- Lrsigma=imcData.Lrsigma*m/3,
- Rr=imcData.Rr*m/3,
- m=m,
- TsOperational=293.15,
- effectiveStatorTurns=imcData.effectiveStatorTurns,
- alpha20r=imcData.alpha20r,
- TrOperational=293.15,
- stator(zeroInductor(i0(nominal=10))))
- annotation (Placement(transformation(extent={{20,-90},{40,-70}})));
- Modelica.Electrical.Machines.Sensors.CurrentQuasiRMSSensor
- currentQuasiRMSSensor annotation (Placement(transformation(extent={{-10,10},{10,-10}}, rotation=270,
- origin={30,-30})));
- Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
- final m=m,
- f=fill(fNominal, m),
- V=fill(sqrt(2/3)*VNominal, m)) annotation (Placement(transformation(
- origin={-30,-10},
- extent={{10,10},{-10,-10}})));
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(extent={{-50,-20},{-70,0}})));
- Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
- transformation(
- origin={-90,-10},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Blocks.Sources.BooleanStep booleanStep[m](each startTime=
- tStart1) annotation (Placement(transformation(extent={{-80,-50},{-60,-30}})));
- Modelica.Electrical.Polyphase.Ideal.IdealClosingSwitch idealCloser(
- final m=m,
- Ron=fill(1e-5, m),
- Goff=fill(1e-5, m)) annotation (Placement(transformation(
- origin={0,-10},
- extent={{-10,10},{10,-10}})));
- Modelica.Electrical.Machines.Utilities.SwitchYD
- switchYD(m=m) annotation (Placement(transformation(extent={{20,-70},{40,-50}})));
- Modelica.Blocks.Sources.BooleanStep booleanStepYD[m](each startTime=
- tStart2) annotation (Placement(transformation(extent={{-40,-70},{-20,-50}})));
- Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
- annotation (Placement(transformation(extent={{50,-90},{70,-70}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
- quadraticLoadTorque(
- w_nominal=wLoad,
- TorqueDirection=false,
- tau_nominal=-TLoad,
- useSupport=false) annotation (Placement(transformation(extent={{100,-90},{80,-70}})));
-initial equation
- sum(imc.is) = 0;
- imc.is[1:2] = zeros(2);
- imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
-equation
- connect(starQS.pin_n, groundQS.pin) annotation (Line(points={{-70,90},{-80,90}}, color={85,170,255}));
- connect(sineVoltageQS.plug_n, starQS.plug_p) annotation (Line(points={{-40,90},{-50,90}}, color={85,170,255}));
- connect(sineVoltageQS.plug_p, idealCloserQS.plug_p) annotation (Line(points={{-20,90},{-10,90}}, color={85,170,255}));
- connect(loadInertiaQS.flange_b, quadraticLoadTorqueQS.flange) annotation (Line(points={{70,20},{80,20}}));
- connect(booleanStepQS.y, idealCloserQS.control) annotation (Line(points={{-59,60},{0,60},{0,78}}, color={255,0,255}));
- connect(booleanStepYDQS.y, switchYDQS.control) annotation (Line(points={{-19,40},{18,40}}, color={255,0,255}));
- connect(idealCloserQS.plug_n, currentQuasiRMSSensorQS.plug_p) annotation (Line(points={{10,90},{10,90},{28,90},{28,90},{30,90},{30,80},{30,80}}, color={85,170,255}));
- connect(switchYDQS.plug_sn, imcQS.plug_sn) annotation (Line(points={{24,30},{24,30}}, color={85,170,255}));
- connect(switchYDQS.plug_sp, imcQS.plug_sp) annotation (Line(points={{36,30},{36,30}}, color={85,170,255}));
- connect(switchYDQS.plugSupply, currentQuasiRMSSensorQS.plug_n) annotation (Line(points={{30,50},{30,60}}, color={85,170,255}));
- connect(imcQS.flange, loadInertiaQS.flange_a) annotation (Line(points={{40,20},{50,20}}));
- connect(star.pin_n,ground. p)
- annotation (Line(points={{-70,-10},{-80,-10}},
- color={0,0,255}));
- connect(sineVoltage.plug_n,star. plug_p)
- annotation (Line(points={{-40,-10},{-50,-10}}, color={0,0,255}));
- connect(sineVoltage.plug_p,idealCloser. plug_p) annotation (Line(points={{-20,-10},{-10,-10}},
- color={0,0,255}));
- connect(loadInertia.flange_b,quadraticLoadTorque. flange)
- annotation (Line(points={{70,-80},{80,-80}}));
- connect(booleanStep.y,idealCloser. control) annotation (Line(points={{-59,-40},{0,-40},{0,-22}},
- color={255,0,255}));
- connect(booleanStepYD.y,switchYD. control)
- annotation (Line(points={{-19,-60},{18,-60}}, color={255,0,255}));
- connect(idealCloser.plug_n,currentQuasiRMSSensor. plug_p)
- annotation (Line(points={{10,-10},{30,-10},{30,-20}},
- color={0,0,255}));
- connect(switchYD.plug_sn, imc.plug_sn) annotation (Line(points={{24,-70},{24,-70}}, color={0,0,255}));
- connect(switchYD.plug_sp, imc.plug_sp) annotation (Line(points={{36,-70},{36,-70}}, color={0,0,255}));
- connect(switchYD.plugSupply,currentQuasiRMSSensor. plug_n) annotation (
- Line(
- points={{30,-50},{30,-40}}, color={0,0,255}));
- connect(imc.flange, loadInertia.flange_a) annotation (Line(points={{40,-80},{50,-80}}));
annotation (experiment(StopTime=2.1,Interval=0.0001,Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
index 6cac8225b9..c99d49337d 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
@@ -1,317 +1,6 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines;
-model SMEE_Generator
- "Electrical excited synchronous machine operating as generator"
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- parameter Integer m=3 "Number of stator phases" annotation(Evaluate=true);
- parameter SI.Voltage VsNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fsNominal=smeeData.fsNominal "Nominal frequency";
- parameter SI.AngularVelocity w=
- Modelica.Units.Conversions.from_rpm(1499) "Nominal speed";
- parameter SI.Current Ie=19 "Excitation current";
- parameter SI.Current Ie0=10
- "Initial excitation current";
- parameter SI.Angle gamma0(displayUnit="deg") = 0
- "Initial rotor displacement angle";
- SI.Angle thetaQS=rotorAngleQS.rotorDisplacementAngle "Rotor displacement angle, quasi-static";
- SI.Angle theta=rotorAngle.rotorDisplacementAngle "Rotor displacement angle, transient";
-
- output SI.Power Ptr=powerSensor.power "Transient power";
- output SI.Power Pqs=powerSensorQS.apparentPower.re "QS power";
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(extent={{-50,-30},{-70,-10}})));
- Modelica.Electrical.Analog.Basic.Ground grounde annotation (Placement(
- transformation(
- origin={-90,-20},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.Polyphase.Sources.SineVoltage sineVoltage(
- final m=m,
- final V=fill(VsNominal*sqrt(2), m),
- final f=fill(fsNominal, m)) annotation (Placement(
- transformation(extent={{-20,-30},{-40,-10}})));
- Modelica.Electrical.Polyphase.Sensors.PowerSensor powerSensor(m=m)
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={0,-34})));
- Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBoxM(
- terminalConnection="Y", m=m)
- annotation (Placement(transformation(extent={{-10,-64},{10,-44}})));
- Modelica.Magnetic.FundamentalWave.BasicMachines.SynchronousMachines.SM_ElectricalExcited
- smee(
- phiMechanical(start=-(Modelica.Constants.pi + gamma0)/smee.p, fixed=true),
- Jr=0.29,
- Js=0.29,
- p=2,
- fsNominal=smeeData.fsNominal,
- TsRef=smeeData.TsRef,
- alpha20s(displayUnit="1/K") = smeeData.alpha20s,
- Lrsigmad=smeeData.Lrsigmad,
- Lrsigmaq=smeeData.Lrsigmaq,
- Rrd=smeeData.Rrd,
- Rrq=smeeData.Rrq,
- TrRef=smeeData.TrRef,
- alpha20r(displayUnit="1/K") = smeeData.alpha20r,
- VsNominal=smeeData.VsNominal,
- IeOpenCircuit=smeeData.IeOpenCircuit,
- Re=smeeData.Re,
- TeRef=smeeData.TeRef,
- alpha20e(displayUnit="1/K") = smeeData.alpha20e,
- statorCoreParameters(VRef=100),
- strayLoadParameters(IRef=100),
- brushParameters(ILinear=0.01),
- ir(each fixed=true),
- useDamperCage=false,
- m=m,
- frictionParameters(PRef=0),
- Rs=smeeData.Rs*m/3,
- Lssigma=smeeData.Lssigma*m/3,
- Lmd=smeeData.Lmd*m/3,
- Lmq=smeeData.Lmq*m/3,
- effectiveStatorTurns=smeeData.effectiveStatorTurns,
- TsOperational=293.15,
- TrOperational=293.15,
- TeOperational=293.15,
- sigmae=smeeData.sigmae*m/3)
- annotation (Placement(transformation(extent={{-10,-80},{10,-60}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.SynchronousMachines.SM_ElectricalExcited
- smeeQS(
- p=2,
- fsNominal=smeeData.fsNominal,
- TsRef=smeeData.TsRef,
- alpha20s(displayUnit="1/K") = smeeData.alpha20s,
- Jr=0.29,
- Js=0.29,
- frictionParameters(PRef=0),
- statorCoreParameters(PRef=0, VRef=100),
- strayLoadParameters(PRef=0, IRef=100),
- Lrsigmad=smeeData.Lrsigmad,
- Rrd=smeeData.Rrd,
- Rrq=smeeData.Rrq,
- alpha20r(displayUnit="1/K") = smeeData.alpha20r,
- VsNominal=smeeData.VsNominal,
- IeOpenCircuit=smeeData.IeOpenCircuit,
- Re=smeeData.Re,
- TeRef=smeeData.TeRef,
- alpha20e(displayUnit="1/K") = smeeData.alpha20e,
- brushParameters(V=0, ILinear=0.01),
- Lrsigmaq=smeeData.Lrsigmaq,
- TrRef=smeeData.TrRef,
- useDamperCage=false,
- m=m,
- gammar(fixed=true, start=pi/2),
- gamma(fixed=true, start=-pi/2),
- Rs=smeeData.Rs*m/3,
- Lssigma=smeeData.Lssigma*m/3,
- Lmd=smeeData.Lmd*m/3,
- Lmq=smeeData.Lmq*m/3,
- TsOperational=293.15,
- effectiveStatorTurns=smeeData.effectiveStatorTurns,
- TrOperational=293.15,
- TeOperational=293.15)
- annotation (Placement(transformation(extent={{-10,20},{10,40}})));
- Modelica.Electrical.Analog.Basic.Ground groundr annotation (Placement(
- transformation(
- origin={-50,-88},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.Analog.Basic.Ground groundrQS annotation (
- Placement(transformation(
- origin={-50,12},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.Analog.Sources.RampCurrent rampCurrent(
- duration=0.1,
- I=Ie - Ie0,
- offset=Ie0) annotation (Placement(transformation(
- origin={-30,-70},
- extent={{-10,-10},{10,10}},
- rotation=90)));
- Modelica.Electrical.Analog.Sources.RampCurrent rampCurrentQS(
- duration=0.1,
- I=Ie - Ie0,
- offset=Ie0) annotation (Placement(transformation(
- origin={-28,30},
- extent={{-10,-10},{10,10}},
- rotation=90)));
- Modelica.Electrical.Machines.Sensors.MechanicalPowerSensor
- mechanicalPowerSensor annotation (Placement(transformation(extent={{50,-80},{70,-60}})));
- Modelica.Electrical.Machines.Sensors.MechanicalPowerSensor
- mechanicalPowerSensorQS annotation (Placement(transformation(extent={{50,20},{70,40}})));
- Modelica.Mechanics.Rotational.Sources.ConstantSpeed constantSpeed(
- final w_fixed=w, useSupport=false) annotation (Placement(
- transformation(extent={{100,-80},{80,-60}})));
- Modelica.Mechanics.Rotational.Sources.ConstantSpeed constantSpeedQS(
- final w_fixed=w, useSupport=false) annotation (Placement(
- transformation(extent={{100,20},{80,40}})));
- parameter
- Modelica.Electrical.Machines.Utilities.SynchronousMachineData
- smeeData(
- SNominal=30e3,
- VsNominal=100,
- fsNominal=50,
- IeOpenCircuit=10,
- x0=0.1,
- xd=1.6,
- xdTransient=0.1375,
- xdSubtransient=0.121428571,
- xqSubtransient=0.148387097,
- Ta=0.014171268,
- Td0Transient=0.261177343,
- Td0Subtransient=0.006963029,
- Tq0Subtransient=0.123345081,
- alpha20s(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- alpha20r(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- alpha20e(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero,
- xq=1.1,
- TsSpecification=293.15,
- TsRef=293.15,
- TrSpecification=293.15,
- TrRef=293.15,
- TeSpecification=293.15,
- TeRef=293.15) "Synchronous machine data"
- annotation (Placement(transformation(extent={{70,70},{90,90}})));
-
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.VoltageSource
- voltageSourceQS(
- m=m,
- phi=-Modelica.Electrical.Polyphase.Functions.symmetricOrientation(
- m),
- V=fill(VsNominal, m),
- f=fsNominal) annotation (Placement(transformation(
- origin={-30,80},
- extent={{-10,-10},{10,10}},
- rotation=180)));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(m=m)
- annotation (Placement(transformation(
- origin={-60,80},
- extent={{-10,-10},{10,10}},
- rotation=180)));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
- groundeQS annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-90,80})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.PowerSensor
- powerSensorQS(m=m) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={0,66})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(m=m,
- terminalConnection="Y")
- annotation (Placement(transformation(extent={{-10,36},{10,56}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star
- starMachineQS(m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(
- m))
- annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-20,50})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
- groundMachineQS annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-50,50})));
- Modelica.Electrical.Machines.Sensors.RotorDisplacementAngle rotorAngle(m=m, p=
- smee.p) annotation (Placement(transformation(
- origin={30,-70},
- extent={{-10,10},{10,-10}},
- rotation=270)));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Sensors.RotorDisplacementAngle rotorAngleQS(m=m, p=
- smeeQS.p) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={30,30})));
- Modelica.Electrical.Analog.Basic.Ground groundMachine annotation (Placement(
- transformation(
- extent={{-10,-10},{10,10}},
- origin={-50,-50},
- rotation=270)));
- Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
- annotation (Placement(transformation(extent={{10,-10},{-10,10}}, origin={-20,
- -50})));
-initial equation
- sum(smee.is) = 0;
- smee.is[1:2] = zeros(2);
-
-equation
- connect(star.pin_n, grounde.p)
- annotation (Line(points={{-70,-20},{-80,-20}}, color={0,0,255}));
- connect(star.plug_p, sineVoltage.plug_n)
- annotation (Line(points={{-50,-20},{-40,-20}}, color={0,0,255}));
- connect(mechanicalPowerSensorQS.flange_b, constantSpeedQS.flange)
- annotation (Line(points={{70,30},{80,30}}));
- connect(rampCurrentQS.p, groundrQS.p) annotation (Line(points={{-28,
- 20},{-34,20},{-34,12},{-40,12}}, color={0,0,255}));
- connect(rampCurrentQS.p, smeeQS.pin_en) annotation (Line(points={{-28,
- 20},{-20,20},{-20,24},{-10,24}}, color={0,0,255}));
- connect(rampCurrentQS.n, smeeQS.pin_ep) annotation (Line(points={{-28,
- 40},{-20,40},{-20,36},{-10,36}}, color={0,0,255}));
- connect(smee.flange, mechanicalPowerSensor.flange_a)
- annotation (Line(points={{10,-70},{50,-70}}));
- connect(mechanicalPowerSensor.flange_b, constantSpeed.flange)
- annotation (Line(points={{70,-70},{80,-70}}));
- connect(rampCurrent.p, groundr.p) annotation (Line(points={{-30,-80},
- {-36,-80},{-36,-88},{-38,-88},{-38,-88},{-40,-88},{-40,-88}},
- color={0,0,255}));
- connect(rampCurrent.p, smee.pin_en) annotation (Line(points={{-30,-80},
- {-20,-80},{-20,-76},{-10,-76}}, color={0,0,255}));
- connect(rampCurrent.n, smee.pin_ep) annotation (Line(points={{-30,-60},
- {-20,-60},{-20,-64},{-10,-64}}, color={0,0,255}));
- connect(smee.plug_sn, terminalBoxM.plug_sn)
- annotation (Line(points={{-6,-60},{-6,-60}}, color={0,0,255}));
- connect(smee.plug_sp, terminalBoxM.plug_sp)
- annotation (Line(points={{6,-60},{6,-60}}, color={0,0,255}));
- connect(groundeQS.pin, starQS.pin_n) annotation (Line(points={{-80,80},
- {-80,80},{-70,80}}, color={85,170,255}));
- connect(starQS.plug_p, voltageSourceQS.plug_n) annotation (Line(
- points={{-50,80},{-50,80},{-40,80}}, color={85,170,255}));
- connect(voltageSourceQS.plug_p, powerSensorQS.currentP) annotation (
- Line(points={{-20,80},{-20,80},{0,80},{0,76}},
- color={85,170,255}));
- connect(powerSensorQS.voltageP, powerSensorQS.currentP) annotation (
- Line(points={{10,66},{10,76},{0,76}}, color={85,170,255}));
- connect(powerSensorQS.voltageN, starQS.plug_p) annotation (Line(
- points={{-10,66},{-10,66},{-42,66},{-50,66},{-50,80}}, color={
- 85,170,255}));
- connect(sineVoltage.plug_p, powerSensor.pc)
- annotation (Line(points={{-20,-20},{0,-20},{0,-24}}, color={0,0,255}));
- connect(powerSensor.pc, powerSensor.pv)
- annotation (Line(points={{0,-24},{10,-24},{10,-34}}, color={0,0,255}));
- connect(powerSensor.nv, star.plug_p)
- annotation (Line(points={{-10,-34},{-50,-34},{-50,-20}}, color={0,0,255}));
- connect(powerSensor.nc, terminalBoxM.plugSupply)
- annotation (Line(points={{0,-44},{0,-58}}, color={0,0,255}));
- connect(terminalBoxQS.plug_sn, smeeQS.plug_sn) annotation (Line(
- points={{-6,40},{-6,40}},
- color={85,170,255}));
- connect(terminalBoxQS.plug_sp, smeeQS.plug_sp) annotation (Line(
- points={{6,40},{6,40}},
- color={85,170,255}));
- connect(powerSensorQS.currentN, terminalBoxQS.plugSupply) annotation (
- Line(
- points={{0,56},{0,42}},
- color={85,170,255}));
- connect(starMachineQS.pin_n, groundMachineQS.pin) annotation (Line(
- points={{-30,50},{-40,50}},
- color={85,170,255}));
- connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (
- Line(
- points={{-10,50},{-10,42},{-10,42}},
- color={85,170,255}));
- connect(smee.flange, rotorAngle.flange) annotation (Line(points={{10,-70},{20,-70}}));
- connect(rotorAngle.plug_p, smee.plug_sp) annotation (Line(points={{24,-60},{6,-60}}, color={0,0,255}));
- connect(smee.plug_sn, rotorAngle.plug_n) annotation (Line(points={{-6,-60},{-6,-54},{36,-54},{36,-60}}, color={0,0,255}));
- connect(terminalBoxQS.plug_sp, rotorAngleQS.plug_p) annotation (Line(points={{6,40},{24,40}}, color={85,170,255}));
- connect(rotorAngleQS.plug_n, terminalBoxQS.plug_sn) annotation (Line(points={{36,40},{36,46},{-6,46},{-6,40}}, color={85,170,255}));
- connect(smeeQS.flange, rotorAngleQS.flange) annotation (Line(points={{10,30},{20,30}}));
- connect(smeeQS.flange, mechanicalPowerSensorQS.flange_a) annotation (Line(points={{10,30},{50,30}}));
- connect(starMachine.pin_n,groundMachine. p) annotation (Line(points={{-30,-50},{-40,-50}}, color={0,0,255}));
- connect(starMachine.plug_p, terminalBoxM.starpoint) annotation (Line(points={{-10,-50},{-10,-54},{-10,-58},{-10,-58}},color={0,0,255}));
+model SMEE_Generator "Electrical excited synchronous machine operating as generator"
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMEE_Generator;
annotation (
experiment(
StopTime=15.1,
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
index f2806a9831..e22d6bad57 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
@@ -1,310 +1,6 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines;
-model SMPM_CurrentSource
- "Test example: PermanentMagnetSynchronousMachine fed by current source"
- extends Modelica.Icons.Example;
- import Modelica.Constants.pi;
- parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
- parameter SI.Voltage VNominal=100
- "Nominal RMS voltage per phase";
- parameter SI.Frequency fNominal=smpmData.fsNominal "Nominal frequency";
- parameter SI.Frequency f=50 "Actual frequency";
- parameter SI.Time tRamp=1 "Frequency ramp";
- parameter SI.Torque TLoad=181.4 "Nominal load torque";
- parameter SI.Time tStep=1.2 "Time of load torque step";
- parameter SI.Inertia JLoad=0.29
- "Load's moment of inertia";
- SI.Angle thetaQS=rotorAngleQS.rotorDisplacementAngle "Rotor displacement angle, quasi-static";
- SI.Angle theta=rotorAngle.rotorDisplacementAngle "Rotor displacement angle, transient";
-
- Modelica.Magnetic.FundamentalWave.BasicMachines.SynchronousMachines.SM_PermanentMagnet
- smpm(
- p=smpmData.p,
- fsNominal=smpmData.fsNominal,
- Rs=smpmData.Rs,
- TsRef=smpmData.TsRef,
- Lszero=smpmData.Lszero,
- Lssigma=smpmData.Lssigma,
- Jr=smpmData.Jr,
- Js=smpmData.Js,
- frictionParameters=smpmData.frictionParameters,
- phiMechanical(fixed=true),
- wMechanical(fixed=true),
- statorCoreParameters=smpmData.statorCoreParameters,
- strayLoadParameters=smpmData.strayLoadParameters,
- VsOpenCircuit=smpmData.VsOpenCircuit,
- Lmd=smpmData.Lmd,
- Lmq=smpmData.Lmq,
- useDamperCage=smpmData.useDamperCage,
- Lrsigmad=smpmData.Lrsigmad,
- Lrsigmaq=smpmData.Lrsigmaq,
- Rrd=smpmData.Rrd,
- Rrq=smpmData.Rrq,
- TrRef=smpmData.TrRef,
- permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters,
- m=m,
- TsOperational=293.15,
- alpha20s=smpmData.alpha20s,
- effectiveStatorTurns=smpmData.effectiveStatorTurns,
- alpha20r=smpmData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{-10,-90},{10,-70}})));
- Modelica.Electrical.Polyphase.Sources.SignalCurrent signalCurrent(
- final m=m) annotation (Placement(transformation(
- origin={0,-10},
- extent={{-10,10},{10,-10}},
- rotation=270)));
- Modelica.Electrical.Polyphase.Basic.Star star(final m=m) annotation (
- Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={50,-10})));
- Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
- transformation(
- origin={50,-30},
- extent={{-10,-10},{10,10}})));
- Modelica.Electrical.Machines.Utilities.DQToThreePhase dqToThreePhase(
- p=smpm.p, m=m)
- annotation (Placement(transformation(extent={{-50,-20},{-30,0}})));
- Modelica.Blocks.Sources.Constant iq(k=84.6*3/m)
- annotation (Placement(
- transformation(extent={{-100,-20},{-80,0}})));
- Modelica.Blocks.Sources.Constant id(k=-53.5*3/m)
- annotation (Placement(transformation(extent={{-100,20},{-80,40}})));
- Modelica.Electrical.Polyphase.Sensors.VoltageQuasiRMSSensor
- voltageQuasiRMSSensor(m=m)
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=180,
- origin={-30,-50})));
- Modelica.Electrical.Polyphase.Basic.Star starM(final m=m)
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={-60,-60})));
- Modelica.Electrical.Analog.Basic.Ground groundM annotation (Placement(
- transformation(
- origin={-60,-90},
- extent={{-10,-10},{10,10}})));
- Modelica.Electrical.Machines.Utilities.MultiTerminalBox terminalBox(
- terminalConnection="Y", m=m)
- annotation (Placement(transformation(extent={{-10,-74},{10,-54}})));
- Modelica.Electrical.Machines.Sensors.RotorDisplacementAngle rotorAngle(m=m, p=smpmData.p) annotation (Placement(transformation(
- origin={30,-80},
- extent={{-10,10},{10,-10}},
- rotation=270)));
- Modelica.Mechanics.Rotational.Sensors.AngleSensor angleSensor
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={30,-40})));
- Modelica.Mechanics.Rotational.Components.Inertia inertiaLoad(J=0.29)
- annotation (Placement(transformation(extent={{50,-90},{70,-70}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
- quadraticSpeedDependentTorque(tau_nominal=-181.4, w_nominal(
- displayUnit="rpm") = 157.07963267949)
- annotation (Placement(transformation(extent={{100,-90},{80,-70}})));
- parameter
- Modelica.Electrical.Machines.Utilities.ParameterRecords.SM_PermanentMagnetData
- smpmData(useDamperCage=false) "Synchronous machine data"
- annotation (Placement(transformation(extent={{70,72},{90,92}})));
- Modelica.Electrical.Polyphase.Sensors.CurrentQuasiRMSSensor currentRMSsensor(m=m)
- annotation (Placement(transformation(
- origin={0,-40},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.BasicMachines.SynchronousMachines.SM_PermanentMagnet
- smpmQS(
- p=smpmData.p,
- fsNominal=smpmData.fsNominal,
- Rs=smpmData.Rs,
- TsRef=smpmData.TsRef,
- Lssigma=smpmData.Lssigma,
- Jr=smpmData.Jr,
- Js=smpmData.Js,
- frictionParameters=smpmData.frictionParameters,
- wMechanical(fixed=true),
- statorCoreParameters=smpmData.statorCoreParameters,
- strayLoadParameters=smpmData.strayLoadParameters,
- VsOpenCircuit=smpmData.VsOpenCircuit,
- Lmd=smpmData.Lmd,
- Lmq=smpmData.Lmq,
- useDamperCage=smpmData.useDamperCage,
- Lrsigmad=smpmData.Lrsigmad,
- Lrsigmaq=smpmData.Lrsigmaq,
- Rrd=smpmData.Rrd,
- Rrq=smpmData.Rrq,
- TrRef=smpmData.TrRef,
- permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters,
- phiMechanical(fixed=true, start=0),
- m=m,
- TsOperational=293.15,
- alpha20s=smpmData.alpha20s,
- effectiveStatorTurns=smpmData.effectiveStatorTurns,
- alpha20r=smpmData.alpha20r,
- TrOperational=293.15)
- annotation (Placement(transformation(extent={{-10,10},{10,30}})));
-
- Modelica.Mechanics.Rotational.Components.Inertia inertiaLoadQS(J=0.29)
- annotation (Placement(transformation(extent={{50,10},{70,30}})));
- Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
- quadraticSpeedDependentTorqueQS(tau_nominal=-181.4, w_nominal(
- displayUnit="rpm") = 157.07963267949)
- annotation (Placement(transformation(extent={{100,10},{80,30}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star
- starMachineQS(m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(
- m))
- annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=180,
- origin={-30,20})));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
- groundMQS annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- origin={-60,10})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.MultiTerminalBox terminalBoxQS(
- terminalConnection="Y", m=m)
- annotation (Placement(transformation(extent={{-10,26},{10,46}})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities.CurrentController dqToThreePhaseQS(m=m, p=
- smpmQS.p)
- annotation (Placement(transformation(extent={{-50,80},{-30,100}})));
- Modelica.Mechanics.Rotational.Sensors.AngleSensor angleSensorQS
- annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=90,
- origin={30,60})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sources.ReferenceCurrentSource referenceCurrentSourceQS(m=m)
- annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={0,90})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starQS(m=m)
- annotation (Placement(transformation(
- origin={50,90},
- extent={{-10,-10},{10,10}},
- rotation=270)));
- Modelica.Electrical.QuasiStatic.SinglePhase.Basic.Ground
- groundeQS annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- origin={50,70})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Resistor resistorQS(m=m, R_ref=fill(1e5, m)) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=270,
- origin={20,90})));
- Modelica.Magnetic.QuasiStatic.FundamentalWave.Sensors.RotorDisplacementAngle rotorAngleQS(m=m, p=
- smpmData.p) annotation (Placement(transformation(
- extent={{10,-10},{-10,10}},
- rotation=90,
- origin={30,20})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.CurrentQuasiRMSSensor currentRMSSensorQS(m=m)
- annotation (Placement(transformation(
- extent={{10,10},{-10,-10}},
- rotation=90,
- origin={0,60})));
- Modelica.Electrical.QuasiStatic.Polyphase.Sensors.VoltageQuasiRMSSensor voltageQuasiRMSSensorQS(m=m)
- annotation (Placement(transformation(extent={{-40,60},{-20,40}})));
- Modelica.Electrical.QuasiStatic.Polyphase.Basic.Star starMQS(m=m) annotation (Placement(transformation(
- extent={{-10,10},{10,-10}},
- rotation=270,
- origin={-50,40})));
- Modelica.Electrical.Polyphase.Basic.Star starMachine(final m=
- Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m))
- annotation (Placement(transformation(extent={{10,-10},{-10,10}}, origin={-30,
- -80})));
-equation
- connect(star.pin_n, ground.p)
- annotation (Line(points={{50,-20},{50,-20}}, color={0,0,255}));
- connect(rotorAngle.plug_n, smpm.plug_sn) annotation (Line(points={{36,-70},{36,-64},{-6,-64},{-6,-70}}, color={0,0,255}));
- connect(rotorAngle.plug_p, smpm.plug_sp) annotation (Line(points={{24,-70},{6,-70}}, color={0,0,255}));
- connect(terminalBox.plug_sn, smpm.plug_sn) annotation (Line(
- points={{-6,-70},{-6,-70}},
- color={0,0,255}));
- connect(terminalBox.plug_sp, smpm.plug_sp) annotation (Line(
- points={{6,-70},{6,-70}},
- color={0,0,255}));
- connect(smpm.flange, rotorAngle.flange) annotation (Line(points={{10,-80},{20,-80}}));
- connect(signalCurrent.plug_p, star.plug_p) annotation (Line(
- points={{0,0},{50,0}},
- color={0,0,255}));
- connect(angleSensor.flange, rotorAngle.flange) annotation (Line(points={{30,-50},{30,-60},{20,-60},{20,-80}}));
- connect(voltageQuasiRMSSensor.plug_p, terminalBox.plugSupply)
- annotation (Line(
- points={{-20,-50},{0,-50},{0,-68}},
- color={0,0,255}));
- connect(starM.plug_p, voltageQuasiRMSSensor.plug_n) annotation (Line(
- points={{-60,-50},{-40,-50}},
- color={0,0,255}));
- connect(starM.pin_n, groundM.p) annotation (Line(
- points={{-60,-70},{-60,-80}},
- color={0,0,255}));
- connect(quadraticSpeedDependentTorque.flange, inertiaLoad.flange_b)
- annotation (Line(
- points={{80,-80},{70,-80}}));
- connect(signalCurrent.plug_n, currentRMSsensor.plug_p) annotation (
- Line(
- points={{0,-20},{0,-30}},
- color={0,0,255}));
- connect(currentRMSsensor.plug_n, voltageQuasiRMSSensor.plug_p)
- annotation (Line(
- points={{0,-50},{-20,-50}},
- color={0,0,255}));
- connect(smpm.flange, inertiaLoad.flange_a) annotation (Line(
- points={{10,-80},{50,-80}}));
- connect(quadraticSpeedDependentTorqueQS.flange, inertiaLoadQS.flange_b)
- annotation (Line(
- points={{80,20},{70,20}}));
- connect(starMachineQS.plug_p, terminalBoxQS.starpoint) annotation (
- Line(
- points={{-20,20},{-20,32},{-10,32}},
- color={85,170,255}));
- connect(groundMQS.pin, starMachineQS.pin_n) annotation (Line(
- points={{-60,20},{-40,20}},
- color={85,170,255}));
- connect(terminalBoxQS.plug_sn, smpmQS.plug_sn) annotation (Line(
- points={{-6,30},{-6,30}},
- color={85,170,255}));
- connect(terminalBoxQS.plug_sp, smpmQS.plug_sp) annotation (Line(
- points={{6,30},{6,30}},
- color={85,170,255}));
- connect(dqToThreePhaseQS.I, referenceCurrentSourceQS.I) annotation (
- Line(points={{-29,94},{-20,94},{-20,96},{-12,96}}, color={85,170,
- 255}));
- connect(referenceCurrentSourceQS.plug_p, starQS.plug_p) annotation (Line(points={{0,100},{50,100}}, color={85,170,255}));
- connect(starQS.pin_n, groundeQS.pin) annotation (Line(
- points={{50,80},{50,80}},
- color={85,170,255}));
- connect(angleSensorQS.flange, smpmQS.flange) annotation (Line(
- points={{30,50},{30,40},{20,40},{20,20},{10,20}}));
- connect(referenceCurrentSourceQS.plug_p, resistorQS.plug_p) annotation (Line(points={{0,100},{20,100}}, color={85,170,255}));
- connect(resistorQS.plug_n, referenceCurrentSourceQS.plug_n) annotation (Line(points={{20,80},{0,80}}, color={85,170,255}));
- connect(dqToThreePhase.y, signalCurrent.i)
- annotation (Line(points={{-29,-10},{-12,-10}}, color={0,0,127}));
- connect(dqToThreePhaseQS.gamma, referenceCurrentSourceQS.gamma)
- annotation (Line(points={{-29,86},{-20,86},{-20,84},{-12,84}},
- color={0,0,127}));
- connect(angleSensorQS.phi, dqToThreePhaseQS.phi) annotation (Line(
- points={{30,71},{30,74},{-40,74},{-40,78}}, color={0,0,127}));
- connect(angleSensor.phi, dqToThreePhase.phi) annotation (Line(points={{30,-29},
- {30,-26},{-40,-26},{-40,-22}}, color={0,0,127}));
- connect(smpmQS.flange, rotorAngleQS.flange) annotation (Line(points={{10,20},{20,20}}));
- connect(terminalBoxQS.plug_sp, rotorAngleQS.plug_p) annotation (Line(points={{6,30},{24,30}}, color={85,170,255}));
- connect(terminalBoxQS.plugSupply, currentRMSSensorQS.plug_n) annotation (Line(points={{0,32},{0,50}}, color={85,170,255}));
- connect(currentRMSSensorQS.plug_p, referenceCurrentSourceQS.plug_n) annotation (Line(points={{0,70},{0,80}}, color={85,170,255}));
- connect(inertiaLoadQS.flange_a, smpmQS.flange) annotation (Line(points={{50,20},{10,20}}));
- connect(rotorAngleQS.plug_n, terminalBoxQS.plug_sn) annotation (Line(points={{36,30},{36,36},{-6,36},{-6,30}}, color={85,170,255}));
- connect(voltageQuasiRMSSensorQS.plug_n, currentRMSSensorQS.plug_n) annotation (Line(points={{-20,50},{0,50}}, color={85,170,255}));
- connect(starMQS.pin_n, starMachineQS.pin_n) annotation (Line(points={{-50,30},{-50,20},{-40,20}}, color={85,170,255}));
- connect(starMQS.plug_p, voltageQuasiRMSSensorQS.plug_p) annotation (Line(points={{-50,50},{-40,50}}, color={85,170,255}));
- connect(starMachine.plug_p, terminalBox.starpoint) annotation (Line(points={{-20,-80},{-20,-68},{-10,-68}},color={0,0,255}));
- connect(starMachine.pin_n, groundM.p) annotation (Line(points={{-40,-80},{-60,-80}}, color={0,0,255}));
- connect(id.y, dqToThreePhaseQS.id_rms) annotation (Line(points={{-79,
- 30},{-74,30},{-74,96},{-52,96}}, color={0,0,127}));
- connect(id.y, dqToThreePhase.d) annotation (Line(points={{-79,30},{-74,
- 30},{-74,-4},{-52,-4}}, color={0,0,127}));
- connect(iq.y, dqToThreePhaseQS.iq_rms) annotation (Line(points={{-79,
- -10},{-68,-10},{-68,84},{-52,84}}, color={0,0,127}));
- connect(iq.y, dqToThreePhase.q) annotation (Line(points={{-79,-10},{-68,
- -10},{-68,-16},{-52,-16}}, color={0,0,127}));
+model SMPM_CurrentSource "Test example: PermanentMagnetSynchronousMachine fed by current source"
+ extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.SynchronousMachines.SMPM_CurrentSource;
annotation (
experiment(StopTime=0.20, Interval=1E-4, Tolerance=1E-6),
TestCase(shouldPass = true,
From 37215954d6f9aa2b61ddafc00b5991cc18a17655 Mon Sep 17 00:00:00 2001
From: AHaumer
Date: Mon, 4 May 2026 10:24:12 +0200
Subject: [PATCH 3/4] adapted documentation in ModelicaTest
---
.../InductionMachines/IMC_Conveyor.mo | 11 +-------
.../InductionMachines/IMC_Initialize.mo | 15 +++--------
.../InductionMachines/IMC_Transformer.mo | 14 ++--------
.../BasicMachines/InductionMachines/IMC_YD.mo | 14 ++--------
.../SynchronousMachines/SMEE_Generator.mo | 26 +++++--------------
.../SynchronousMachines/SMPM_CurrentSource.mo | 17 +++---------
6 files changed, 19 insertions(+), 78 deletions(-)
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
index d510e0eb51..b9d0ad88a8 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
@@ -7,17 +7,8 @@ model IMC_Conveyor "Induction machine with squirrel cage and inverter driving a
Documentation(
info="
-An ideal frequency inverter is modeled by using a VfController and a three-phase SignalVoltage.
-Frequency is driven by a load cycle of acceleration, constant speed, deceleration and standstill.
-The mechanical load is a constant torque like a conveyor (with regularization around zero speed).
+The original documentation is available at the model from which this one is extended.
-Simulate for 20 seconds and plot (versus time):
-
-currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
-imc|imcQS.wMechanical: machine speed
-imc|imcQS.tauElectrical: machine torque
-
-Default machine parameters are used.
"),
Diagram(graphics={
Text(
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
index bd7f894582..8c7da2e67d 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
@@ -7,18 +7,11 @@ model IMC_Initialize "Steady-state initialization of induction machine with squi
Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.45, 0.60)}))),
- Documentation(
+ Documentation(
info="
-Test example: Steady-State Initialization of an induction machine with squirrel cage
-The induction machine with squirrel cage is initialized in steady-state at no-load;
-at time tStart a load torque step is applied.
-Simulate for 1.5 seconds and plot (versus time):
-
-currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) RMS stator current
-imc|imcQS.wMechanical: machine speed
-imc|imcQS.tauElectrical: machine torque
-
-Default machine parameters of model IM_SquirrelCage are used.
+
+The original documentation is available at the model from which this one is extended.
+
"),
Diagram(graphics={
Text(
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
index d49a879fcb..d976aa92c2 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
@@ -1,24 +1,14 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
model IMC_Transformer "Induction machine with squirrel cage starting with transformer"
extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_Transformer;
-
annotation (experiment(StopTime=2.1, Interval=0.0001, Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
Documentation(
info="
-At start time tStart1 three-phase voltage is supplied to the induction machine with squirrel cage via the transformer;
-the machine starts from standstill, accelerating inertias against load torque quadratic dependent on speed;
-at start time tStart2 the machine is fed directly from the voltage source, finally reaching nominal speed.
-Simulate for 2.5 seconds and plot (versus time):
-
-
-currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
-imc|imcQS.wMechanical: machine speed
-imc|imcQS.tauElectrical: machine torque
-
-Default machine parameters are used.
+The original documentation is available at the model from which this one is extended.
+
"),
Diagram(graphics={
Text(
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
index b32da701a4..b28ef6af79 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
@@ -1,24 +1,14 @@
within ModelicaTest.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines;
model IMC_YD "Induction machine with squirrel cage starting Y-D"
extends Modelica.Magnetic.QuasiStatic.FundamentalWave.Examples.BasicMachines.InductionMachines.IMC_YD;
-
annotation (experiment(StopTime=2.1,Interval=0.0001,Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
Documentation(
info="
-At start time tStart three-phase voltage is supplied to the induction machine with squirrel cage, first star-connected, then delta-connected; the machine starts from standstill, accelerating inertias against load torque quadratic dependent on speed, finally reaching nominal speed.
-
-Simulate for 2.5 seconds and plot (versus time):
-
-
-currentQuasiRMSSensor|currentQuasiRMSSensorQS.I: (equivalent) stator current RMS
-imc|imcQS.wMechanical: machine speed
-imc|imcQS.tauElectrical: machine torque
-
-
-Default machine parameters are used.
+The original documentation is available at the model from which this one is extended.
+
"),
Diagram(graphics={
Text(
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
index c99d49337d..1b39ceb537 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
@@ -8,33 +8,21 @@ model SMEE_Generator "Electrical excited synchronous machine operating as genera
Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(14.9, 15.1)}))),
- Documentation(info="
+ Documentation(
+ info="
-This example compares a time transient and a quasi-static model of a electrically excited synchronous machine.
-The electrically excited synchronous generators are connected to the grid and driven with constant speed.
-Since speed is slightly smaller than synchronous speed corresponding to mains frequency,
-rotor angle is very slowly increased. This allows to see several characteristics dependent on rotor angle.
+The original documentation is available at the model from which this one is extended.
-
-
-Simulate for 30 seconds and plot versus rotorAngle|rotorAngleQS.rotorDisplacementAngle:
-
-
-
-smpm|smpmQS.tauElectrical: machine torque
-
-
-Since the rotor slip is very low the transient and quasi-static electromagnetic torque are practically equal.
"),
Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
-100},{100,100}}),
graphics={ Text(
extent={{20,8},{100,0}},
- fillColor={255,255,170},
- fillPattern=FillPattern.Solid,
textStyle={TextStyle.Bold},
- textString="%m phase quasi-static"), Text(
+ textString="%m phase quasi-static",
+ textColor={0,0,0}), Text(
extent={{20,-92},{100,-100}},
textStyle={TextStyle.Bold},
- textString="%m phase transient")}));
+ textString="%m phase transient",
+ textColor={0,0,0})}));
end SMEE_Generator;
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
index e22d6bad57..08ab27d2f8 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
@@ -5,22 +5,11 @@ model SMPM_CurrentSource "Test example: PermanentMagnetSynchronousMachine fed by
experiment(StopTime=0.20, Interval=1E-4, Tolerance=1E-6),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.00, 0.20)}))),
- Documentation(info="
+ Documentation(
+ info="
-This example compares a time transient and a quasi-static model of a permanent magnet synchronous machine. The machines are fed by a current source. The current components are oriented at the magnetic field orientation and transformed to the stator fixed reference frame. This way the machines are operated at constant torque. The machines start to accelerate from standstill.
-
-
-Simulate for 2 seconds and plot (versus time):
+The original documentation is available at the model from which this one is extended.
-
-
-smpm|smpmQS.wMechanical: machine speed
-smpm|smpmQS.tauElectrical: machine torque
-
-
-Note
-The resistors connected to the terminals of the windings of the quasi-static machine model are necessary
-to numerically stabilize the simulation.
"),
Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
-100},{100,100}}), graphics={
From a1066b60906aec03dbe672ef4e42de6de4030bc5 Mon Sep 17 00:00:00 2001
From: AHaumer
Date: Mon, 4 May 2026 16:48:34 +0200
Subject: [PATCH 4/4] removed documentation completely from the "extended"
ModelicaTest - examples
---
.../BasicMachines/InductionMachines/IMC_Conveyor.mo | 6 ------
.../BasicMachines/InductionMachines/IMC_Initialize.mo | 6 ------
.../BasicMachines/InductionMachines/IMC_Transformer.mo | 6 ------
.../Examples/BasicMachines/InductionMachines/IMC_YD.mo | 6 ------
.../BasicMachines/SynchronousMachines/SMEE_Generator.mo | 6 ------
.../BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo | 6 ------
6 files changed, 36 deletions(-)
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
index b9d0ad88a8..e173d0c2ee 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Conveyor.mo
@@ -4,12 +4,6 @@ model IMC_Conveyor "Induction machine with squirrel cage and inverter driving a
annotation (experiment(StopTime=5.00, Interval=0.0001, Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(4.00, 5.00)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(graphics={
Text(
extent={{20,60},{100,52}},
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
index 8c7da2e67d..f52137c32f 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Initialize.mo
@@ -7,12 +7,6 @@ model IMC_Initialize "Steady-state initialization of induction machine with squi
Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.45, 0.60)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(graphics={
Text(
extent={{20,8},{100,0}},
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
index d976aa92c2..782c433c2b 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_Transformer.mo
@@ -4,12 +4,6 @@ model IMC_Transformer "Induction machine with squirrel cage starting with transf
annotation (experiment(StopTime=2.1, Interval=0.0001, Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(graphics={
Text(
extent={{80,8},{160,0}},
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
index b28ef6af79..f021d8c028 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/InductionMachines/IMC_YD.mo
@@ -4,12 +4,6 @@ model IMC_YD "Induction machine with squirrel cage starting Y-D"
annotation (experiment(StopTime=2.1,Interval=0.0001,Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(2.00, 2.10)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(graphics={
Text(
extent={{-60,20},{20,12}},
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
index 1b39ceb537..bbde063524 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMEE_Generator.mo
@@ -8,12 +8,6 @@ model SMEE_Generator "Electrical excited synchronous machine operating as genera
Tolerance=1e-06),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(14.9, 15.1)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
-100},{100,100}}),
graphics={ Text(
diff --git a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
index 08ab27d2f8..d4e644b6d0 100644
--- a/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
+++ b/ModelicaTest/Magnetic/QuasiStatic/FundamentalWave/Examples/BasicMachines/SynchronousMachines/SMPM_CurrentSource.mo
@@ -5,12 +5,6 @@ model SMPM_CurrentSource "Test example: PermanentMagnetSynchronousMachine fed by
experiment(StopTime=0.20, Interval=1E-4, Tolerance=1E-6),
TestCase(shouldPass = true,
__ModelicaAssociation(Comparison(TimeWindows={TimeSlot(0.00, 0.20)}))),
- Documentation(
- info="
-
-The original documentation is available at the model from which this one is extended.
-
-"),
Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,
-100},{100,100}}), graphics={
Text(