1 | within ;
|
---|
2 | package DC_Drive "Test library of controlled DCPM drives"
|
---|
3 | extends Modelica.Icons.Package;
|
---|
4 |
|
---|
5 | model DCPM_CurrentControlled "Current controlled DCPM drive"
|
---|
6 | extends Modelica.Icons.Example;
|
---|
7 | import Modelica.Constants.pi;
|
---|
8 | parameter DCPM_Utilities.DriveData driveData(redeclare
|
---|
9 | DC_Drive.DCPM_Utilities.M48V machineData)
|
---|
10 | annotation (Placement(transformation(extent={{60,60},{80,80}})));
|
---|
11 | DCPM_Utilities.DCPM dcpm(
|
---|
12 | machineData=driveData.machineData,
|
---|
13 | iA(fixed=true),
|
---|
14 | phi(fixed=true),
|
---|
15 | w(fixed=true))
|
---|
16 | annotation (Placement(transformation(extent={{20,-80},{40,-60}})));
|
---|
17 | Modelica.Electrical.Analog.Basic.Ground ground
|
---|
18 | annotation (Placement(
|
---|
19 | transformation(
|
---|
20 | extent={{-10,-10},{10,10}},
|
---|
21 | rotation=270,
|
---|
22 | origin={10,-50})));
|
---|
23 | Modelica.Blocks.Sources.Step iRef(
|
---|
24 | height=driveData.machineData.IANominal,
|
---|
25 | offset=0,
|
---|
26 | startTime=0.1)
|
---|
27 | annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
|
---|
28 | Modelica.Mechanics.Rotational.Components.Inertia inertiaLoad(
|
---|
29 | J=driveData.JL,
|
---|
30 | phi(fixed=false),
|
---|
31 | w(fixed=false))
|
---|
32 | annotation (Placement(transformation(extent={{50,-80},{70,-60}})));
|
---|
33 | Modelica.Mechanics.Rotational.Sources.LinearSpeedDependentTorque torqueLoad(
|
---|
34 | tau_nominal=-driveData.machineData.tauNominal,
|
---|
35 | TorqueDirection=false,
|
---|
36 | w_nominal=driveData.machineData.wNominal)
|
---|
37 | annotation (Placement(transformation(extent={{100,-80},{80,-60}})));
|
---|
38 | Modelica.Electrical.Analog.Sources.SignalVoltage voltageSource
|
---|
39 | annotation (Placement(transformation(extent={{40,-20},{20,0}})));
|
---|
40 | Modelica.Electrical.Analog.Sensors.CurrentSensor currentSensor
|
---|
41 | annotation (Placement(transformation(
|
---|
42 | extent={{-10,10},{10,-10}},
|
---|
43 | rotation=90,
|
---|
44 | origin={20,-30})));
|
---|
45 | Modelica.Blocks.Continuous.FirstOrder deadTime(
|
---|
46 | k=1,
|
---|
47 | T=driveData.Td,
|
---|
48 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
49 | y_start=0) annotation (Placement(transformation(
|
---|
50 | extent={{-10,-10},{10,10}},
|
---|
51 | rotation=270,
|
---|
52 | origin={30,20})));
|
---|
53 | Modelica.Electrical.Machines.Examples.ControlledDCDrives.Utilities.LimitedPI currentController(
|
---|
54 | k=driveData.controllerData.kpI,
|
---|
55 | Ti=driveData.controllerData.TiI,
|
---|
56 | useFF=true,
|
---|
57 | KFF=driveData.machineData.kPhi,
|
---|
58 | yMax=driveData.VBat,
|
---|
59 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
60 | x_start=0,
|
---|
61 | y_start=0) annotation (Placement(transformation(extent={{-10,30},{10,50}})));
|
---|
62 | equation
|
---|
63 | connect(dcpm.shaft, inertiaLoad.flange_a)
|
---|
64 | annotation (Line(points={{40,-70},{50,-70}}, color={0,0,0}));
|
---|
65 | connect(torqueLoad.flange, inertiaLoad.flange_b)
|
---|
66 | annotation (Line(points={{80,-70},{70,-70}}, color={0,0,0}));
|
---|
67 | connect(ground.p,dcpm. pin_n)
|
---|
68 | annotation (Line(points={{20,-50},{24,-50},{24,-60}}, color={0,0,255}));
|
---|
69 | connect(ground.p, currentSensor.p)
|
---|
70 | annotation (Line(points={{20,-50},{20,-40}}, color={0,0,255}));
|
---|
71 | connect(currentSensor.n,voltageSource. n)
|
---|
72 | annotation (Line(points={{20,-20},{20,-10}},
|
---|
73 | color={0,0,255}));
|
---|
74 | connect(voltageSource.p,dcpm. pin_p)
|
---|
75 | annotation (Line(points={{40,-10},{40,-50},{36,-50},{36,-60}},
|
---|
76 | color={0,0,255}));
|
---|
77 | connect(deadTime.y, voltageSource.v)
|
---|
78 | annotation (Line(points={{30,9},{30,2}}, color={0,0,127}));
|
---|
79 | connect(iRef.y, currentController.u)
|
---|
80 | annotation (Line(points={{-19,40},{-12,40}}, color={0,0,127}));
|
---|
81 | connect(currentSensor.i, currentController.u_m)
|
---|
82 | annotation (Line(points={{9,-30},{-6,-30},{-6,28}}, color={0,0,127}));
|
---|
83 | connect(dcpm.w, currentController.feedForward)
|
---|
84 | annotation (Line(points={{19,-70},{0,-70},{0,28}}, color={0,0,127}));
|
---|
85 | connect(currentController.y, deadTime.u)
|
---|
86 | annotation (Line(points={{11,40},{30,40},{30,32}}, color={0,0,127}));
|
---|
87 | annotation (experiment(
|
---|
88 | StopTime=1,
|
---|
89 | Interval=0.0001,
|
---|
90 | Tolerance=1e-06), Documentation(info="<html>
|
---|
91 | <p>
|
---|
92 | Simulates a current controlled DCPM machine. The load applies a linearly speed dependent torque, which in the end causes the drive to operate in nominal operation.
|
---|
93 | </p>
|
---|
94 | <p>
|
---|
95 | Additionally, the handling of parameter records can be tested:
|
---|
96 | By simply redeclaring the machine parameter record instantiated in the drive parameter record, a machine with different parameters can be simulated.
|
---|
97 | </p>
|
---|
98 | </html>"));
|
---|
99 | end DCPM_CurrentControlled;
|
---|
100 |
|
---|
101 | model DCPM_SpeedControlled "Current controlled DCPM drive"
|
---|
102 | extends Modelica.Icons.Example;
|
---|
103 | import Modelica.Constants.pi;
|
---|
104 | parameter DCPM_Utilities.DriveData driveData(redeclare
|
---|
105 | DC_Drive.DCPM_Utilities.M48V machineData)
|
---|
106 | annotation (Placement(transformation(extent={{60,60},{80,80}})));
|
---|
107 | DCPM_Utilities.DCPM dcpm(
|
---|
108 | machineData=driveData.machineData,
|
---|
109 | iA(fixed=true),
|
---|
110 | phi(fixed=true),
|
---|
111 | w(fixed=true))
|
---|
112 | annotation (Placement(transformation(extent={{20,-80},{40,-60}})));
|
---|
113 | Modelica.Electrical.Analog.Basic.Ground ground
|
---|
114 | annotation (Placement(
|
---|
115 | transformation(
|
---|
116 | extent={{-10,-10},{10,10}},
|
---|
117 | rotation=270,
|
---|
118 | origin={10,-50})));
|
---|
119 | Modelica.Blocks.Sources.Step wRef(
|
---|
120 | height=driveData.machineData.wNominal,
|
---|
121 | offset=0,
|
---|
122 | startTime=0.1)
|
---|
123 | annotation (Placement(transformation(extent={{-100,30},{-80,50}})));
|
---|
124 | Modelica.Mechanics.Rotational.Components.Inertia inertiaLoad(
|
---|
125 | J=driveData.JL,
|
---|
126 | phi(fixed=false),
|
---|
127 | w(fixed=false))
|
---|
128 | annotation (Placement(transformation(extent={{50,-80},{70,-60}})));
|
---|
129 | Modelica.Mechanics.Rotational.Sources.TorqueStep torqueLoad(
|
---|
130 | stepTorque=-driveData.machineData.tauNominal,
|
---|
131 | offsetTorque=0,
|
---|
132 | startTime=0.7)
|
---|
133 | annotation (Placement(transformation(extent={{100,-80},{80,-60}})));
|
---|
134 | Modelica.Electrical.Analog.Sources.SignalVoltage voltageSource
|
---|
135 | annotation (Placement(transformation(extent={{40,-20},{20,0}})));
|
---|
136 | Modelica.Electrical.Analog.Sensors.CurrentSensor currentSensor
|
---|
137 | annotation (Placement(transformation(
|
---|
138 | extent={{-10,10},{10,-10}},
|
---|
139 | rotation=90,
|
---|
140 | origin={20,-30})));
|
---|
141 | Modelica.Blocks.Continuous.FirstOrder deadTime(
|
---|
142 | k=1,
|
---|
143 | T=driveData.Td,
|
---|
144 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
145 | y_start=0) annotation (Placement(transformation(
|
---|
146 | extent={{-10,-10},{10,10}},
|
---|
147 | rotation=270,
|
---|
148 | origin={30,20})));
|
---|
149 | Modelica.Electrical.Machines.Examples.ControlledDCDrives.Utilities.LimitedPI currentController(
|
---|
150 | k=driveData.controllerData.kpI,
|
---|
151 | Ti=driveData.controllerData.TiI,
|
---|
152 | useFF=true,
|
---|
153 | KFF=driveData.machineData.kPhi,
|
---|
154 | yMax=driveData.VBat,
|
---|
155 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
156 | x_start=0,
|
---|
157 | y_start=0) annotation (Placement(transformation(extent={{-10,30},{10,50}})));
|
---|
158 | Modelica.Blocks.Continuous.FirstOrder preFilter(
|
---|
159 | k=1,
|
---|
160 | T=driveData.controllerData.Tiw,
|
---|
161 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
162 | y_start=0)
|
---|
163 | annotation (Placement(transformation(extent={{-70,30},{-50,50}})));
|
---|
164 | Modelica.Electrical.Machines.Examples.ControlledDCDrives.Utilities.LimitedPI
|
---|
165 | speedController(
|
---|
166 | k=driveData.controllerData.kpw/driveData.machineData.kPhi,
|
---|
167 | Ti=driveData.controllerData.Tiw,
|
---|
168 | useFF=false,
|
---|
169 | yMax=driveData.IMax,
|
---|
170 | initType=Modelica.Blocks.Types.Init.InitialOutput,
|
---|
171 | x_start=0,
|
---|
172 | y_start=0)
|
---|
173 | annotation (Placement(transformation(extent={{-40,30},{-20,50}})));
|
---|
174 | equation
|
---|
175 | connect(dcpm.shaft, inertiaLoad.flange_a)
|
---|
176 | annotation (Line(points={{40,-70},{50,-70}}, color={0,0,0}));
|
---|
177 | connect(torqueLoad.flange, inertiaLoad.flange_b)
|
---|
178 | annotation (Line(points={{80,-70},{70,-70}}, color={0,0,0}));
|
---|
179 | connect(ground.p,dcpm. pin_n)
|
---|
180 | annotation (Line(points={{20,-50},{24,-50},{24,-60}}, color={0,0,255}));
|
---|
181 | connect(ground.p, currentSensor.p)
|
---|
182 | annotation (Line(points={{20,-50},{20,-40}}, color={0,0,255}));
|
---|
183 | connect(currentSensor.n,voltageSource. n)
|
---|
184 | annotation (Line(points={{20,-20},{20,-10}},
|
---|
185 | color={0,0,255}));
|
---|
186 | connect(voltageSource.p,dcpm. pin_p)
|
---|
187 | annotation (Line(points={{40,-10},{40,-50},{36,-50},{36,-60}},
|
---|
188 | color={0,0,255}));
|
---|
189 | connect(deadTime.y, voltageSource.v)
|
---|
190 | annotation (Line(points={{30,9},{30,2}}, color={0,0,127}));
|
---|
191 | connect(currentSensor.i, currentController.u_m)
|
---|
192 | annotation (Line(points={{9,-30},{-6,-30},{-6,28}}, color={0,0,127}));
|
---|
193 | connect(dcpm.w, currentController.feedForward)
|
---|
194 | annotation (Line(points={{19,-70},{0,-70},{0,28}}, color={0,0,127}));
|
---|
195 | connect(wRef.y, preFilter.u)
|
---|
196 | annotation (Line(points={{-79,40},{-72,40}}, color={0,0,127}));
|
---|
197 | connect(currentController.y, deadTime.u)
|
---|
198 | annotation (Line(points={{11,40},{30,40},{30,32}}, color={0,0,127}));
|
---|
199 | connect(preFilter.y, speedController.u)
|
---|
200 | annotation (Line(points={{-49,40},{-42,40}}, color={0,0,127}));
|
---|
201 | connect(speedController.y, currentController.u)
|
---|
202 | annotation (Line(points={{-19,40},{-12,40}}, color={0,0,127}));
|
---|
203 | connect(dcpm.w, speedController.u_m) annotation (Line(points={{19,-70},{
|
---|
204 | -36,-70},{-36,28}}, color={0,0,127}));
|
---|
205 | annotation (experiment(
|
---|
206 | StopTime=1,
|
---|
207 | Interval=0.0001,
|
---|
208 | Tolerance=1e-06), Documentation(info="<html>
|
---|
209 | <p>
|
---|
210 | Simulates a speed controlled DCPM machine. The load applies a torque step, which in the end causes the drive to operate in nominal operation.
|
---|
211 | </p>
|
---|
212 | <p>
|
---|
213 | Additionally, the handling of parameter records can be tested:
|
---|
214 | By simply redeclaring the machine parameter record instantiated in the drive parameter record, a machine with different parameters can be simulated.
|
---|
215 | </p>
|
---|
216 | </html>"));
|
---|
217 | end DCPM_SpeedControlled;
|
---|
218 |
|
---|
219 | package DCPM_Utilities "Utilities for DC_Drives"
|
---|
220 | extends Modelica.Icons.UtilitiesPackage;
|
---|
221 | model DCPM "Simple DC PM model"
|
---|
222 | extends Modelica.Electrical.Machines.Icons.Machine;
|
---|
223 | parameter MachineData machineData
|
---|
224 | annotation (Placement(transformation(extent={{60,40},{80,60}})));
|
---|
225 | output Modelica.SIunits.Current iA(start=0)=resistor.i "Armature current";
|
---|
226 | output Modelica.SIunits.Angle phi(start=0)=shaft.phi "Shaft angle";
|
---|
227 | Modelica.Blocks.Interfaces.RealOutput w(start=0, unit="rad/s", displayUnit="1/min")
|
---|
228 | annotation (Placement(transformation(
|
---|
229 | extent={{-10,-10},{10,10}},
|
---|
230 | rotation=180,
|
---|
231 | origin={-110,0})));
|
---|
232 | Modelica.Electrical.Analog.Interfaces.PositivePin pin_p "Positive armature pin"
|
---|
233 | annotation (Placement(transformation(extent={{50,90},{70,110}})));
|
---|
234 | Modelica.Electrical.Analog.Interfaces.NegativePin pin_n "Negative armature pin"
|
---|
235 | annotation (Placement(transformation(extent={{-70,90},{-50,110}})));
|
---|
236 | Modelica.Mechanics.Rotational.Interfaces.Flange_a shaft "Shaft"
|
---|
237 | annotation (Placement(transformation(extent={{90,-10},{110,10}})));
|
---|
238 | Modelica.Electrical.Analog.Basic.Resistor resistor(R=machineData.RA,
|
---|
239 | T_ref=293.15)
|
---|
240 | annotation (Placement(transformation(extent={{-10,-10},{10,10}},
|
---|
241 | rotation=270,
|
---|
242 | origin={0,60})));
|
---|
243 | Modelica.Electrical.Analog.Basic.Inductor inductor(L=machineData.LA)
|
---|
244 | annotation (Placement(transformation(extent={{-10,-10},{10,10}},
|
---|
245 | rotation=270,
|
---|
246 | origin={0,30})));
|
---|
247 | Modelica.Electrical.Analog.Basic.EMF emf(k=machineData.kPhi)
|
---|
248 | annotation (Placement(
|
---|
249 | transformation(
|
---|
250 | extent={{-10,-10},{10,10}},
|
---|
251 | rotation=0,
|
---|
252 | origin={0,0})));
|
---|
253 | Modelica.Mechanics.Rotational.Components.Inertia inertia(J=machineData.J)
|
---|
254 | annotation (Placement(transformation(extent={{40,-10},{60,10}})));
|
---|
255 | Modelica.Mechanics.Rotational.Sensors.SpeedSensor speedSensor
|
---|
256 | annotation (Placement(transformation(
|
---|
257 | extent={{-10,-10},{10,10}},
|
---|
258 | rotation=270,
|
---|
259 | origin={80,-30})));
|
---|
260 | equation
|
---|
261 | connect(resistor.n, inductor.p)
|
---|
262 | annotation (Line(points={{-1.77636e-15,50},{0,50},{0,40},{0,40}},color={0,0,255}));
|
---|
263 | connect(inductor.n, emf.p)
|
---|
264 | annotation (Line(points={{-1.77636e-15,20},{0,20},{0,10}},color={0,0,255}));
|
---|
265 | connect(emf.flange, inertia.flange_a)
|
---|
266 | annotation (Line(points={{10,0},{40,0}}, color={0,0,0}));
|
---|
267 | connect(resistor.p, pin_p)
|
---|
268 | annotation (Line(points={{0,70},{0,80},{60,80},{60,100}}, color={0,0,255}));
|
---|
269 | connect(emf.n, pin_n)
|
---|
270 | annotation (Line(points={{0,-10},{0,-20},{-60,-20},{-60,100}}, color={0,0,255}));
|
---|
271 | connect(inertia.flange_b, shaft)
|
---|
272 | annotation (Line(points={{60,0},{100,0}}, color={0,0,0}));
|
---|
273 | connect(inertia.flange_b, speedSensor.flange)
|
---|
274 | annotation (Line(points={{60,0},{80,0},{80,-20}}, color={0,0,0}));
|
---|
275 | connect(speedSensor.w, w)
|
---|
276 | annotation (Line(points={{80,-41},{80,-60},{-80,-60}, {-80,0},{-110,0}}, color={0,0,127}));
|
---|
277 | annotation (
|
---|
278 | Icon(graphics={Text(
|
---|
279 | extent={{-100,-100},{100,-140}},
|
---|
280 | lineColor={28,108,200},
|
---|
281 | textString="%name")}), Documentation(info="<html>
|
---|
282 | <p>
|
---|
283 | Simple model of a DC PM machine, comprising armature resistance, armature inductance, emf (including torque generation), inertia and pseed measurement.
|
---|
284 | </p>
|
---|
285 | </html>"));
|
---|
286 | end DCPM;
|
---|
287 |
|
---|
288 | record DriveData "Parameters of the whole drive"
|
---|
289 | extends Modelica.Icons.Record;
|
---|
290 | import Modelica.Constants.pi;
|
---|
291 | replaceable parameter DC_Drive.DCPM_Utilities.MachineData machineData
|
---|
292 | annotation (choicesAllMatching=true, Placement(transformation(extent={{-10,40},
|
---|
293 | {10,60}})));
|
---|
294 |
|
---|
295 | parameter ControllerData controllerData(
|
---|
296 | kpI=machineData.LA/(2*Td),
|
---|
297 | TiI=machineData.LA/machineData.RA,
|
---|
298 | Tsub=2*Td,
|
---|
299 | kpw=(machineData.J + JL)/(2*controllerData.Tsub),
|
---|
300 | Tiw=4*controllerData.Tsub)
|
---|
301 | annotation (Placement(transformation(extent={{-10,0},{10,20}})));
|
---|
302 | parameter Modelica.SIunits.Inertia JL=machineData.J "Load inertia";
|
---|
303 | parameter Modelica.SIunits.Voltage VBat=1.2*machineData.VANominal "Battery voltage";
|
---|
304 | parameter Modelica.SIunits.Current IMax=1.5*machineData.IANominal "Max. armature current";
|
---|
305 | parameter Modelica.SIunits.Frequency fSwitch=1e3 "Switching frequency";
|
---|
306 | parameter Modelica.SIunits.Time Td=0.5/fSwitch "Dead time of inverter"
|
---|
307 | annotation(Dialog(enable=false));
|
---|
308 | annotation(defaultComponentPrefixes="parameter", defaultComponentName="driveData",
|
---|
309 | Documentation(info="<html>
|
---|
310 | <p>
|
---|
311 | The drive parameter record contains the machine parameter record, additional parameters and fills the controller parameter record.
|
---|
312 | Simulating another machine (with different parameters), the machine parameter record can be redeclared.
|
---|
313 | </p>
|
---|
314 | </html>"));
|
---|
315 | end DriveData;
|
---|
316 |
|
---|
317 | record ControllerData "Controller parameters"
|
---|
318 | extends Modelica.Icons.Record;
|
---|
319 | parameter Real kpI "Proportional gain of current controller";
|
---|
320 | parameter Modelica.SIunits.Time TiI "Integral time constant of current controller";
|
---|
321 | parameter Modelica.SIunits.Time Tsub "Substitute time constant";
|
---|
322 | parameter Real kpw "Porportional gain of speed controller";
|
---|
323 | parameter Modelica.SIunits.Time Tiw "Integral time constant of speed controller";
|
---|
324 | annotation(defaultComponentPrefixes="parameter", defaultComponentName="controllerData",
|
---|
325 | Documentation(info="<html>
|
---|
326 | <p>
|
---|
327 | The controller parameter record is used in the drive parameters record, and filled in that record (based on the machine parameters).
|
---|
328 | </p>
|
---|
329 | </html>"));
|
---|
330 | end ControllerData;
|
---|
331 |
|
---|
332 | record MachineData "Standard machine parameters"
|
---|
333 | extends Modelica.Icons.Record;
|
---|
334 | import Modelica.Constants.pi;
|
---|
335 | parameter Modelica.SIunits.Voltage VANominal=100 "Nominal armature voltage";
|
---|
336 | parameter Modelica.SIunits.Current IANominal=100 "Nominal armature current";
|
---|
337 | parameter Modelica.SIunits.AngularVelocity wNominal=1425*pi/30 "Nominal speed";
|
---|
338 | parameter Modelica.SIunits.Resistance RA=0.05 "Armature resistance";
|
---|
339 | parameter Modelica.SIunits.Inductance LA=0.0015 "Armature inductance";
|
---|
340 | parameter Modelica.SIunits.Voltage ViNominal=VANominal - RA*IANominal "Nominal induced voltage"
|
---|
341 | annotation(Dialog(enable=false));
|
---|
342 | parameter Modelica.SIunits.ElectricalTorqueConstant kPhi=ViNominal/wNominal "Flux constant";
|
---|
343 | parameter Modelica.SIunits.Inertia J=0.29 "Rotor inertia";
|
---|
344 | parameter Modelica.SIunits.Torque tauNominal=kPhi*IANominal "Nominal torque"
|
---|
345 | annotation(Dialog(enable=false));
|
---|
346 | annotation(defaultComponentPrefixes="parameter", defaultComponentName="machineData",
|
---|
347 | Documentation(info="<html>
|
---|
348 | <p>
|
---|
349 | The machine parameter record contains all necessary parameters of a DC PM machine.
|
---|
350 | It is used to parameterize the DCPM model, and it is used in the drive parameter record.
|
---|
351 | Extending from this record, the parameters of other machines (with different parameters) can be saved.
|
---|
352 | </p>
|
---|
353 | </html>"));
|
---|
354 | end MachineData;
|
---|
355 |
|
---|
356 | record M48V "Real machine 48 V"
|
---|
357 | import Modelica.Constants.pi;
|
---|
358 | extends DC_Drive.DCPM_Utilities.MachineData(
|
---|
359 | VANominal=48,
|
---|
360 | IANominal=25,
|
---|
361 | wNominal=3500*pi/30,
|
---|
362 | RA=0.24,
|
---|
363 | LA=0.004,
|
---|
364 | J=0.0008);
|
---|
365 | annotation(defaultComponentPrefixes="parameter", defaultComponentName="machineData",
|
---|
366 | Documentation(info="<html>
|
---|
367 | <p>
|
---|
368 | Machine parameters of a real 48 W / 1 kW DCPM machine.
|
---|
369 | </p>
|
---|
370 | </html>"));
|
---|
371 | end M48V;
|
---|
372 | end DCPM_Utilities;
|
---|
373 | annotation (uses(Modelica(version="3.2.3")));
|
---|
374 | end DC_Drive;
|
---|