Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
15ce690
Implemented split of stray inductance in common and individual part
AHaumer May 24, 2021
3965d52
corrected html tags
AHaumer May 24, 2021
f911eac
corrected implementation of individual stray permeances
AHaumer May 24, 2021
dc87fff
Further work on the example
AHaumer May 24, 2021
dc4357a
SymmetricPolyphaseWinding: moved individual leakage from magnetic to …
AHaumer May 25, 2021
de05fc8
updated user's guide
AHaumer May 25, 2021
5aa4bf5
Enhanced the experiment Examples/Components/PolyphaseInductance to pr…
AHaumer May 25, 2021
2f7e186
we even have the choice between electrical and magnetic implementatio…
AHaumer May 25, 2021
28b0a9f
corrected typo (thanks @beutlich)
AHaumer May 25, 2021
01b6eb0
decided for magnetic implementation of individual leakage, updated us…
AHaumer May 26, 2021
bec9956
forgotten closing html tag
AHaumer May 26, 2021
89b9f5a
Fix doc string of individual leakage permeance
christiankral May 31, 2021
891d653
Fix error in magnetic connections
christiankral May 31, 2021
ac88161
Minor format issues
christiankral May 31, 2021
7e687f2
Some spelling and wording fixes
christiankral May 31, 2021
659a377
moved IndividualStrayPermeance from PolyphaseWinding to Electromagnet…
AHaumer Jun 2, 2021
6267671
Remove superfluous imports and diagram annotation.
dietmarw Jun 4, 2021
a462e66
Fix typo.
dietmarw Jun 4, 2021
76c0cdc
remove trailing white spaces.
dietmarw Jun 4, 2021
b419412
Add documentation on stray permenace to PolyphaseElectroMagneticConve…
christiankral Jun 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ record IM_SlipRingData
(2*pi*fsNominal)/turnsRatio^2
"Rotor stray inductance per phase w.r.t. rotor side"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter Real ratioCommonRotorLeakage(final min=0, final max=1)=1
"Ratio of common stray inductance / total stray inductance of rotor winding"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter SI.Inductance Lrzero=Lrsigma/turnsRatio^2
"Rotor zero sequence inductance w.r.t. rotor side"
annotation (Dialog(tab="Nominal resistances and inductances"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ record InductionMachineData "Common parameters for induction machines"
parameter SI.Inductance Lssigma=3*(1 - sqrt(1 - 0.0667))/
(2*pi*fsNominal) "Stator stray inductance per phase"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
"Ratio of common stray inductance / total stray inductance of stator winding"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter Machines.Losses.FrictionParameters frictionParameters(PRef=0, wRef=
2*pi*fsNominal/p) "Friction loss parameter record"
annotation (Dialog(tab="Losses"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ record SynchronousMachineData
parameter SI.Inductance Lssigma=x0*ZReference/omega
"Stator stray inductance per phase"
annotation (Dialog(tab="Result", enable=false));
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
"Ratio of common stray inductance / total stray inductance of stator winding"
annotation (Dialog(tab="Result"));
parameter SI.Inductance Lmd=xmd*ZReference/omega
"Main field inductance per phase in d-axis"
annotation (Dialog(tab="Result", enable=false));
Expand Down
7 changes: 6 additions & 1 deletion Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ partial model Machine "Base model of machines"
parameter SI.Inductance Lssigma(start=3*(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
"Ratio of common stray inductance / total stray inductance of stator winding"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter SI.Inductance Lszero=Lssigma
"Stator zero inductance"
annotation (Dialog(tab="Nominal resistances and inductances"));
Expand Down Expand Up @@ -112,11 +115,13 @@ partial model Machine "Base model of machines"
final RRef=Rs,
final TRef=TsRef,
final Lsigma=Lssigma,
final ratioCommonLeakage=ratioCommonStatorLeakage,
final effectiveTurns=effectiveStatorTurns,
final TOperational=TsOperational,
final GcRef=statorCoreParameters.GcRef,
final alpha20=alpha20s,
final Lzero=Lszero) "Symmetric stator winding including resistances, zero and stray inductances and core losses"
final Lzero=Lszero)
"Symmetric stator winding including resistances, zero and stray inductances and core losses"
annotation (Placement(transformation(
origin={0,40},
extent={{-10,-10},{10,10}},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
within Modelica.Magnetic.FundamentalWave.BasicMachines.Components;
model SymmetricPolyphaseCageWinding "Symmetrical rotor cage"
import Modelica.Constants.pi;
extends Magnetic.FundamentalWave.Interfaces.TwoPortExtended;
parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
parameter Boolean useHeatPort=false
Expand Down Expand Up @@ -57,8 +56,8 @@ model SymmetricPolyphaseCageWinding "Symmetrical rotor cage"
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortWinding if
useHeatPort "Heat ports of winding resistor"
annotation (Placement(transformation(extent={{-10,-110},{10,-90}})));
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector(final m=m)
if useHeatPort "Connector of thermal rotor resistance heat ports"
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector(final m=m) if
useHeatPort "Connector of thermal rotor resistance heat ports"
annotation (Placement(transformation(extent={{-50,-90},{-30,-70}})));
Magnetic.FundamentalWave.Components.Reluctance strayReluctance(final R_m(d=m*
effectiveTurns^2/2/Lsigma, q=m*effectiveTurns^2/2/Lsigma))
Expand Down Expand Up @@ -92,8 +91,7 @@ equation
connect(resistor.plug_n, multiStar.plug_p)
annotation (Line(points={{-20,-60},{20,-60},{20,-20}}, color={0,0,255}));
annotation (defaultComponentName="cage",
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
{100,100}}), graphics={
Icon(graphics={
Ellipse(
extent={{-80,80},{80,-80}},
fillColor={175,175,175},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
within Modelica.Magnetic.FundamentalWave.BasicMachines.Components;
model SymmetricPolyphaseWinding
"Symmetric winding model coupling electrical and magnetic domain"
import Modelica.Constants.eps;
// Orientation changed
Modelica.Electrical.Polyphase.Interfaces.PositivePlug plug_p(final m=m)
"Positive plug" annotation (Placement(transformation(
Expand All @@ -23,8 +24,7 @@ model SymmetricPolyphaseWinding
"Enable / disable (=fixed temperatures) thermal port"
annotation (Evaluate=true);
// Resistor model
parameter SI.Resistance RRef
"Winding resistance per phase at TRef";
parameter SI.Resistance RRef "Winding resistance per phase at TRef";
parameter SI.Temperature TRef(start=293.15)
"Reference temperature of winding";
parameter
Expand All @@ -34,17 +34,17 @@ model SymmetricPolyphaseWinding
Modelica.Electrical.Machines.Thermal.convertAlpha(
alpha20,
TRef,
293.15) "Temperature coefficient of winding at reference temperature";
293.15)
"Temperature coefficient of winding at reference temperature";
parameter SI.Temperature TOperational(start=293.15)
"Operational temperature of winding"
annotation (Dialog(enable=not useHeatPort));
parameter SI.Inductance Lsigma
"Winding stray inductance per phase";
parameter SI.Inductance Lzero
"Zero sequence inductance of winding";
parameter SI.Inductance Lsigma "Winding stray inductance per phase";
parameter Real ratioCommonLeakage(final min=0, final max=1)=1
"Ratio of common stray inductance / total stray inductance";
parameter SI.Inductance Lzero "Zero sequence inductance of winding";
parameter Real effectiveTurns=1 "Effective number of turns per phase";
parameter SI.Conductance GcRef
"Electrical reference core loss reluctance";
parameter SI.Conductance GcRef "Electrical reference core loss reluctance";
final parameter Integer nBase=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)
"Number of base systems";
final parameter Integer mBase=integer(m/nBase)
Expand All @@ -60,32 +60,33 @@ model SymmetricPolyphaseWinding
"Magnitude of complex magnetic potential difference";
SI.Angle arg_V_m=Modelica.ComplexMath.arg(V_m)
"Argument of complex magnetic potential difference";
SI.ComplexMagneticFlux Phi=port_p.Phi
"Complex magnetic flux";
SI.ComplexMagneticFlux Phi=port_p.Phi "Complex magnetic flux";
SI.MagneticFlux abs_Phi=
Modelica.ComplexMath.abs(Phi)
"Magnitude of complex magnetic flux";
Modelica.ComplexMath.abs(Phi) "Magnitude of complex magnetic flux";
SI.Angle arg_Phi=Modelica.ComplexMath.arg(Phi)
"Argument of complex magnetic flux";

Magnetic.FundamentalWave.Components.PolyphaseElectroMagneticConverter electroMagneticConverter(
final m=m,
Modelica.Magnetic.FundamentalWave.Components.PolyphaseElectroMagneticConverter
electroMagneticConverter(
m=m,
final effectiveTurns=fill(effectiveTurns, m),
final orientation=
Modelica.Electrical.Polyphase.Functions.symmetricOrientation(m))
"Symmetric winding"
annotation (Placement(transformation(extent={{-10,-40},{10,-20}})));
Modelica.Electrical.Polyphase.Functions.symmetricOrientation(m),
final useStrayPermeance=ratioCommonLeakage < (1 - eps),
final Lsigma=(1 - ratioCommonLeakage)*Lsigma)
"Symmetric winding"
annotation (Placement(transformation(extent={{-10,-20},{10,0}})));
Modelica.Electrical.Polyphase.Basic.ZeroInductor zeroInductor(final m=m, final Lzero=Lzero) if
mBase<>2 "Zero sequence inductance of winding"
annotation (Placement(transformation(
origin={-30,30},
extent={{-10,-10},{10,10}},
rotation=270)));
origin={-70,-30},
extent={{10,-10},{-10,10}},
rotation=0)));
Modelica.Electrical.Polyphase.Ideal.Short short(final m=m) if mBase == 2
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=270,
origin={-10,30})));
extent={{10,-10},{-10,10}},
rotation=0,
origin={-70,-50})));
Modelica.Electrical.Polyphase.Basic.Resistor resistor(
final m=m,
final useHeatPort=useHeatPort,
Expand All @@ -98,50 +99,52 @@ model SymmetricPolyphaseWinding
extent={{-10,-10},{10,10}},
rotation=270)));
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortWinding[m] if
useHeatPort "Heat ports of winding resistors"
useHeatPort "Heat ports of winding resistors"
annotation (Placement(transformation(extent={{-50,-110},{-30,-90}})));
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortCore if
useHeatPort "Heat port of core"
useHeatPort "Heat port of core"
annotation (Placement(transformation(extent={{30,-110},{50,-90}})));
Magnetic.FundamentalWave.Components.EddyCurrent core(final useHeatPort=
useHeatPort, final G=(m/2)*GcRef*effectiveTurns^2)
Magnetic.FundamentalWave.Components.EddyCurrent core(
final useHeatPort=useHeatPort, final G=(m/2)*GcRef*effectiveTurns^2)
"Core loss model (currently eddy currents only)" annotation (Placement(
transformation(extent={{-10,-10},{10,10}}, origin={50,-40})));
Modelica.Magnetic.FundamentalWave.Components.Permeance stray(
final G_m(d=2*Lsigma/m/effectiveTurns^2, q=2*Lsigma/m/effectiveTurns^2))
"Stray permeance equivalent to ideally coupled stray inductances" annotation (Placement(transformation(
Modelica.Magnetic.FundamentalWave.Components.Permeance stray(final G_m(
d=2/m*ratioCommonLeakage*Lsigma/effectiveTurns^2,
q=2/m*ratioCommonLeakage*Lsigma/effectiveTurns^2)) if ratioCommonLeakage>eps
"Common stray permeance equivalent to ideally coupled stray inductances"
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=270,
origin={80,30})));

equation
connect(plug_p, resistor.plug_p) annotation (Line(points={{-100,100},{-20,
100},{-20,80}}, color={0,0,255}));
connect(resistor.plug_n, zeroInductor.plug_p) annotation (Line(points={{-20,60},
{-20,55},{-20,40},{-30,40}}, color={0,0,255}));
connect(electroMagneticConverter.plug_n, plug_n) annotation (Line(
points={{-10,-40},{-10,-40},{-100,-40},{-100,-100}}, color={0,0,
255}));
connect(electroMagneticConverter.port_p, port_p) annotation (Line(
points={{10,-20},{10,100},{100,100}}, color={255,128,0}));
connect(resistor.heatPort, heatPortWinding) annotation (Line(
points={{-30,70},{-40,70},{-40,-100}}, color={191,0,0}));
connect(electroMagneticConverter.port_n, core.port_p) annotation (Line(
points={{10,-40},{40,-40}}, color={255,128,0}));
connect(core.port_n, port_n) annotation (Line(
points={{60,-40},{100,-40},{100,-100}}, color={255,128,0}));
connect(core.heatPort, heatPortCore) annotation (Line(
points={{40,-50},{40,-100}}, color={191,0,0}));
connect(stray.port_n, core.port_n) annotation (Line(points={{80,20},{80,-40},{60,-40}}, color={255,128,0}));
connect(stray.port_p, electroMagneticConverter.port_p) annotation (Line(points={{80,40},{80,100},{10,100},{10,-20}}, color={255,128,0}));
connect(zeroInductor.plug_n, electroMagneticConverter.plug_p) annotation (
Line(points={{-30,20},{-20,20},{-20,-20},{-10,-20}}, color={0,0,255}));
connect(resistor.plug_n, short.plug_p)
annotation (Line(points={{-20,60},{-20,40},{-10,40}}, color={0,0,255}));
connect(electroMagneticConverter.plug_p, short.plug_n) annotation (Line(
points={{-10,-20},{-20,-20},{-20,20},{-10,20}}, color={0,0,255}));
annotation (defaultComponentName="winding", Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,
-100},{100,100}}), graphics={
connect(short.plug_n, plug_n) annotation (Line(points={{-80,-50},{-80,-40},{-100,
-40},{-100,-100}}, color={0,0,255}));
connect(plug_n, zeroInductor.plug_n) annotation (Line(points={{-100,-100},{-100,
-40},{-80,-40},{-80,-30}}, color={0,0,255}));
connect(port_p, stray.port_p)
annotation (Line(points={{100,100},{80,100},{80,40}}, color={255,128,0}));
connect(electroMagneticConverter.port_n, core.port_p)
annotation (Line(points={{10,-20},{10,-40},{40,-40}}, color={255,128,0}));
connect(zeroInductor.plug_p, electroMagneticConverter.plug_n) annotation (
Line(points={{-60,-30},{-60,-40},{-20,-40},{-20,-20},{-10,-20}}, color={0,
0,255}));
connect(short.plug_p, electroMagneticConverter.plug_n) annotation (Line(
points={{-60,-50},{-60,-40},{-20,-40},{-20,-20},{-10,-20}}, color={0,0,255}));
connect(resistor.plug_n, electroMagneticConverter.plug_p)
annotation (Line(points={{-20,60},{-20,0},{-10,0}}, color={0,0,255}));
connect(electroMagneticConverter.port_p, port_p)
annotation (Line(points={{10,0},{10,100},{100,100}}, color={255,128,0}));
annotation (defaultComponentName="winding", Icon(graphics={
Line(points={{100,-100},{94,-100},{84,-98},{76,-94},{64,-86},{50,
-72},{42,-58},{36,-40},{30,-18},{30,0},{30,18},{34,36},{46,
66},{62,84},{78,96},{90,100},{100,100}}, color={255,128,0}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ model IM_SlipRing "Induction machine with slip ring rotor"
0.0667))/(2*pi*fsNominal))
"Rotor leakage inductance w.r.t. rotor side"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter Real ratioCommonRotorLeakage(final min=0, final max=1)=1
"Ratio of common stray inductance / total stray inductance of rotor winding"
annotation (Dialog(tab="Nominal resistances and inductances"));
parameter SI.Inductance Lrzero=Lrsigma
"Rotor zero inductance w.r.t. rotor side"
annotation (Dialog(tab="Nominal resistances and inductances"));
Expand Down Expand Up @@ -87,6 +90,7 @@ protected
public
Components.SymmetricPolyphaseWinding rotor(
final Lsigma=Lrsigma,
final ratioCommonLeakage=ratioCommonRotorLeakage,
final effectiveTurns=effectiveStatorTurns/internalTurnsRatio,
final useHeatPort=true,
final RRef=Rr,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ within Modelica.Magnetic.FundamentalWave.Components;
model PolyphaseElectroMagneticConverter
"Polyphase electromagnetic converter"

import Modelica.Constants.pi;
import Modelica.Magnetic.FundamentalWave.Types.SalientPermeance;

// Global plug and port variables
SI.Voltage v[m]=plug_p.pin.v - plug_n.pin.v "Voltage";
Expand Down Expand Up @@ -41,9 +41,18 @@ model PolyphaseElectroMagneticConverter
parameter Real effectiveTurns[m] "Effective number of turns";
parameter SI.Angle orientation[m]
"Orientation of the resulting fundamental wave field phasor";
Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter singlePhaseElectroMagneticConverter[m](final
effectiveTurns=effectiveTurns, final orientation=orientation)
parameter Boolean useStrayPermeance=false "Use optional stray permeance";
parameter SI.Inductance Lsigma=0 "Optional stray inductance"
annotation(Dialog(enable=useStrayPermeance));
Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter singlePhaseElectroMagneticConverter[m](
final effectiveTurns=effectiveTurns, final orientation=orientation)
annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
Permeance strayPermeance[m](final G_m={SalientPermeance(
d=Lsigma/effectiveTurns[k]^2, q=Lsigma/effectiveTurns[k]^2) for k in 1:m}) if useStrayPermeance
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=270,
origin={30,0})));
equation
connect(plug_p.pin, singlePhaseElectroMagneticConverter.pin_p)
annotation (Line(
Expand All @@ -61,9 +70,12 @@ equation
connect(singlePhaseElectroMagneticConverter[m].port_n, port_n)
annotation (Line(
points={{12,-10},{12,-100},{100,-100}}, color={255,128,0}));
connect(singlePhaseElectroMagneticConverter.port_p, strayPermeance.port_p)
annotation (Line(points={{12,10},{30,10}}, color={255,128,0}));
connect(singlePhaseElectroMagneticConverter.port_n, strayPermeance.port_n)
annotation (Line(points={{12,-10},{30,-10}}, color={255,128,0}));
annotation (defaultComponentName="converter",
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
100,100}}), graphics={ Line(points={{100,-100},{94,-100},{84,-98},{76,-94},{64,-86},{50,-72},{42,-58},{36,-40},{30,-18},{30,0},{30,18},{34,36},{46,66},{62,84},{78,96},{90,100},{100,100}},
Icon(graphics={ Line(points={{100,-100},{94,-100},{84,-98},{76,-94},{64,-86},{50,-72},{42,-58},{36,-40},{30,-18},{30,0},{30,18},{34,36},{46,66},{62,84},{78,96},{90,100},{100,100}},
color={255,128,0}),Line(points={{-20,60},{-20,100},{-100,100}},
color={0,0,255}),Line(points={{-20,-60},{-20,-100},{-100,-100}},
color={0,0,255}),
Expand Down Expand Up @@ -118,6 +130,10 @@ The voltages <img src=\"modelica://Modelica/Resources/Images/Magnetic/Fundamenta
</tr>
</table>

<p>
The converter model optionally (if <code>useStrayPermeance = true</code>) considers stray field permeances (inductance) solely coupled to each individual phase, but no mutual stray inductance.
</p>

<h4>See also</h4>
<p>
<a href=\"modelica://Modelica.Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter\">SinglePhaseElectroMagneticConverter</a>
Expand Down
Loading