Ticket #5452: IMCD2.mo

File IMCD2.mo, 15.6 KB (added by Christian Kral <dr.christian.kral@…>, 4 years ago)

Model IMCD.mo extended by "dummy" star resistances

Line 
1within ;
2model IMCD2 "Induction machine with transformer and cable"
3
4 import Modelica.Constants.pi;
5 import SI = Modelica.SIunits;
6 parameter Integer m=3 "Number of phases";
7 parameter Integer mBase=Modelica.Electrical.MultiPhase.Functions.numberOfSymmetricBaseSystems(m)
8 "Number of base systems";
9 parameter SI.Frequency fN = 50 "Nominal frequency";
10 final parameter SI.AngularVelocity omegaN = 2 * pi * fN "Nominal angular frequency";
11
12 // Transformer
13 parameter SI.Voltage U1N = 10000 "Nominal primary voltage of transformer";
14 final parameter SI.Voltage U1strN = U1N / sqrt(3) "Nominal transformer phase voltage of primary";
15 parameter SI.ApparentPower SN = 100E3 "Nominal transformer apparent power";
16 final parameter SI.Current I1strN = SN / 3 / U1strN "Nominal transformer phase current of primary";
17 parameter SI.Power Pk = 1750 "Short circuit power";
18 parameter Real uk = 0.04 "Per unit short curcit voltage";
19 parameter Real n12 = U1N / UMN "Voltage ratio of transformer";
20 parameter SI.Resistance Rk = Pk / 3 / I1strN^2 "Phase short circuit resistance";
21 parameter SI.Resistance R1 = Rk / 2 "Primary winding resistance";
22 parameter SI.Resistance R2 = R1 / n12^2 "Secondary winding resistance";
23 parameter SI.Impedance Zk = uk * U1N / I1strN "Magnitude of short circuit impedance";
24 parameter SI.Reactance Xk = sqrt(Zk^2 - Rk^2) "Short circuit reactance";
25 final parameter SI.Inductance L1sigma = Xk / 2 / omegaN "Primary winding stray indutance";
26 final parameter SI.Inductance L2sigma = L1sigma / n12^2 "Secondary winding stray indutance";
27
28 parameter SI.ApparentPower SMN = 20091.8 "Nominal apparent power of motor";
29 parameter SI.Voltage UMN = 400 "Nominal RMS voltage of motor";
30 parameter SI.Voltage UMstrN = UMN "Nominal phase RMS voltage per phase";
31 parameter SI.Current IMstrN = SMN / 3 / UMstrN "Nominal RMS phase current per phase";
32 parameter SI.Impedance ZMstrN = UMstrN / IMstrN "Reference phase impedance";
33 parameter Integer p = 1 "Number of pole pairs";
34
35 parameter Real rs = 0.031562090934112 "Per unit stator resistance";
36 parameter SI.Resistance Rs = rs * ZMstrN "Stator resistance";
37 parameter Real xh = 3.60843401335745 "Per unit main fiel reactance";
38 parameter SI.Inductance Lh = xh * ZMstrN / omegaN "Main field reactance";
39 parameter Real xrsigma = 0.258805468594768 "Per unit rotor reactance = total reactance";
40 parameter SI.Inductance Lssigma = xrsigma / 2 * ZMstrN / omegaN "Stator stray inductance";
41 parameter SI.Inductance Lrsigma = Lssigma "Rotor stray inductance";
42 parameter Real rr = 0.026789902784874 "Per unit rotor resistance";
43 parameter SI.Resistance Rr = rr * ZMstrN "Rotor phase resistance";
44 parameter SI.Inertia Jr = 0.04 "Rotor inertia";
45 parameter Real pmN = 0.79290068101565 "Per unit mechanical nominal power";
46 final parameter SI.Power PmN = pmN * SMN "Mechnical nominal power";
47 parameter Real sN = 0.025 "Nominal slip";
48 final parameter SI.AngularVelocity wN = 2 * pi * fN / p * (1 - sN) "Nominal mechanical angular velocity";
49 final parameter SI.Torque MN = PmN / wN "Nominal torque";
50
51 parameter Real RperL(unit = "Ohm/m") = 0.20E-3 "Resistance of cable in a unit of length";
52 parameter Real XperL(unit = "Ohm/m") = 0.08E-3 "Reactance of cable in a unit of length";
53 parameter SI.Length L = 150 "Length of cable";
54 final parameter SI.Resistance RL = RperL * L "Resistance of cable";
55 final parameter SI.Reactance XL = XperL * L "Reactance of cable";
56 final parameter SI.Inductance LL = XL / omegaN "Inductance of cable";
57
58 parameter SI.ApparentPower Snetz = 100E6 "Short circuit gird power";
59 final parameter SI.Reactance Xnetz = U1N^2 / Snetz "Mains reactance";
60 final parameter SI.Inductance Lnetz = Xnetz / omegaN "Mains inductance";
61
62 parameter SI.Time tOn=1 "Start time of machine";
63 parameter SI.Torque tauLoad=-MN "Nominal load torque";
64 parameter SI.AngularVelocity w_Load(displayUnit="rev/min")=wN "Nominal load speed";
65 parameter SI.Inertia JLoad=0.5 "Load inertia";
66 // SI.Current I=currentRMSSensor.I "Transient RMS current";
67 SI.Current Iqs=currentRMSSensor.I "QS RMS current";
68 Modelica.Electrical.MultiPhase.Basic.Star starQS(m=3)
69 annotation (Placement(transformation(origin={-50,-90},
70 extent={{10,10},{-10,-10}},rotation=180)));
71 Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(transformation(
72 extent={{-10,10},{10,-10}},
73 rotation=270,
74 origin={-20,-90})));
75 Modelica.Electrical.MultiPhase.Sensors.PowerSensor powerSensor(m=3) annotation (Placement(transformation(extent={{-20,60},{0,80}})));
76 Modelica.Electrical.MultiPhase.Sensors.CurrentQuasiRMSSensor currentRMSSensor(m=3) annotation (Placement(transformation(extent={{10,80},{30,60}})));
77 Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch idealCloser(
78 final m=m,
79 Ron=fill(1e-5*m/3, m),
80 Goff=fill(1e-5*3/m, m)) annotation (Placement(transformation(
81 origin={-40,70},
82 extent={{10,10},{-10,-10}},
83 rotation=180)));
84 Modelica.Blocks.Sources.BooleanStep
85 booleanStepOn[m](each startTime=tOn, each startValue=false)
86 annotation (Placement(transformation(extent={{-80,80},{-60,100}})));
87 Modelica.Electrical.Analog.Basic.Ground groundMachine annotation (Placement(transformation(extent={{-10,-10},{10,10}}, origin={0,-28})));
88 Modelica.Electrical.MultiPhase.Basic.Star starMachine(m=3) annotation (Placement(transformation(
89 extent={{-10,10},{10,-10}},
90 rotation=270,
91 origin={0,22})));
92 Modelica.Electrical.Machines.BasicMachines.Transformers.Yy.Yy00 transformer(n=n12,
93 R1=R1,
94 T1Ref=343.15,
95 L1sigma=L1sigma,
96 R2=R2,
97 T2Ref=343.15,
98 L2sigma=L2sigma,
99 T1Operational=343.15,
100 T2Operational=343.15) annotation (Placement(transformation(
101 extent={{-10,-10},{10,10}},
102 rotation=90,
103 origin={-70,-10})));
104 Modelica.Electrical.MultiPhase.Basic.Inductor inductor(m=3, L=fill(LL, 3))
105 annotation (Placement(transformation(
106 extent={{-10,-10},{10,10}},
107 rotation=90,
108 origin={-70,60})));
109 Modelica.Electrical.MultiPhase.Basic.Resistor resistor(m=3, R=fill(RL, 3))
110 annotation (Placement(transformation(
111 extent={{-10,-10},{10,10}},
112 rotation=90,
113 origin={-70,30})));
114 Modelica.Electrical.MultiPhase.Basic.Inductor inductorGrid(m=3, L=fill(Lnetz, 3)) annotation (Placement(transformation(
115 extent={{-10,-10},{10,10}},
116 rotation=90,
117 origin={-70,-40})));
118 Modelica.Electrical.MultiPhase.Sensors.VoltageQuasiRMSSensor voltageTransformer(m=3) annotation (Placement(transformation(
119 extent={{-10,-10},{10,10}},
120 rotation=0,
121 origin={-40,10})));
122 Modelica.Electrical.MultiPhase.Basic.Delta deltaTransformer(m=3)
123 annotation (Placement(transformation(
124 extent={{-10,-10},{10,10}},
125 rotation=0,
126 origin={-40,40})));
127 Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage(
128 m=3,
129 V=fill(sqrt(2)*U1strN, 3),
130 freqHz=fill(fN, 3)) annotation (Placement(transformation(
131 extent={{-10,-10},{10,10}},
132 rotation=270,
133 origin={-70,-70})));
134 Modelica.Electrical.MultiPhase.Basic.Resistor resistor1(m=3, R=fill(0E-4, 3))
135 annotation (Placement(transformation(
136 extent={{-10,-10},{10,10}},
137 rotation=90,
138 origin={-100,-30})));
139 Modelica.Mechanics.Rotational.Components.Inertia loadInertiaQS(J=JLoad)
140 annotation (Placement(transformation(extent={{50,-90},{70,-70}})));
141 Modelica.Mechanics.Rotational.Sources.QuadraticSpeedDependentTorque
142 quadraticLoadTorqueQS(
143 w_nominal=w_Load,
144 tau_nominal=tauLoad,
145 TorqueDirection=false,
146 useSupport=false) annotation (Placement(transformation(extent={{100,-90},{80,-70}})));
147 Modelica.Magnetic.FundamentalWave.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage imc(
148 Jr=Jr,
149 p=p,
150 fsNominal=fN,
151 TsRef=378.15,
152 alpha20s(displayUnit="1/K"),
153 TrRef=378.15,
154 alpha20r(displayUnit="1/K"),
155 Rs=Rs,
156 Lssigma=Lssigma,
157 Lm=Lh,
158 Lrsigma=Lrsigma,
159 Rr=Rr,
160 m=3,
161 wMechanical(fixed=true),
162 TsOperational=378.15,
163 effectiveStatorTurns=1,
164 TrOperational=378.15) annotation (Placement(transformation(extent={{20,-90},{40,-70}})));
165 Modelica.Electrical.MultiPhase.Sensors.VoltageQuasiRMSSensor voltageMachine(m=3) annotation (Placement(transformation(
166 extent={{-10,-10},{10,10}},
167 rotation=0,
168 origin={60,10})));
169 Modelica.Electrical.MultiPhase.Basic.Delta deltaMachine annotation (Placement(transformation(
170 extent={{-10,-10},{10,10}},
171 rotation=0,
172 origin={60,40})));
173 Modelica.Electrical.Machines.Utilities.TerminalBox terminalBox(m=m,
174 terminalConnection="D") annotation (Placement(transformation(extent={{20,-64},
175 {40,-44}})));
176 Modelica.Electrical.MultiPhase.Basic.Resistor resistorDummy(m = 3) annotation(
177 Placement(visible = true, transformation(origin = {54, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
178 Modelica.Electrical.MultiPhase.Basic.Star starDummy annotation(
179 Placement(visible = true, transformation(origin = {80, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
180 Modelica.Electrical.Analog.Basic.Ground groundDummy annotation(
181 Placement(visible = true, transformation(origin = {100, -38}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
182initial equation
183 // Commenting transient case
184 // sum(imc.is) = 0;
185 // imc.is[1:2] = zeros(2);
186 // imc.rotorCage.electroMagneticConverter.V_m = Complex(0, 0);
187
188equation
189 connect(booleanStepOn.y, idealCloser.control) annotation (Line(points={{-59,90},{-40,90},{-40,82}}, color={255,0,255}));
190 connect(inductor.plug_n, idealCloser.plug_p) annotation (Line(points={{-70,70},{-50,70}}, color={0,0,255}));
191 connect(transformer.plug2, resistor.plug_p) annotation (Line(points={{-70,0},{-70,20}}, color={0,0,255}));
192 connect(resistor.plug_n, inductor.plug_p) annotation (Line(points={{-70,40},{-70,50}}, color={0,0,255}));
193 connect(voltageTransformer.plug_n, deltaTransformer.plug_n) annotation (Line(points={{-30,10},{-20,10},{-20,40},{-30,40}}, color={0,0,255}));
194 connect(deltaTransformer.plug_p, voltageTransformer.plug_p) annotation (Line(points={{-50,40},{-60,40},{-60,10},{-50,10}}, color={0,0,255}));
195 connect(voltageTransformer.plug_p, transformer.plug2) annotation (Line(points={{-50,10},{-70,10},{-70,0}}, color={0,0,255}));
196 connect(sineVoltage.plug_p, inductorGrid.plug_p) annotation (Line(points={{-70,-60},{-70,-50}}, color={0,0,255}));
197 connect(sineVoltage.plug_n, starQS.plug_p) annotation (Line(points={{-70,-80},{-70,-90},{-60,-90}}, color={0,0,255}));
198 connect(starQS.pin_n, ground.p) annotation (Line(points={{-40,-90},{-30,-90}}, color={0,0,255}));
199 connect(idealCloser.plug_n, powerSensor.pc) annotation (Line(points={{-30,70},{-20,70}}, color={0,0,255}));
200 connect(powerSensor.pc, powerSensor.pv) annotation (Line(points={{-20,70},{-20,80},{-10,80}}, color={0,0,255}));
201 connect(powerSensor.nc, currentRMSSensor.plug_p) annotation (Line(points={{0,70},{10,70}}, color={0,0,255}));
202 connect(powerSensor.nv, starMachine.plug_p) annotation (Line(points={{-10,60},{-10,40},{0,40},{0,32},{1.77636e-15,32}}, color={0,0,255}));
203 connect(starMachine.pin_n, groundMachine.p) annotation (Line(points={{-1.77636e-15,12},{-1.77636e-15,10},{0,10},{0,-18}}, color={0,0,255}));
204 connect(transformer.starpoint1, starQS.pin_n) annotation (Line(points={{-60,-15},{-40,-15},{-40,-90}}, color={0,0,255}));
205 connect(transformer.starpoint2, groundMachine.p) annotation (Line(points={{-60,-5},{0,-5},{0,-18}}, color={0,0,255}));
206 connect(inductorGrid.plug_n, resistor1.plug_p) annotation (Line(points={{-70,-30},{-86,-30},{-86,-40},{-100,-40}}, color={0,0,255}));
207 connect(resistor1.plug_n, transformer.plug1) annotation (Line(points={{-100,-20},{-70,-20}}, color={0,0,255}));
208 connect(imc.flange,loadInertiaQS. flange_a) annotation (Line(points={{40,-80},{50,-80}}, color={0,0,255}));
209 connect(loadInertiaQS.flange_b,quadraticLoadTorqueQS. flange) annotation (Line(points={{70,-80},{80,-80}},
210 color={0,0,255}));
211 connect(deltaMachine.plug_p,voltageMachine. plug_p) annotation (Line(points={{50,40},
212 {40,40},{40,10},{50,10}}, color={0,0,255}));
213 connect(deltaMachine.plug_n,voltageMachine. plug_n) annotation (Line(points={{70,40},
214 {80,40},{80,10},{70,10}}, color={0,0,255}));
215 connect(voltageMachine.plug_p, currentRMSSensor.plug_n) annotation (Line(points={{50,10},
216 {30,10},{30,70}}, color={0,0,255}));
217 connect(terminalBox.plug_sn, imc.plug_sn)
218 annotation (Line(points={{24,-60},{24,-70}}, color={0,0,255}));
219 connect(terminalBox.plug_sp, imc.plug_sp)
220 annotation (Line(points={{36,-60},{36,-70}}, color={0,0,255}));
221 connect(terminalBox.plugSupply, currentRMSSensor.plug_n)
222 annotation (Line(points={{30,-58},{30,70}}, color={0,0,255}));
223 connect(resistorDummy.plug_p, terminalBox.plugSupply) annotation(
224 Line(points = {{44, -28}, {30, -28}, {30, -58}, {30, -58}}, color = {0, 0, 255}));
225 connect(resistorDummy.plug_n, starDummy.plug_p) annotation(
226 Line(points = {{64, -28}, {70, -28}, {70, -28}, {70, -28}}, color = {0, 0, 255}));
227 connect(starDummy.pin_n, groundDummy.p) annotation(
228 Line(points = {{90, -28}, {100, -28}, {100, -28}, {100, -28}}, color = {0, 0, 255}));
229 annotation (Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Rectangle(origin = {77.28, -29.97}, fillColor = {255, 255, 127}, pattern = LinePattern.Dash, fillPattern = FillPattern.Solid, extent = {{-41.33, 18.03}, {41.33, -18.03}})}),
230 experiment(
231 StopTime=120,
232 Interval=0.0005,
233 Tolerance=1e-06),
234 Documentation(info="<html>
235
236<h4>Description</h4>
237
238<p>
239This example compares a time transient and a quasi static model of a multi phase induction machine.
240At start time <code>tOn</code> a transient and a quasi static multi phase voltage source are
241connected to an induction machine. The machines starts from standstill, accelerating inertias
242against load torque quadratic dependent on speed, finally reaching nominal speed.</p>
243
244<h4>Plot the following variable(s)</h4>
245
246<ul>
247<li><code>imc.tauElectrical</code>: transient torque</li>
248<li><code>imc.wMechanical</code>: transient speed</li>
249<li><code>imc.tauElectrical</code> against <code>imc.wMechanical</code>: transient torque speed characteristic</li>
250<li><code>imcQS.tauElectrical</code>: quasi static torque</li>
251<li><code>imcQS.wMechanical</code>: quasi static speed</li>
252<li><code>imcQS.tauElectrical</code> against <code>imcQS.wMechanical</code>: quasi static torque speed characteristic</li>
253<li><code>currentRMSsensor.I</code>: quasi RMS stator current of transient machine</li>
254<li><code>currentSensorQS.abs_i[1]</code>: RMS stator current of phase 1 of quasi static machine</li>
255<li><code>imc.stator.electroMagneticConverter.abs_Phi</code>: magnitude of stator flux of transient machine</li>
256<li><code>imcQS.stator.electroMagneticConverter.abs_Phi</code>: magnitude of stator flux of quasi static machine</li>
257</ul>
258</html>"),
259 uses(Modelica(version="3.2.3")));
260end IMCD2;