From 3382f140f1adee5ea12d419f3fa7fb4680ae321e Mon Sep 17 00:00:00 2001 From: Christian Kral Date: Mon, 14 Nov 2022 23:19:20 +0100 Subject: [PATCH] Apply changes to Modelica.Magnetic.FundamentalWave --- .../Magnetic/FundamentalWave/BaseClasses/Machine.mo | 6 ++++-- .../BasicMachines/InductionMachines/IM_SlipRing.mo | 10 +++++----- .../InductionMachines/IM_SquirrelCage.mo | 10 +++++----- .../SynchronousMachines/SM_ElectricalExcited.mo | 12 ++++++------ .../SynchronousMachines/SM_PermanentMagnet.mo | 12 ++++++------ .../SynchronousMachines/SM_ReluctanceRotor.mo | 12 ++++++------ 6 files changed, 32 insertions(+), 30 deletions(-) diff --git a/Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo b/Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo index 2210bafcec..3aefbe2eda 100644 --- a/Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo +++ b/Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo @@ -18,7 +18,7 @@ partial model Machine "Base model of machines" parameter SI.Temperature TsOperational(start=293.15) "Operational temperature of stator resistance" annotation (Dialog(group= "Operational temperatures", enable=not useThermalPort)); - parameter SI.Resistance Rs(start=0.03) + parameter SI.Resistance Rs(start=ZsRef*0.03) "Stator resistance per phase at TRef" annotation (Dialog(tab="Nominal resistances and inductances")); parameter SI.Temperature TsRef(start=293.15) @@ -30,7 +30,7 @@ partial model Machine "Base model of machines" "Temperature coefficient of stator resistance at 20 degC" annotation (Dialog(tab="Nominal resistances and inductances")); parameter Real effectiveStatorTurns=1 "Effective number of stator turns"; - parameter SI.Inductance Lssigma(start=3*(1 - sqrt(1 - + parameter SI.Inductance Lssigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)) "Stator stray inductance" annotation (Dialog(tab="Nominal resistances and inductances")); parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1 @@ -170,6 +170,8 @@ partial model Machine "Base model of machines" annotation (Placement(transformation(extent={{-44,-94},{-36,-86}}))); Modelica.Mechanics.Rotational.Interfaces.Support internalSupport annotation (Placement(transformation(extent={{56,-104},{64,-96}}))); +protected + final parameter SI.Impedance ZsRef = 1 "Reference phase impedance based on nominal voltage 100 V and nominal current 100 A; per phase"; initial algorithm assert(not Modelica.Math.isPowerOf2(m), String(m) + " phases are currently not supported in this version of FundametalWave"); diff --git a/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SlipRing.mo b/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SlipRing.mo index 816f3cb1d2..d26be26c1d 100644 --- a/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SlipRing.mo +++ b/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SlipRing.mo @@ -3,8 +3,8 @@ model IM_SlipRing "Induction machine with slip ring rotor" parameter Integer mr(min=3) = m "Number of rotor phases" annotation(Evaluate=true); extends Magnetic.FundamentalWave.BaseClasses.Machine( is(start=zeros(m)), - Rs(start=0.03), - Lssigma(start=3*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)), + Rs(start=0.03*ZsRef), + Lssigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)), final L0(d=2.0*Lm/m/effectiveStatorTurns^2, q=2.0*Lm/m/effectiveStatorTurns ^2), redeclare final @@ -31,11 +31,11 @@ model IM_SlipRing "Induction machine with slip ring rotor" Modelica.Electrical.Polyphase.Interfaces.PositivePlug plug_rp(final m= mr) "Positive plug of rotor" annotation (Placement(transformation( extent={{-110,70},{-90,50}}))); - parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi + parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi *fsNominal)) "Stator main field inductance" annotation (Dialog( tab="Nominal resistances and inductances", groupImage= "modelica://Modelica/Resources/Images/Electrical/Machines/IMS.png")); - parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 - + parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)) "Rotor leakage inductance w.r.t. rotor side" annotation (Dialog(tab="Nominal resistances and inductances")); @@ -45,7 +45,7 @@ model IM_SlipRing "Induction machine with slip ring rotor" parameter SI.Inductance Lrzero=Lrsigma "Rotor zero inductance w.r.t. rotor side" annotation (Dialog(tab="Nominal resistances and inductances")); - parameter SI.Resistance Rr(start=0.04) + parameter SI.Resistance Rr(start=0.04*ZsRef) "Rotor resistance per phase w.r.t. rotor side" annotation (Dialog(tab="Nominal resistances and inductances")); parameter SI.Temperature TrRef(start=293.15) diff --git a/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SquirrelCage.mo b/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SquirrelCage.mo index 3420b58891..82e6f0ad77 100644 --- a/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SquirrelCage.mo +++ b/Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SquirrelCage.mo @@ -3,8 +3,8 @@ model IM_SquirrelCage "Induction machine with squirrel cage" extends Magnetic.FundamentalWave.BaseClasses.Machine( is(start=zeros(m)), - Rs(start=0.03), - Lssigma(start=3*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)), + Rs(start=0.03*ZsRef), + Lssigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)), final L0(d=2.0*Lm/m/effectiveStatorTurns^2, q=2.0*Lm/m/effectiveStatorTurns ^2), redeclare final @@ -20,15 +20,15 @@ model IM_SquirrelCage Modelica.Electrical.Machines.Interfaces.InductionMachines.PowerBalanceIMC powerBalance(final lossPowerRotorWinding=sum(rotorCage.resistor.resistor.LossPower), final lossPowerRotorCore=0)); - parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi + parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi *fsNominal)) "Stator main field inductance" annotation (Dialog( tab="Nominal resistances and inductances", groupImage= "modelica://Modelica/Resources/Images/Electrical/Machines/IMC.png")); - parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 - + parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)) "Rotor leakage inductance of equivalent m phase winding w.r.t. stator side" annotation (Dialog(tab="Nominal resistances and inductances")); - parameter SI.Resistance Rr(start=0.04) + parameter SI.Resistance Rr(start=0.04*ZsRef) "Rotor resistance of equivalent m phase winding w.r.t. stator side" annotation (Dialog(tab="Nominal resistances and inductances")); parameter SI.Temperature TrRef(start=293.15) diff --git a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo index 0db4217f0b..df45c091f2 100644 --- a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo +++ b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo @@ -3,8 +3,8 @@ model SM_ElectricalExcited "Electrical excited synchronous machine with optional damper cage" extends Magnetic.FundamentalWave.BaseClasses.Machine( is(start=zeros(m)), - Rs(start=0.03), - Lssigma(start=0.1/(2*pi*fsNominal)), + Rs(start=0.03*ZsRef), + Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)), final L0(d=2.0*Lmd/m/effectiveStatorTurns^2, q=2.0*Lmq/m/ effectiveStatorTurns^2), redeclare final @@ -28,18 +28,18 @@ model SM_ElectricalExcited final lossPowerBrush=brush.lossPower, final lossPowerRotorCore=0)); // Main field parameters - parameter SI.Inductance Lmd(start=1.5/(2*pi*fsNominal)) + parameter SI.Inductance Lmd(start=1.5*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, d-axis" annotation (Dialog(tab= "Nominal resistances and inductances", groupImage= "modelica://Modelica/Resources/Images/Electrical/Machines/SMEE.png")); - parameter SI.Inductance Lmq(start=1.5/(2*pi*fsNominal)) + parameter SI.Inductance Lmq(start=1.5*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, q-axis" annotation (Dialog(tab="Nominal resistances and inductances")); // Rotor cage parameters parameter Boolean useDamperCage(start=true) "Enable/disable damper cage" annotation (Dialog(tab= "Nominal resistances and inductances", group="Damper cage")); - parameter SI.Inductance Lrsigmad(start=0.05/(2*pi* + parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi* fsNominal)) "Rotor damper cage leakage inductance, d-axis, w.r.t. stator side" annotation ( Dialog( @@ -52,7 +52,7 @@ model SM_ElectricalExcited tab="Nominal resistances and inductances", group="Damper cage", enable=useDamperCage)); - parameter SI.Resistance Rrd(start=0.04) + parameter SI.Resistance Rrd(start=0.04*ZsRef) "Rotor damper cage resistance, d-axis, w.r.t. stator side" annotation (Dialog( tab="Nominal resistances and inductances", group="Damper cage", diff --git a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_PermanentMagnet.mo b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_PermanentMagnet.mo index d109fd2746..8ec772d492 100644 --- a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_PermanentMagnet.mo +++ b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_PermanentMagnet.mo @@ -3,8 +3,8 @@ model SM_PermanentMagnet "Permanent magnet synchronous machine with optional damper cage" extends Magnetic.FundamentalWave.BaseClasses.Machine( is(start=zeros(m)), - Rs(start=0.03), - Lssigma(start=0.1/(2*pi*fsNominal)), + Rs(start=0.03*ZsRef), + Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)), final L0(d=2.0*Lmd/m/effectiveStatorTurns^2, q=2.0*Lmq/m/ effectiveStatorTurns^2), redeclare final @@ -26,18 +26,18 @@ model SM_PermanentMagnet final lossPowerRotorCore=0, final lossPowerPermanentMagnet=permanentMagnet.lossPower)); // Main field parameters - parameter SI.Inductance Lmd(start=0.3/(2*pi*fsNominal)) + parameter SI.Inductance Lmd(start=0.3*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, d-axis" annotation (Dialog(tab= "Nominal resistances and inductances", groupImage= "modelica://Modelica/Resources/Images/Electrical/Machines/SMPM.png")); - parameter SI.Inductance Lmq(start=0.3/(2*pi*fsNominal)) + parameter SI.Inductance Lmq(start=0.3*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, q-axis" annotation (Dialog(tab="Nominal resistances and inductances")); // Rotor cage parameters parameter Boolean useDamperCage(start=true) "Enable/disable damper cage" annotation (Dialog(tab= "Nominal resistances and inductances", group="Damper cage")); - parameter SI.Inductance Lrsigmad(start=0.05/(2*pi* + parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi* fsNominal)) "Rotor damper cage leakage inductance, d-axis, w.r.t. stator side" annotation ( Dialog( @@ -50,7 +50,7 @@ model SM_PermanentMagnet tab="Nominal resistances and inductances", group="Damper cage", enable=useDamperCage)); - parameter SI.Resistance Rrd(start=0.04) + parameter SI.Resistance Rrd(start=0.04*ZsRef) "Rotor damper cage resistance, d-axis, w.r.t. stator side" annotation (Dialog( tab="Nominal resistances and inductances", group="Damper cage", diff --git a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ReluctanceRotor.mo b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ReluctanceRotor.mo index 7146d677b4..58c36b93fc 100644 --- a/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ReluctanceRotor.mo +++ b/Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ReluctanceRotor.mo @@ -2,8 +2,8 @@ within Modelica.Magnetic.FundamentalWave.BasicMachines.SynchronousMachines; model SM_ReluctanceRotor "Reluctance machine with optional damper cage" extends Magnetic.FundamentalWave.BaseClasses.Machine( is(start=zeros(m)), - Rs(start=0.03), - Lssigma(start=0.1/(2*pi*fsNominal)), + Rs(start=0.03*ZsRef), + Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)), final L0(d=2.0*Lmd/m/effectiveStatorTurns^2, q=2.0*Lmq/m/ effectiveStatorTurns^2), redeclare final @@ -25,18 +25,18 @@ model SM_ReluctanceRotor "Reluctance machine with optional damper cage" "Operational temperature of (optional) damper cage" annotation ( Dialog(group="Operational temperatures", enable=not useThermalPort and useDamperCage)); - parameter SI.Inductance Lmd(start=2.9/(2*pi*fsNominal)) + parameter SI.Inductance Lmd(start=2.9*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, d-axis" annotation (Dialog(tab= "Nominal resistances and inductances", groupImage= "modelica://Modelica/Resources/Images/Electrical/Machines/SMR.png")); - parameter SI.Inductance Lmq(start=0.9/(2*pi*fsNominal)) + parameter SI.Inductance Lmq(start=0.9*ZsRef/(2*pi*fsNominal)) "Stator main field inductance, q-axis" annotation (Dialog(tab="Nominal resistances and inductances")); // Rotor cage parameters parameter Boolean useDamperCage(start=true) "Enable/disable damper cage" annotation (Dialog(tab= "Nominal resistances and inductances", group="Damper cage")); - parameter SI.Inductance Lrsigmad(start=0.05/(2*pi* + parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi* fsNominal)) "Rotor damper cage leakage inductance, d-axis, w.r.t. stator side" annotation ( Dialog( @@ -49,7 +49,7 @@ model SM_ReluctanceRotor "Reluctance machine with optional damper cage" tab="Nominal resistances and inductances", group="Damper cage", enable=useDamperCage)); - parameter SI.Resistance Rrd(start=0.04) + parameter SI.Resistance Rrd(start=0.04*ZsRef) "Rotor damper cage resistance, d-axis, w.r.t. stator side" annotation (Dialog( tab="Nominal resistances and inductances", group="Damper cage",