Skip to content

Commit 620ece5

Browse files
authored
Merge pull request #4052 from HansOlsson/SMFix2
Fix SI units by introducing reference phase impedance ZsRef
2 parents 143651c + 272d6b4 commit 620ece5

File tree

18 files changed

+95
-93
lines changed

18 files changed

+95
-93
lines changed

Modelica/Electrical/Machines/BasicMachines/InductionMachines/IM_SlipRing.mo

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ model IM_SlipRing "Induction machine with slipring rotor"
2424
final Lm=Lm,
2525
final m=m) annotation (Placement(transformation(extent={{-10,-10},{10,10}},
2626
rotation=270)));
27-
parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi
27+
parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi
2828
*fsNominal)) "Stator main field inductance per phase"
2929
annotation (Dialog(tab="Nominal resistances and inductances"));
30-
parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 -
30+
parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 -
3131
0.0667))/(2*pi*fsNominal))
3232
"Rotor stray inductance per phase w.r.t. rotor side"
3333
annotation (Dialog(tab="Nominal resistances and inductances"));
3434
parameter SI.Inductance Lrzero=Lrsigma
3535
"Rotor zero sequence inductance w.r.t. rotor side"
3636
annotation (Dialog(tab="Nominal resistances and inductances"));
37-
parameter SI.Resistance Rr(start=0.04)
37+
parameter SI.Resistance Rr(start=0.04*ZsRef)
3838
"Rotor resistance per phase at TRef w.r.t. rotor side"
3939
annotation (Dialog(tab="Nominal resistances and inductances"));
4040
parameter SI.Temperature TrRef(start=293.15)

Modelica/Electrical/Machines/BasicMachines/InductionMachines/IM_SquirrelCage.mo

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ model IM_SquirrelCage
2323
final Lm=Lm,
2424
final m=m) annotation (Placement(transformation(extent={{-10,-10},{10,10}},
2525
rotation=270)));
26-
parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi
26+
parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi
2727
*fsNominal)) "Stator main field inductance per phase"
2828
annotation (Dialog(tab="Nominal resistances and inductances"));
29-
parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 -
29+
parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 -
3030
0.0667))/(2*pi*fsNominal))
3131
"Rotor stray inductance per phase (equivalent three-phase winding)"
3232
annotation (Dialog(tab="Nominal resistances and inductances"));
33-
parameter SI.Resistance Rr(start=0.04)
33+
parameter SI.Resistance Rr(start=0.04*ZsRef)
3434
"Rotor resistance per phase (equivalent three-phase winding) at TRef"
3535
annotation (Dialog(tab="Nominal resistances and inductances"));
3636
parameter SI.Temperature TrRef(start=293.15)

Modelica/Electrical/Machines/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ within Modelica.Electrical.Machines.BasicMachines.SynchronousMachines;
22
model SM_ElectricalExcited
33
"Electrical excited synchronous machine with damper cage"
44
extends Machines.Interfaces.PartialBasicInductionMachine(
5-
Lssigma(start=0.1/(2*pi*fsNominal)),
5+
Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)),
66
final idq_ss=airGap.i_ss,
77
final idq_sr=airGap.i_sr,
88
final idq_rs=airGap.i_rs,
@@ -45,16 +45,16 @@ model SM_ElectricalExcited
4545
"Operational temperature of (optional) damper cage" annotation (
4646
Dialog(group="Operational temperatures", enable=not useThermalPort
4747
and useDamperCage));
48-
parameter SI.Inductance Lmd(start=1.5/(2*pi*fsNominal))
48+
parameter SI.Inductance Lmd(start=1.5*ZsRef/(2*pi*fsNominal))
4949
"Stator main field inductance per phase in d-axis"
5050
annotation (Dialog(tab="Nominal resistances and inductances"));
51-
parameter SI.Inductance Lmq(start=1.5/(2*pi*fsNominal))
51+
parameter SI.Inductance Lmq(start=1.5*ZsRef/(2*pi*fsNominal))
5252
"Stator main field inductance per phase in q-axis"
5353
annotation (Dialog(tab="Nominal resistances and inductances"));
5454
parameter Boolean useDamperCage(start=true)
5555
"Enable / disable damper cage" annotation (Evaluate=true, Dialog(tab=
5656
"Nominal resistances and inductances", group="Damper cage"));
57-
parameter SI.Inductance Lrsigmad(start=0.05/(2*pi*
57+
parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi*
5858
fsNominal)) "Damper stray inductance in d-axis" annotation (
5959
Dialog(
6060
tab="Nominal resistances and inductances",
@@ -65,7 +65,7 @@ model SM_ElectricalExcited
6565
tab="Nominal resistances and inductances",
6666
group="Damper cage",
6767
enable=useDamperCage));
68-
parameter SI.Resistance Rrd(start=0.04)
68+
parameter SI.Resistance Rrd(start=0.04*ZsRef)
6969
"Damper resistance in d-axis at TRef" annotation (Dialog(
7070
tab="Nominal resistances and inductances",
7171
group="Damper cage",

Modelica/Electrical/Machines/BasicMachines/SynchronousMachines/SM_PermanentMagnet.mo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
within Modelica.Electrical.Machines.BasicMachines.SynchronousMachines;
22
model SM_PermanentMagnet "Permanent magnet synchronous machine"
33
extends Machines.Interfaces.PartialBasicInductionMachine(
4-
Lssigma(start=0.1/(2*pi*fsNominal)),
4+
Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)),
55
final idq_ss=airGap.i_ss,
66
final idq_sr=airGap.i_sr,
77
final idq_rs=airGap.i_rs,
@@ -47,16 +47,16 @@ model SM_PermanentMagnet "Permanent magnet synchronous machine"
4747
and useDamperCage));
4848
parameter SI.Voltage VsOpenCircuit(start=112.3)
4949
"Open circuit RMS voltage per phase @ fsNominal";
50-
parameter SI.Inductance Lmd(start=0.3/(2*pi*fsNominal))
50+
parameter SI.Inductance Lmd(start=0.3*ZsRef/(2*pi*fsNominal))
5151
"Stator main field inductance per phase in d-axis"
5252
annotation (Dialog(tab="Nominal resistances and inductances"));
53-
parameter SI.Inductance Lmq(start=0.3/(2*pi*fsNominal))
53+
parameter SI.Inductance Lmq(start=0.3*ZsRef/(2*pi*fsNominal))
5454
"Stator main field inductance per phase in q-axis"
5555
annotation (Dialog(tab="Nominal resistances and inductances"));
5656
parameter Boolean useDamperCage(start=true)
5757
"Enable / disable damper cage" annotation (Evaluate=true, Dialog(tab=
5858
"Nominal resistances and inductances", group="Damper cage"));
59-
parameter SI.Inductance Lrsigmad(start=0.05/(2*pi*
59+
parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi*
6060
fsNominal)) "Damper stray inductance in d-axis" annotation (
6161
Dialog(
6262
tab="Nominal resistances and inductances",
@@ -67,7 +67,7 @@ model SM_PermanentMagnet "Permanent magnet synchronous machine"
6767
tab="Nominal resistances and inductances",
6868
group="Damper cage",
6969
enable=useDamperCage));
70-
parameter SI.Resistance Rrd(start=0.04)
70+
parameter SI.Resistance Rrd(start=0.04*ZsRef)
7171
"Damper resistance in d-axis at TRef" annotation (Dialog(
7272
tab="Nominal resistances and inductances",
7373
group="Damper cage",

Modelica/Electrical/Machines/BasicMachines/SynchronousMachines/SM_ReluctanceRotor.mo

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ within Modelica.Electrical.Machines.BasicMachines.SynchronousMachines;
22
model SM_ReluctanceRotor
33
"Synchronous machine with reluctance rotor and damper cage"
44
extends Machines.Interfaces.PartialBasicInductionMachine(
5-
Lssigma(start=0.1/(2*pi*fsNominal)),
5+
Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)),
66
final idq_ss=airGap.i_ss,
77
final idq_sr=airGap.i_sr,
88
final idq_rs=airGap.i_rs,
99
final idq_rr=airGap.i_rr,
1010
redeclare final Machines.Thermal.SynchronousMachines.ThermalAmbientSMR
1111
thermalAmbient(final useDamperCage=useDamperCage, final Tr=TrOperational),
12-
1312
redeclare final Machines.Interfaces.InductionMachines.ThermalPortSMR
1413
thermalPort(final useDamperCage=useDamperCage),
1514
redeclare final Machines.Interfaces.InductionMachines.ThermalPortSMR
@@ -40,16 +39,16 @@ model SM_ReluctanceRotor
4039
"Operational temperature of (optional) damper cage" annotation (
4140
Dialog(group="Operational temperatures", enable=not useThermalPort
4241
and useDamperCage));
43-
parameter SI.Inductance Lmd(start=2.9/(2*pi*fsNominal))
42+
parameter SI.Inductance Lmd(start=2.9*ZsRef/(2*pi*fsNominal))
4443
"Stator main field inductance per phase in d-axis"
4544
annotation (Dialog(tab="Nominal resistances and inductances"));
46-
parameter SI.Inductance Lmq(start=0.9/(2*pi*fsNominal))
45+
parameter SI.Inductance Lmq(start=0.9*ZsRef/(2*pi*fsNominal))
4746
"Stator main field inductance per phase in q-axis"
4847
annotation (Dialog(tab="Nominal resistances and inductances"));
4948
parameter Boolean useDamperCage(start=true)
5049
"Enable / disable damper cage" annotation (Evaluate=true, Dialog(tab=
5150
"Nominal resistances and inductances", group="Damper cage"));
52-
parameter SI.Inductance Lrsigmad(start=0.05/(2*pi*
51+
parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi*
5352
fsNominal)) "Damper stray inductance in d-axis" annotation (
5453
Dialog(
5554
tab="Nominal resistances and inductances",
@@ -60,7 +59,7 @@ model SM_ReluctanceRotor
6059
tab="Nominal resistances and inductances",
6160
group="Damper cage",
6261
enable=useDamperCage));
63-
parameter SI.Resistance Rrd(start=0.04)
62+
parameter SI.Resistance Rrd(start=0.04*ZsRef)
6463
"Damper resistance in d-axis at TRef" annotation (Dialog(
6564
tab="Nominal resistances and inductances",
6665
group="Damper cage",

Modelica/Electrical/Machines/Interfaces/PartialBasicInductionMachine.mo

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ partial model PartialBasicInductionMachine
88
parameter SI.Temperature TsOperational(start=293.15)
99
"Operational temperature of stator resistance" annotation (Dialog(group=
1010
"Operational temperatures", enable=not useThermalPort));
11-
parameter SI.Resistance Rs(start=0.03)
11+
parameter SI.Resistance Rs(start=0.03*ZsRef)
1212
"Stator resistance per phase at TRef"
1313
annotation (Dialog(tab="Nominal resistances and inductances"));
1414
parameter SI.Temperature TsRef(start=293.15)
@@ -20,7 +20,7 @@ partial model PartialBasicInductionMachine
2020
parameter SI.Inductance Lszero=Lssigma
2121
"Stator zero sequence inductance"
2222
annotation (Dialog(tab="Nominal resistances and inductances"));
23-
parameter SI.Inductance Lssigma(start=3*(1 - sqrt(1 -
23+
parameter SI.Inductance Lssigma(start=3*ZsRef*(1 - sqrt(1 -
2424
0.0667))/(2*pi*fsNominal)) "Stator stray inductance per phase"
2525
annotation (Dialog(tab="Nominal resistances and inductances"));
2626
extends PartialBasicMachine(
@@ -100,8 +100,8 @@ partial model PartialBasicInductionMachine
100100
final useHeatPort=true,
101101
final m=m) annotation (Placement(transformation(extent={{90,70},{70,90}})));
102102
replaceable
103-
Machines.Interfaces.InductionMachines.PartialThermalPortInductionMachines thermalPort(final m=m) if
104-
useThermalPort
103+
Machines.Interfaces.InductionMachines.PartialThermalPortInductionMachines thermalPort(final m=m)
104+
if useThermalPort
105105
annotation (Placement(transformation(extent={{-10,-110},{10,-90}})));
106106
replaceable
107107
Machines.Interfaces.InductionMachines.PartialThermalAmbientInductionMachines
@@ -113,6 +113,7 @@ partial model PartialBasicInductionMachine
113113
rotation=270,
114114
origin={-30,-80})));
115115
protected
116+
final parameter SI.Impedance ZsRef = 1 "Reference phase impedance based on nominal voltage 100 V and nominal current 100 A; per phase";
116117
constant Real pi = Modelica.Constants.pi;
117118
replaceable
118119
Machines.Interfaces.InductionMachines.PartialThermalPortInductionMachines internalThermalPort(final m=m)

Modelica/Magnetic/FundamentalWave/BaseClasses/Machine.mo

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ partial model Machine "Base model of machines"
1818
parameter SI.Temperature TsOperational(start=293.15)
1919
"Operational temperature of stator resistance" annotation (Dialog(group=
2020
"Operational temperatures", enable=not useThermalPort));
21-
parameter SI.Resistance Rs(start=0.03)
21+
parameter SI.Resistance Rs(start=ZsRef*0.03)
2222
"Stator resistance per phase at TRef"
2323
annotation (Dialog(tab="Nominal resistances and inductances"));
2424
parameter SI.Temperature TsRef(start=293.15)
@@ -30,7 +30,7 @@ partial model Machine "Base model of machines"
3030
"Temperature coefficient of stator resistance at 20 degC"
3131
annotation (Dialog(tab="Nominal resistances and inductances"));
3232
parameter Real effectiveStatorTurns=1 "Effective number of stator turns";
33-
parameter SI.Inductance Lssigma(start=3*(1 - sqrt(1 -
33+
parameter SI.Inductance Lssigma(start=3*ZsRef*(1 - sqrt(1 -
3434
0.0667))/(2*pi*fsNominal)) "Stator stray inductance"
3535
annotation (Dialog(tab="Nominal resistances and inductances"));
3636
parameter Real ratioCommonStatorLeakage(final min=0, final max=1)=1
@@ -170,6 +170,8 @@ partial model Machine "Base model of machines"
170170
annotation (Placement(transformation(extent={{-44,-94},{-36,-86}})));
171171
Modelica.Mechanics.Rotational.Interfaces.Support internalSupport
172172
annotation (Placement(transformation(extent={{56,-104},{64,-96}})));
173+
protected
174+
final parameter SI.Impedance ZsRef = 1 "Reference phase impedance based on nominal voltage 100 V and nominal current 100 A; per phase";
173175
initial algorithm
174176
assert(not Modelica.Math.isPowerOf2(m), String(m) +
175177
" phases are currently not supported in this version of FundametalWave");

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ model IM_SlipRing "Induction machine with slip ring rotor"
33
parameter Integer mr(min=3) = m "Number of rotor phases" annotation(Evaluate=true);
44
extends Magnetic.FundamentalWave.BaseClasses.Machine(
55
is(start=zeros(m)),
6-
Rs(start=0.03),
7-
Lssigma(start=3*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)),
6+
Rs(start=0.03*ZsRef),
7+
Lssigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)),
88
final L0(d=2.0*Lm/m/effectiveStatorTurns^2, q=2.0*Lm/m/effectiveStatorTurns
99
^2),
1010
redeclare final
@@ -31,11 +31,11 @@ model IM_SlipRing "Induction machine with slip ring rotor"
3131
Modelica.Electrical.Polyphase.Interfaces.PositivePlug plug_rp(final m=
3232
mr) "Positive plug of rotor" annotation (Placement(transformation(
3333
extent={{-110,70},{-90,50}})));
34-
parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi
34+
parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi
3535
*fsNominal)) "Stator main field inductance" annotation (Dialog(
3636
tab="Nominal resistances and inductances", groupImage=
3737
"modelica://Modelica/Resources/Images/Electrical/Machines/IMS.png"));
38-
parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 -
38+
parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 -
3939
0.0667))/(2*pi*fsNominal))
4040
"Rotor leakage inductance w.r.t. rotor side"
4141
annotation (Dialog(tab="Nominal resistances and inductances"));
@@ -45,7 +45,7 @@ model IM_SlipRing "Induction machine with slip ring rotor"
4545
parameter SI.Inductance Lrzero=Lrsigma
4646
"Rotor zero inductance w.r.t. rotor side"
4747
annotation (Dialog(tab="Nominal resistances and inductances"));
48-
parameter SI.Resistance Rr(start=0.04)
48+
parameter SI.Resistance Rr(start=0.04*ZsRef)
4949
"Rotor resistance per phase w.r.t. rotor side"
5050
annotation (Dialog(tab="Nominal resistances and inductances"));
5151
parameter SI.Temperature TrRef(start=293.15)

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ model IM_SquirrelCage
33
"Induction machine with squirrel cage"
44
extends Magnetic.FundamentalWave.BaseClasses.Machine(
55
is(start=zeros(m)),
6-
Rs(start=0.03),
7-
Lssigma(start=3*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)),
6+
Rs(start=0.03*ZsRef),
7+
Lssigma(start=3*ZsRef*(1 - sqrt(1 - 0.0667))/(2*pi*fsNominal)),
88
final L0(d=2.0*Lm/m/effectiveStatorTurns^2, q=2.0*Lm/m/effectiveStatorTurns
99
^2),
1010
redeclare final
@@ -20,15 +20,15 @@ model IM_SquirrelCage
2020
Modelica.Electrical.Machines.Interfaces.InductionMachines.PowerBalanceIMC
2121
powerBalance(final lossPowerRotorWinding=sum(rotorCage.resistor.resistor.LossPower),
2222
final lossPowerRotorCore=0));
23-
parameter SI.Inductance Lm(start=3*sqrt(1 - 0.0667)/(2*pi
23+
parameter SI.Inductance Lm(start=3*ZsRef*sqrt(1 - 0.0667)/(2*pi
2424
*fsNominal)) "Stator main field inductance" annotation (Dialog(
2525
tab="Nominal resistances and inductances", groupImage=
2626
"modelica://Modelica/Resources/Images/Electrical/Machines/IMC.png"));
27-
parameter SI.Inductance Lrsigma(start=3*(1 - sqrt(1 -
27+
parameter SI.Inductance Lrsigma(start=3*ZsRef*(1 - sqrt(1 -
2828
0.0667))/(2*pi*fsNominal))
2929
"Rotor leakage inductance of equivalent m phase winding w.r.t. stator side"
3030
annotation (Dialog(tab="Nominal resistances and inductances"));
31-
parameter SI.Resistance Rr(start=0.04)
31+
parameter SI.Resistance Rr(start=0.04*ZsRef)
3232
"Rotor resistance of equivalent m phase winding w.r.t. stator side"
3333
annotation (Dialog(tab="Nominal resistances and inductances"));
3434
parameter SI.Temperature TrRef(start=293.15)

Modelica/Magnetic/FundamentalWave/BasicMachines/SynchronousMachines/SM_ElectricalExcited.mo

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ model SM_ElectricalExcited
33
"Electrical excited synchronous machine with optional damper cage"
44
extends Magnetic.FundamentalWave.BaseClasses.Machine(
55
is(start=zeros(m)),
6-
Rs(start=0.03),
7-
Lssigma(start=0.1/(2*pi*fsNominal)),
6+
Rs(start=0.03*ZsRef),
7+
Lssigma(start=0.1*ZsRef/(2*pi*fsNominal)),
88
final L0(d=2.0*Lmd/m/effectiveStatorTurns^2, q=2.0*Lmq/m/
99
effectiveStatorTurns^2),
1010
redeclare final
@@ -28,18 +28,18 @@ model SM_ElectricalExcited
2828
final lossPowerBrush=brush.lossPower,
2929
final lossPowerRotorCore=0));
3030
// Main field parameters
31-
parameter SI.Inductance Lmd(start=1.5/(2*pi*fsNominal))
31+
parameter SI.Inductance Lmd(start=1.5*ZsRef/(2*pi*fsNominal))
3232
"Stator main field inductance, d-axis" annotation (Dialog(tab=
3333
"Nominal resistances and inductances", groupImage=
3434
"modelica://Modelica/Resources/Images/Electrical/Machines/SMEE.png"));
35-
parameter SI.Inductance Lmq(start=1.5/(2*pi*fsNominal))
35+
parameter SI.Inductance Lmq(start=1.5*ZsRef/(2*pi*fsNominal))
3636
"Stator main field inductance, q-axis"
3737
annotation (Dialog(tab="Nominal resistances and inductances"));
3838
// Rotor cage parameters
3939
parameter Boolean useDamperCage(start=true)
4040
"Enable/disable damper cage" annotation (Dialog(tab=
4141
"Nominal resistances and inductances", group="Damper cage"));
42-
parameter SI.Inductance Lrsigmad(start=0.05/(2*pi*
42+
parameter SI.Inductance Lrsigmad(start=0.05*ZsRef/(2*pi*
4343
fsNominal))
4444
"Rotor damper cage leakage inductance, d-axis, w.r.t. stator side" annotation (
4545
Dialog(
@@ -52,7 +52,7 @@ model SM_ElectricalExcited
5252
tab="Nominal resistances and inductances",
5353
group="Damper cage",
5454
enable=useDamperCage));
55-
parameter SI.Resistance Rrd(start=0.04)
55+
parameter SI.Resistance Rrd(start=0.04*ZsRef)
5656
"Rotor damper cage resistance, d-axis, w.r.t. stator side" annotation (Dialog(
5757
tab="Nominal resistances and inductances",
5858
group="Damper cage",

0 commit comments

Comments
 (0)