1 | within ;
|
---|
2 | model 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)));
|
---|
182 | initial 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 |
|
---|
188 | equation
|
---|
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>
|
---|
239 | This example compares a time transient and a quasi static model of a multi phase induction machine.
|
---|
240 | At start time <code>tOn</code> a transient and a quasi static multi phase voltage source are
|
---|
241 | connected to an induction machine. The machines starts from standstill, accelerating inertias
|
---|
242 | against 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")));
|
---|
260 | end IMCD2;
|
---|