Ticket #5452: TestIndexReduction2.mo

File TestIndexReduction2.mo, 8.3 KB (added by Francesco Casella, 5 years ago)
Line 
1within ;
2model TestIndexReduction2
3 "Test example: AsynchronousInductionMachineSquirrelCage inverter drive"
4 extends Modelica.Icons.Example;
5 import Modelica.Constants.pi;
6 import Modelica.Electrical.MultiPhase.Functions.factorY2DC;
7 constant Integer m=3 "Number of phases";
8 parameter Modelica.SIunits.Voltage VNominal=400
9 "Nominal RMS voltage per phase";
10 parameter Modelica.SIunits.Frequency fNominal=50 "Nominal frequency";
11 parameter Modelica.SIunits.Resistance RGrid=10e-3 "Grid choke resistance";
12 parameter Modelica.SIunits.Inductance LGrid=500e-6 "Grid choke inductance";
13 parameter Modelica.SIunits.Voltage VDC=factorY2DC(m)*VNominal/sqrt(3) "Theoretical DC voltage";
14 parameter Modelica.SIunits.Capacitance CDC=5e-3 "DC capacitor";
15 parameter Modelica.SIunits.Torque TLoad=161.4 "Nominal load torque";
16 parameter Modelica.SIunits.AngularVelocity wLoad=1440.45*2*pi/60 "Nominal load speed";
17 parameter Modelica.SIunits.Inertia JLoad=0.29 "Load's moment of inertia";
18 Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage(
19 final m=m,
20 final phase=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(
21 m),
22 final freqHz=fill(fNominal, m),
23 final offset=zeros(m),
24 final startTime=zeros(m),
25 final V=fill(VNominal*sqrt(2/3), m)) annotation (Placement(transformation(
26 extent={{-10,-10},{10,10}},
27 rotation=270,
28 origin={-80,-30})));
29 Modelica.Electrical.MultiPhase.Basic.Star star(m=m) annotation (Placement(
30 transformation(
31 extent={{-10,-10},{10,10}},
32 rotation=270,
33 origin={-80,-60})));
34 Modelica.Electrical.Analog.Basic.Ground ground annotation (Placement(
35 transformation(origin={-80,-90}, extent={{-10,-10},{10,10}})));
36 Modelica.Electrical.Machines.Sensors.CurrentQuasiRMSSensor gridCurrent
37 annotation (Placement(transformation(
38 extent={{-10,10},{10,-10}},
39 rotation=270,
40 origin={-80,0})));
41 Modelica.Electrical.MultiPhase.Basic.Resistor resistor(
42 final m=m,
43 final R=fill(RGrid, m),
44 final T_ref=fill(20, m),
45 final alpha=zeros(m),
46 final T=fill(20, m)) annotation (Placement(transformation(
47 extent={{-10,-10},{10,10}},
48 rotation=90,
49 origin={-80,30})));
50 Modelica.Electrical.MultiPhase.Basic.Inductor inductor(m=m, final L=fill(
51 LGrid, m)) annotation (Placement(transformation(
52 extent={{-10,-10},{10,10}},
53 rotation=90,
54 origin={-80,60})));
55
56 Modelica.Electrical.PowerConverters.ACDC.DiodeBridge2mPulse rectifier
57 annotation (Placement(transformation(extent={{-68,60},{-48,80}})));
58 Modelica.Electrical.Analog.Basic.Capacitor capacitor(v(fixed=true, start=VDC),
59 C=CDC) annotation (Placement(transformation(
60 extent={{-10,-10},{10,10}},
61 rotation=270,
62 origin={-30,70})));
63 Modelica.Electrical.PowerConverters.DCAC.MultiPhase2Level inverter
64 annotation (Placement(transformation(extent={{-10,-10},{10,10}}, origin={0,
65 70})));
66 Modelica.Blocks.Sources.Ramp ramp(height=fNominal,
67 startTime=0,
68 duration=1.2)
69 annotation (
70 Placement(transformation(extent={{-10,-10},{10,10}},
71 origin={-20,-50})));
72 Modelica.Electrical.Machines.Utilities.VfController vfController(
73 final m=m,
74 VNominal=VNominal,
75 fNominal=fNominal,
76 EconomyMode=true) annotation (Placement(transformation(
77 extent={{-10,-10},{10,10}},
78 rotation=90,
79 origin={0,-20})));
80
81 Modelica.Electrical.Machines.SpacePhasors.Blocks.ToSpacePhasor toSpacePhasor
82 annotation (Placement(transformation(
83 extent={{-10,-10},{10,10}},
84 rotation=90,
85 origin={0,10})));
86 Modelica.Electrical.PowerConverters.DCAC.Control.PWM pwm(uMax=VDC, f=2000)
87 annotation (Placement(transformation(
88 extent={{-10,-10},{10,10}},
89 rotation=90,
90 origin={0,40})));
91 Modelica.Electrical.MultiPhase.Basic.Resistor resistor1(
92 final m=m,
93 final R=fill(RGrid, m),
94 final T_ref=fill(20, m),
95 final alpha=zeros(m),
96 final T=fill(20, m)) annotation (Placement(transformation(
97 extent={{-10,-10},{10,10}},
98 rotation=90,
99 origin={48,48})));
100 Modelica.Electrical.MultiPhase.Basic.Star star1(m=m)
101 annotation (Placement(
102 transformation(
103 extent={{-10,-10},{10,10}},
104 rotation=270,
105 origin={48,18})));
106 Modelica.Electrical.Analog.Basic.Inductor inductor1(L=0.001) annotation (
107 Placement(transformation(
108 extent={{-10,-10},{10,10}},
109 rotation=-90,
110 origin={48,-20})));
111 Modelica.Electrical.Analog.Basic.Ground ground1
112 annotation (Placement(
113 transformation(origin={48,-48}, extent={{-10,-10},{10,10}})));
114equation
115 connect(vfController.u, ramp.y)
116 annotation (Line(points={{0,-32},{0,-50},{-9,-50}},
117 color={0,0,127}));
118 connect(toSpacePhasor.u, vfController.y)
119 annotation (Line(points={{0,-2},{0,-9}}, color={0,0,127}));
120 connect(pwm.u, toSpacePhasor.y)
121 annotation (Line(points={{0,28},{0,21}}, color={0,0,127}));
122 connect(inverter.fire_p, pwm.fire_p)
123 annotation (Line(points={{-6,58},{-6,51}}, color={255,0,255}));
124 connect(inverter.fire_n, pwm.fire_n)
125 annotation (Line(points={{6,58},{6,51}}, color={255,0,255}));
126 connect(capacitor.p, inverter.dc_p) annotation (Line(points={{-30,80},{-20,80},
127 {-20,76},{-10,76}}, color={0,0,255}));
128 connect(capacitor.n, inverter.dc_n) annotation (Line(points={{-30,60},{-20,60},
129 {-20,64},{-10,64}}, color={0,0,255}));
130 connect(rectifier.dc_p, capacitor.p) annotation (Line(points={{-48,76},{-40,76},
131 {-40,80},{-30,80}}, color={0,0,255}));
132 connect(rectifier.dc_n, capacitor.n) annotation (Line(points={{-48,64},{-40,64},
133 {-40,60},{-30,60}}, color={0,0,255}));
134 connect(sineVoltage.plug_n, star.plug_p)
135 annotation (Line(points={{-80,-40},{-80,-50}}, color={0,0,255}));
136 connect(star.pin_n, ground.p)
137 annotation (Line(points={{-80,-70},{-80,-80}}, color={0,0,255}));
138 connect(resistor.plug_n, inductor.plug_p)
139 annotation (Line(points={{-80,40},{-80,50}}, color={0,0,255}));
140 connect(inductor.plug_n, rectifier.ac)
141 annotation (Line(points={{-80,70},{-68,70}}, color={0,0,255}));
142 connect(resistor.plug_p, gridCurrent.plug_p)
143 annotation (Line(points={{-80,20},{-80,10}}, color={0,0,255}));
144 connect(gridCurrent.plug_n, sineVoltage.plug_p)
145 annotation (Line(points={{-80,-10},{-80,-20}}, color={0,0,255}));
146 connect(inverter.ac, resistor1.plug_n)
147 annotation (Line(points={{10,70},{48,70},{48,58}}, color={0,0,255}));
148 connect(resistor1.plug_p, star1.plug_p)
149 annotation (Line(points={{48,38},{48,28}}, color={0,0,255}));
150 connect(star1.pin_n, inductor1.p)
151 annotation (Line(points={{48,8},{48,-10}}, color={0,0,255}));
152 connect(inductor1.n, ground1.p)
153 annotation (Line(points={{48,-30},{48,-38}}, color={0,0,255}));
154 annotation (experiment(
155 StopTime=1.5,
156 Interval=5e-05,
157 Tolerance=1e-06), Documentation(
158 info="<html>
159<p>
160This is a model of a complete inverter drive comprising:
161</p>
162<ul>
163<li>a grid model and a line choke</li>
164<li><a href=\"modelica://Modelica.Electrical.PowerConverters.ACDC.DiodeBridge2mPulse\">a diode rectifier</a></li>
165<li>a buffer capacitor</li>
166<li><a href=\"modelica://Modelica.Electrical.PowerConverters.DCAC.MultiPhase2Level\">a switching inverter</a></li>
167<li><a href=\"modelica://Modelica.Electrical.PowerConverters.DCAC.Control.PWM\">a pulse width modulation</a></li>
168<li><a href=\"modelica://Modelica.Electrical.Machines.Utilities.VfController\">a voltage/frequency characteristic</a></li>
169<li>the reference frequency ramped up</li>
170<li>an induction machine with squirrel cage</li>
171<li>a load inertia and quadratic speed dependent load torque (like a fan or pump)</li>
172</ul>
173<p>Please note: Be patient, two switching devices cause many event iteratons which cost performance.</p>
174<p>Note that due to the voltage drop the voltage at the machine can't reach the full voltage which means torque reduction.</p>
175<p>Default machine parameters are adapted to nominal phase voltage 400 V and nominal phase current 25 A.</p>
176</html>"),
177 uses(Modelica(version="3.2.3")));
178end TestIndexReduction2;