| 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;
|
|---|