Skip to content

Commit 78ea695

Browse files
authored
Merge pull request #3817 from AHaumer/StrayInductance
Implemented split of stray inductance in common and individual part
2 parents 99f13cc + b419412 commit 78ea695

File tree

40 files changed

+635
-130
lines changed

40 files changed

+635
-130
lines changed

Modelica/Electrical/Machines/Utilities/ParameterRecords/IM_SlipRingData.mo

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ record IM_SlipRingData
1010
(2*pi*fsNominal)/turnsRatio^2
1111
"Rotor stray inductance per phase w.r.t. rotor side"
1212
annotation (Dialog(tab="Nominal resistances and inductances"));
13+
parameter Real ratioCommonRotorLeakage(final min=0, final max=1)=1
14+
"Ratio of common stray inductance / total stray inductance of rotor winding"
15+
annotation (Dialog(tab="Nominal resistances and inductances"));
1316
parameter SI.Inductance Lrzero=Lrsigma/turnsRatio^2
1417
"Rotor zero sequence inductance w.r.t. rotor side"
1518
annotation (Dialog(tab="Nominal resistances and inductances"));

Modelica/Electrical/Machines/Utilities/ParameterRecords/InductionMachineData.mo

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ record InductionMachineData "Common parameters for induction machines"
2323
parameter SI.Inductance Lssigma=3*(1 - sqrt(1 - 0.0667))/
2424
(2*pi*fsNominal) "Stator stray inductance per phase"
2525
annotation (Dialog(tab="Nominal resistances and inductances"));
26+
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
27+
"Ratio of common stray inductance / total stray inductance of stator winding"
28+
annotation (Dialog(tab="Nominal resistances and inductances"));
2629
parameter Machines.Losses.FrictionParameters frictionParameters(PRef=0, wRef=
2730
2*pi*fsNominal/p) "Friction loss parameter record"
2831
annotation (Dialog(tab="Losses"));

Modelica/Electrical/Machines/Utilities/SynchronousMachineData.mo

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ record SynchronousMachineData
9595
parameter SI.Inductance Lssigma=x0*ZReference/omega
9696
"Stator stray inductance per phase"
9797
annotation (Dialog(tab="Result", enable=false));
98+
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
99+
"Ratio of common stray inductance / total stray inductance of stator winding"
100+
annotation (Dialog(tab="Result"));
98101
parameter SI.Inductance Lmd=xmd*ZReference/omega
99102
"Main field inductance per phase in d-axis"
100103
annotation (Dialog(tab="Result", enable=false));

Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ partial model Machine "Base model of machines"
3333
parameter SI.Inductance Lssigma(start=3*(1 - sqrt(1 -
3434
0.0667))/(2*pi*fsNominal)) "Stator stray inductance"
3535
annotation (Dialog(tab="Nominal resistances and inductances"));
36+
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
37+
"Ratio of common stray inductance / total stray inductance of stator winding"
38+
annotation (Dialog(tab="Nominal resistances and inductances"));
3639
parameter SI.Inductance Lszero=Lssigma
3740
"Stator zero inductance"
3841
annotation (Dialog(tab="Nominal resistances and inductances"));
@@ -112,11 +115,13 @@ partial model Machine "Base model of machines"
112115
final RRef=Rs,
113116
final TRef=TsRef,
114117
final Lsigma=Lssigma,
118+
final ratioCommonLeakage=ratioCommonStatorLeakage,
115119
final effectiveTurns=effectiveStatorTurns,
116120
final TOperational=TsOperational,
117121
final GcRef=statorCoreParameters.GcRef,
118122
final alpha20=alpha20s,
119-
final Lzero=Lszero) "Symmetric stator winding including resistances, zero and stray inductances and core losses"
123+
final Lzero=Lszero)
124+
"Symmetric stator winding including resistances, zero and stray inductances and core losses"
120125
annotation (Placement(transformation(
121126
origin={0,40},
122127
extent={{-10,-10},{10,10}},

Modelica/Magnetic/FundamentalWave/BasicMachines/Components/SymmetricPolyphaseCageWinding.mo

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
within Modelica.Magnetic.FundamentalWave.BasicMachines.Components;
22
model SymmetricPolyphaseCageWinding "Symmetrical rotor cage"
3-
import Modelica.Constants.pi;
43
extends Magnetic.FundamentalWave.Interfaces.TwoPortExtended;
54
parameter Integer m=3 "Number of phases" annotation(Evaluate=true);
65
parameter Boolean useHeatPort=false
@@ -57,8 +56,8 @@ model SymmetricPolyphaseCageWinding "Symmetrical rotor cage"
5756
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortWinding if
5857
useHeatPort "Heat ports of winding resistor"
5958
annotation (Placement(transformation(extent={{-10,-110},{10,-90}})));
60-
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector(final m=m)
61-
if useHeatPort "Connector of thermal rotor resistance heat ports"
59+
Modelica.Thermal.HeatTransfer.Components.ThermalCollector thermalCollector(final m=m) if
60+
useHeatPort "Connector of thermal rotor resistance heat ports"
6261
annotation (Placement(transformation(extent={{-50,-90},{-30,-70}})));
6362
Magnetic.FundamentalWave.Components.Reluctance strayReluctance(final R_m(d=m*
6463
effectiveTurns^2/2/Lsigma, q=m*effectiveTurns^2/2/Lsigma))
@@ -92,8 +91,7 @@ equation
9291
connect(resistor.plug_n, multiStar.plug_p)
9392
annotation (Line(points={{-20,-60},{20,-60},{20,-20}}, color={0,0,255}));
9493
annotation (defaultComponentName="cage",
95-
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},
96-
{100,100}}), graphics={
94+
Icon(graphics={
9795
Ellipse(
9896
extent={{-80,80},{80,-80}},
9997
fillColor={175,175,175},

Modelica/Magnetic/FundamentalWave/BasicMachines/Components/SymmetricPolyphaseWinding.mo

Lines changed: 52 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
within Modelica.Magnetic.FundamentalWave.BasicMachines.Components;
22
model SymmetricPolyphaseWinding
33
"Symmetric winding model coupling electrical and magnetic domain"
4+
import Modelica.Constants.eps;
45
// Orientation changed
56
Modelica.Electrical.Polyphase.Interfaces.PositivePlug plug_p(final m=m)
67
"Positive plug" annotation (Placement(transformation(
@@ -23,8 +24,7 @@ model SymmetricPolyphaseWinding
2324
"Enable / disable (=fixed temperatures) thermal port"
2425
annotation (Evaluate=true);
2526
// Resistor model
26-
parameter SI.Resistance RRef
27-
"Winding resistance per phase at TRef";
27+
parameter SI.Resistance RRef "Winding resistance per phase at TRef";
2828
parameter SI.Temperature TRef(start=293.15)
2929
"Reference temperature of winding";
3030
parameter
@@ -34,17 +34,17 @@ model SymmetricPolyphaseWinding
3434
Modelica.Electrical.Machines.Thermal.convertAlpha(
3535
alpha20,
3636
TRef,
37-
293.15) "Temperature coefficient of winding at reference temperature";
37+
293.15)
38+
"Temperature coefficient of winding at reference temperature";
3839
parameter SI.Temperature TOperational(start=293.15)
3940
"Operational temperature of winding"
4041
annotation (Dialog(enable=not useHeatPort));
41-
parameter SI.Inductance Lsigma
42-
"Winding stray inductance per phase";
43-
parameter SI.Inductance Lzero
44-
"Zero sequence inductance of winding";
42+
parameter SI.Inductance Lsigma "Winding stray inductance per phase";
43+
parameter Real ratioCommonLeakage(final min=0, final max=1)=1
44+
"Ratio of common stray inductance / total stray inductance";
45+
parameter SI.Inductance Lzero "Zero sequence inductance of winding";
4546
parameter Real effectiveTurns=1 "Effective number of turns per phase";
46-
parameter SI.Conductance GcRef
47-
"Electrical reference core loss reluctance";
47+
parameter SI.Conductance GcRef "Electrical reference core loss reluctance";
4848
final parameter Integer nBase=Modelica.Electrical.Polyphase.Functions.numberOfSymmetricBaseSystems(m)
4949
"Number of base systems";
5050
final parameter Integer mBase=integer(m/nBase)
@@ -60,32 +60,33 @@ model SymmetricPolyphaseWinding
6060
"Magnitude of complex magnetic potential difference";
6161
SI.Angle arg_V_m=Modelica.ComplexMath.arg(V_m)
6262
"Argument of complex magnetic potential difference";
63-
SI.ComplexMagneticFlux Phi=port_p.Phi
64-
"Complex magnetic flux";
63+
SI.ComplexMagneticFlux Phi=port_p.Phi "Complex magnetic flux";
6564
SI.MagneticFlux abs_Phi=
66-
Modelica.ComplexMath.abs(Phi)
67-
"Magnitude of complex magnetic flux";
65+
Modelica.ComplexMath.abs(Phi) "Magnitude of complex magnetic flux";
6866
SI.Angle arg_Phi=Modelica.ComplexMath.arg(Phi)
6967
"Argument of complex magnetic flux";
7068

71-
Magnetic.FundamentalWave.Components.PolyphaseElectroMagneticConverter electroMagneticConverter(
72-
final m=m,
69+
Modelica.Magnetic.FundamentalWave.Components.PolyphaseElectroMagneticConverter
70+
electroMagneticConverter(
71+
m=m,
7372
final effectiveTurns=fill(effectiveTurns, m),
7473
final orientation=
75-
Modelica.Electrical.Polyphase.Functions.symmetricOrientation(m))
76-
"Symmetric winding"
77-
annotation (Placement(transformation(extent={{-10,-40},{10,-20}})));
74+
Modelica.Electrical.Polyphase.Functions.symmetricOrientation(m),
75+
final useStrayPermeance=ratioCommonLeakage < (1 - eps),
76+
final Lsigma=(1 - ratioCommonLeakage)*Lsigma)
77+
"Symmetric winding"
78+
annotation (Placement(transformation(extent={{-10,-20},{10,0}})));
7879
Modelica.Electrical.Polyphase.Basic.ZeroInductor zeroInductor(final m=m, final Lzero=Lzero) if
7980
mBase<>2 "Zero sequence inductance of winding"
8081
annotation (Placement(transformation(
81-
origin={-30,30},
82-
extent={{-10,-10},{10,10}},
83-
rotation=270)));
82+
origin={-70,-30},
83+
extent={{10,-10},{-10,10}},
84+
rotation=0)));
8485
Modelica.Electrical.Polyphase.Ideal.Short short(final m=m) if mBase == 2
8586
annotation (Placement(transformation(
86-
extent={{-10,-10},{10,10}},
87-
rotation=270,
88-
origin={-10,30})));
87+
extent={{10,-10},{-10,10}},
88+
rotation=0,
89+
origin={-70,-50})));
8990
Modelica.Electrical.Polyphase.Basic.Resistor resistor(
9091
final m=m,
9192
final useHeatPort=useHeatPort,
@@ -98,50 +99,52 @@ model SymmetricPolyphaseWinding
9899
extent={{-10,-10},{10,10}},
99100
rotation=270)));
100101
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortWinding[m] if
101-
useHeatPort "Heat ports of winding resistors"
102+
useHeatPort "Heat ports of winding resistors"
102103
annotation (Placement(transformation(extent={{-50,-110},{-30,-90}})));
103104
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPortCore if
104-
useHeatPort "Heat port of core"
105+
useHeatPort "Heat port of core"
105106
annotation (Placement(transformation(extent={{30,-110},{50,-90}})));
106-
Magnetic.FundamentalWave.Components.EddyCurrent core(final useHeatPort=
107-
useHeatPort, final G=(m/2)*GcRef*effectiveTurns^2)
107+
Magnetic.FundamentalWave.Components.EddyCurrent core(
108+
final useHeatPort=useHeatPort, final G=(m/2)*GcRef*effectiveTurns^2)
108109
"Core loss model (currently eddy currents only)" annotation (Placement(
109110
transformation(extent={{-10,-10},{10,10}}, origin={50,-40})));
110-
Modelica.Magnetic.FundamentalWave.Components.Permeance stray(
111-
final G_m(d=2*Lsigma/m/effectiveTurns^2, q=2*Lsigma/m/effectiveTurns^2))
112-
"Stray permeance equivalent to ideally coupled stray inductances" annotation (Placement(transformation(
111+
Modelica.Magnetic.FundamentalWave.Components.Permeance stray(final G_m(
112+
d=2/m*ratioCommonLeakage*Lsigma/effectiveTurns^2,
113+
q=2/m*ratioCommonLeakage*Lsigma/effectiveTurns^2)) if ratioCommonLeakage>eps
114+
"Common stray permeance equivalent to ideally coupled stray inductances"
115+
annotation (Placement(transformation(
113116
extent={{-10,-10},{10,10}},
114117
rotation=270,
115118
origin={80,30})));
116119

117120
equation
118121
connect(plug_p, resistor.plug_p) annotation (Line(points={{-100,100},{-20,
119122
100},{-20,80}}, color={0,0,255}));
120-
connect(resistor.plug_n, zeroInductor.plug_p) annotation (Line(points={{-20,60},
121-
{-20,55},{-20,40},{-30,40}}, color={0,0,255}));
122-
connect(electroMagneticConverter.plug_n, plug_n) annotation (Line(
123-
points={{-10,-40},{-10,-40},{-100,-40},{-100,-100}}, color={0,0,
124-
255}));
125-
connect(electroMagneticConverter.port_p, port_p) annotation (Line(
126-
points={{10,-20},{10,100},{100,100}}, color={255,128,0}));
127123
connect(resistor.heatPort, heatPortWinding) annotation (Line(
128124
points={{-30,70},{-40,70},{-40,-100}}, color={191,0,0}));
129-
connect(electroMagneticConverter.port_n, core.port_p) annotation (Line(
130-
points={{10,-40},{40,-40}}, color={255,128,0}));
131125
connect(core.port_n, port_n) annotation (Line(
132126
points={{60,-40},{100,-40},{100,-100}}, color={255,128,0}));
133127
connect(core.heatPort, heatPortCore) annotation (Line(
134128
points={{40,-50},{40,-100}}, color={191,0,0}));
135129
connect(stray.port_n, core.port_n) annotation (Line(points={{80,20},{80,-40},{60,-40}}, color={255,128,0}));
136-
connect(stray.port_p, electroMagneticConverter.port_p) annotation (Line(points={{80,40},{80,100},{10,100},{10,-20}}, color={255,128,0}));
137-
connect(zeroInductor.plug_n, electroMagneticConverter.plug_p) annotation (
138-
Line(points={{-30,20},{-20,20},{-20,-20},{-10,-20}}, color={0,0,255}));
139-
connect(resistor.plug_n, short.plug_p)
140-
annotation (Line(points={{-20,60},{-20,40},{-10,40}}, color={0,0,255}));
141-
connect(electroMagneticConverter.plug_p, short.plug_n) annotation (Line(
142-
points={{-10,-20},{-20,-20},{-20,20},{-10,20}}, color={0,0,255}));
143-
annotation (defaultComponentName="winding", Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,
144-
-100},{100,100}}), graphics={
130+
connect(short.plug_n, plug_n) annotation (Line(points={{-80,-50},{-80,-40},{-100,
131+
-40},{-100,-100}}, color={0,0,255}));
132+
connect(plug_n, zeroInductor.plug_n) annotation (Line(points={{-100,-100},{-100,
133+
-40},{-80,-40},{-80,-30}}, color={0,0,255}));
134+
connect(port_p, stray.port_p)
135+
annotation (Line(points={{100,100},{80,100},{80,40}}, color={255,128,0}));
136+
connect(electroMagneticConverter.port_n, core.port_p)
137+
annotation (Line(points={{10,-20},{10,-40},{40,-40}}, color={255,128,0}));
138+
connect(zeroInductor.plug_p, electroMagneticConverter.plug_n) annotation (
139+
Line(points={{-60,-30},{-60,-40},{-20,-40},{-20,-20},{-10,-20}}, color={0,
140+
0,255}));
141+
connect(short.plug_p, electroMagneticConverter.plug_n) annotation (Line(
142+
points={{-60,-50},{-60,-40},{-20,-40},{-20,-20},{-10,-20}}, color={0,0,255}));
143+
connect(resistor.plug_n, electroMagneticConverter.plug_p)
144+
annotation (Line(points={{-20,60},{-20,0},{-10,0}}, color={0,0,255}));
145+
connect(electroMagneticConverter.port_p, port_p)
146+
annotation (Line(points={{10,0},{10,100},{100,100}}, color={255,128,0}));
147+
annotation (defaultComponentName="winding", Icon(graphics={
145148
Line(points={{100,-100},{94,-100},{84,-98},{76,-94},{64,-86},{50,
146149
-72},{42,-58},{36,-40},{30,-18},{30,0},{30,18},{34,36},{46,
147150
66},{62,84},{78,96},{90,100},{100,100}}, color={255,128,0}),

Modelica/Magnetic/FundamentalWave/BasicMachines/InductionMachines/IM_SlipRing.mo

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ model IM_SlipRing "Induction machine with slip ring rotor"
3939
0.0667))/(2*pi*fsNominal))
4040
"Rotor leakage inductance w.r.t. rotor side"
4141
annotation (Dialog(tab="Nominal resistances and inductances"));
42+
parameter Real ratioCommonRotorLeakage(final min=0, final max=1)=1
43+
"Ratio of common stray inductance / total stray inductance of rotor winding"
44+
annotation (Dialog(tab="Nominal resistances and inductances"));
4245
parameter SI.Inductance Lrzero=Lrsigma
4346
"Rotor zero inductance w.r.t. rotor side"
4447
annotation (Dialog(tab="Nominal resistances and inductances"));
@@ -87,6 +90,7 @@ protected
8790
public
8891
Components.SymmetricPolyphaseWinding rotor(
8992
final Lsigma=Lrsigma,
93+
final ratioCommonLeakage=ratioCommonRotorLeakage,
9094
final effectiveTurns=effectiveStatorTurns/internalTurnsRatio,
9195
final useHeatPort=true,
9296
final RRef=Rr,

Modelica/Magnetic/FundamentalWave/Components/PolyphaseElectroMagneticConverter.mo

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ within Modelica.Magnetic.FundamentalWave.Components;
22
model PolyphaseElectroMagneticConverter
33
"Polyphase electromagnetic converter"
44

5-
import Modelica.Constants.pi;
5+
import Modelica.Magnetic.FundamentalWave.Types.SalientPermeance;
66

77
// Global plug and port variables
88
SI.Voltage v[m]=plug_p.pin.v - plug_n.pin.v "Voltage";
@@ -41,9 +41,18 @@ model PolyphaseElectroMagneticConverter
4141
parameter Real effectiveTurns[m] "Effective number of turns";
4242
parameter SI.Angle orientation[m]
4343
"Orientation of the resulting fundamental wave field phasor";
44-
Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter singlePhaseElectroMagneticConverter[m](final
45-
effectiveTurns=effectiveTurns, final orientation=orientation)
44+
parameter Boolean useStrayPermeance=false "Use optional stray permeance";
45+
parameter SI.Inductance Lsigma=0 "Optional stray inductance"
46+
annotation(Dialog(enable=useStrayPermeance));
47+
Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter singlePhaseElectroMagneticConverter[m](
48+
final effectiveTurns=effectiveTurns, final orientation=orientation)
4649
annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
50+
Permeance strayPermeance[m](final G_m={SalientPermeance(
51+
d=Lsigma/effectiveTurns[k]^2, q=Lsigma/effectiveTurns[k]^2) for k in 1:m}) if useStrayPermeance
52+
annotation (Placement(transformation(
53+
extent={{-10,-10},{10,10}},
54+
rotation=270,
55+
origin={30,0})));
4756
equation
4857
connect(plug_p.pin, singlePhaseElectroMagneticConverter.pin_p)
4958
annotation (Line(
@@ -61,9 +70,12 @@ equation
6170
connect(singlePhaseElectroMagneticConverter[m].port_n, port_n)
6271
annotation (Line(
6372
points={{12,-10},{12,-100},{100,-100}}, color={255,128,0}));
73+
connect(singlePhaseElectroMagneticConverter.port_p, strayPermeance.port_p)
74+
annotation (Line(points={{12,10},{30,10}}, color={255,128,0}));
75+
connect(singlePhaseElectroMagneticConverter.port_n, strayPermeance.port_n)
76+
annotation (Line(points={{12,-10},{30,-10}}, color={255,128,0}));
6477
annotation (defaultComponentName="converter",
65-
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{
66-
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}},
78+
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}},
6779
color={255,128,0}),Line(points={{-20,60},{-20,100},{-100,100}},
6880
color={0,0,255}),Line(points={{-20,-60},{-20,-100},{-100,-100}},
6981
color={0,0,255}),
@@ -118,6 +130,10 @@ The voltages <img src=\"modelica://Modelica/Resources/Images/Magnetic/Fundamenta
118130
</tr>
119131
</table>
120132
133+
<p>
134+
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.
135+
</p>
136+
121137
<h4>See also</h4>
122138
<p>
123139
<a href=\"modelica://Modelica.Magnetic.FundamentalWave.Components.SinglePhaseElectroMagneticConverter\">SinglePhaseElectroMagneticConverter</a>

0 commit comments

Comments
 (0)