From 58cee3a689c46f9539f8f1308ea029717fcec5ac Mon Sep 17 00:00:00 2001 From: AHaumer Date: Thu, 29 May 2025 18:14:49 +0200 Subject: [PATCH 1/6] Resolves the problems with zero system (#4654) --- .../BasicMachines/Components/ZeroImpedance.mo | 25 ++++++++++++++++++ .../BasicMachines/Components/package.order | 1 + .../Examples/InductionMachines/IMC_YD.mo | 1 + .../PartialBasicInductionMachine.mo | 4 ++- .../Electrical/Machines/UsersGuide/Concept.mo | 3 ++- .../Polyphase/Basic/ZeroInductor.mo | 11 ++++++-- .../FundamentalWave/BaseClasses/Machine.mo | 2 ++ .../Components/SymmetricPolyphaseWinding.mo | 4 ++- .../BasicMachines/InductionMachines/IMC_YD.mo | 4 +-- .../FundamentalWave/UsersGuide/ZeroSystem.mo | 26 +++++++++++++++++++ .../FundamentalWave/UsersGuide/package.order | 1 + .../BasicMachines/InductionMachines/IMC_YD.mo | 4 +-- 12 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 Modelica/Electrical/Machines/BasicMachines/Components/ZeroImpedance.mo create mode 100644 Modelica/Magnetic/FundamentalWave/UsersGuide/ZeroSystem.mo diff --git a/Modelica/Electrical/Machines/BasicMachines/Components/ZeroImpedance.mo b/Modelica/Electrical/Machines/BasicMachines/Components/ZeroImpedance.mo new file mode 100644 index 0000000000..b0ecd2f80c --- /dev/null +++ b/Modelica/Electrical/Machines/BasicMachines/Components/ZeroImpedance.mo @@ -0,0 +1,25 @@ +within Modelica.Electrical.Machines.BasicMachines.Components; +model ZeroImpedance "Zero system impedance" + extends Analog.Interfaces.OnePort(i(start=0)); + parameter SI.Inductance L "Inductance"; + parameter Boolean useZeroSystem=true "=false suppresses zero current"; +equation + if useZeroSystem then + v = L*der(i); + else + i = 0; + end if; + + annotation (Icon(graphics={ + Line(points={{-90,0},{-60,0}}, color={0,0,255}), + Line(points={{62,0},{90,0}}, color={0,0,255}), + Ellipse(extent={{-50,30},{-8,-32}}, lineColor={0,0,255}), + Ellipse(extent={{-20,30},{22,-32}}, lineColor={0,0,255}), + Ellipse(extent={{10,30},{52,-32}}, lineColor={0,0,255}), + Text( + extent={{-150,50},{150,90}}, + textString="%name", + textColor={0,0,255}), + Rectangle(extent={{-60,30},{-50,-32}}, lineColor={28,108,200}), + Rectangle(extent={{52,30},{62,-32}}, lineColor={28,108,200})})); +end ZeroImpedance; diff --git a/Modelica/Electrical/Machines/BasicMachines/Components/package.order b/Modelica/Electrical/Machines/BasicMachines/Components/package.order index 2766671fed..bb1ecc2440 100644 --- a/Modelica/Electrical/Machines/BasicMachines/Components/package.order +++ b/Modelica/Electrical/Machines/BasicMachines/Components/package.order @@ -1,6 +1,7 @@ PartialAirGap AirGapS AirGapR +ZeroImpedance Inductor SquirrelCage DamperCage diff --git a/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_YD.mo b/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_YD.mo index 77ee87ee6e..6e7d13a277 100644 --- a/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_YD.mo +++ b/Modelica/Electrical/Machines/Examples/InductionMachines/IMC_YD.mo @@ -16,6 +16,7 @@ model IMC_YD Machines.BasicMachines.InductionMachines.IM_SquirrelCage aimc( p=aimcData.p, fsNominal=aimcData.fsNominal, + useZeroSystem=false, Rs=aimcData.Rs, TsRef=aimcData.TsRef, alpha20s(displayUnit="1/K") = aimcData.alpha20s, diff --git a/Modelica/Electrical/Machines/Interfaces/PartialBasicInductionMachine.mo b/Modelica/Electrical/Machines/Interfaces/PartialBasicInductionMachine.mo index 81a47c82e2..11fed30147 100644 --- a/Modelica/Electrical/Machines/Interfaces/PartialBasicInductionMachine.mo +++ b/Modelica/Electrical/Machines/Interfaces/PartialBasicInductionMachine.mo @@ -5,6 +5,7 @@ partial model PartialBasicInductionMachine parameter Integer p(min=1, start=2) "Number of pole pairs (Integer)"; parameter SI.Frequency fsNominal(start=50) "Nominal frequency"; + parameter Boolean useZeroSystem=true "=false suppresses zero current"; parameter SI.Temperature TsOperational(start=293.15) "Operational temperature of stator resistance" annotation (Dialog(group= "Operational temperatures", enable=not useThermalPort)); @@ -81,7 +82,8 @@ partial model PartialBasicInductionMachine extent={{-10,-10},{10,10}}, rotation=270, origin={20,20}))); - Modelica.Electrical.Analog.Basic.Inductor lszero(final L=Lszero) + BasicMachines.Components.ZeroImpedance lszero(final L=Lszero, final + useZeroSystem=useZeroSystem) annotation (Placement(transformation(extent={{0,40},{-20,60}}))); Machines.Losses.InductionMachines.Core statorCore( final coreParameters=statorCoreParameters, diff --git a/Modelica/Electrical/Machines/UsersGuide/Concept.mo b/Modelica/Electrical/Machines/UsersGuide/Concept.mo index ef644cf569..aae10f670d 100644 --- a/Modelica/Electrical/Machines/UsersGuide/Concept.mo +++ b/Modelica/Electrical/Machines/UsersGuide/Concept.mo @@ -13,7 +13,8 @@ class Concept "Concept"
  • constant parameters, i.e., no saturation, no skin effect
  • -You may have a look at a short summary of space phasor theory at https://www.haumer.at/refimg/SpacePhasors.pdf +You may have a look at a short summary of space phasor theory at https://www.haumer.at/refimg/SpacePhasors.pdf
    +A short note about the zero sequence system is written in the User's Guide of the FundamentalWave library.

    Further development:

    You may have a look at a short summary of space phasor theory at https://www.haumer.at/refimg/SpacePhasors.pdf
    -A short note about the zero sequence system is written in the User's Guide of the FundamentalWave library. +For a short explanation of the zero system see the User's Guide of the FundamentalWave library.

    Further development: