Ticket #5574: IMC_DCBraking.mo

File IMC_DCBraking.mo, 10.2 KB (added by ahaumer@…, 5 years ago)
Line 
1within ;
2package IMC_DCBraking
3 extends Modelica.Icons.ExamplesPackage;
4
5 partial model DCBraking_Template
6 "Induction machine with DC current braking"
7 extends Modelica.Icons.Example;
8 import Modelica.Constants.pi;
9 constant Integer m=3 "Number of phases";
10 parameter Modelica.SIunits.Current INominal=100 "Nominal RMS current per phase";
11 parameter Modelica.SIunits.Current Idc "DC braking current";
12 parameter Modelica.SIunits.Current is[3] "Phase currents";
13 parameter Modelica.SIunits.AngularVelocity w0(displayUnit="rev/min")=
14 2*pi*imcData.fsNominal/imcData.p "Initial mehcanical speed";
15 parameter Modelica.SIunits.Inertia JLoad=4*imcData.Jr
16 "Load's moment of inertia";
17 Modelica.SIunits.Torque tauElectrical=imc.tauElectrical "Electrical torque";
18 Modelica.SIunits.Torque tauShaft=imc.tauShaft "Shaft torque";
19 Modelica.SIunits.AngularVelocity wMechanical(displayUnit="rev/min") = imc.wMechanical
20 "Shaft speed";
21 parameter
22 Modelica.Electrical.Machines.Utilities.ParameterRecords.AIM_SquirrelCageData
23 imcData annotation (Placement(transformation(extent={{20,-40},{40,-20}})));
24 Modelica.Electrical.Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage
25 imc(
26 p=imcData.p,
27 fsNominal=imcData.fsNominal,
28 Rs=imcData.Rs,
29 TsRef=imcData.TsRef,
30 alpha20s(displayUnit="1/K") = imcData.alpha20s,
31 Lssigma=imcData.Lssigma,
32 Jr=imcData.Jr,
33 Js=imcData.Js,
34 Lszero=imcData.Lszero,
35 frictionParameters=imcData.frictionParameters,
36 phiMechanical(fixed=true, start=0),
37 wMechanical(fixed=true, start=w0),
38 statorCoreParameters=imcData.statorCoreParameters,
39 strayLoadParameters=imcData.strayLoadParameters,
40 Lm=imcData.Lm,
41 Lrsigma=imcData.Lrsigma,
42 Rr=imcData.Rr,
43 TrRef=imcData.TrRef,
44 TsOperational=293.15,
45 alpha20r=imcData.alpha20r,
46 TrOperational=293.15)
47 annotation (Placement(transformation(extent={{20,-10},{40,10}})));
48 Modelica.Mechanics.Rotational.Components.Inertia loadInertia(J=JLoad)
49 annotation (Placement(transformation(extent={{50,-10},{70,10}})));
50 Modelica.Electrical.Machines.Utilities.TerminalBox
51 terminalBox(m=m)
52 annotation (Placement(transformation(extent={{20,6},{40,26}})));
53 Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin1(m=m, k=1)
54 annotation (Placement(transformation(extent={{-20,70},{-40,90}})));
55 Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin2(m=m, k=2)
56 annotation (Placement(transformation(extent={{-20,30},{-40,50}})));
57 Modelica.Electrical.Analog.Sources.ConstantCurrent
58 constantCurrent(I=Idc)
59 annotation (Placement(transformation(
60 extent={{-10,-10},{10,10}},
61 rotation=90,
62 origin={-50,62})));
63 Modelica.Electrical.Analog.Basic.Ground ground
64 annotation (Placement(transformation(extent={{-70,20},{-50,40}})));
65 initial equation
66 der(imc.idq_rs[1])=0;
67 der(imc.idq_rs[2])=0;
68 equation
69 connect(imc.flange, loadInertia.flange_a)
70 annotation (Line(points={{40,0},{50,0}}, color={0,0,0}));
71 connect(plugToPin1.pin_p, constantCurrent.n)
72 annotation (Line(points={{-32,80},{-50,80},{-50,72}}, color={0,0,255}));
73 connect(plugToPin2.pin_p, constantCurrent.p)
74 annotation (Line(points={{-32,40},{-50,40},{-50,52}}, color={0,0,255}));
75 connect(plugToPin2.plug_p, plugToPin1.plug_p) annotation (Line(points={{-28,40},
76 {-20,40},{-20,80},{-28,80}}, color={0,0,255}));
77 connect(terminalBox.plug_sn, imc.plug_sn)
78 annotation (Line(points={{24,10},{24,10}}, color={0,0,255}));
79 connect(terminalBox.plug_sp, imc.plug_sp)
80 annotation (Line(points={{36,10},{36,10}}, color={0,0,255}));
81 connect(plugToPin2.plug_p, terminalBox.plugSupply)
82 annotation (Line(points={{-28,40},{30,40},{30,12}}, color={0,0,255}));
83 connect(plugToPin2.pin_p, ground.p)
84 annotation (Line(points={{-32,40},{-60,40}}, color={0,0,255}));
85 annotation (experiment(
86 StopTime=25,
87 Interval=0.001,
88 Tolerance=1e-06,
89 __Dymola_Algorithm="Dassl"), Documentation(info="<html>
90<p>
91The stator windings of an induction machine are fed by a DC current, causing a stationary current space phasor.
92Since the rotor is turning, voltage is induced in the rotor cage which in turn drives rotor currents.
93This creates a braking torque.
94</p>
95<p>
96Choose a layout and plot tauElectrical and tauShaft versus wMechanical.
97</p>
98<p>Default machine parameters are used.</p>
99<h4>References</h4>
100<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
101 <tr>
102 <td>[Fischer2017]</td>
103 <td>R. Fischer,
104 Elektrische Maschinen, 17<sup>th</sup> ed., chapter 5.3.3.,
105 <em>Hanser</em>,
106 ISBN 978-3-446-45218-3, 2017.</td>
107 </tr>
108</html>"));
109 end DCBraking_Template;
110
111 model DCBraking_Y3 "Induction machine with DC current braking"
112 extends DCBraking_Template(
113 terminalBox(terminalConnection="Y"),
114 Idc=INominal*sqrt(2),
115 is=Idc*{1,-1/2,-1/2});
116 Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin3(m=m, k=3)
117 annotation (Placement(transformation(extent={{-20,-10},{-40,10}})));
118 initial equation
119 imc.is[2]=is[2];
120 equation
121 connect(plugToPin2.plug_p, plugToPin3.plug_p) annotation (Line(points={{-28,40},
122 {-20,40},{-20,0},{-28,0}}, color={0,0,255}));
123 connect(constantCurrent.p, plugToPin3.pin_p)
124 annotation (Line(points={{-50,52},{-50,0},{-32,0}}, color={0,0,255}));
125 annotation (experiment(
126 StopTime=25,
127 Interval=0.001,
128 Tolerance=1e-06,
129 __Dymola_Algorithm="Dassl"), Documentation(info="<html>
130<p>
131The stator windings of an induction machine are fed by a DC current, causing a stationary current space phasor.
132Since the rotor is turning, voltage is induced in the rotor cage which in turn drives rotor currents.
133This creates a braking torque.
134</p>
135<p>
136Choose a layout and plot tauElectrical and tauShaft versus wMechanical.
137</p>
138<p>Default machine parameters are used.</p>
139<h4>References</h4>
140<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
141 <tr>
142 <td>[Fischer2017]</td>
143 <td>R. Fischer,
144 Elektrische Maschinen, 17<sup>th</sup> ed., chapter 5.3.3.,
145 <em>Hanser</em>,
146 ISBN 978-3-446-45218-3, 2017.</td>
147 </tr>
148</html>"));
149 end DCBraking_Y3;
150
151 model DCBraking_Y2 "Induction machine with DC current braking"
152 extends DCBraking_Template(
153 terminalBox(terminalConnection="Y"),
154 Idc=INominal*sqrt(3/2),
155 is=Idc*{1,-1,0});
156 initial equation
157 annotation (experiment(
158 StopTime=25,
159 Interval=0.001,
160 Tolerance=1e-06,
161 __Dymola_Algorithm="Dassl"), Documentation(info="<html>
162<p>
163The stator windings of an induction machine are fed by a DC current, causing a stationary current space phasor.
164Since the rotor is turning, voltage is induced in the rotor cage which in turn drives rotor currents.
165This creates a braking torque.
166</p>
167<p>
168Choose a layout and plot tauElectrical and tauShaft versus wMechanical.
169</p>
170<p>Default machine parameters are used.</p>
171<h4>References</h4>
172<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
173 <tr>
174 <td>[Fischer2017]</td>
175 <td>R. Fischer,
176 Elektrische Maschinen, 17<sup>th</sup> ed., chapter 5.3.3.,
177 <em>Hanser</em>,
178 ISBN 978-3-446-45218-3, 2017.</td>
179 </tr>
180</html>"));
181 end DCBraking_Y2;
182
183 model DCBraking_D2 "Induction machine with DC current braking"
184 extends DCBraking_Template(
185 terminalBox(terminalConnection="D"),
186 Idc=INominal*3/sqrt(2),
187 is=Idc*{2/3,-1/3,-1/3});
188 initial equation
189 imc.is[2]=is[2];
190 annotation (experiment(
191 StopTime=25,
192 Interval=0.001,
193 Tolerance=1e-06,
194 __Dymola_Algorithm="Dassl"), Documentation(info="<html>
195<p>
196The stator windings of an induction machine are fed by a DC current, causing a stationary current space phasor.
197Since the rotor is turning, voltage is induced in the rotor cage which in turn drives rotor currents.
198This creates a braking torque.
199</p>
200<p>
201Choose a layout and plot tauElectrical and tauShaft versus wMechanical.
202</p>
203<p>Default machine parameters are used.</p>
204<h4>References</h4>
205<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
206 <tr>
207 <td>[Fischer2017]</td>
208 <td>R. Fischer,
209 Elektrische Maschinen, 17<sup>th</sup> ed., chapter 5.3.3.,
210 <em>Hanser</em>,
211 ISBN 978-3-446-45218-3, 2017.</td>
212 </tr>
213</html>"));
214 end DCBraking_D2;
215
216 model DCBraking_D3 "Induction machine with DC current braking"
217 extends DCBraking_Template(
218 terminalBox(terminalConnection="D"),
219 Idc=INominal*sqrt(6),
220 is=Idc*{1/2,-1/2,0});
221 Modelica.Electrical.MultiPhase.Basic.PlugToPin_p plugToPin3(m=m, k=3)
222 annotation (Placement(transformation(extent={{-20,-10},{-40,10}})));
223 initial equation
224 der(imc.idq_ss[1])=0;
225 der(imc.idq_ss[2])=0;
226 equation
227 connect(plugToPin2.plug_p, plugToPin3.plug_p) annotation (Line(points={{-28,40},
228 {-20,40},{-20,0},{-28,0}}, color={0,0,255}));
229 connect(constantCurrent.p, plugToPin3.pin_p)
230 annotation (Line(points={{-50,52},{-50,0},{-32,0}}, color={0,0,255}));
231 annotation (experiment(
232 StopTime=25,
233 Interval=0.001,
234 Tolerance=1e-06,
235 __Dymola_Algorithm="Dassl"), Documentation(info="<html>
236<p>
237The stator windings of an induction machine are fed by a DC current, causing a stationary current space phasor.
238Since the rotor is turning, voltage is induced in the rotor cage which in turn drives rotor currents.
239This creates a braking torque.
240</p>
241<p>
242Choose a layout and plot tauElectrical and tauShaft versus wMechanical.
243</p>
244<p>Default machine parameters are used.</p>
245<h4>References</h4>
246<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
247 <tr>
248 <td>[Fischer2017]</td>
249 <td>R. Fischer,
250 Elektrische Maschinen, 17<sup>th</sup> ed., chapter 5.3.3.,
251 <em>Hanser</em>,
252 ISBN 978-3-446-45218-3, 2017.</td>
253 </tr>
254</html>"));
255 end DCBraking_D3;
256 annotation (uses(Modelica(version="3.2.3")));
257end IMC_DCBraking;