| 1 | encapsulated package InvPWM
|
|---|
| 2 | import Modelica;
|
|---|
| 3 | import PowerSystems;
|
|---|
| 4 | import PowerSystems_Control_Modulation_SVPWM;
|
|---|
| 5 | import ElettricoCeraolo;
|
|---|
| 6 | // euro symbol €
|
|---|
| 7 |
|
|---|
| 8 | package SinglePhase
|
|---|
| 9 | model OneSQWId "bidirectional switches, one-leg, square wave"
|
|---|
| 10 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 11 | Placement(visible = true, transformation(extent = {{-50, -18}, {-30, 2}}, rotation = 0)));
|
|---|
| 12 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 13 | Placement(visible = true, transformation(extent = {{38, -60}, {58, -40}}, rotation = 0)));
|
|---|
| 14 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 15 | Placement(visible = true, transformation(origin = {-56, 18}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 16 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 17 | Placement(visible = true, transformation(origin = {48, -22}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 18 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 19 | Placement(visible = true, transformation(origin = {-56, -26}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 20 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu annotation (
|
|---|
| 21 | Placement(visible = true, transformation(origin = {-20, 32}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 22 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWd annotation (
|
|---|
| 23 | Placement(visible = true, transformation(origin = {-20, -38}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 24 | Modelica.Blocks.Sources.BooleanPulse booleanPulse(period = 1 / 50) annotation (
|
|---|
| 25 | Placement(visible = true, transformation(extent = {{36, 36}, {16, 56}}, rotation = 0)));
|
|---|
| 26 | Modelica.Blocks.MathBoolean.Not nor1 annotation (
|
|---|
| 27 | Placement(visible = true, transformation(origin = {0, 22}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 28 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 0.005) annotation (
|
|---|
| 29 | Placement(visible = true, transformation(origin = {48, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 30 | equation
|
|---|
| 31 | connect(inductor.n, Load.p) annotation (
|
|---|
| 32 | Line(points = {{48, -4}, {48, -12}}, color = {0, 0, 255}));
|
|---|
| 33 | connect(inductor.p, SWu.n) annotation (
|
|---|
| 34 | Line(points = {{48, 16}, {12, 16}, {12, 4}, {-20, 4}, {-20, 22}}, color = {0, 0, 255}));
|
|---|
| 35 | connect(Load.n, ground1.p) annotation (
|
|---|
| 36 | Line(points = {{48, -32}, {48, -40}}, color = {0, 0, 255}));
|
|---|
| 37 | connect(nor1.u, booleanPulse.y) annotation (
|
|---|
| 38 | Line(points = {{0, 27.6}, {0, 46}, {15, 46}}, color = {255, 0, 255}));
|
|---|
| 39 | connect(nor1.y, SWd.control) annotation (
|
|---|
| 40 | Line(points = {{0, 17.2}, {0, -38}, {-8, -38}}, color = {255, 0, 255}));
|
|---|
| 41 | connect(SWu.p, V1.p) annotation (
|
|---|
| 42 | Line(points = {{-20, 42}, {-20, 58}, {-56, 58}, {-56, 28}}, color = {0, 0, 255}));
|
|---|
| 43 | connect(SWu.n, SWd.p) annotation (
|
|---|
| 44 | Line(points = {{-20, 22}, {-20, -28}}, color = {0, 0, 255}));
|
|---|
| 45 | connect(booleanPulse.y, SWu.control) annotation (
|
|---|
| 46 | Line(points = {{15, 46}, {-10.5, 46}, {-36, 46}, {-36, 32}, {-32, 32}}, color = {255, 0, 255}));
|
|---|
| 47 | connect(SWd.n, V2.n) annotation (
|
|---|
| 48 | Line(points = {{-20, -48}, {-20, -58}, {-56, -58}, {-56, -47}, {-56, -47}, {-56, -36}}, color = {0, 0, 255}));
|
|---|
| 49 | connect(V1.n, V2.p) annotation (
|
|---|
| 50 | Line(points = {{-56, 8}, {-56, -16}, {-56, -16}}, color = {0, 0, 255}));
|
|---|
| 51 | connect(ground.p, V1.n) annotation (
|
|---|
| 52 | Line(points = {{-40, 2}, {-40, 5}, {-40, 5}, {-40, 8}, {-48, 8}, {-48, 8}, {-56, 8}}, color = {0, 0, 255}));
|
|---|
| 53 | annotation (
|
|---|
| 54 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {80, 60}})),
|
|---|
| 55 | experiment(StopTime = 0.1, StartTime = 0, Tolerance = 1e-06, Interval = 0.0002),
|
|---|
| 56 | Documentation(info = "<html><head></head><body><p>Il risultato è identico a quello che si ha con interruttori pilotati e diodi in antiparallelo entrambi ideali.</p>
|
|---|
| 57 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 58 | <p>Il sistema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 59 | </body></html>"),
|
|---|
| 60 | Icon(coordinateSystem(extent = {{-80, -80}, {80, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})),
|
|---|
| 61 | __OpenModelica_commandLineOptions = "");
|
|---|
| 62 | end OneSQWId;
|
|---|
| 63 |
|
|---|
| 64 | model OneSQWRe "switch-diode pairs, one leg, square wave"
|
|---|
| 65 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 66 | Placement(visible = true, transformation(extent = {{-82, -34}, {-62, -14}}, rotation = 0)));
|
|---|
| 67 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 68 | Placement(visible = true, transformation(origin = {-58, 4}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 69 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 70 | Placement(visible = true, transformation(origin = {-58, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 71 | Modelica.Blocks.Sources.BooleanPulse booleanPulse(period = 1 / 50) annotation (
|
|---|
| 72 | Placement(visible = true, transformation(extent = {{34, 30}, {14, 50}}, rotation = 0)));
|
|---|
| 73 | Modelica.Blocks.MathBoolean.Not nor1 annotation (
|
|---|
| 74 | Placement(visible = true, transformation(origin = {6, 14}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 75 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 76 | Placement(visible = true, transformation(origin = {-38, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 77 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1) annotation (
|
|---|
| 78 | Placement(visible = true, transformation(origin = {-18, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 79 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 80 | Placement(visible = true, transformation(origin = {-18, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 81 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 82 | Placement(visible = true, transformation(origin = {-38, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 83 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 0.005) annotation (
|
|---|
| 84 | Placement(visible = true, transformation(origin = {24, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 85 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 86 | Placement(visible = true, transformation(extent = {{50, -52}, {70, -32}}, rotation = 0)));
|
|---|
| 87 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 88 | Placement(visible = true, transformation(origin = {60, -16}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 89 | equation
|
|---|
| 90 | connect(Load.n, ground1.p) annotation (
|
|---|
| 91 | Line(points = {{60, -26}, {60, -32}}, color = {0, 0, 255}));
|
|---|
| 92 | connect(inductor.n, Load.p) annotation (
|
|---|
| 93 | Line(points = {{34, 0}, {61, 0}, {61, -6}, {60, -6}}, color = {0, 0, 255}));
|
|---|
| 94 | connect(inductor.p, dSW.p) annotation (
|
|---|
| 95 | Line(points = {{14, 0}, {-28, 0}, {-28, -14}, {-18, -14}}, color = {0, 0, 255}));
|
|---|
| 96 | connect(V2.n, dD.p) annotation (
|
|---|
| 97 | Line(points = {{-58, -42}, {-58, -48}, {-38, -48}, {-38, -34}}, color = {0, 0, 255}));
|
|---|
| 98 | connect(dSW.n, dD.p) annotation (
|
|---|
| 99 | Line(points = {{-18, -34}, {-18, -48}, {-38, -48}, {-38, -34}}, color = {0, 0, 255}));
|
|---|
| 100 | connect(dD.n, dSW.p) annotation (
|
|---|
| 101 | Line(points = {{-38, -14}, {-38, -14}, {-18, -14}}, color = {0, 0, 255}));
|
|---|
| 102 | connect(uD.p, dSW.p) annotation (
|
|---|
| 103 | Line(points = {{-38, 16}, {-38, 8}, {-28, 8}, {-28, -14}, {-18, -14}}, color = {0, 0, 255}));
|
|---|
| 104 | connect(nor1.y, dSW.fire) annotation (
|
|---|
| 105 | Line(points = {{6, 9.2}, {6, -34}, {-6, -34}}, color = {255, 0, 255}));
|
|---|
| 106 | connect(uSW.fire, booleanPulse.y) annotation (
|
|---|
| 107 | Line(points = {{-6, 16}, {-6, 40}, {13, 40}}, color = {255, 0, 255}));
|
|---|
| 108 | connect(uD.p, uSW.n) annotation (
|
|---|
| 109 | Line(points = {{-38, 16}, {-38, 8}, {-18, 8}, {-18, 16}}, color = {0, 0, 255}));
|
|---|
| 110 | connect(uSW.p, uD.n) annotation (
|
|---|
| 111 | Line(points = {{-18, 36}, {-18, 36}, {-18, 40}, {-38, 40}, {-38, 36}}, color = {0, 0, 255}));
|
|---|
| 112 | connect(V1.p, uD.n) annotation (
|
|---|
| 113 | Line(points = {{-58, 14}, {-58, 46}, {-28, 46}, {-28, 40}, {-38, 40}, {-38, 36}}, color = {0, 0, 255}));
|
|---|
| 114 | connect(nor1.u, booleanPulse.y) annotation (
|
|---|
| 115 | Line(points = {{6, 19.6}, {6, 40}, {13, 40}}, color = {255, 0, 255}));
|
|---|
| 116 | connect(V1.n, V2.p) annotation (
|
|---|
| 117 | Line(points = {{-58, -6}, {-58, -22}}, color = {0, 0, 255}));
|
|---|
| 118 | connect(ground.p, V1.n) annotation (
|
|---|
| 119 | Line(points = {{-72, -14}, {-72, -8}, {-72, -6}, {-58, -6}, {-58, -6}}, color = {0, 0, 255}));
|
|---|
| 120 | annotation (
|
|---|
| 121 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {80, 60}})),
|
|---|
| 122 | experiment(StopTime = 0.1),
|
|---|
| 123 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 124 | </body></html>", revisions = "<html><head></head><body>newInst OK</body></html>"),
|
|---|
| 125 | Icon(coordinateSystem(extent = {{-80, -60}, {80, 60}}, preserveAspectRatio = false)),
|
|---|
| 126 | __OpenModelica_commandLineOptions = "");
|
|---|
| 127 | end OneSQWRe;
|
|---|
| 128 |
|
|---|
| 129 | model TwoSQWRe "Switch-diode pais, two-legs, square wave"
|
|---|
| 130 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 131 | Placement(visible = true, transformation(extent = {{82, -54}, {102, -34}}, rotation = 0)));
|
|---|
| 132 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 133 | Placement(visible = true, transformation(origin = {-70, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 134 | Modelica.Blocks.Sources.BooleanPulse booleanPulse(period = 1 / 50) annotation (
|
|---|
| 135 | Placement(visible = true, transformation(extent = {{100, 54}, {80, 74}}, rotation = 0)));
|
|---|
| 136 | Modelica.Blocks.MathBoolean.Not nor1 annotation (
|
|---|
| 137 | Placement(visible = true, transformation(origin = {-8, -14}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 138 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 139 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {-50, 40})));
|
|---|
| 140 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1) annotation (
|
|---|
| 141 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-30, 40})));
|
|---|
| 142 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 143 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-30, -18})));
|
|---|
| 144 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 145 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {-50, -18})));
|
|---|
| 146 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 0.005) annotation (
|
|---|
| 147 | Placement(visible = true, transformation(origin = {92, 18}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 148 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 1) annotation (
|
|---|
| 149 | Placement(visible = true, transformation(origin = {92, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 150 | Modelica.Electrical.Analog.Ideal.IdealDiode uD1(Vknee = 0.1) annotation (
|
|---|
| 151 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {12, 40})));
|
|---|
| 152 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW1(Vknee = 0.1) annotation (
|
|---|
| 153 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {32, 40})));
|
|---|
| 154 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW1(Vknee = 0.1) annotation (
|
|---|
| 155 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {32, -18})));
|
|---|
| 156 | Modelica.Electrical.Analog.Ideal.IdealDiode dD1(Vknee = 0.1) annotation (
|
|---|
| 157 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {12, -18})));
|
|---|
| 158 | Modelica.Blocks.MathBoolean.Not nor2 annotation (
|
|---|
| 159 | Placement(visible = true, transformation(origin = {42, 50}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 160 | Modelica.Electrical.Analog.Sensors.PowerSensor powerSensor annotation (
|
|---|
| 161 | Placement(transformation(extent = {{62, 24}, {82, 44}})));
|
|---|
| 162 | Modelica.Blocks.Math.Mean meanP(f = 50) annotation (
|
|---|
| 163 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {64, -30})));
|
|---|
| 164 | equation
|
|---|
| 165 | connect(inductor.n, Load.p) annotation (
|
|---|
| 166 | Line(points = {{92, 8}, {92, 0}}, color = {0, 0, 255}));
|
|---|
| 167 | connect(uSW.p, uD.n) annotation (
|
|---|
| 168 | Line(points = {{-30, 50}, {-30, 54}, {-50, 54}, {-50, 50}}, color = {0, 0, 255}));
|
|---|
| 169 | connect(uD.p, uSW.n) annotation (
|
|---|
| 170 | Line(points = {{-50, 30}, {-50, 22}, {-30, 22}, {-30, 30}}, color = {0, 0, 255}));
|
|---|
| 171 | connect(dD.n, dSW.p) annotation (
|
|---|
| 172 | Line(points = {{-50, -8}, {-30, -8}}, color = {0, 0, 255}));
|
|---|
| 173 | connect(dSW.n, dD.p) annotation (
|
|---|
| 174 | Line(points = {{-30, -28}, {-30, -42}, {-50, -42}, {-50, -28}}, color = {0, 0, 255}));
|
|---|
| 175 | connect(V1.p, uD.n) annotation (
|
|---|
| 176 | Line(points = {{-70, 28}, {-70, 60}, {-40, 60}, {-40, 54}, {-50, 54}, {-50, 50}}, color = {0, 0, 255}));
|
|---|
| 177 | connect(uD.p, dSW.p) annotation (
|
|---|
| 178 | Line(points = {{-50, 30}, {-50, 22}, {-40, 22}, {-40, -8}, {-30, -8}}, color = {0, 0, 255}));
|
|---|
| 179 | connect(uSW1.p, uD1.n) annotation (
|
|---|
| 180 | Line(points = {{32, 50}, {32, 54}, {12, 54}, {12, 50}}, color = {0, 0, 255}));
|
|---|
| 181 | connect(uD1.p, uSW1.n) annotation (
|
|---|
| 182 | Line(points = {{12, 30}, {12, 22}, {32, 22}, {32, 30}}, color = {0, 0, 255}));
|
|---|
| 183 | connect(dD1.n, dSW1.p) annotation (
|
|---|
| 184 | Line(points = {{12, -8}, {32, -8}}, color = {0, 0, 255}));
|
|---|
| 185 | connect(dSW1.n, dD1.p) annotation (
|
|---|
| 186 | Line(points = {{32, -28}, {32, -42}, {12, -42}, {12, -28}}, color = {0, 0, 255}));
|
|---|
| 187 | connect(V1.p, uD1.n) annotation (
|
|---|
| 188 | Line(points = {{-70, 28}, {-70, 60}, {22, 60}, {22, 54}, {12, 54}, {12, 50}}, color = {0, 0, 255}));
|
|---|
| 189 | connect(uD1.p, dSW1.p) annotation (
|
|---|
| 190 | Line(points = {{12, 30}, {12, 22}, {22, 22}, {22, -8}, {32, -8}}, color = {0, 0, 255}));
|
|---|
| 191 | connect(Load.n, dSW1.p) annotation (
|
|---|
| 192 | Line(points = {{92, -20}, {92, -24}, {78, -24}, {78, 2}, {32, 2}, {32, -8}}, color = {0, 0, 255}));
|
|---|
| 193 | connect(ground.p, dSW1.p) annotation (
|
|---|
| 194 | Line(points = {{92, -34}, {92, -24}, {78, -24}, {78, 2}, {32, 2}, {32, -8}}, color = {0, 0, 255}));
|
|---|
| 195 | connect(V1.n, dD.p) annotation (
|
|---|
| 196 | Line(points = {{-70, 8}, {-70, -42}, {-50, -42}, {-50, -28}}, color = {0, 0, 255}));
|
|---|
| 197 | connect(nor1.y, dSW.fire) annotation (
|
|---|
| 198 | Line(points = {{-8, -18.8}, {-8, -28}, {-18, -28}}, color = {255, 0, 255}));
|
|---|
| 199 | connect(nor2.y, uSW1.fire) annotation (
|
|---|
| 200 | Line(points = {{42, 45.2}, {42, 30}, {44, 30}}, color = {255, 0, 255}));
|
|---|
| 201 | connect(booleanPulse.y, nor2.u) annotation (
|
|---|
| 202 | Line(points = {{79, 64}, {42, 64}, {42, 55.6}}, color = {255, 0, 255}));
|
|---|
| 203 | connect(dSW1.fire, nor2.u) annotation (
|
|---|
| 204 | Line(points = {{44, -28}, {50, -28}, {50, 64}, {42, 64}, {42, 55.6}}, color = {255, 0, 255}));
|
|---|
| 205 | connect(uSW.fire, nor2.u) annotation (
|
|---|
| 206 | Line(points = {{-18, 30}, {-14, 30}, {-14, 64}, {42, 64}, {42, 55.6}}, color = {255, 0, 255}));
|
|---|
| 207 | connect(nor1.u, nor2.u) annotation (
|
|---|
| 208 | Line(points = {{-8, -8.4}, {-8, 64}, {42, 64}, {42, 55.6}}, color = {255, 0, 255}));
|
|---|
| 209 | connect(V1.n, dD1.p) annotation (
|
|---|
| 210 | Line(points = {{-70, 8}, {-70, -42}, {12, -42}, {12, -28}}, color = {0, 0, 255}));
|
|---|
| 211 | connect(powerSensor.pv, powerSensor.nc) annotation (
|
|---|
| 212 | Line(points = {{72, 44}, {82, 44}, {82, 34}}, color = {0, 0, 255}));
|
|---|
| 213 | connect(powerSensor.nc, inductor.p) annotation (
|
|---|
| 214 | Line(points = {{82, 34}, {92, 34}, {92, 28}}, color = {0, 0, 255}));
|
|---|
| 215 | connect(powerSensor.pc, dSW.p) annotation (
|
|---|
| 216 | Line(points = {{62, 34}, {62, 16}, {-40, 16}, {-40, -8}, {-30, -8}}, color = {0, 0, 255}));
|
|---|
| 217 | connect(powerSensor.nv, dSW1.p) annotation (
|
|---|
| 218 | Line(points = {{72, 24}, {72, 2}, {32, 2}, {32, -8}}, color = {0, 0, 255}));
|
|---|
| 219 | connect(meanP.u, powerSensor.power) annotation (
|
|---|
| 220 | Line(points = {{64, -18}, {64, 2}, {64, 23}, {62, 23}}, color = {0, 0, 127}));
|
|---|
| 221 | annotation (
|
|---|
| 222 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {120, 80}})),
|
|---|
| 223 | experiment(StopTime = 0.1),
|
|---|
| 224 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 225 | </body></html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 226 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 227 | end TwoSQWRe;
|
|---|
| 228 |
|
|---|
| 229 | model VCRe "Voltage cancellation scheme"
|
|---|
| 230 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 231 | Placement(visible = true, transformation(extent = {{-96, -80}, {-76, -60}}, rotation = 0)));
|
|---|
| 232 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 233 | Placement(visible = true, transformation(origin = {-86, 4}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 234 | Modelica.Blocks.Sources.BooleanPulse basePulse(period = 1 / 50) annotation (
|
|---|
| 235 | Placement(visible = true, transformation(extent = {{96, 34}, {76, 54}}, rotation = 0)));
|
|---|
| 236 | Modelica.Blocks.MathBoolean.Not nor1 annotation (
|
|---|
| 237 | Placement(visible = true, transformation(origin = {-34, -14}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 238 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 239 | Placement(visible = true, transformation(origin = {-66, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 240 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1, off(start = false)) annotation (
|
|---|
| 241 | Placement(visible = true, transformation(origin = {-46, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 242 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 243 | Placement(visible = true, transformation(origin = {-46, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 244 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 245 | Placement(visible = true, transformation(origin = {-66, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 246 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 67.36e-3) annotation (
|
|---|
| 247 | Placement(visible = true, transformation(origin = {84, 4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 248 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 42.32) annotation (
|
|---|
| 249 | Placement(visible = true, transformation(origin = {84, -22}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 250 | Modelica.Electrical.Analog.Ideal.IdealDiode uD1(Vknee = 0.1) annotation (
|
|---|
| 251 | Placement(visible = true, transformation(origin = {-4, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 252 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW1(Vknee = 0.1) annotation (
|
|---|
| 253 | Placement(visible = true, transformation(origin = {16, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 254 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW1(Vknee = 0.1, off(start = false)) annotation (
|
|---|
| 255 | Placement(visible = true, transformation(origin = {16, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 256 | Modelica.Electrical.Analog.Ideal.IdealDiode dD1(Vknee = 0.1) annotation (
|
|---|
| 257 | Placement(visible = true, transformation(origin = {-4, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 258 | Modelica.Blocks.MathBoolean.Not nor2 annotation (
|
|---|
| 259 | Placement(visible = true, transformation(origin = {28, -6}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 260 | Modelica.Electrical.Analog.Sensors.PowerSensor powerSensor annotation (
|
|---|
| 261 | Placement(visible = true, transformation(extent = {{46, 10}, {66, 30}}, rotation = 0)));
|
|---|
| 262 | Modelica.Blocks.Math.Mean meanP(f = 50) annotation (
|
|---|
| 263 | Placement(visible = true, transformation(origin = {48, -44}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 264 | Modelica.Blocks.Sources.BooleanPulse delPulse(period = 1 / 50, startTime = 0.006) annotation (
|
|---|
| 265 | Placement(visible = true, transformation(extent = {{58, 52}, {38, 72}}, rotation = 0)));
|
|---|
| 266 | equation
|
|---|
| 267 | connect(inductor.n, Load.p) annotation (
|
|---|
| 268 | Line(points = {{84, -6}, {84, -12}}, color = {0, 0, 255}));
|
|---|
| 269 | connect(uSW.p, uD.n) annotation (
|
|---|
| 270 | Line(points = {{-46, 36}, {-46, 40}, {-66, 40}, {-66, 36}}, color = {0, 0, 255}));
|
|---|
| 271 | connect(uD.p, uSW.n) annotation (
|
|---|
| 272 | Line(points = {{-66, 16}, {-66, 8}, {-46, 8}, {-46, 16}}, color = {0, 0, 255}));
|
|---|
| 273 | connect(dD.n, dSW.p) annotation (
|
|---|
| 274 | Line(points = {{-66, -22}, {-46, -22}}, color = {0, 0, 255}));
|
|---|
| 275 | connect(dSW.n, dD.p) annotation (
|
|---|
| 276 | Line(points = {{-46, -42}, {-46, -56}, {-66, -56}, {-66, -42}}, color = {0, 0, 255}));
|
|---|
| 277 | connect(V1.p, uD.n) annotation (
|
|---|
| 278 | Line(points = {{-86, 14}, {-86, 46}, {-56, 46}, {-56, 40}, {-66, 40}, {-66, 36}}, color = {0, 0, 255}));
|
|---|
| 279 | connect(uD.p, dSW.p) annotation (
|
|---|
| 280 | Line(points = {{-66, 16}, {-66, 8}, {-56, 8}, {-56, -22}, {-46, -22}}, color = {0, 0, 255}));
|
|---|
| 281 | connect(uSW1.p, uD1.n) annotation (
|
|---|
| 282 | Line(points = {{16, 36}, {16, 40}, {-4, 40}, {-4, 36}}, color = {0, 0, 255}));
|
|---|
| 283 | connect(uD1.p, uSW1.n) annotation (
|
|---|
| 284 | Line(points = {{-4, 16}, {-4, 8}, {16, 8}, {16, 16}}, color = {0, 0, 255}));
|
|---|
| 285 | connect(dD1.n, dSW1.p) annotation (
|
|---|
| 286 | Line(points = {{-4, -22}, {16, -22}}, color = {0, 0, 255}));
|
|---|
| 287 | connect(dSW1.n, dD1.p) annotation (
|
|---|
| 288 | Line(points = {{16, -42}, {16, -56}, {-4, -56}, {-4, -42}}, color = {0, 0, 255}));
|
|---|
| 289 | connect(V1.p, uD1.n) annotation (
|
|---|
| 290 | Line(points = {{-86, 14}, {-86, 46}, {6, 46}, {6, 40}, {-4, 40}, {-4, 36}}, color = {0, 0, 255}));
|
|---|
| 291 | connect(uD1.p, dSW1.p) annotation (
|
|---|
| 292 | Line(points = {{-4, 16}, {-4, 8}, {6, 8}, {6, -22}, {16, -22}}, color = {0, 0, 255}));
|
|---|
| 293 | connect(Load.n, dSW1.p) annotation (
|
|---|
| 294 | Line(points = {{84, -32}, {84, -38}, {68, -38}, {68, -12}, {16, -12}, {16, -22}}, color = {0, 0, 255}));
|
|---|
| 295 | connect(V1.n, dD.p) annotation (
|
|---|
| 296 | Line(points = {{-86, -6}, {-86, -56}, {-66, -56}, {-66, -42}}, color = {0, 0, 255}));
|
|---|
| 297 | connect(V1.n, dD1.p) annotation (
|
|---|
| 298 | Line(points = {{-86, -6}, {-86, -56}, {-4, -56}, {-4, -42}}, color = {0, 0, 255}));
|
|---|
| 299 | connect(powerSensor.pv, powerSensor.nc) annotation (
|
|---|
| 300 | Line(points = {{72, 44}, {82, 44}, {82, 34}}, color = {0, 0, 255}));
|
|---|
| 301 | connect(powerSensor.nc, inductor.p) annotation (
|
|---|
| 302 | Line(points = {{66, 20}, {84, 20}, {84, 14}}, color = {0, 0, 255}));
|
|---|
| 303 | connect(powerSensor.pc, dSW.p) annotation (
|
|---|
| 304 | Line(points = {{46, 20}, {46, 6}, {-56, 6}, {-56, -22}, {-46, -22}}, color = {0, 0, 255}));
|
|---|
| 305 | connect(powerSensor.nv, dSW1.p) annotation (
|
|---|
| 306 | Line(points = {{56, 10}, {56, -12}, {16, -12}, {16, -22}}, color = {0, 0, 255}));
|
|---|
| 307 | connect(meanP.u, powerSensor.power) annotation (
|
|---|
| 308 | Line(points = {{48, -32}, {48, -12}, {48, 9}, {46, 9}}, color = {0, 0, 127}));
|
|---|
| 309 | connect(basePulse.y, uSW.fire) annotation (
|
|---|
| 310 | Line(points = {{75, 44}, {-34, 44}, {-34, 16}}, color = {255, 0, 255}));
|
|---|
| 311 | connect(ground.p, dD.p) annotation (
|
|---|
| 312 | Line(points = {{-86, -60}, {-86, -56}, {-66, -56}, {-66, -42}}, color = {0, 0, 255}));
|
|---|
| 313 | connect(nor1.y, dSW.fire) annotation (
|
|---|
| 314 | Line(points = {{-34, -18.8}, {-34, -42}}, color = {255, 0, 255}));
|
|---|
| 315 | connect(nor1.u, uSW.fire) annotation (
|
|---|
| 316 | Line(points = {{-34, -8.4}, {-34, 16}}, color = {255, 0, 255}));
|
|---|
| 317 | connect(delPulse.y, uSW1.fire) annotation (
|
|---|
| 318 | Line(points = {{37, 62}, {28, 62}, {28, 16}}, color = {255, 0, 255}));
|
|---|
| 319 | connect(uSW1.fire, nor2.u) annotation (
|
|---|
| 320 | Line(points = {{28, 16}, {28, -0.4}}, color = {255, 0, 255}));
|
|---|
| 321 | connect(nor2.y, dSW1.fire) annotation (
|
|---|
| 322 | Line(points = {{28, -10.8}, {28, -42}}, color = {255, 0, 255}));
|
|---|
| 323 | annotation (
|
|---|
| 324 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -80}, {100, 80}})),
|
|---|
| 325 | experiment(StopTime = 0.04),
|
|---|
| 326 | Documentation(info = "<html>
|
|---|
| 327 | <p>Questo inverter ad onda quadra ha la logica "voltage cancellation" di Mohan alla pag. 219.</p>
|
|---|
| 328 | <p><br>Il tempo di cancellazione è mezzo periodo meno il ritardo di delPulse. Se ad es. il ritardo di delPulse è 6 ms, il tempo di cancellazione è di 4 e quindi ho un rapporto pieni/vuoti di 3/2.</p>
|
|---|
| 329 | <p>L'inverter monofase VC ha importanza in quanto è uno di quelli usati nella ricarica wireless.</p>
|
|---|
| 330 | </html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 331 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 332 | end VCRe;
|
|---|
| 333 |
|
|---|
| 334 | model OnePwmId "bidirectional switches, one-leg, PWM"
|
|---|
| 335 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 336 | Placement(visible = true, transformation(origin = {32, 60}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 337 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 338 | Placement(visible = true, transformation(origin = {58, 40}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 339 | Support.PwmPulser pwmPulser annotation (
|
|---|
| 340 | Placement(visible = true, transformation(origin = {-15, 46}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 341 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWd annotation (
|
|---|
| 342 | Placement(visible = true, transformation(origin = {-50, -36}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 343 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu annotation (
|
|---|
| 344 | Placement(visible = true, transformation(origin = {-52, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 345 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 346 | Placement(visible = true, transformation(origin = {-84, -24}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 347 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 348 | Placement(visible = true, transformation(origin = {92, -24}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 349 | Modelica.Electrical.Analog.Basic.Capacitor Cf(C = 634e-6) annotation (
|
|---|
| 350 | Placement(visible = true, transformation(origin = {64, -28}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 351 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 352 | Placement(visible = true, transformation(origin = {-84, 20}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 353 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 354 | Placement(visible = true, transformation(origin = {104, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 355 | Modelica.Electrical.Analog.Sensors.PotentialSensor vSens annotation (
|
|---|
| 356 | Placement(visible = true, transformation(origin = {107, 9}, extent = {{-9, -9}, {9, 9}}, rotation = 90)));
|
|---|
| 357 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 358 | Placement(visible = true, transformation(origin = {-70, -6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 359 | Modelica.Electrical.Analog.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 360 | Placement(visible = true, transformation(origin = {6, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 361 | Modelica.Electrical.Analog.Basic.Resistor Rf(R = 0.05) annotation (
|
|---|
| 362 | Placement(visible = true, transformation(origin = {-22, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 363 | Modelica.Electrical.Analog.Sensors.PowerSensor pow annotation (
|
|---|
| 364 | Placement(transformation(extent = {{24, -10}, {44, 10}})));
|
|---|
| 365 | Modelica.Blocks.Math.Mean meanP(f = 100) annotation (
|
|---|
| 366 | Placement(visible = true, transformation(origin = {8, -36}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 367 | Modelica.Blocks.Math.RootMeanSquare vRMS(f = 50) annotation (
|
|---|
| 368 | Placement(visible = true, transformation(origin = {106, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 369 | equation
|
|---|
| 370 | connect(SWu.n, SWd.p) annotation (
|
|---|
| 371 | Line(points = {{-52, 30}, {-52, -26}, {-50, -26}}, color = {0, 0, 255}));
|
|---|
| 372 | connect(SWu.p, V1.p) annotation (
|
|---|
| 373 | Line(points = {{-52, 50}, {-52, 60}, {-84, 60}, {-84, 30}}, color = {0, 0, 255}));
|
|---|
| 374 | connect(Rf.p, SWu.n) annotation (
|
|---|
| 375 | Line(points = {{-32, 0}, {-52, 0}, {-52, 30}}, color = {0, 0, 255}));
|
|---|
| 376 | connect(pwmPulser.down, SWu.control) annotation (
|
|---|
| 377 | Line(points = {{-29.3, 38.46}, {-40, 38.46}, {-40, 40}, {-40, 40}}, color = {255, 0, 255}));
|
|---|
| 378 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 379 | Line(points = {{47, 40}, {16, 40}, {16, 38.98}, {0.6, 38.98}}, color = {0, 0, 127}));
|
|---|
| 380 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 381 | Line(points = {{21, 60}, {12, 60}, {12, 54.32}, {0.6, 54.32}}, color = {0, 0, 127}));
|
|---|
| 382 | connect(pwmPulser.up, SWd.control) annotation (
|
|---|
| 383 | Line(points = {{-29.3, 54.58}, {-36, 54.58}, {-36, -36}, {-38, -36}}, color = {255, 0, 255}));
|
|---|
| 384 | connect(Lf.p, Rf.n) annotation (
|
|---|
| 385 | Line(points = {{-4, 0}, {-10, 0}, {-12, 0}}, color = {0, 0, 255}));
|
|---|
| 386 | connect(ground.p, V1.n) annotation (
|
|---|
| 387 | Line(points = {{-70, 4}, {-70, 10}, {-84, 10}}, color = {0, 0, 255}));
|
|---|
| 388 | connect(vSens.p, Load.p) annotation (
|
|---|
| 389 | Line(points = {{107, 1.77636e-015}, {92, 1.77636e-015}, {92, -14}}, color = {0, 0, 255}));
|
|---|
| 390 | connect(V1.n, V2.p) annotation (
|
|---|
| 391 | Line(points = {{-84, 10}, {-84, -14}, {-84, -14}}, color = {0, 0, 255}));
|
|---|
| 392 | connect(Load.n, Cf.n) annotation (
|
|---|
| 393 | Line(points = {{92, -34}, {92, -50}, {64, -50}, {64, -38}}, color = {0, 0, 255}));
|
|---|
| 394 | connect(SWd.n, V2.n) annotation (
|
|---|
| 395 | Line(points = {{-50, -46}, {-50, -56}, {-84, -56}, {-84, -34}}, color = {0, 0, 255}));
|
|---|
| 396 | connect(Lf.n, pow.pc) annotation (
|
|---|
| 397 | Line(points = {{16, 0}, {24, 0}}, color = {0, 0, 255}));
|
|---|
| 398 | connect(pow.pv, pow.pc) annotation (
|
|---|
| 399 | Line(points = {{34, 10}, {30, 10}, {24, 10}, {24, 0}}, color = {0, 0, 255}));
|
|---|
| 400 | connect(pow.nv, Cf.n) annotation (
|
|---|
| 401 | Line(points = {{34, -10}, {34, -50}, {64, -50}, {64, -38}}, color = {0, 0, 255}));
|
|---|
| 402 | connect(pow.nc, Load.p) annotation (
|
|---|
| 403 | Line(points = {{44, 0}, {92, 0}, {92, -14}}, color = {0, 0, 255}));
|
|---|
| 404 | connect(Cf.p, Load.p) annotation (
|
|---|
| 405 | Line(points = {{64, -18}, {64, 0}, {92, 0}, {92, -14}}, color = {0, 0, 255}));
|
|---|
| 406 | connect(ground1.p, Cf.n) annotation (
|
|---|
| 407 | Line(points = {{104, -42}, {92, -42}, {92, -50}, {64, -50}, {64, -38}}, color = {0, 0, 255}));
|
|---|
| 408 | connect(meanP.u, pow.power) annotation (
|
|---|
| 409 | Line(points = {{8, -24}, {8, -24}, {8, -16}, {24, -16}, {24, -11}}, color = {0, 0, 127}));
|
|---|
| 410 | connect(vRMS.u, vSens.phi) annotation (
|
|---|
| 411 | Line(points = {{106, 30}, {106, 24}, {108, 24}, {108, 18}}, color = {0, 0, 127}));
|
|---|
| 412 | annotation (
|
|---|
| 413 | experiment(StopTime = 0.1),
|
|---|
| 414 | experimentSetupOutput,
|
|---|
| 415 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 416 | </body></html>"),
|
|---|
| 417 | Diagram(coordinateSystem(extent = {{-100, -60}, {120, 80}}, preserveAspectRatio = false)),
|
|---|
| 418 | Icon(coordinateSystem(extent = {{-100, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 419 | end OnePwmId;
|
|---|
| 420 |
|
|---|
| 421 | model TwoPwmId "Id switches - TwoLegs"
|
|---|
| 422 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 423 | Placement(visible = true, transformation(origin = {109, 59}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 424 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 425 | Placement(visible = true, transformation(origin = {87, 45}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 426 | Support.PwmPulser pwmPulser annotation (
|
|---|
| 427 | Placement(visible = true, transformation(origin = {49, 52}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 428 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWd annotation (
|
|---|
| 429 | Placement(visible = true, transformation(origin = {-72, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 430 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu annotation (
|
|---|
| 431 | Placement(visible = true, transformation(origin = {-72, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 432 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 25) annotation (
|
|---|
| 433 | Placement(visible = true, transformation(origin = {-100, -24}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 434 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 435 | Placement(visible = true, transformation(origin = {82, -4}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 436 | Modelica.Electrical.Analog.Basic.Capacitor Cf(C = 634e-6) annotation (
|
|---|
| 437 | Placement(visible = true, transformation(origin = {60, -8}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 438 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 25) annotation (
|
|---|
| 439 | Placement(visible = true, transformation(origin = {-100, 20}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 440 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 441 | Placement(visible = true, transformation(origin = {-116, -18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 442 | Modelica.Electrical.Analog.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 443 | Placement(visible = true, transformation(origin = {40, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 444 | Modelica.Electrical.Analog.Basic.Resistor Rf(R = 0.05) annotation (
|
|---|
| 445 | Placement(visible = true, transformation(origin = {12, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 446 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu1 annotation (
|
|---|
| 447 | Placement(visible = true, transformation(origin = {-42, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 448 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu2 annotation (
|
|---|
| 449 | Placement(visible = true, transformation(origin = {-42, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 450 | Modelica.Blocks.Sources.BooleanExpression ul(y = pwmPulser.up) annotation (
|
|---|
| 451 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-62, 66})));
|
|---|
| 452 | Modelica.Blocks.Sources.BooleanExpression ur(y = pwmPulser.down) annotation (
|
|---|
| 453 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-34, 64})));
|
|---|
| 454 | Modelica.Blocks.Sources.BooleanExpression dl(y = pwmPulser.down) annotation (
|
|---|
| 455 | Placement(transformation(extent = {{10, -10}, {-10, 10}}, rotation = -90, origin = {-64, -66})));
|
|---|
| 456 | Modelica.Blocks.Sources.BooleanExpression dr(y = pwmPulser.up) annotation (
|
|---|
| 457 | Placement(transformation(extent = {{10, -10}, {-10, 10}}, rotation = -90, origin = {-32, -64})));
|
|---|
| 458 | Modelica.Electrical.Analog.Sensors.VoltageSensor vInv annotation (
|
|---|
| 459 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 0, origin = {-58, 4})));
|
|---|
| 460 | Modelica.Electrical.Analog.Sensors.VoltageSensor vLoad annotation (
|
|---|
| 461 | Placement(visible = true, transformation(origin = {108, -2}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
|
|---|
| 462 | Modelica.Electrical.Analog.Sensors.PowerSensor pow annotation (
|
|---|
| 463 | Placement(transformation(extent = {{-26, 14}, {-6, 34}})));
|
|---|
| 464 | Modelica.Blocks.Math.Mean meanP(f = 100) annotation (
|
|---|
| 465 | Placement(visible = true, transformation(origin = {20, -12}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 466 | Modelica.Blocks.Math.RootMeanSquare vRMS(f = 50) annotation (
|
|---|
| 467 | Placement(visible = true, transformation(origin = {128, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 468 | equation
|
|---|
| 469 | connect(vLoad.n, Load.n) annotation (
|
|---|
| 470 | Line(points = {{108, -12}, {108, -12}, {108, -30}, {82, -30}, {82, -14}}, color = {0, 0, 255}));
|
|---|
| 471 | connect(vLoad.p, Lf.n) annotation (
|
|---|
| 472 | Line(points = {{108, 8}, {108, 8}, {108, 20}, {50, 20}}, color = {0, 0, 255}));
|
|---|
| 473 | connect(Lf.p, Rf.n) annotation (
|
|---|
| 474 | Line(points = {{30, 20}, {24, 20}, {22, 20}}, color = {0, 0, 255}));
|
|---|
| 475 | connect(Load.p, Lf.n) annotation (
|
|---|
| 476 | Line(points = {{82, 6}, {82, 20}, {50, 20}}, color = {0, 0, 255}));
|
|---|
| 477 | connect(Cf.p, Lf.n) annotation (
|
|---|
| 478 | Line(points = {{60, 2}, {60, 20}, {50, 20}}, color = {0, 0, 255}));
|
|---|
| 479 | connect(ground.p, V1.n) annotation (
|
|---|
| 480 | Line(points = {{-116, -8}, {-116, -4}, {-116, 0}, {-100, 0}, {-100, 10}}, color = {0, 0, 255}));
|
|---|
| 481 | connect(SWu.p, V1.p) annotation (
|
|---|
| 482 | Line(points = {{-72, 52}, {-72, 60}, {-100, 60}, {-100, 30}}, color = {0, 0, 255}));
|
|---|
| 483 | connect(V1.n, V2.p) annotation (
|
|---|
| 484 | Line(points = {{-100, 10}, {-100, 4}, {-100, -14}}, color = {0, 0, 255}));
|
|---|
| 485 | connect(Load.n, Cf.n) annotation (
|
|---|
| 486 | Line(points = {{82, -14}, {82, -30}, {60, -30}, {60, -18}}, color = {0, 0, 255}));
|
|---|
| 487 | connect(SWd.n, V2.n) annotation (
|
|---|
| 488 | Line(points = {{-72, -42}, {-72, -50}, {-100, -50}, {-100, -34}}, color = {0, 0, 255}));
|
|---|
| 489 | connect(SWu.n, SWd.p) annotation (
|
|---|
| 490 | Line(points = {{-72, 32}, {-72, -22}}, color = {0, 0, 255}));
|
|---|
| 491 | connect(SWu1.p, V1.p) annotation (
|
|---|
| 492 | Line(points = {{-42, 52}, {-42, 60}, {-100, 60}, {-100, 30}}, color = {0, 0, 255}));
|
|---|
| 493 | connect(SWu1.n, SWu2.p) annotation (
|
|---|
| 494 | Line(points = {{-42, 32}, {-42, -22}}, color = {0, 0, 255}));
|
|---|
| 495 | connect(SWu2.n, V2.n) annotation (
|
|---|
| 496 | Line(points = {{-42, -42}, {-42, -50}, {-100, -50}, {-100, -34}}, color = {0, 0, 255}));
|
|---|
| 497 | connect(Cf.n, SWu2.p) annotation (
|
|---|
| 498 | Line(points = {{60, -18}, {60, -30}, {0, -30}, {0, -14}, {-42, -14}, {-42, -22}}, color = {0, 0, 255}));
|
|---|
| 499 | connect(SWu.control, ul.y) annotation (
|
|---|
| 500 | Line(points = {{-60, 42}, {-62, 42}, {-62, 55}}, color = {255, 0, 255}));
|
|---|
| 501 | connect(SWu1.control, ur.y) annotation (
|
|---|
| 502 | Line(points = {{-30, 42}, {-34, 42}, {-34, 53}}, color = {255, 0, 255}));
|
|---|
| 503 | connect(dl.y, SWd.control) annotation (
|
|---|
| 504 | Line(points = {{-64, -55}, {-63, -55}, {-63, -32}, {-60, -32}}, color = {255, 0, 255}));
|
|---|
| 505 | connect(dr.y, SWu2.control) annotation (
|
|---|
| 506 | Line(points = {{-32, -53}, {-30, -53}, {-30, -32}}, color = {255, 0, 255}));
|
|---|
| 507 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 508 | Line(points = {{79.3, 45}, {73.65, 45}, {73.65, 44.98}, {64.6, 44.98}}, color = {0, 0, 127}));
|
|---|
| 509 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 510 | Line(points = {{101.3, 59}, {85.65, 59}, {85.65, 60.32}, {64.6, 60.32}}, color = {0, 0, 127}));
|
|---|
| 511 | connect(vInv.p, SWd.p) annotation (
|
|---|
| 512 | Line(points = {{-68, 4}, {-72, 4}, {-72, -22}}, color = {0, 0, 255}));
|
|---|
| 513 | connect(vInv.n, SWu2.p) annotation (
|
|---|
| 514 | Line(points = {{-48, 4}, {-42, 4}, {-42, -22}}, color = {0, 0, 255}));
|
|---|
| 515 | connect(pow.nv, SWu2.p) annotation (
|
|---|
| 516 | Line(points = {{-16, 14}, {-16, -14}, {-42, -14}, {-42, -22}}, color = {0, 0, 255}));
|
|---|
| 517 | connect(pow.pv, pow.pc) annotation (
|
|---|
| 518 | Line(points = {{-16, 34}, {-26, 34}, {-26, 24}}, color = {0, 0, 255}));
|
|---|
| 519 | connect(Rf.p, pow.nc) annotation (
|
|---|
| 520 | Line(points = {{2, 20}, {-4, 20}, {-4, 24}, {-6, 24}}, color = {0, 0, 255}));
|
|---|
| 521 | connect(pow.pc, SWd.p) annotation (
|
|---|
| 522 | Line(points = {{-26, 24}, {-52, 24}, {-72, 24}, {-72, -22}}, color = {0, 0, 255}));
|
|---|
| 523 | connect(meanP.u, pow.power) annotation (
|
|---|
| 524 | Line(points = {{20, 0}, {20, 4}, {-26, 4}, {-26, 13}}, color = {0, 0, 127}));
|
|---|
| 525 | connect(vRMS.u, vLoad.v) annotation (
|
|---|
| 526 | Line(points = {{128, -18}, {128, -18}, {128, -2}, {120, -2}, {120, -2}}, color = {0, 0, 127}));
|
|---|
| 527 | annotation (
|
|---|
| 528 | experiment(StopTime = 0.1),
|
|---|
| 529 | experimentSetupOutput,
|
|---|
| 530 | Documentation(info = "<html><head></head><body><p>Il risultato è identico a quello che si ha con interruttori pilotati e diodi in antiparallelo entrambi ideali.</p>
|
|---|
| 531 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 532 | <p>Il sistema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 533 | </body></html>"),
|
|---|
| 534 | Diagram(coordinateSystem(extent = {{-120, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1), graphics = {Text(lineColor = {255, 0, 0}, extent = {{14, -52}, {78, -70}}, textString = "Es. proposto: TwoSQW")}),
|
|---|
| 535 | Icon(coordinateSystem(extent = {{-120, -80}, {140, 80}}, preserveAspectRatio = true, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 536 | end TwoPwmId;
|
|---|
| 537 |
|
|---|
| 538 | model TwoPwmRe "Switch-diode pairs, two-legs, square wave"
|
|---|
| 539 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 225.0) annotation (
|
|---|
| 540 | Placement(visible = true, transformation(origin = {-102, 8}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 541 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 542 | Placement(visible = true, transformation(origin = {-80, 36}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 543 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1) annotation (
|
|---|
| 544 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-64, 36})));
|
|---|
| 545 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 546 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-64, -22})));
|
|---|
| 547 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 548 | Placement(visible = true, transformation(origin = {-80, -22}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 549 | Modelica.Electrical.Analog.Ideal.IdealDiode uD1(Vknee = 0.1) annotation (
|
|---|
| 550 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {-34, 36})));
|
|---|
| 551 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW1(Vknee = 0.1) annotation (
|
|---|
| 552 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-14, 36})));
|
|---|
| 553 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW1(Vknee = 0.1) annotation (
|
|---|
| 554 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 270, origin = {-14, -22})));
|
|---|
| 555 | Modelica.Electrical.Analog.Ideal.IdealDiode dD1(Vknee = 0.1) annotation (
|
|---|
| 556 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {-34, -22})));
|
|---|
| 557 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 558 | Placement(visible = true, transformation(origin = {111, 53}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 559 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 560 | Placement(visible = true, transformation(origin = {89, 39}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 561 | Support.PwmPulser pwmPulser annotation (
|
|---|
| 562 | Placement(visible = true, transformation(origin = {51, 46}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 563 | Modelica.Blocks.Sources.BooleanExpression ul(y = pwmPulser.up) annotation (
|
|---|
| 564 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-50, 44})));
|
|---|
| 565 | Modelica.Blocks.Sources.BooleanExpression ur(y = pwmPulser.down) annotation (
|
|---|
| 566 | Placement(visible = true, transformation(origin = {0, 48}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 567 | Modelica.Blocks.Sources.BooleanExpression dl(y = pwmPulser.down) annotation (
|
|---|
| 568 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-48, -8})));
|
|---|
| 569 | Modelica.Blocks.Sources.BooleanExpression dr(y = pwmPulser.up) annotation (
|
|---|
| 570 | Placement(transformation(extent = {{10, -10}, {-10, 10}}, rotation = -90, origin = {2, -46})));
|
|---|
| 571 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 572 | Placement(visible = true, transformation(origin = {88, -4}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 573 | Modelica.Electrical.Analog.Basic.Capacitor Cf(C = 634e-6) annotation (
|
|---|
| 574 | Placement(visible = true, transformation(origin = {66, -8}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 575 | Modelica.Electrical.Analog.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 576 | Placement(visible = true, transformation(origin = {52, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 577 | Modelica.Electrical.Analog.Basic.Resistor Rf(R = 0.05) annotation (
|
|---|
| 578 | Placement(visible = true, transformation(origin = {24, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 579 | Modelica.Electrical.Analog.Sensors.VoltageSensor vLoad annotation (
|
|---|
| 580 | Placement(visible = true, transformation(origin = {112, -2}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
|
|---|
| 581 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 582 | Placement(visible = true, transformation(origin = {66, -48}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 583 | Modelica.Blocks.Math.RootMeanSquare vRMS(f = 50) annotation (
|
|---|
| 584 | Placement(visible = true, transformation(origin = {128, -40}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 585 | equation
|
|---|
| 586 | connect(V1.n, dD1.p) annotation (
|
|---|
| 587 | Line(points = {{-102, -2}, {-102, -46}, {-34, -46}, {-34, -32}}, color = {0, 0, 255}));
|
|---|
| 588 | connect(V1.n, dD.p) annotation (
|
|---|
| 589 | Line(points = {{-102, -2}, {-102, -46}, {-80, -46}, {-80, -32}}, color = {0, 0, 255}));
|
|---|
| 590 | connect(V1.p, uD1.n) annotation (
|
|---|
| 591 | Line(points = {{-102, 18}, {-102, 56}, {-24, 56}, {-24, 50}, {-34, 50}, {-34, 46}}, color = {0, 0, 255}));
|
|---|
| 592 | connect(V1.p, uD.n) annotation (
|
|---|
| 593 | Line(points = {{-102, 18}, {-102, 56}, {-74, 56}, {-74, 50}, {-80, 50}, {-80, 46}}, color = {0, 0, 255}));
|
|---|
| 594 | connect(dSW.n, dD.p) annotation (
|
|---|
| 595 | Line(points = {{-64, -32}, {-64, -46}, {-80, -46}, {-80, -32}}, color = {0, 0, 255}));
|
|---|
| 596 | connect(dD.n, dSW.p) annotation (
|
|---|
| 597 | Line(points = {{-80, -12}, {-64, -12}}, color = {0, 0, 255}));
|
|---|
| 598 | connect(uD.p, dSW.p) annotation (
|
|---|
| 599 | Line(points = {{-80, 26}, {-80, 18}, {-74, 18}, {-74, -12}, {-64, -12}}, color = {0, 0, 255}));
|
|---|
| 600 | connect(uD.p, uSW.n) annotation (
|
|---|
| 601 | Line(points = {{-80, 26}, {-80, 18}, {-64, 18}, {-64, 26}}, color = {0, 0, 255}));
|
|---|
| 602 | connect(uSW.p, uD.n) annotation (
|
|---|
| 603 | Line(points = {{-64, 46}, {-64, 50}, {-80, 50}, {-80, 46}}, color = {0, 0, 255}));
|
|---|
| 604 | connect(ur.y, uSW1.fire) annotation (
|
|---|
| 605 | Line(points = {{0, 37}, {0, 26}, {-2, 26}}, color = {255, 0, 255}));
|
|---|
| 606 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 607 | Line(points = {{103.3, 53}, {99.3875, 53}, {99.3875, 53}, {99.475, 53}, {99.475, 53}, {87.65, 53}, {87.65, 54.32}, {77.125, 54.32}, {77.125, 54.32}, {66.6, 54.32}}, color = {0, 0, 127}));
|
|---|
| 608 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 609 | Line(points = {{81.3, 39}, {78.475, 39}, {78.475, 39}, {75.65, 39}, {75.65, 38.98}, {66.6, 38.98}}, color = {0, 0, 127}));
|
|---|
| 610 | connect(uSW1.p, uD1.n) annotation (
|
|---|
| 611 | Line(points = {{-14, 46}, {-14, 50}, {-34, 50}, {-34, 46}}, color = {0, 0, 255}));
|
|---|
| 612 | connect(uD1.p, uSW1.n) annotation (
|
|---|
| 613 | Line(points = {{-34, 26}, {-34, 18}, {-14, 18}, {-14, 26}}, color = {0, 0, 255}));
|
|---|
| 614 | connect(dD1.n, dSW1.p) annotation (
|
|---|
| 615 | Line(points = {{-34, -12}, {-14, -12}}, color = {0, 0, 255}));
|
|---|
| 616 | connect(dSW1.n, dD1.p) annotation (
|
|---|
| 617 | Line(points = {{-14, -32}, {-14, -46}, {-34, -46}, {-34, -32}}, color = {0, 0, 255}));
|
|---|
| 618 | connect(uD1.p, dSW1.p) annotation (
|
|---|
| 619 | Line(points = {{-34, 26}, {-34, 18}, {-24, 18}, {-24, -12}, {-14, -12}}, color = {0, 0, 255}));
|
|---|
| 620 | connect(ul.y, uSW.fire) annotation (
|
|---|
| 621 | Line(points = {{-50, 33}, {-50, 26}, {-52, 26}}, color = {255, 0, 255}));
|
|---|
| 622 | connect(dr.y, dSW1.fire) annotation (
|
|---|
| 623 | Line(points = {{2, -35}, {2, -32}, {-2, -32}}, color = {255, 0, 255}));
|
|---|
| 624 | connect(dl.y, dSW.fire) annotation (
|
|---|
| 625 | Line(points = {{-48, -19}, {-48, -32}, {-52, -32}}, color = {255, 0, 255}));
|
|---|
| 626 | connect(vLoad.n, Load.n) annotation (
|
|---|
| 627 | Line(points = {{112, -12}, {112, -30}, {88, -30}, {88, -14}}, color = {0, 0, 255}));
|
|---|
| 628 | connect(vLoad.p, Lf.n) annotation (
|
|---|
| 629 | Line(points = {{112, 8}, {112, 20}, {62, 20}}, color = {0, 0, 255}));
|
|---|
| 630 | connect(Lf.p, Rf.n) annotation (
|
|---|
| 631 | Line(points = {{42, 20}, {34, 20}}, color = {0, 0, 255}));
|
|---|
| 632 | connect(Load.p, Lf.n) annotation (
|
|---|
| 633 | Line(points = {{88, 6}, {88, 20}, {62, 20}}, color = {0, 0, 255}));
|
|---|
| 634 | connect(Cf.p, Lf.n) annotation (
|
|---|
| 635 | Line(points = {{66, 2}, {66, 20}, {62, 20}}, color = {0, 0, 255}));
|
|---|
| 636 | connect(Rf.p, dSW.p) annotation (
|
|---|
| 637 | Line(points = {{14, 20}, {6, 20}, {6, 10}, {-74, 10}, {-74, -12}, {-64, -12}}, color = {0, 0, 255}));
|
|---|
| 638 | connect(Cf.n, dSW1.p) annotation (
|
|---|
| 639 | Line(points = {{66, -18}, {6, -18}, {6, 2}, {-24, 2}, {-24, -12}, {-14, -12}}, color = {0, 0, 255}));
|
|---|
| 640 | connect(Cf.n, Load.n) annotation (
|
|---|
| 641 | Line(points = {{66, -18}, {66, -30}, {88, -30}, {88, -14}}, color = {0, 0, 255}));
|
|---|
| 642 | connect(ground.p, Load.n) annotation (
|
|---|
| 643 | Line(points = {{66, -38}, {66, -30}, {88, -30}, {88, -14}}, color = {0, 0, 255}));
|
|---|
| 644 | connect(vRMS.u, vLoad.v) annotation (
|
|---|
| 645 | Line(points = {{128, -28}, {128, -28}, {128, -2}, {124, -2}, {124, -2}}, color = {0, 0, 127}));
|
|---|
| 646 | annotation (
|
|---|
| 647 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-120, -60}, {140, 80}}, initialScale = 0.1)),
|
|---|
| 648 | experiment(StopTime = 0.08, StartTime = 0, Tolerance = 1e-06, Interval = 8e-06),
|
|---|
| 649 | Documentation(info = "<html>
|
|---|
| 650 | <p>Notare che per avere adeguata precisione occorre scegliere un numero di step corretto.</p>
|
|---|
| 651 | <p>Se ad es. si lasciano 500 step, l'algoritmo in realtà ne metterà di più in quanto vi sono molti eventi di swithing, ma insufficienti ad una buona precisione.</p>
|
|---|
| 652 | <p>Ad es. la prima armonica della tensione di uscita dell'innerter è attesa essere pari a 225x0.7=157.5.</p>
|
|---|
| 653 | <p>Se si lasciano i 500 step il valore che si misura è invece pari a 176.3 (picco della prima armonica). Se però si selezionano 5000 step il valore viene estremamente prossimo a quello atteso.</p>
|
|---|
| 654 | </html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 655 | Icon(coordinateSystem(extent = {{-120, -60}, {140, 80}}, preserveAspectRatio = false)));
|
|---|
| 656 | end TwoPwmRe;
|
|---|
| 657 |
|
|---|
| 658 | model OnePwmNet "Real valves, one leg P-Q measure"
|
|---|
| 659 | Modelica.Electrical.Analog.Sources.SineVoltage E(V = 40, freqHz = 50) annotation (
|
|---|
| 660 | Placement(visible = true, transformation(origin = {90, -6}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 661 | InvPWM.Support.QMonoSensor Q annotation (Placement(visible=true,
|
|---|
| 662 | transformation(extent={{62,6},{78,22}}, rotation=0)));
|
|---|
| 663 | Modelica.Electrical.Analog.Sensors.PowerSensor P annotation (
|
|---|
| 664 | Placement(visible = true, transformation(extent = {{38, 6}, {54, 22}}, rotation = 0)));
|
|---|
| 665 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 666 | Placement(visible = true, transformation(origin = {-60, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 667 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 668 | Placement(visible = true, transformation(origin = {-40, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 669 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 670 | Placement(visible = true, transformation(origin = {-66, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 671 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1) annotation (
|
|---|
| 672 | Placement(visible = true, transformation(origin = {-48, 62}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 673 | Modelica.Blocks.Sources.Constant ampl(k = 0.9) annotation (
|
|---|
| 674 | Placement(visible = true, transformation(origin = {69, 43}, extent = {{-7, -7}, {7, 7}}, rotation = 180)));
|
|---|
| 675 | Modelica.Blocks.Sources.Constant phase(k = +10) annotation (
|
|---|
| 676 | Placement(visible = true, transformation(origin = {49, 57}, extent = {{-7, -7}, {7, 7}}, rotation = 180)));
|
|---|
| 677 | InvPWM.Support.PwmPulser pwmPulser annotation (Placement(visible=true,
|
|---|
| 678 | transformation(
|
|---|
| 679 | origin={17,50},
|
|---|
| 680 | extent={{-13,-12},{13,12}},
|
|---|
| 681 | rotation=180)));
|
|---|
| 682 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 683 | Placement(visible = true, transformation(extent = {{2, -44}, {22, -24}}, rotation = 0)));
|
|---|
| 684 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 685 | Placement(visible = true, transformation(origin = {-84, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 686 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 687 | Placement(visible = true, transformation(extent = {{-84, -2}, {-64, 18}}, rotation = 0)));
|
|---|
| 688 | Modelica.Electrical.Analog.Basic.Capacitor Cf(C = 634e-6) annotation (
|
|---|
| 689 | Placement(visible = true, transformation(origin = {30, -6}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 690 | Modelica.Electrical.Analog.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 691 | Placement(visible = true, transformation(extent = {{-6, 4}, {14, 24}}, rotation = 0)));
|
|---|
| 692 | Modelica.Electrical.Analog.Basic.Resistor Rf(R = 0.125) annotation (
|
|---|
| 693 | Placement(visible = true, transformation(extent = {{-42, 4}, {-22, 24}}, rotation = 0)));
|
|---|
| 694 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 695 | Placement(visible = true, transformation(origin = {-84, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 696 | Modelica.Blocks.Math.Mean meanQ(f = 50) annotation (
|
|---|
| 697 | Placement(visible = true, transformation(origin = {74, -40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 698 | Modelica.Blocks.Math.Mean meanP(f = 50) annotation (
|
|---|
| 699 | Placement(visible = true, transformation(origin = {40, -38}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 700 | equation
|
|---|
| 701 | connect(uD.n, uSW.p) annotation (
|
|---|
| 702 | Line(points = {{-66, 72}, {-66, 78}, {-48, 78}, {-48, 72}}, color = {0, 0, 255}));
|
|---|
| 703 | connect(uSW.n, uD.p) annotation (
|
|---|
| 704 | Line(points = {{-48, 52}, {-48, 44}, {-66, 44}, {-66, 52}}, color = {0, 0, 255}));
|
|---|
| 705 | connect(uSW.fire, pwmPulser.up) annotation (
|
|---|
| 706 | Line(points = {{-36, 52}, {-20, 52}, {-20, 42.08}, {2.7, 42.08}}, color = {255, 0, 255}));
|
|---|
| 707 | connect(dSW.n, dD.p) annotation (
|
|---|
| 708 | Line(points = {{-40, -34}, {-40, -48}, {-60, -48}, {-60, -34}}, color = {0, 0, 255}));
|
|---|
| 709 | connect(dD.n, dSW.p) annotation (
|
|---|
| 710 | Line(points = {{-60, -14}, {-60, -8}, {-40, -8}, {-40, -14}}, color = {0, 0, 255}));
|
|---|
| 711 | connect(pwmPulser.down, dSW.fire) annotation (
|
|---|
| 712 | Line(points = {{2.7, 56.96}, {-12.3, 56.96}, {-12.3, -30.04}, {-28.3, -30.04}, {-28.3, -34.04}}, color = {255, 0, 255}));
|
|---|
| 713 | connect(V1.p, uD.n) annotation (
|
|---|
| 714 | Line(points = {{-84, 44}, {-84, 78}, {-66, 78}, {-66, 72}}, color = {0, 0, 255}));
|
|---|
| 715 | connect(V1.n, V2.p) annotation (
|
|---|
| 716 | Line(points = {{-84, 24}, {-84, 0}, {-84, 0}}, color = {0, 0, 255}));
|
|---|
| 717 | connect(ground.p, V1.n) annotation (
|
|---|
| 718 | Line(points = {{-74, 18}, {-74, 24}, {-84, 24}}, color = {0, 0, 255}));
|
|---|
| 719 | connect(Rf.p, dD.n) annotation (
|
|---|
| 720 | Line(points = {{-42, 14}, {-60, 14}, {-60, -14}}, color = {0, 0, 255}));
|
|---|
| 721 | connect(Lf.p, Rf.n) annotation (
|
|---|
| 722 | Line(points = {{-6, 14}, {-22, 14}}, color = {0, 0, 255}));
|
|---|
| 723 | connect(P.pc, Lf.n) annotation (
|
|---|
| 724 | Line(points = {{38, 14}, {14, 14}}, color = {0, 0, 255}));
|
|---|
| 725 | connect(P.nv, Cf.n) annotation (
|
|---|
| 726 | Line(points = {{46, 6}, {46, -16}, {30, -16}}, color = {0, 0, 255}));
|
|---|
| 727 | connect(E.n, Cf.n) annotation (
|
|---|
| 728 | Line(points = {{90, -16}, {30, -16}}, color = {0, 0, 255}));
|
|---|
| 729 | connect(Cf.p, P.pc) annotation (
|
|---|
| 730 | Line(points = {{30, 4}, {30, 14}, {38, 14}}, color = {0, 0, 255}));
|
|---|
| 731 | connect(ground1.p, Cf.n) annotation (
|
|---|
| 732 | Line(points = {{12, -24}, {12, -24}, {12, -16}, {30, -16}}, color = {0, 0, 255}));
|
|---|
| 733 | connect(V2.n, dD.p) annotation (
|
|---|
| 734 | Line(points = {{-84, -20}, {-84, -48}, {-60, -48}, {-60, -34}}, color = {0, 0, 255}));
|
|---|
| 735 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 736 | Line(points = {{61.3, 43}, {45.65, 43}, {45.65, 42.32}, {32.6, 42.32}}, color = {0, 0, 127}));
|
|---|
| 737 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 738 | Line(points = {{41.3, 57}, {39.65, 57}, {39.65, 56.48}, {32.6, 56.48}}, color = {0, 0, 127}));
|
|---|
| 739 | connect(uD.p, dD.n) annotation (
|
|---|
| 740 | Line(points = {{-66, 52}, {-66, 44}, {-60, 44}, {-60, -14}}, color = {0, 0, 255}));
|
|---|
| 741 | connect(Q.pc, P.nc) annotation (
|
|---|
| 742 | Line(points = {{62, 14}, {62, 14}, {54, 14}}, color = {0, 0, 255}));
|
|---|
| 743 | connect(P.pv, P.nc) annotation (
|
|---|
| 744 | Line(points = {{46, 10}, {54, 10}, {54, 2}}, color = {0, 0, 255}));
|
|---|
| 745 | connect(Q.nv, E.n) annotation (
|
|---|
| 746 | Line(points = {{70, 6}, {70, -16}, {90, -16}}, color = {0, 0, 255}));
|
|---|
| 747 | connect(E.p, Q.nc) annotation (
|
|---|
| 748 | Line(points = {{90, 4}, {90, 14}, {78, 14}}, color = {0, 0, 255}));
|
|---|
| 749 | connect(Q.pv, Q.nc) annotation (
|
|---|
| 750 | Line(points = {{70, 10}, {78, 10}, {78, 2}}, color = {0, 0, 255}));
|
|---|
| 751 | connect(meanP.u, P.power) annotation (
|
|---|
| 752 | Line(points = {{40, -26}, {40, -26}, {40, 5.2}, {38, 5.2}}, color = {0, 0, 127}));
|
|---|
| 753 | connect(meanQ.u, Q.power) annotation (
|
|---|
| 754 | Line(points = {{74, -28}, {74, -28}, {74, -24}, {63.6, -24}, {63.6, 5.2}}, color = {0, 0, 127}));
|
|---|
| 755 | annotation (
|
|---|
| 756 | experiment(StopTime = 0.06, Interval = 5e-005),
|
|---|
| 757 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 758 | </body></html>"),
|
|---|
| 759 | Diagram(coordinateSystem(extent = {{-100, -60}, {100, 80}}, preserveAspectRatio = false, initialScale = 0.1)),
|
|---|
| 760 | Icon(coordinateSystem(extent = {{-100, -80}, {100, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 761 | end OnePwmNet;
|
|---|
| 762 |
|
|---|
| 763 | model TwoPwmDCFilt "Id switches - TwoLegs - DC filter"
|
|---|
| 764 | parameter Real Udir = 0.7;
|
|---|
| 765 | parameter Real LDF = 1e-006;
|
|---|
| 766 | parameter Real Rbat = 0.1;
|
|---|
| 767 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 768 | Placement(visible = true, transformation(origin = {102, 58}, extent = {{-8, 8}, {8, -8}}, rotation = 180)));
|
|---|
| 769 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 770 | Placement(visible = true, transformation(origin = {80, 42}, extent = {{-8, 8}, {8, -8}}, rotation = 180)));
|
|---|
| 771 | InvPWM.Support.PwmPulser pwmPulser annotation (Placement(visible=true,
|
|---|
| 772 | transformation(
|
|---|
| 773 | origin={41,50},
|
|---|
| 774 | extent={{-13,13},{13,-13}},
|
|---|
| 775 | rotation=180)));
|
|---|
| 776 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWd annotation (
|
|---|
| 777 | Placement(visible = true, transformation(origin = {-30, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 778 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu annotation (
|
|---|
| 779 | Placement(visible = true, transformation(origin = {-30, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 780 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 2) annotation (
|
|---|
| 781 | Placement(visible = true, transformation(origin = {104, 0}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 782 | Modelica.Electrical.Analog.Basic.Capacitor Cf(C = 634e-6) annotation (
|
|---|
| 783 | Placement(visible = true, transformation(origin = {84, -12}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 784 | Modelica.Electrical.Analog.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 785 | Placement(visible = true, transformation(origin = {70, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 786 | Modelica.Electrical.Analog.Basic.Resistor Rf(R = 0.05) annotation (
|
|---|
| 787 | Placement(visible = true, transformation(origin = {42, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 788 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu1 annotation (
|
|---|
| 789 | Placement(visible = true, transformation(origin = {-4, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 790 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch SWu2 annotation (
|
|---|
| 791 | Placement(visible = true, transformation(origin = {-4, -32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 792 | Modelica.Blocks.Sources.BooleanExpression ul(y = pwmPulser.up) annotation (
|
|---|
| 793 | Placement(visible = true, transformation(origin = {-20, 66}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 794 | Modelica.Blocks.Sources.BooleanExpression ur(y = pwmPulser.down) annotation (
|
|---|
| 795 | Placement(visible = true, transformation(origin = {4, 66}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 796 | Modelica.Blocks.Sources.BooleanExpression dl(y = pwmPulser.down) annotation (
|
|---|
| 797 | Placement(visible = true, transformation(origin = {-22, -66}, extent = {{10, -10}, {-10, 10}}, rotation = -90)));
|
|---|
| 798 | Modelica.Blocks.Sources.BooleanExpression dr(y = pwmPulser.up) annotation (
|
|---|
| 799 | Placement(visible = true, transformation(origin = {6, -64}, extent = {{10, -10}, {-10, 10}}, rotation = -90)));
|
|---|
| 800 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 801 | Placement(visible = true, transformation(extent = {{48, -60}, {68, -40}}, rotation = 0)));
|
|---|
| 802 | Modelica.Electrical.Analog.Sources.ConstantVoltage VDC(V = 50) annotation (
|
|---|
| 803 | Placement(visible = true, transformation(origin = {-104, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 804 | Modelica.Electrical.Analog.Basic.Resistor Rbat1(R = Rbat) annotation (
|
|---|
| 805 | Placement(visible = true, transformation(origin = {-104, 32}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 806 | Modelica.Electrical.Analog.Basic.Resistor Rbat2(R = Rbat) annotation (
|
|---|
| 807 | Placement(visible = true, transformation(origin = {-104, -38}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 808 | Modelica.Electrical.Analog.Basic.Capacitor dcCap(C = 0.01, v(fixed = true, start = 50)) annotation (
|
|---|
| 809 | Placement(visible = true, transformation(origin = {-62, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 810 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = LDF) annotation (
|
|---|
| 811 | Placement(visible = true, transformation(extent = {{-92, 48}, {-72, 68}}, rotation = 0)));
|
|---|
| 812 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = LDF) annotation (
|
|---|
| 813 | Placement(visible = true, transformation(extent = {{-94, -72}, {-74, -52}}, rotation = 0)));
|
|---|
| 814 | Modelica.Electrical.Analog.Sensors.CurrentSensor iDc0 annotation (
|
|---|
| 815 | Placement(visible = true, transformation(extent = {{-34, 68}, {-54, 48}}, rotation = 0)));
|
|---|
| 816 | Modelica.Electrical.Analog.Sensors.PowerSensor pow annotation (
|
|---|
| 817 | Placement(visible = true, transformation(extent = {{6, 10}, {26, 30}}, rotation = 0)));
|
|---|
| 818 | Modelica.Blocks.Math.Mean meanP(f = 100) annotation (
|
|---|
| 819 | Placement(visible = true, transformation(origin = {44, -12}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 820 | equation
|
|---|
| 821 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 822 | Line(points = {{71.2, 42}, {65.65, 42}, {65.65, 42.98}, {56.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 823 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 824 | Line(points = {{93.2, 58}, {77.65, 58}, {77.65, 58.32}, {56.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 825 | connect(Lf.p, Rf.n) annotation (
|
|---|
| 826 | Line(points = {{60, 20}, {60, 20}, {52, 20}}, color = {0, 0, 255}));
|
|---|
| 827 | connect(Load.p, Lf.n) annotation (
|
|---|
| 828 | Line(points = {{104, 10}, {104, 20}, {80, 20}}, color = {0, 0, 255}));
|
|---|
| 829 | connect(Cf.p, Lf.n) annotation (
|
|---|
| 830 | Line(points = {{84, -2}, {84, 20}, {80, 20}}, color = {0, 0, 255}));
|
|---|
| 831 | connect(Load.n, Cf.n) annotation (
|
|---|
| 832 | Line(points = {{104, -10}, {104, -30}, {84, -30}, {84, -22}}, color = {0, 0, 255}));
|
|---|
| 833 | connect(SWu.n, SWd.p) annotation (
|
|---|
| 834 | Line(points = {{-30, 30}, {-30, -22}}, color = {0, 0, 255}));
|
|---|
| 835 | connect(SWu1.n, SWu2.p) annotation (
|
|---|
| 836 | Line(points = {{-4, 30}, {-4, 18}, {-4, 4}, {-4, -22}}, color = {0, 0, 255}));
|
|---|
| 837 | connect(Cf.n, SWu2.p) annotation (
|
|---|
| 838 | Line(points = {{84, -22}, {84, -30}, {18, -30}, {18, -14}, {-4, -14}, {-4, -22}}, color = {0, 0, 255}));
|
|---|
| 839 | connect(SWu.control, ul.y) annotation (
|
|---|
| 840 | Line(points = {{-18, 40}, {-20, 40}, {-20, 55}}, color = {255, 0, 255}));
|
|---|
| 841 | connect(SWu1.control, ur.y) annotation (
|
|---|
| 842 | Line(points = {{8, 40}, {4, 40}, {4, 55}}, color = {255, 0, 255}));
|
|---|
| 843 | connect(dl.y, SWd.control) annotation (
|
|---|
| 844 | Line(points = {{-22, -55}, {-21, -55}, {-21, -32}, {-18, -32}}, color = {255, 0, 255}));
|
|---|
| 845 | connect(dr.y, SWu2.control) annotation (
|
|---|
| 846 | Line(points = {{6, -53}, {6, -54}, {6, -32}, {8, -32}}, color = {255, 0, 255}));
|
|---|
| 847 | connect(VDC.n, Rbat2.p) annotation (
|
|---|
| 848 | Line(points = {{-104, -12}, {-104, -28}}, color = {0, 0, 255}));
|
|---|
| 849 | connect(Lf1.p, Rbat1.p) annotation (
|
|---|
| 850 | Line(points = {{-92, 58}, {-104, 58}, {-104, 42}}, color = {0, 0, 255}));
|
|---|
| 851 | connect(Lf2.p, Rbat2.n) annotation (
|
|---|
| 852 | Line(points = {{-94, -62}, {-104, -62}, {-104, -48}}, color = {0, 0, 255}));
|
|---|
| 853 | connect(ground.p, SWu2.p) annotation (
|
|---|
| 854 | Line(points = {{58, -40}, {58, -30}, {18, -30}, {18, -14}, {-4, -14}, {-4, -22}}, color = {0, 0, 255}));
|
|---|
| 855 | connect(SWu.p, SWu1.p) annotation (
|
|---|
| 856 | Line(points = {{-30, 50}, {-4, 50}}, color = {0, 0, 255}));
|
|---|
| 857 | connect(Lf2.n, SWd.n) annotation (
|
|---|
| 858 | Line(points = {{-74, -62}, {-40, -62}, {-40, -42}, {-30, -42}}, color = {0, 0, 255}));
|
|---|
| 859 | connect(SWd.n, SWu2.n) annotation (
|
|---|
| 860 | Line(points = {{-30, -42}, {-4, -42}}, color = {0, 0, 255}));
|
|---|
| 861 | connect(dcCap.n, SWd.n) annotation (
|
|---|
| 862 | Line(points = {{-62, -10}, {-62, -62}, {-40, -62}, {-40, -42}, {-30, -42}}, color = {0, 0, 255}));
|
|---|
| 863 | connect(VDC.p, Rbat1.n) annotation (
|
|---|
| 864 | Line(points = {{-104, 8}, {-104, 22}}, color = {0, 0, 255}));
|
|---|
| 865 | connect(dcCap.p, Lf1.n) annotation (
|
|---|
| 866 | Line(points = {{-62, 10}, {-62, 58}, {-72, 58}}, color = {0, 0, 255}));
|
|---|
| 867 | connect(iDc0.p, SWu.p) annotation (
|
|---|
| 868 | Line(points = {{-34, 58}, {-32, 58}, {-32, 50}, {-30, 50}}, color = {0, 0, 255}));
|
|---|
| 869 | connect(iDc0.n, Lf1.n) annotation (
|
|---|
| 870 | Line(points = {{-54, 58}, {-64, 58}, {-72, 58}}, color = {0, 0, 255}));
|
|---|
| 871 | connect(Rf.p, pow.nc) annotation (
|
|---|
| 872 | Line(points = {{32, 20}, {26, 20}}, color = {0, 0, 255}));
|
|---|
| 873 | connect(pow.nv, SWu2.p) annotation (
|
|---|
| 874 | Line(points = {{16, 10}, {16, -14}, {-4, -14}, {-4, -22}}, color = {0, 0, 255}));
|
|---|
| 875 | connect(pow.pv, pow.nc) annotation (
|
|---|
| 876 | Line(points = {{-8, 30}, {2, 30}, {2, 20}}, color = {0, 0, 255}));
|
|---|
| 877 | connect(pow.pc, SWd.p) annotation (
|
|---|
| 878 | Line(points = {{6, 20}, {-30, 20}, {-30, -22}}, color = {0, 0, 255}));
|
|---|
| 879 | connect(pow.power, meanP.u) annotation (
|
|---|
| 880 | Line(points = {{6, 9}, {8, 9}, {8, 4}, {44, 4}, {44, 0}}, color = {0, 0, 127}));
|
|---|
| 881 | annotation (
|
|---|
| 882 | experiment(StopTime = 0.1),
|
|---|
| 883 | experimentSetupOutput,
|
|---|
| 884 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 885 | </body></html>"),
|
|---|
| 886 | Diagram(coordinateSystem(extent = {{-120, -80}, {120, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})),
|
|---|
| 887 | Icon(coordinateSystem(extent = {{-140, -80}, {120, 80}}, preserveAspectRatio = true, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 888 | end TwoPwmDCFilt;
|
|---|
| 889 | end SinglePhase;
|
|---|
| 890 |
|
|---|
| 891 | package ThreePhase
|
|---|
| 892 | model Id3SQW "Three-phase (multiphase) with bidirectional switches"
|
|---|
| 893 | Modelica.SIunits.Power aronPower;
|
|---|
| 894 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 895 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 896 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(2, 3)) annotation (
|
|---|
| 897 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 898 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 899 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 900 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 901 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 902 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 903 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 904 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 905 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 906 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 907 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 908 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 909 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 910 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 911 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 912 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 913 | Placement(visible = true, transformation(origin = {-70, -18}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 914 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 915 | Placement(visible = true, transformation(origin = {-70, 26}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 916 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 917 | Placement(visible = true, transformation(origin = {-92, -10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 918 | Modelica.Blocks.Sources.BooleanPulse booleanPulse[3](width = fill(50, 3), period = fill(1 / 50, 3), startTime = 1 / 50 * {-1 / 3, 0, 1 / 3}) annotation (
|
|---|
| 919 | Placement(visible = true, transformation(extent = {{16, 40}, {-4, 60}}, rotation = 0)));
|
|---|
| 920 | Modelica.Blocks.MathBoolean.Not myNot[3] annotation (
|
|---|
| 921 | Placement(visible = true, transformation(origin = {-24, 20}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 922 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor1 annotation (
|
|---|
| 923 | Placement(transformation(extent = {{44, -4}, {64, 16}})));
|
|---|
| 924 | equation
|
|---|
| 925 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 926 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 927 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 928 | Line(points = {{-70, 36}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 929 | connect(ground2.p, V2.n) annotation (
|
|---|
| 930 | Line(points = {{-92, 0}, {-70, 0}, {-70, 16}}, color = {0, 0, 255}));
|
|---|
| 931 | connect(V2.n, V1.p) annotation (
|
|---|
| 932 | Line(points = {{-70, 16}, {-70, -8}}, color = {0, 0, 255}));
|
|---|
| 933 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 934 | Line(points = {{-70, -28}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 935 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 936 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 937 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 938 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 939 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 940 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 941 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 942 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 943 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 944 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 945 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 946 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 947 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 948 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 949 | aronPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 950 | connect(booleanPulse.y, upSW.control) annotation (
|
|---|
| 951 | Line(points = {{-5, 50}, {-30, 50}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 952 | connect(myNot.u, booleanPulse.y) annotation (
|
|---|
| 953 | Line(points = {{-24, 25.6}, {-24, 50}, {-5, 50}}, color = {255, 0, 255}));
|
|---|
| 954 | connect(myNot.y, downSW.control) annotation (
|
|---|
| 955 | Line(points = {{-24, 15.2}, {-26, 15.2}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 956 | connect(aronSensor1.plug_p, Cf.plug_p) annotation (
|
|---|
| 957 | Line(points = {{44, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 958 | connect(aronSensor1.plug_n, Rload.plug_p) annotation (
|
|---|
| 959 | Line(points = {{64, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 960 | annotation (
|
|---|
| 961 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -60}, {100, 80}})),
|
|---|
| 962 | experimentSetupOutput,
|
|---|
| 963 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 964 | </body></html>"),
|
|---|
| 965 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001, Interval = 0.0002),
|
|---|
| 966 | __OpenModelica_commandLineOptions = "");
|
|---|
| 967 | end Id3SQW;
|
|---|
| 968 |
|
|---|
| 969 | model Id3Pwm "Tri-phase multiphase lib with ideal switches"
|
|---|
| 970 | Modelica.SIunits.Power loadPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 971 | Modelica.SIunits.Voltage Uac0 = Rf.plug_p.pin[1].v - Rf.plug_p.pin[2].v;
|
|---|
| 972 | Modelica.SIunits.Voltage Uacf = Rload.plug_p.pin[1].v - Rload.plug_p.pin[2].v;
|
|---|
| 973 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 974 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 975 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(10, 3)) annotation (
|
|---|
| 976 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 977 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 978 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 979 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 980 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 981 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 982 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 983 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 984 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 985 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 986 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 987 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 988 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 989 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 990 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 991 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(0.7, 3)) annotation (
|
|---|
| 992 | Placement(visible = true, transformation(origin = {80, 50}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 993 | Modelica.Blocks.Sources.Constant phase[3](k = {0, -120, 120}) annotation (
|
|---|
| 994 | Placement(visible = true, transformation(origin = {48, 42}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 995 | Support.PwmPulser pwmPulser[3](fSig = fill(50, 3), fCar = fill(1000, 3)) annotation (
|
|---|
| 996 | Placement(visible = true, transformation(origin = {5, 50}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 997 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 250) annotation (
|
|---|
| 998 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 999 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 250) annotation (
|
|---|
| 1000 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1001 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 1002 | Placement(visible = true, transformation(origin = {-108, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1003 | Modelica.Electrical.Analog.Basic.Resistor Rdc(R = 1e-5) annotation (
|
|---|
| 1004 | Placement(visible = true, transformation(origin = {-90, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1005 | equation
|
|---|
| 1006 | connect(Rdc.n, V2.n) annotation (
|
|---|
| 1007 | Line(points = {{-80, 10}, {-70, 10}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 1008 | connect(Rdc.p, ground2.p) annotation (
|
|---|
| 1009 | Line(points = {{-100, 10}, {-108, 10}, {-108, 8}}, color = {0, 0, 255}));
|
|---|
| 1010 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1011 | Line(points = {{37, 42}, {28, 42}, {28, 42.98}, {20.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 1012 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1013 | Line(points = {{69, 50}, {66, 50}, {66, 58}, {50, 58}, {50, 58.32}, {20.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 1014 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 1015 | Line(points = {{-9.3, 42.46}, {-26, 42.46}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 1016 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 1017 | Line(points = {{-9.3, 58.58}, {-20, 58.58}, {-20, 58}, {-30, 58}, {-30, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 1018 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 1019 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 1020 | connect(V2.n, V1.p) annotation (
|
|---|
| 1021 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 1022 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 1023 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 1024 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1025 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1026 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1027 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 1028 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1029 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1030 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1031 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 1032 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1033 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 1034 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 1035 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 1036 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 1037 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 1038 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 1039 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 1040 | connect(
|
|---|
| 1041 | Cf.plug_p, Rload.plug_p) annotation (
|
|---|
| 1042 | Line(points = {{32, 6}, {78, 6}, {78, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 1043 | annotation (
|
|---|
| 1044 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-120, -60}, {100, 80}}, initialScale = 0.1), graphics = {Text(extent = {{-18, -22}, {-18, -22}}, textString = "text"), Text(origin = {9.125, -33.3333}, extent = {{-13.125, 1.33333}, {36.875, -8.66667}}, textString = "Valori Rdc: v. info", fontName = "Arial")}),
|
|---|
| 1045 | experimentSetupOutput,
|
|---|
| 1046 | Documentation(info = "<html><head></head><body><p>Fra Rdc=1e-3 e =1e3 cambiano radicalmente le tensioni stellate sul carico ma poco le concatenate: la componente fondamentale è la stessa</p><p> La sol con Udc isolato dà tensione migliore sul carico</p>
|
|---|
| 1047 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 1048 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001, Interval = 2e-05),
|
|---|
| 1049 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1050 | end Id3Pwm;
|
|---|
| 1051 |
|
|---|
| 1052 | model Id3PwmOF "Tri-phase multiphase lib with ideal switches"
|
|---|
| 1053 | Modelica.SIunits.Power loadPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 1054 | Modelica.SIunits.Voltage Uac0 = Rf.plug_p.pin[1].v - Rf.plug_p.pin[2].v;
|
|---|
| 1055 | Modelica.SIunits.Voltage Uacf = Rload.plug_p.pin[1].v - Rload.plug_p.pin[2].v;
|
|---|
| 1056 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 1057 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1058 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(10, 3)) annotation (
|
|---|
| 1059 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1060 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 1061 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1062 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 1063 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1064 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 1065 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1066 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 1067 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1068 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 1069 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 1070 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1071 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1072 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1073 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1074 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(0.7, 3)) annotation (
|
|---|
| 1075 | Placement(visible = true, transformation(origin = {80, 50}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1076 | Modelica.Blocks.Sources.Constant phase[3](k = {0, -120, 120}) annotation (
|
|---|
| 1077 | Placement(visible = true, transformation(origin = {48, 42}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1078 | Support.PwmPulser pwmPulser[3](fSig = fill(50, 3), fCar = fill(1000, 3)) annotation (
|
|---|
| 1079 | Placement(visible = true, transformation(origin = {5, 50}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1080 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 250) annotation (
|
|---|
| 1081 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1082 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 250) annotation (
|
|---|
| 1083 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1084 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 1085 | Placement(visible = true, transformation(origin = {-108, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1086 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor annotation (
|
|---|
| 1087 | Placement(visible = true, transformation(origin = {54, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1088 | Modelica.Electrical.Analog.Basic.Resistor Rdc(R = 1e-5) annotation (
|
|---|
| 1089 | Placement(visible = true, transformation(origin = {-90, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1090 | equation
|
|---|
| 1091 | connect(Rdc.n, V2.n) annotation (
|
|---|
| 1092 | Line(points = {{-80, 10}, {-70, 10}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 1093 | connect(Rdc.p, ground2.p) annotation (
|
|---|
| 1094 | Line(points = {{-100, 10}, {-108, 10}, {-108, 8}}, color = {0, 0, 255}));
|
|---|
| 1095 | connect(aronSensor.plug_n, Rload.plug_p) annotation (
|
|---|
| 1096 | Line(points = {{64, 6}, {78, 6}, {78, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 1097 | connect(aronSensor.plug_p, Cf.plug_p) annotation (
|
|---|
| 1098 | Line(points = {{44, 6}, {32, 6}, {32, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 1099 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1100 | Line(points = {{37, 42}, {28, 42}, {28, 42.98}, {20.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 1101 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1102 | Line(points = {{69, 50}, {66, 50}, {66, 58}, {50, 58}, {50, 58.32}, {20.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 1103 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 1104 | Line(points = {{-9.3, 42.46}, {-26, 42.46}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 1105 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 1106 | Line(points = {{-9.3, 58.58}, {-20, 58.58}, {-20, 58}, {-30, 58}, {-30, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 1107 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 1108 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 1109 | connect(V2.n, V1.p) annotation (
|
|---|
| 1110 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 1111 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 1112 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 1113 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1114 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1115 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1116 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 1117 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1118 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1119 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1120 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 1121 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1122 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 1123 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 1124 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 1125 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 1126 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 1127 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 1128 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 1129 | annotation (
|
|---|
| 1130 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-120, -60}, {100, 80}}, initialScale = 0.1), graphics = {Text(extent = {{-18, -22}, {-18, -22}}, textString = "text"), Text(origin = {-2.875, -19.3333}, extent = {{-13.125, 1.33333}, {36.875, -8.66667}}, textString = "Valori Rdc: v. info", fontName = "Arial"), Text(origin = {-8.19, -31.6}, extent = {{-27.81, 1.6}, {78.19, -10.4}}, textString = "Aron non va con NF
|
|---|
| 1131 | (toglierlo e leggere loadPower\n o metterlo a monte del condensatore)", fontName = "Arial")}),
|
|---|
| 1132 | experimentSetupOutput,
|
|---|
| 1133 | Documentation(info = "<html><head></head><body><p>Fra Rdc=1e-3 e =1e3 cambiano radicalmente le tensioni stellate sul carico ma poco le concatenate: la componente fondamentale è la stessa</p><p> La sol con Udc isolato dà tensione migliore sul carico</p>
|
|---|
| 1134 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 1135 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001, Interval = 2e-05),
|
|---|
| 1136 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1137 | end Id3PwmOF;
|
|---|
| 1138 |
|
|---|
| 1139 | model Id3PwmNet "Tri-phase multiphase lib with ideal switches"
|
|---|
| 1140 | parameter Real ampl_ = 0.8;
|
|---|
| 1141 | parameter Real phase_ = 10;
|
|---|
| 1142 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 1143 | Placement(visible = true, transformation(origin = {68, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1144 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 1145 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1146 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 1147 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1148 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 1149 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1150 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 1151 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 1152 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1153 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1154 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1155 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1156 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(ampl_, 3)) annotation (
|
|---|
| 1157 | Placement(visible = true, transformation(origin = {89, 71}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 1158 | Modelica.Blocks.Sources.Constant phase0[3](k = {0, -120, 120}) annotation (
|
|---|
| 1159 | Placement(visible = true, transformation(origin = {70, 52}, extent = {{-8, 8}, {8, -8}}, rotation = 180)));
|
|---|
| 1160 | Support.PwmPulser pwmPulser[3](fSig = fill(50, 3), fCar = fill(1050, 3)) annotation (
|
|---|
| 1161 | Placement(visible = true, transformation(origin = {5, 50}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1162 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 1163 | Placement(visible = true, transformation(origin = {-70, -20}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1164 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 1165 | Placement(visible = true, transformation(origin = {-70, 40}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1166 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor annotation (
|
|---|
| 1167 | Placement(visible = true, transformation(origin = {44, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1168 | Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage(V = fill(40, 3), freqHz = fill(50, 3)) annotation (
|
|---|
| 1169 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {68, -4})));
|
|---|
| 1170 | Modelica.Blocks.Math.Add add[3] annotation (
|
|---|
| 1171 | Placement(transformation(extent = {{52, 32}, {32, 52}})));
|
|---|
| 1172 | Modelica.Blocks.Sources.Constant phaseOffs[3](k = fill(phase_, 3)) annotation (
|
|---|
| 1173 | Placement(visible = true, transformation(origin = {85, 25}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 1174 | Modelica.Electrical.Analog.Basic.Resistor Rdc(R = 1e-5) annotation (
|
|---|
| 1175 | Placement(visible = true, transformation(origin = {-90, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1176 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 1177 | Placement(visible = true, transformation(origin = {-112, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1178 | equation
|
|---|
| 1179 | connect(Rdc.n, V2.n) annotation (
|
|---|
| 1180 | Line(points = {{-80, 18}, {-70, 18}, {-70, 30}, {-70, 30}}, color = {0, 0, 255}));
|
|---|
| 1181 | connect(Rdc.p, ground2.p) annotation (
|
|---|
| 1182 | Line(points = {{-100, 18}, {-112, 18}, {-112, 8}, {-112, 8}}, color = {0, 0, 255}));
|
|---|
| 1183 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1184 | Line(points = {{81.3, 71}, {32, 71}, {32, 58}, {26, 58}, {26, 58.32}, {20.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 1185 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 1186 | Line(points = {{-9.3, 42.46}, {-26, 42.46}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 1187 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 1188 | Line(points = {{-9.3, 58.58}, {-20, 58.58}, {-20, 58}, {-30, 58}, {-30, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 1189 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 1190 | Line(points = {{-70, 50}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 1191 | connect(V2.n, V1.p) annotation (
|
|---|
| 1192 | Line(points = {{-70, 30}, {-70, -10}}, color = {0, 0, 255}));
|
|---|
| 1193 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 1194 | Line(points = {{-70, -30}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 1195 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1196 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1197 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1198 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 1199 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1200 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1201 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1202 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 1203 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1204 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 1205 | connect(aronSensor.plug_n, sineVoltage.plug_p) annotation (
|
|---|
| 1206 | Line(points = {{54, 6}, {68, 6}}, color = {0, 0, 255}));
|
|---|
| 1207 | connect(sineVoltage.plug_n, star2.plug_p) annotation (
|
|---|
| 1208 | Line(points = {{68, -14}, {68, -20}}, color = {0, 0, 255}));
|
|---|
| 1209 | connect(add.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1210 | Line(points = {{31, 42}, {28, 42}, {28, 42.98}, {20.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 1211 | connect(phase0.y, add.u1) annotation (
|
|---|
| 1212 | Line(points = {{61.2, 52}, {60, 52}, {60, 48}, {54, 48}}, color = {0, 0, 127}));
|
|---|
| 1213 | connect(phaseOffs.y, add.u2) annotation (
|
|---|
| 1214 | Line(points = {{77.3, 25}, {69.65, 25}, {69.65, 36}, {54, 36}}, color = {0, 0, 127}));
|
|---|
| 1215 | connect(aronSensor.plug_p, Lf.plug_n) annotation (
|
|---|
| 1216 | Line(points = {{34, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 1217 | annotation (
|
|---|
| 1218 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-120, -60}, {100, 80}})),
|
|---|
| 1219 | experimentSetupOutput,
|
|---|
| 1220 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 1221 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 1222 | experiment(StopTime = 0.2, Interval = 2e-05),
|
|---|
| 1223 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1224 | end Id3PwmNet;
|
|---|
| 1225 |
|
|---|
| 1226 | model Id3PwmMach "Tri-phase multiphase lib with ideal switches"
|
|---|
| 1227 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 1228 | Placement(visible = true, transformation(origin = {92, -10}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1229 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 1230 | Placement(visible = true, transformation(origin = {-58, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1231 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 1232 | Placement(visible = true, transformation(origin = {-58, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 1233 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1234 | Placement(visible = true, transformation(origin = {-58, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1235 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1236 | Placement(visible = true, transformation(origin = {-58, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1237 | Modelica.Blocks.Sources.Constant ampl(k = 0.95) annotation (
|
|---|
| 1238 | Placement(visible = true, transformation(origin = {49, 65}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 1239 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 150) annotation (
|
|---|
| 1240 | Placement(visible = true, transformation(origin = {-86, -20}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1241 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 150) annotation (
|
|---|
| 1242 | Placement(visible = true, transformation(origin = {-86, 40}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1243 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 1244 | Placement(visible = true, transformation(origin = {-78, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1245 | Modelica.Blocks.Sources.Constant phase(k = 20) annotation (
|
|---|
| 1246 | Placement(visible = true, transformation(origin = {51, 37}, extent = {{-7, 7}, {7, -7}}, rotation = 180)));
|
|---|
| 1247 | Support.PwmPulser3 pwmPulser3 annotation (
|
|---|
| 1248 | Placement(transformation(extent = {{18, 34}, {-2, 54}})));
|
|---|
| 1249 | Modelica.Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_PermanentMagnet smpm(phiMechanical(fixed = false, start = 1.570796326794897), wMechanical(fixed = false, start = 157.0796326794897)) annotation (
|
|---|
| 1250 | Placement(transformation(extent = {{68, -14}, {48, 6}})));
|
|---|
| 1251 | Modelica.Electrical.MultiPhase.Sensors.PowerSensor powerSensor annotation (
|
|---|
| 1252 | Placement(transformation(extent = {{14, 0}, {34, 20}})));
|
|---|
| 1253 | Modelica.Mechanics.Rotational.Sensors.AngleSensor angleSensor annotation (
|
|---|
| 1254 | Placement(transformation(extent = {{-10, 10}, {10, -10}}, rotation = -90, origin = {40, -24})));
|
|---|
| 1255 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.005, 3)) annotation (
|
|---|
| 1256 | Placement(visible = true, transformation(origin = {0, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1257 | Modelica.Mechanics.Rotational.Sources.ConstantSpeed constantSpeed(w_fixed(displayUnit = "rpm") = 157.07963267949) annotation (
|
|---|
| 1258 | Placement(transformation(extent = {{-4, -28}, {12, -12}})));
|
|---|
| 1259 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 1260 | Placement(visible = true, transformation(origin = {-24, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1261 | equation
|
|---|
| 1262 | connect(ground2.p, V2.n) annotation (
|
|---|
| 1263 | Line(points = {{-78, 8}, {-78, 20}, {-86, 20}, {-86, 30}}, color = {0, 0, 255}));
|
|---|
| 1264 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 1265 | Line(points = {{-86, 50}, {-86, 70}, {-58, 70}, {-58, 66}}, color = {0, 0, 255}));
|
|---|
| 1266 | connect(V2.n, V1.p) annotation (
|
|---|
| 1267 | Line(points = {{-86, 30}, {-86, -10}}, color = {0, 0, 255}));
|
|---|
| 1268 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 1269 | Line(points = {{-86, -30}, {-86, -54}, {-58, -54}}, color = {0, 0, 255}));
|
|---|
| 1270 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1271 | Line(points = {{-58, 18}, {-58, -4}}, color = {0, 0, 255}));
|
|---|
| 1272 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1273 | Line(points = {{-58, 38}, {-58, 46}}, color = {0, 0, 255}));
|
|---|
| 1274 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1275 | Line(points = {{-58, -24}, {-58, -34}}, color = {0, 0, 255}));
|
|---|
| 1276 | connect(phase.y, pwmPulser3.ph_deg) annotation (
|
|---|
| 1277 | Line(points = {{43.3, 37}, {31.65, 37}, {31.65, 38.6}, {20, 38.6}}, color = {0, 0, 127}));
|
|---|
| 1278 | connect(ampl.y, pwmPulser3.ampl) annotation (
|
|---|
| 1279 | Line(points = {{41.3, 65}, {33.65, 65}, {33.65, 50.4}, {20, 50.4}}, color = {0, 0, 127}));
|
|---|
| 1280 | connect(pwmPulser3.up, upSW.control) annotation (
|
|---|
| 1281 | Line(points = {{-3, 50.6}, {-46, 50.6}, {-46, 28}}, color = {255, 0, 255}));
|
|---|
| 1282 | connect(pwmPulser3.down, downSW.control) annotation (
|
|---|
| 1283 | Line(points = {{-3, 38.2}, {-40, 38.2}, {-40, -14}, {-46, -14}}, color = {255, 0, 255}));
|
|---|
| 1284 | connect(powerSensor.pv, powerSensor.pc) annotation (
|
|---|
| 1285 | Line(points = {{24, 20}, {14, 20}, {14, 10}}, color = {0, 0, 255}));
|
|---|
| 1286 | connect(powerSensor.nv, smpm.plug_sn) annotation (
|
|---|
| 1287 | Line(points = {{24, 0}, {42, 0}, {42, 16}, {64, 16}, {64, 6}}, color = {0, 0, 255}));
|
|---|
| 1288 | connect(angleSensor.flange, smpm.flange) annotation (
|
|---|
| 1289 | Line(points = {{40, -14}, {40, -4}, {48, -4}}, color = {0, 0, 0}));
|
|---|
| 1290 | connect(Lf.plug_n, powerSensor.pc) annotation (
|
|---|
| 1291 | Line(points = {{10, 10}, {14, 10}}, color = {0, 0, 255}));
|
|---|
| 1292 | connect(powerSensor.nc, smpm.plug_sp) annotation (
|
|---|
| 1293 | Line(points = {{34, 10}, {52, 10}, {52, 6}}, color = {0, 0, 255}));
|
|---|
| 1294 | connect(constantSpeed.flange, angleSensor.flange) annotation (
|
|---|
| 1295 | Line(points = {{12, -20}, {26, -20}, {26, -14}, {40, -14}}, color = {0, 0, 0}));
|
|---|
| 1296 | connect(smpm.plug_sn, star2.plug_p) annotation (
|
|---|
| 1297 | Line(points = {{64, 6}, {92, 6}, {92, 0}}, color = {0, 0, 255}));
|
|---|
| 1298 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1299 | Line(points = {{-34, 10}, {-58, 10}, {-58, -4}}, color = {0, 0, 255}));
|
|---|
| 1300 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1301 | Line(points = {{-14, 10}, {-10, 10}}, color = {0, 0, 255}));
|
|---|
| 1302 | annotation (
|
|---|
| 1303 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -60}, {100, 80}}, initialScale = 0.1), graphics = {Text(origin = {-12.29, -52}, extent = {{-25.71, 6}, {94.29, -6}}, textString = "Guardare valori iniziali smpm\non va bene con 1.16-dev 648 e OF")}),
|
|---|
| 1304 | experimentSetupOutput,
|
|---|
| 1305 | Documentation(info = "<html>
|
|---|
| 1306 | <p>Rispetto a Id2Pwm questo modello è più semplice da usare in quanto utilizza un impulsatore trifase. Però non consente l'introduzione di tensioni differenti sulle tre fasi.</p>
|
|---|
| 1307 | <p>SI può proporre agli studenti come miglioramento del precedente.</p>
|
|---|
| 1308 | </html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 1309 | experiment(StopTime = 0.4, Interval = 5e-06),
|
|---|
| 1310 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1311 | end Id3PwmMach;
|
|---|
| 1312 |
|
|---|
| 1313 | model Id3WithFiltDC "With Ideal Switches NO OM 1.9.4-dev-490"
|
|---|
| 1314 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 1315 | Placement(visible = true, transformation(origin = {31, -59}, extent = {{9, -9}, {-9, 9}}, rotation = 90)));
|
|---|
| 1316 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(1, 3)) annotation (
|
|---|
| 1317 | Placement(visible = true, transformation(origin = {32, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1318 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(5e-005, 3)) annotation (
|
|---|
| 1319 | Placement(visible = true, transformation(origin = {0, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1320 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 1321 | Placement(visible = true, transformation(origin = {24, 16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1322 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 1323 | Placement(visible = true, transformation(origin = {-2, 16}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1324 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 1325 | Placement(visible = true, transformation(origin = {-34, -60}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1326 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 1327 | Placement(visible = true, transformation(origin = {-34, 58}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 1328 | Modelica.Electrical.MultiPhase.Ideal.IdealOpeningSwitch downSW(Ron = fill(1e-4, 3), Goff = fill(1e-4, 3)) annotation (
|
|---|
| 1329 | Placement(visible = true, transformation(origin = {-34, -30}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1330 | Modelica.Electrical.MultiPhase.Ideal.IdealOpeningSwitch upSW(Ron = fill(1e-4, 3), Goff = fill(1e-4, 3)) annotation (
|
|---|
| 1331 | Placement(visible = true, transformation(origin = {-34, 30}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1332 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(0.7, 3)) annotation (
|
|---|
| 1333 | Placement(visible = true, transformation(origin = {78, 64}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1334 | Modelica.Blocks.Sources.Constant phase[3](k = {0, 120, -120}) annotation (
|
|---|
| 1335 | Placement(visible = true, transformation(origin = {82, 16}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1336 | Support.PwmPulser pwmPulser[3](fCar = fill(2000, 3)) annotation (
|
|---|
| 1337 | Placement(visible = true, transformation(origin = {18, 48}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1338 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 1339 | Placement(visible = true, transformation(origin = {-90, 18}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1340 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 1341 | Placement(visible = true, transformation(origin = {-112, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1342 | Modelica.Electrical.Analog.Basic.Resistor Rbat(R = 0.2) annotation (
|
|---|
| 1343 | Placement(visible = true, transformation(origin = {-90, 46}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 1344 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = 1e-003) annotation (
|
|---|
| 1345 | Placement(visible = true, transformation(origin = {-72, 68}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1346 | Modelica.Electrical.Analog.Basic.Capacitor dcCap(C = 5e-5, v(fixed = true, start = 100)) annotation (
|
|---|
| 1347 | Placement(visible = true, transformation(origin = {-56, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1348 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = 1e-003) annotation (
|
|---|
| 1349 | Placement(visible = true, transformation(origin = {-72, -70}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1350 | Modelica.Electrical.Analog.Basic.Resistor resistor1(R = 0.2) annotation (
|
|---|
| 1351 | Placement(visible = true, transformation(origin = {-90, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 1352 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 1353 | Placement(visible = true, transformation(origin = {-90, -14}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1354 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor annotation (
|
|---|
| 1355 | Placement(visible = true, transformation(origin = {42, 0}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1356 | equation
|
|---|
| 1357 | connect(dcCap.n, star1.pin_n) annotation (
|
|---|
| 1358 | Line(points = {{-56, -10}, {-56, -70}, {-34, -70}}, color = {0, 0, 255}));
|
|---|
| 1359 | connect(dcCap.p, Lf1.n) annotation (
|
|---|
| 1360 | Line(points = {{-56, 10}, {-56, 68}, {-62, 68}}, color = {0, 0, 255}));
|
|---|
| 1361 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1362 | Line(points = {{-34, -40}, {-34, -50}}, color = {0, 0, 255}));
|
|---|
| 1363 | connect(Lf2.n, star1.pin_n) annotation (
|
|---|
| 1364 | Line(points = {{-62, -70}, {-34, -70}, {-34, -70}, {-34, -70}}, color = {0, 0, 255}));
|
|---|
| 1365 | connect(resistor1.n, Lf2.p) annotation (
|
|---|
| 1366 | Line(points = {{-90, -62}, {-90, -62}, {-90, -70}, {-82, -70}, {-82, -70}}, color = {0, 0, 255}));
|
|---|
| 1367 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1368 | Line(points = {{-34, 40}, {-34, 48}}, color = {0, 0, 255}));
|
|---|
| 1369 | connect(star.pin_n, Lf1.n) annotation (
|
|---|
| 1370 | Line(points = {{-34, 68}, {-62, 68}}, color = {0, 0, 255}));
|
|---|
| 1371 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1372 | Line(points = {{-12, 16}, {-34, 16}, {-34, -20}}, color = {0, 0, 255}));
|
|---|
| 1373 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1374 | Line(points = {{-34, 20}, {-34, -20}}, color = {0, 0, 255}));
|
|---|
| 1375 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 1376 | Line(points = {{3.7, 40.46}, {-18, 40.46}, {-18, -30}, {-27, -30}}, color = {255, 0, 255}));
|
|---|
| 1377 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 1378 | Line(points = {{3.7, 56.58}, {-22, 56.58}, {-22, 30}, {-27, 30}}, color = {255, 0, 255}));
|
|---|
| 1379 | connect(V2.n, resistor1.p) annotation (
|
|---|
| 1380 | Line(points = {{-90, -24}, {-90, -24}, {-90, -42}, {-90, -42}, {-90, -42}}, color = {0, 0, 255}));
|
|---|
| 1381 | connect(ground1.p, V2.p) annotation (
|
|---|
| 1382 | Line(points = {{-112, -14}, {-112, -14}, {-112, -4}, {-90, -4}, {-90, -4}}, color = {0, 0, 255}));
|
|---|
| 1383 | connect(V2.p, V1.n) annotation (
|
|---|
| 1384 | Line(points = {{-90, -4}, {-90, -4}, {-90, 8}, {-90, 8}}, color = {0, 0, 255}));
|
|---|
| 1385 | connect(Lf1.p, Rbat.p) annotation (
|
|---|
| 1386 | Line(points = {{-82, 68}, {-90, 68}, {-90, 56}}, color = {0, 0, 255}));
|
|---|
| 1387 | connect(V1.p, Rbat.n) annotation (
|
|---|
| 1388 | Line(points = {{-90, 28}, {-90, 36}}, color = {0, 0, 255}));
|
|---|
| 1389 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 1390 | Line(points = {{32, -36}, {32, -39}, {31, -39}, {31, -50}}, color = {0, 0, 255}));
|
|---|
| 1391 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1392 | Line(points = {{71, 16}, {60, 16}, {60, 40.98}, {33.6, 40.98}}, color = {0, 0, 127}));
|
|---|
| 1393 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1394 | Line(points = {{67, 64}, {60, 64}, {60, 56.32}, {33.6, 56.32}}, color = {0, 0, 127}));
|
|---|
| 1395 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1396 | Line(points = {{8, 16}, {14, 16}}, color = {0, 0, 255}));
|
|---|
| 1397 | connect(Cf.plug_p, Rload.plug_p) annotation (
|
|---|
| 1398 | Line(points = {{0, -16}, {32, -16}}, color = {0, 0, 255}));
|
|---|
| 1399 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 1400 | Line(points = {{0, -36}, {32, -36}}, color = {0, 0, 255}));
|
|---|
| 1401 | connect(Lf.plug_n, aronSensor.plug_p) annotation (
|
|---|
| 1402 | Line(points = {{34, 16}, {42, 16}, {42, 10}, {42, 10}, {42, 10}}, color = {0, 0, 255}));
|
|---|
| 1403 | connect(aronSensor.plug_n, Rload.plug_p) annotation (
|
|---|
| 1404 | Line(points = {{42, -10}, {42, -10}, {42, -16}, {32, -16}, {32, -16}}, color = {0, 0, 255}));
|
|---|
| 1405 | annotation (
|
|---|
| 1406 | experimentSetupOutput,
|
|---|
| 1407 | Documentation(info = "<html>
|
|---|
| 1408 | <p>Il risultato è identico a quello che si ha con interruttori pilotati e dioidi in antiparallelo entrambi iteali.</p>
|
|---|
| 1409 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 1410 | <p>Il sisema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 1411 | </html>"),
|
|---|
| 1412 | experiment(StopTime = 0.04, Interval = 2e-005),
|
|---|
| 1413 | Icon(coordinateSystem(extent = {{-120, -100}, {100, 100}})),
|
|---|
| 1414 | Diagram(coordinateSystem(extent = {{-120, -80}, {100, 80}}, preserveAspectRatio = false)),
|
|---|
| 1415 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1416 | end Id3WithFiltDC;
|
|---|
| 1417 |
|
|---|
| 1418 | model Id3PwmAronMod "Tri-phase multiphase lib with ideal switches"
|
|---|
| 1419 | Modelica.SIunits.Power loadPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 1420 | Modelica.SIunits.Voltage Uac0 = Rf.plug_p.pin[1].v - Rf.plug_p.pin[2].v;
|
|---|
| 1421 | Modelica.SIunits.Voltage Uacf = Rload.plug_p.pin[1].v - Rload.plug_p.pin[2].v;
|
|---|
| 1422 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 1423 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1424 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(10, 3)) annotation (
|
|---|
| 1425 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1426 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 1427 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1428 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 1429 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1430 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 1431 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 1432 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 1433 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 1434 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1435 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1436 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 1437 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1438 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(0.7, 3)) annotation (
|
|---|
| 1439 | Placement(visible = true, transformation(origin = {80, 50}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1440 | Modelica.Blocks.Sources.Constant phase[3](k = {0, -120, 120}) annotation (
|
|---|
| 1441 | Placement(visible = true, transformation(origin = {48, 42}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1442 | Support.PwmPulser pwmPulser[3](fSig = fill(50, 3), fCar = fill(1000, 3)) annotation (
|
|---|
| 1443 | Placement(visible = true, transformation(origin = {5, 50}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1444 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 250) annotation (
|
|---|
| 1445 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1446 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 250) annotation (
|
|---|
| 1447 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1448 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 1449 | Placement(visible = true, transformation(origin = {-108, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1450 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor annotation (
|
|---|
| 1451 | Placement(visible = true, transformation(origin = {42, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1452 | Modelica.Electrical.Analog.Basic.Resistor Rdc(R = 1e-5) annotation (
|
|---|
| 1453 | Placement(visible = true, transformation(origin = {-90, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 1454 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C=fill(0.000634, 3))
|
|---|
| 1455 | annotation (
|
|---|
| 1456 | Placement(visible = true, transformation(origin = {58, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1457 | equation
|
|---|
| 1458 | connect(Rdc.n, V2.n) annotation (
|
|---|
| 1459 | Line(points = {{-80, 10}, {-70, 10}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 1460 | connect(Rdc.p, ground2.p) annotation (
|
|---|
| 1461 | Line(points = {{-100, 10}, {-108, 10}, {-108, 8}}, color = {0, 0, 255}));
|
|---|
| 1462 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1463 | Line(points = {{37, 42}, {28, 42}, {28, 42.98}, {20.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 1464 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1465 | Line(points = {{69, 50}, {66, 50}, {66, 58}, {50, 58}, {50, 58.32}, {20.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 1466 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 1467 | Line(points = {{-9.3, 42.46}, {-26, 42.46}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 1468 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 1469 | Line(points = {{-9.3, 58.58}, {-20, 58.58}, {-20, 58}, {-30, 58}, {-30, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 1470 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 1471 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 1472 | connect(V2.n, V1.p) annotation (
|
|---|
| 1473 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 1474 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 1475 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 1476 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 1477 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1478 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 1479 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 1480 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 1481 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 1482 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 1483 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 1484 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 1485 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 1486 | connect(
|
|---|
| 1487 | Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 1488 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 1489 | connect(
|
|---|
| 1490 | Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 1491 | Line(points = {{58, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 1492 | connect(
|
|---|
| 1493 | Lf.plug_n, aronSensor.plug_p) annotation (
|
|---|
| 1494 | Line(points = {{26, 6}, {32, 6}, {32, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 1495 | connect(
|
|---|
| 1496 | aronSensor.plug_n, Cf.plug_p) annotation (
|
|---|
| 1497 | Line(points = {{52, 6}, {58, 6}, {58, 6}, {58, 6}}, color = {0, 0, 255}));
|
|---|
| 1498 | connect(
|
|---|
| 1499 | Cf.plug_p, Rload.plug_p) annotation (
|
|---|
| 1500 | Line(points = {{58, 6}, {78, 6}, {78, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 1501 | annotation (
|
|---|
| 1502 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-120, -60}, {100, 80}}, initialScale = 0.1), graphics = {Text(extent = {{-18, -22}, {-18, -22}}, textString = "text")}),
|
|---|
| 1503 | experimentSetupOutput,
|
|---|
| 1504 | Documentation(info = "<html><head></head><body><p>Fra Rdc=1e-3 e =1e3 cambiano radicalmente le tensioni stellate sul carico ma poco le concatenate: la componente fondamentale è la stessa</p><p> La sol con Udc isolato dà tensione migliore sul carico</p>
|
|---|
| 1505 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 1506 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001, Interval = 2e-05),
|
|---|
| 1507 | __OpenModelica_commandLineOptions = "");
|
|---|
| 1508 | end Id3PwmAronMod;
|
|---|
| 1509 | end ThreePhase;
|
|---|
| 1510 |
|
|---|
| 1511 | package ThreePhaseMultifilar
|
|---|
| 1512 | model Id3Pwm1 "Trifase con switches ideali individuali"
|
|---|
| 1513 | parameter Modelica.SIunits.Resistance Rf = 0.125;
|
|---|
| 1514 | parameter Modelica.SIunits.Inductance Lf = 0.001;
|
|---|
| 1515 | parameter Modelica.SIunits.Capacitance Cf = 0.000634;
|
|---|
| 1516 | parameter Modelica.SIunits.Resistance Rld = 30.0;
|
|---|
| 1517 | parameter Real Goff = 1e-3;
|
|---|
| 1518 | parameter Real Ron = 1e-3;
|
|---|
| 1519 | Modelica.Electrical.Analog.Basic.Resistor Rld3(R = Rld) annotation (
|
|---|
| 1520 | Placement(visible = true, transformation(origin = {111, -57}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1521 | Modelica.Electrical.Analog.Basic.Capacitor Cf3(C = Cf, v(fixed = true, start = 0)) annotation (
|
|---|
| 1522 | Placement(visible = true, transformation(origin = {89, -58}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1523 | Modelica.Electrical.Analog.Basic.Inductor Lf3(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1524 | Placement(visible = true, transformation(extent = {{57, -58}, {77, -38}}, rotation = 0)));
|
|---|
| 1525 | Modelica.Electrical.Analog.Basic.Resistor Rf3(R = Rf) annotation (
|
|---|
| 1526 | Placement(visible = true, transformation(extent = {{31, -58}, {51, -38}}, rotation = 0)));
|
|---|
| 1527 | Modelica.Electrical.Analog.Basic.Resistor Rld2(R = Rld) annotation (
|
|---|
| 1528 | Placement(visible = true, transformation(origin = {109, -23}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1529 | Modelica.Electrical.Analog.Basic.Capacitor Cf2(C = Cf, v(fixed = true, start = 0)) annotation (
|
|---|
| 1530 | Placement(visible = true, transformation(origin = {87, -24}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1531 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1532 | Placement(visible = true, transformation(extent = {{55, -24}, {75, -4}}, rotation = 0)));
|
|---|
| 1533 | Modelica.Electrical.Analog.Basic.Resistor Rf2(R = Rf) annotation (
|
|---|
| 1534 | Placement(visible = true, transformation(extent = {{29, -24}, {49, -4}}, rotation = 0)));
|
|---|
| 1535 | Modelica.Electrical.Analog.Basic.Resistor Rld1(R = Rld) annotation (
|
|---|
| 1536 | Placement(visible = true, transformation(origin = {112, 11}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1537 | Modelica.Electrical.Analog.Basic.Capacitor Cf1(C = Cf, v(fixed = true, start = 0)) annotation (
|
|---|
| 1538 | Placement(visible = true, transformation(origin = {90, 10}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1539 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1540 | Placement(visible = true, transformation(extent = {{58, 10}, {78, 30}}, rotation = 0)));
|
|---|
| 1541 | Modelica.Electrical.Analog.Basic.Resistor Rf1(R = Rf) annotation (
|
|---|
| 1542 | Placement(visible = true, transformation(extent = {{32, 10}, {52, 30}}, rotation = 0)));
|
|---|
| 1543 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S2(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1544 | Placement(visible = true, transformation(origin = {-6, -24}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1545 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S4(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1546 | Placement(visible = true, transformation(origin = {-46, -24}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1547 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 1548 | Placement(visible = true, transformation(origin = {-66, 10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1549 | Modelica.Blocks.Sources.Constant phase[3](k = {0, 120, 240}) annotation (
|
|---|
| 1550 | Placement(visible = true, transformation(origin = {89, 45}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1551 | Support.PwmPulser pwmPulser[3] annotation (
|
|---|
| 1552 | Placement(visible = true, transformation(origin = {48, 54}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1553 | Modelica.Blocks.Sources.Constant ampl[3](k = {0.7, 0.7, 0.7}) annotation (
|
|---|
| 1554 | Placement(visible = true, transformation(origin = {124, 62}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1555 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S5(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1556 | Placement(visible = true, transformation(origin = {0, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1557 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S1(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1558 | Placement(visible = true, transformation(origin = {-46, 54}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1559 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S3(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1560 | Placement(visible = true, transformation(origin = {-25.5, 54.3333}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1561 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S6(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1562 | Placement(visible = true, transformation(origin = {-26, -24}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1563 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 1564 | Placement(visible = true, transformation(origin = {-66, 48}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1565 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 1566 | Placement(visible = true, transformation(extent = {{-98, -11}, {-78, 9}}, rotation = 0)));
|
|---|
| 1567 | equation
|
|---|
| 1568 | connect(ground1.p, V2.n) annotation (
|
|---|
| 1569 | Line(points = {{-88, 9}, {-88, 27}, {-66, 27}, {-66, 38}}, color = {0, 0, 255}));
|
|---|
| 1570 | connect(V2.p, S1.p) annotation (
|
|---|
| 1571 | Line(points = {{-66, 58}, {-66, 58}, {-66, 74}, {-46, 74}, {-46, 64}, {-46, 64}}, color = {0, 0, 255}));
|
|---|
| 1572 | connect(V2.n, V1.p) annotation (
|
|---|
| 1573 | Line(points = {{-66, 38}, {-66, 38}, {-66, 20}, {-66, 20}}, color = {0, 0, 255}));
|
|---|
| 1574 | connect(S3.n, S6.p) annotation (
|
|---|
| 1575 | Line(points = {{-25.5, 44.3333}, {-25.5, 7}, {-26, 7}, {-26, -14}}, color = {0, 0, 255}));
|
|---|
| 1576 | connect(pwmPulser[2].down, S6.control) annotation (
|
|---|
| 1577 | Line(points = {{33.7, 46.46}, {19, 46.46}, {19, -40}, {-14, -40}, {-14, -24}}, color = {255, 0, 255}));
|
|---|
| 1578 | connect(S6.n, S2.n) annotation (
|
|---|
| 1579 | Line(points = {{-26, -34}, {-26, -44}, {-6, -44}, {-6, -34}}, color = {0, 0, 255}));
|
|---|
| 1580 | connect(Rf2.p, S6.p) annotation (
|
|---|
| 1581 | Line(points = {{29, -14}, {14, -14}, {14, 10}, {-26, 10}, {-26, -14}}, color = {0, 0, 255}));
|
|---|
| 1582 | connect(S3.control, pwmPulser[2].up) annotation (
|
|---|
| 1583 | Line(points = {{-13.5, 54.3333}, {-5, 54.3333}, {-5, 60}, {33.7, 60}, {33.7, 62.58}}, color = {255, 0, 255}));
|
|---|
| 1584 | connect(S3.p, S1.p) annotation (
|
|---|
| 1585 | Line(points = {{-25.5, 64.3333}, {-25.5, 75}, {-46, 75}, {-46, 64}}, color = {0, 0, 255}));
|
|---|
| 1586 | connect(pwmPulser[1].up, S1.control) annotation (
|
|---|
| 1587 | Line(points = {{33.7, 62.58}, {-34, 62.58}, {-34, 54}}, color = {255, 0, 255}));
|
|---|
| 1588 | connect(S1.n, S4.p) annotation (
|
|---|
| 1589 | Line(points = {{-46, 44}, {-46, -14}}, color = {0, 0, 255}));
|
|---|
| 1590 | connect(S5.p, S1.p) annotation (
|
|---|
| 1591 | Line(points = {{0, 62}, {0, 75}, {-46, 75}, {-46, 64}}, color = {0, 0, 255}));
|
|---|
| 1592 | connect(S5.control, pwmPulser[3].up) annotation (
|
|---|
| 1593 | Line(points = {{12, 52}, {25, 52}, {25, 52}, {33.7, 52}, {33.7, 62.58}}, color = {255, 0, 255}));
|
|---|
| 1594 | connect(S5.n, S2.p) annotation (
|
|---|
| 1595 | Line(points = {{0, 42}, {0, 16}, {-6, 16}, {-6, -14}}, color = {0, 0, 255}));
|
|---|
| 1596 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 1597 | Line(points = {{113, 62}, {63.6, 62}, {63.6, 62.32}}, color = {0, 0, 127}));
|
|---|
| 1598 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1599 | Line(points = {{78, 45}, {67, 45}, {67, 46.98}, {63.6, 46.98}}, color = {0, 0, 127}));
|
|---|
| 1600 | connect(pwmPulser[1].down, S4.control) annotation (
|
|---|
| 1601 | Line(points = {{33.7, 46.46}, {19, 46.46}, {19, -40}, {-34, -40}, {-34, -24}}, color = {255, 0, 255}));
|
|---|
| 1602 | connect(pwmPulser[3].down, S2.control) annotation (
|
|---|
| 1603 | Line(points = {{33.7, 46.46}, {19, 46.46}, {19, -40}, {6, -40}, {6, -24}}, color = {255, 0, 255}));
|
|---|
| 1604 | connect(V1.n, S4.n) annotation (
|
|---|
| 1605 | Line(points = {{-66, 0}, {-66, 0}, {-66, -44}, {-46, -44}, {-46, -34}, {-46, -34}}, color = {0, 0, 255}));
|
|---|
| 1606 | connect(Rf1.p, S4.p) annotation (
|
|---|
| 1607 | Line(points = {{32, 20}, {32, 20}, {14, 20}, {14, 33}, {-46, 33}, {-46, -14}}, color = {0, 0, 255}));
|
|---|
| 1608 | connect(S4.n, S2.n) annotation (
|
|---|
| 1609 | Line(points = {{-46, -34}, {-46, -44}, {-6, -44}, {-6, -34}}, color = {0, 0, 255}));
|
|---|
| 1610 | connect(Rf3.p, S2.p) annotation (
|
|---|
| 1611 | Line(points = {{31, -48}, {31, -26}, {7, -26}, {7, 0}, {-6, 0}, {-6, -14}}, color = {0, 0, 255}));
|
|---|
| 1612 | connect(Rf1.n, Lf1.p) annotation (
|
|---|
| 1613 | Line(points = {{52, 20}, {58, 20}}, color = {0, 0, 255}));
|
|---|
| 1614 | connect(Lf1.n, Cf1.p) annotation (
|
|---|
| 1615 | Line(points = {{78, 20}, {90, 20}}, color = {0, 0, 255}));
|
|---|
| 1616 | connect(Rld1.p, Cf1.p) annotation (
|
|---|
| 1617 | Line(points = {{112, 21}, {90, 21}, {90, 20}}, color = {0, 0, 255}));
|
|---|
| 1618 | connect(Cf1.n, Rld1.n) annotation (
|
|---|
| 1619 | Line(points = {{90, 0}, {90, 1}, {112, 1}}, color = {0, 0, 255}));
|
|---|
| 1620 | connect(Rld1.n, Rld2.n) annotation (
|
|---|
| 1621 | Line(points = {{112, 1}, {134, 1}, {134, -35}, {109, -35}, {109, -33}}, color = {0, 0, 255}));
|
|---|
| 1622 | connect(Rf2.n, Lf2.p) annotation (
|
|---|
| 1623 | Line(points = {{49, -14}, {55, -14}}, color = {0, 0, 255}));
|
|---|
| 1624 | connect(Lf2.n, Cf2.p) annotation (
|
|---|
| 1625 | Line(points = {{75, -14}, {87, -14}}, color = {0, 0, 255}));
|
|---|
| 1626 | connect(Rld2.p, Cf2.p) annotation (
|
|---|
| 1627 | Line(points = {{109, -13}, {99, -13}, {99, -14}, {87, -14}}, color = {0, 0, 255}));
|
|---|
| 1628 | connect(Rld2.n, Cf2.n) annotation (
|
|---|
| 1629 | Line(points = {{109, -33}, {99, -33}, {99, -34}, {87, -34}}, color = {0, 0, 255}));
|
|---|
| 1630 | connect(Rld3.n, Rld2.n) annotation (
|
|---|
| 1631 | Line(points = {{111, -67}, {133, -67}, {133, -33}, {107, -33}, {107, -33}, {109, -33}}, color = {0, 0, 255}));
|
|---|
| 1632 | connect(Rf3.n, Lf3.p) annotation (
|
|---|
| 1633 | Line(points = {{51, -48}, {57, -48}}, color = {0, 0, 255}));
|
|---|
| 1634 | connect(Lf3.n, Cf3.p) annotation (
|
|---|
| 1635 | Line(points = {{77, -48}, {89, -48}}, color = {0, 0, 255}));
|
|---|
| 1636 | connect(Rld3.p, Cf3.p) annotation (
|
|---|
| 1637 | Line(points = {{111, -47}, {101, -47}, {101, -48}, {89, -48}}, color = {0, 0, 255}));
|
|---|
| 1638 | connect(Rld3.n, Cf3.n) annotation (
|
|---|
| 1639 | Line(points = {{111, -67}, {101, -67}, {101, -68}, {89, -68}}, color = {0, 0, 255}));
|
|---|
| 1640 | annotation (
|
|---|
| 1641 | experimentSetupOutput,
|
|---|
| 1642 | Documentation(info = "<html>
|
|---|
| 1643 | <p>Il risultato è identico a quello che si ha con interruttori pilotati e dioidi in antiparallelo entrambi iteali.</p>
|
|---|
| 1644 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 1645 | <p>Il sisema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 1646 | </html>"),
|
|---|
| 1647 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001),
|
|---|
| 1648 | Diagram(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})),
|
|---|
| 1649 | Icon(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 1650 | end Id3Pwm1;
|
|---|
| 1651 |
|
|---|
| 1652 | model Id3Pwm1VarAmpl "Trifase con switches ideali individuali OM dev490 BAD"
|
|---|
| 1653 | parameter Modelica.SIunits.Resistance Rf = 0.125;
|
|---|
| 1654 | parameter Modelica.SIunits.Inductance Lf = 0.001;
|
|---|
| 1655 | parameter Modelica.SIunits.Capacitance Cf = 0.000634;
|
|---|
| 1656 | parameter Modelica.SIunits.Resistance Rld = 30.0;
|
|---|
| 1657 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 1658 | Placement(visible = true, transformation(extent = {{114, -53}, {134, -33}}, rotation = 0)));
|
|---|
| 1659 | Modelica.Electrical.Analog.Basic.Resistor Rld3(R = Rld) annotation (
|
|---|
| 1660 | Placement(visible = true, transformation(origin = {87, -59}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1661 | Modelica.Electrical.Analog.Basic.Capacitor Ff3(C = Cf, v(start = 0)) annotation (
|
|---|
| 1662 | Placement(visible = true, transformation(origin = {65, -60}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1663 | Modelica.Electrical.Analog.Basic.Inductor Lf3(L = Lf) annotation (
|
|---|
| 1664 | Placement(visible = true, transformation(extent = {{33, -60}, {53, -40}}, rotation = 0)));
|
|---|
| 1665 | Modelica.Electrical.Analog.Basic.Resistor Rf3(R = Rf) annotation (
|
|---|
| 1666 | Placement(visible = true, transformation(extent = {{7, -60}, {27, -40}}, rotation = 0)));
|
|---|
| 1667 | Modelica.Electrical.Analog.Basic.Resistor Rld2(R = Rld) annotation (
|
|---|
| 1668 | Placement(visible = true, transformation(origin = {85, -25}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1669 | Modelica.Electrical.Analog.Basic.Capacitor Ff2(C = Cf, v(start = 0)) annotation (
|
|---|
| 1670 | Placement(visible = true, transformation(origin = {63, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1671 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = Lf) annotation (
|
|---|
| 1672 | Placement(visible = true, transformation(extent = {{31, -26}, {51, -6}}, rotation = 0)));
|
|---|
| 1673 | Modelica.Electrical.Analog.Basic.Resistor Rf2(R = Rf) annotation (
|
|---|
| 1674 | Placement(visible = true, transformation(extent = {{5, -26}, {25, -6}}, rotation = 0)));
|
|---|
| 1675 | Modelica.Electrical.Analog.Basic.Resistor Rld1(R = Rld) annotation (
|
|---|
| 1676 | Placement(visible = true, transformation(origin = {88, 9}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1677 | Modelica.Electrical.Analog.Basic.Capacitor Ff1(C = Cf, v(start = 0)) annotation (
|
|---|
| 1678 | Placement(visible = true, transformation(origin = {66, 8}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1679 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = Lf) annotation (
|
|---|
| 1680 | Placement(visible = true, transformation(extent = {{34, 8}, {54, 28}}, rotation = 0)));
|
|---|
| 1681 | Modelica.Electrical.Analog.Basic.Resistor Rf1(R = Rf) annotation (
|
|---|
| 1682 | Placement(visible = true, transformation(extent = {{8, 8}, {28, 28}}, rotation = 0)));
|
|---|
| 1683 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S2 annotation (
|
|---|
| 1684 | Placement(visible = true, transformation(origin = {-30, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1685 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S4 annotation (
|
|---|
| 1686 | Placement(visible = true, transformation(origin = {-70, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1687 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 1688 | Placement(visible = true, transformation(origin = {-90, 14}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1689 | Modelica.Blocks.Sources.Constant phase[3](k = {0, 120, 240}) annotation (
|
|---|
| 1690 | Placement(visible = true, transformation(origin = {63, 39}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1691 | Support.PwmPulser pwmPulser[3] annotation (
|
|---|
| 1692 | Placement(visible = true, transformation(origin = {24, 52}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 1693 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S5 annotation (
|
|---|
| 1694 | Placement(visible = true, transformation(origin = {-24, 50}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1695 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S1 annotation (
|
|---|
| 1696 | Placement(visible = true, transformation(origin = {-70, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1697 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S3 annotation (
|
|---|
| 1698 | Placement(visible = true, transformation(origin = {-49.5, 52.3333}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1699 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S6 annotation (
|
|---|
| 1700 | Placement(visible = true, transformation(origin = {-50, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1701 | Modelica.Blocks.Sources.Ramp ramp[3](height = fill(0.5, 3), offset = fill(0.5, 3), startTime = fill(0.05, 3), duration = fill(0.2, 3)) annotation (
|
|---|
| 1702 | Placement(transformation(extent = {{112, 50}, {92, 70}})));
|
|---|
| 1703 | equation
|
|---|
| 1704 | connect(Rf2.p, S6.p) annotation (
|
|---|
| 1705 | Line(points = {{5, -16}, {-10, -16}, {-10, 8}, {-50, 8}, {-50, -16}}, color = {0, 0, 255}));
|
|---|
| 1706 | connect(S6.n, S2.n) annotation (
|
|---|
| 1707 | Line(points = {{-50, -36}, {-50, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1708 | connect(pwmPulser[2].down, S6.control) annotation (
|
|---|
| 1709 | Line(points = {{9.7, 44.46}, {-5, 44.46}, {-5, -42}, {-43, -42}, {-43, -26}}, color = {255, 0, 255}));
|
|---|
| 1710 | connect(S3.n, S6.p) annotation (
|
|---|
| 1711 | Line(points = {{-49.5, 42.3333}, {-49.5, 5}, {-50, 5}, {-50, -16}}, color = {0, 0, 255}));
|
|---|
| 1712 | connect(S3.p, S1.p) annotation (
|
|---|
| 1713 | Line(points = {{-49.5, 62.3333}, {-49.5, 73}, {-70, 73}, {-70, 62}}, color = {0, 0, 255}));
|
|---|
| 1714 | connect(V1.p, S1.p) annotation (
|
|---|
| 1715 | Line(points = {{-90, 24}, {-90, 74}, {-69, 74}, {-69, 73}, {-70, 73}, {-70, 62}}, color = {0, 0, 255}));
|
|---|
| 1716 | connect(S5.p, S1.p) annotation (
|
|---|
| 1717 | Line(points = {{-24, 60}, {-24, 73}, {-70, 73}, {-70, 62}}, color = {0, 0, 255}));
|
|---|
| 1718 | connect(S1.n, S4.p) annotation (
|
|---|
| 1719 | Line(points = {{-70, 42}, {-70, -16}}, color = {0, 0, 255}));
|
|---|
| 1720 | connect(S5.n, S2.p) annotation (
|
|---|
| 1721 | Line(points = {{-24, 40}, {-24, 14}, {-30, 14}, {-30, -16}}, color = {0, 0, 255}));
|
|---|
| 1722 | connect(pwmPulser[3].down, S2.control) annotation (
|
|---|
| 1723 | Line(points = {{9.7, 44.46}, {-5, 44.46}, {-5, -42}, {-23, -42}, {-23, -26}}, color = {255, 0, 255}));
|
|---|
| 1724 | connect(pwmPulser[1].down, S4.control) annotation (
|
|---|
| 1725 | Line(points = {{9.7, 44.46}, {-5, 44.46}, {-5, -42}, {-63, -42}, {-63, -26}}, color = {255, 0, 255}));
|
|---|
| 1726 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 1727 | Line(points = {{52, 39}, {43, 39}, {43, 44.98}, {39.6, 44.98}}, color = {0, 0, 127}));
|
|---|
| 1728 | connect(V1.n, S2.n) annotation (
|
|---|
| 1729 | Line(points = {{-90, 4}, {-90, -47}, {-69, -47}, {-69, -45}, {-70, -45}, {-70, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1730 | connect(S4.n, S2.n) annotation (
|
|---|
| 1731 | Line(points = {{-70, -36}, {-70, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1732 | connect(Rf1.p, S4.p) annotation (
|
|---|
| 1733 | Line(points = {{8, 18}, {8, 18}, {-10, 18}, {-10, 31}, {-70, 31}, {-70, -16}}, color = {0, 0, 255}));
|
|---|
| 1734 | connect(Rf3.p, S2.p) annotation (
|
|---|
| 1735 | Line(points = {{7, -50}, {7, -28}, {-17, -28}, {-17, -2}, {-30, -2}, {-30, -16}}, color = {0, 0, 255}));
|
|---|
| 1736 | connect(Rf1.n, Lf1.p) annotation (
|
|---|
| 1737 | Line(points = {{28, 18}, {34, 18}}, color = {0, 0, 255}));
|
|---|
| 1738 | connect(Lf1.n, Ff1.p) annotation (
|
|---|
| 1739 | Line(points = {{54, 18}, {66, 18}}, color = {0, 0, 255}));
|
|---|
| 1740 | connect(Ff1.n, Rld1.n) annotation (
|
|---|
| 1741 | Line(points = {{66, -2}, {66, -1}, {88, -1}}, color = {0, 0, 255}));
|
|---|
| 1742 | connect(Rld1.p, Ff1.p) annotation (
|
|---|
| 1743 | Line(points = {{88, 19}, {66, 19}, {66, 18}}, color = {0, 0, 255}));
|
|---|
| 1744 | connect(ground.p, Rld1.n) annotation (
|
|---|
| 1745 | Line(points = {{124, -33}, {124, -1}, {88, -1}}, color = {0, 0, 255}));
|
|---|
| 1746 | connect(Rf2.n, Lf2.p) annotation (
|
|---|
| 1747 | Line(points = {{25, -16}, {31, -16}}, color = {0, 0, 255}));
|
|---|
| 1748 | connect(Lf2.n, Ff2.p) annotation (
|
|---|
| 1749 | Line(points = {{51, -16}, {63, -16}}, color = {0, 0, 255}));
|
|---|
| 1750 | connect(Rld2.n, Ff2.n) annotation (
|
|---|
| 1751 | Line(points = {{85, -35}, {75, -35}, {75, -36}, {63, -36}}, color = {0, 0, 255}));
|
|---|
| 1752 | connect(Rld2.p, Ff2.p) annotation (
|
|---|
| 1753 | Line(points = {{85, -15}, {75, -15}, {75, -16}, {63, -16}}, color = {0, 0, 255}));
|
|---|
| 1754 | connect(ground.p, Rld2.n) annotation (
|
|---|
| 1755 | Line(points = {{124, -33}, {106, -33}, {106, -35}, {85, -35}}, color = {0, 0, 255}));
|
|---|
| 1756 | connect(Rf3.n, Lf3.p) annotation (
|
|---|
| 1757 | Line(points = {{27, -50}, {33, -50}}, color = {0, 0, 255}));
|
|---|
| 1758 | connect(Lf3.n, Ff3.p) annotation (
|
|---|
| 1759 | Line(points = {{53, -50}, {65, -50}}, color = {0, 0, 255}));
|
|---|
| 1760 | connect(Rld3.n, Ff3.n) annotation (
|
|---|
| 1761 | Line(points = {{87, -69}, {77, -69}, {77, -70}, {65, -70}}, color = {0, 0, 255}));
|
|---|
| 1762 | connect(Rld3.p, Ff3.p) annotation (
|
|---|
| 1763 | Line(points = {{87, -49}, {77, -49}, {77, -50}, {65, -50}}, color = {0, 0, 255}));
|
|---|
| 1764 | connect(ground.p, Rld3.n) annotation (
|
|---|
| 1765 | Line(points = {{124, -33}, {110, -33}, {110, -69}, {87, -69}}, color = {0, 0, 255}));
|
|---|
| 1766 | connect(pwmPulser[1].up, S1.control) annotation (
|
|---|
| 1767 | Line(points = {{9.7, 60.58}, {-63, 60.58}, {-63, 52}}, color = {255, 0, 255}));
|
|---|
| 1768 | connect(S3.control, pwmPulser[2].up) annotation (
|
|---|
| 1769 | Line(points = {{-42.5, 52.3333}, {-34, 52.3333}, {-34, 58}, {9.7, 58}, {9.7, 60.58}}, color = {255, 0, 255}));
|
|---|
| 1770 | connect(S5.control, pwmPulser[3].up) annotation (
|
|---|
| 1771 | Line(points = {{-17, 50}, {-4, 50}, {-4, 50}, {9.7, 50}, {9.7, 60.58}}, color = {255, 0, 255}));
|
|---|
| 1772 | connect(ramp.y, pwmPulser.ampl) annotation (
|
|---|
| 1773 | Line(points = {{91, 60}, {39.6, 60}, {39.6, 60.32}}, color = {0, 0, 127}));
|
|---|
| 1774 | annotation (
|
|---|
| 1775 | experimentSetupOutput,
|
|---|
| 1776 | Documentation(info = "<html>
|
|---|
| 1777 | <p>Il risultato è identico a quello che si ha con interruttori pilotati e dioidi in antiparallelo entrambi iteali.</p>
|
|---|
| 1778 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 1779 | <p>Il sisema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 1780 | </html>"),
|
|---|
| 1781 | experiment(StopTime = 0.2, __Dymola_NumberOfIntervals = 2500),
|
|---|
| 1782 | Diagram(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})),
|
|---|
| 1783 | Icon(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 1784 | end Id3Pwm1VarAmpl;
|
|---|
| 1785 |
|
|---|
| 1786 | model Test "Trifase con switches ideali individuali"
|
|---|
| 1787 | parameter Modelica.SIunits.Resistance Rf = 0.125;
|
|---|
| 1788 | parameter Modelica.SIunits.Inductance Lf = 0.001;
|
|---|
| 1789 | parameter Modelica.SIunits.Capacitance Cf = 0.000634;
|
|---|
| 1790 | parameter Modelica.SIunits.Resistance Rld = 30.0;
|
|---|
| 1791 | parameter Real Goff = 1e-3;
|
|---|
| 1792 | parameter Real Ron = 1e-3;
|
|---|
| 1793 | Modelica.Electrical.Analog.Basic.Resistor Rld3(R = Rld) annotation (
|
|---|
| 1794 | Placement(visible = true, transformation(origin = {111, -61}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1795 | Modelica.Electrical.Analog.Basic.Inductor Lf3(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1796 | Placement(visible = true, transformation(extent = {{57, -62}, {77, -42}}, rotation = 0)));
|
|---|
| 1797 | Modelica.Electrical.Analog.Basic.Resistor Rld2(R = Rld) annotation (
|
|---|
| 1798 | Placement(visible = true, transformation(origin = {109, -27}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1799 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1800 | Placement(visible = true, transformation(extent = {{55, -28}, {75, -8}}, rotation = 0)));
|
|---|
| 1801 | Modelica.Electrical.Analog.Basic.Resistor Rld1(R = Rld) annotation (
|
|---|
| 1802 | Placement(visible = true, transformation(origin = {112, 7}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1803 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = Lf, i(fixed = true)) annotation (
|
|---|
| 1804 | Placement(visible = true, transformation(extent = {{58, 6}, {78, 26}}, rotation = 0)));
|
|---|
| 1805 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S2(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1806 | Placement(visible = true, transformation(origin = {-6, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1807 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S4(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1808 | Placement(visible = true, transformation(origin = {-46, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1809 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 1810 | Placement(visible = true, transformation(origin = {-66, 6}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1811 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S5(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1812 | Placement(visible = true, transformation(origin = {0, 48}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1813 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S1(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1814 | Placement(visible = true, transformation(origin = {-46, 50}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1815 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S3(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1816 | Placement(visible = true, transformation(origin = {-25.5, 50.3333}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1817 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S6(Goff = Goff, Ron = Ron) annotation (
|
|---|
| 1818 | Placement(visible = true, transformation(origin = {-26, -28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1819 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 1820 | Placement(visible = true, transformation(origin = {-66, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1821 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 1822 | Placement(visible = true, transformation(extent = {{-98, -15}, {-78, 5}}, rotation = 0)));
|
|---|
| 1823 | Modelica.Blocks.Sources.BooleanPulse booleanPulse[3](width = fill(50, 3), period = fill(1 / 50, 3), startTime = 1 / 50 * {-1 / 3, 0, 1 / 3}) annotation (
|
|---|
| 1824 | Placement(visible = true, transformation(extent = {{64, 52}, {44, 72}}, rotation = 0)));
|
|---|
| 1825 | Modelica.Blocks.MathBoolean.Not myNot[3] annotation (
|
|---|
| 1826 | Placement(visible = true, transformation(origin = {10, -14}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 1827 | equation
|
|---|
| 1828 | connect(ground1.p, V2.n) annotation (
|
|---|
| 1829 | Line(points = {{-88, 5}, {-88, 23}, {-66, 23}, {-66, 34}}, color = {0, 0, 255}));
|
|---|
| 1830 | connect(V2.p, S1.p) annotation (
|
|---|
| 1831 | Line(points = {{-66, 54}, {-66, 70}, {-46, 70}, {-46, 60}}, color = {0, 0, 255}));
|
|---|
| 1832 | connect(V2.n, V1.p) annotation (
|
|---|
| 1833 | Line(points = {{-66, 34}, {-66, 16}}, color = {0, 0, 255}));
|
|---|
| 1834 | connect(S3.n, S6.p) annotation (
|
|---|
| 1835 | Line(points = {{-25.5, 40.3333}, {-25.5, 3}, {-26, 3}, {-26, -18}}, color = {0, 0, 255}));
|
|---|
| 1836 | connect(S6.n, S2.n) annotation (
|
|---|
| 1837 | Line(points = {{-26, -38}, {-26, -48}, {-6, -48}, {-6, -38}}, color = {0, 0, 255}));
|
|---|
| 1838 | connect(S3.p, S1.p) annotation (
|
|---|
| 1839 | Line(points = {{-25.5, 60.3333}, {-25.5, 71}, {-46, 71}, {-46, 60}}, color = {0, 0, 255}));
|
|---|
| 1840 | connect(S1.n, S4.p) annotation (
|
|---|
| 1841 | Line(points = {{-46, 40}, {-46, -18}}, color = {0, 0, 255}));
|
|---|
| 1842 | connect(S5.p, S1.p) annotation (
|
|---|
| 1843 | Line(points = {{0, 58}, {0, 71}, {-46, 71}, {-46, 60}}, color = {0, 0, 255}));
|
|---|
| 1844 | connect(S5.n, S2.p) annotation (
|
|---|
| 1845 | Line(points = {{0, 38}, {0, 12}, {-6, 12}, {-6, -18}}, color = {0, 0, 255}));
|
|---|
| 1846 | connect(V1.n, S4.n) annotation (
|
|---|
| 1847 | Line(points = {{-66, -4}, {-66, -48}, {-46, -48}, {-46, -38}}, color = {0, 0, 255}));
|
|---|
| 1848 | connect(S4.n, S2.n) annotation (
|
|---|
| 1849 | Line(points = {{-46, -38}, {-46, -48}, {-6, -48}, {-6, -38}}, color = {0, 0, 255}));
|
|---|
| 1850 | connect(Rld1.n, Rld2.n) annotation (
|
|---|
| 1851 | Line(points = {{112, -3}, {134, -3}, {134, -39}, {109, -39}, {109, -37}}, color = {0, 0, 255}));
|
|---|
| 1852 | connect(Rld3.n, Rld2.n) annotation (
|
|---|
| 1853 | Line(points = {{111, -71}, {133, -71}, {133, -37}, {109, -37}}, color = {0, 0, 255}));
|
|---|
| 1854 | connect(Lf1.n, Rld1.p) annotation (
|
|---|
| 1855 | Line(points = {{78, 16}, {110, 16}, {110, 17}, {112, 17}}, color = {0, 0, 255}));
|
|---|
| 1856 | connect(Lf2.n, Rld2.p) annotation (
|
|---|
| 1857 | Line(points = {{75, -18}, {108, -18}, {108, -17}, {109, -17}}, color = {0, 0, 255}));
|
|---|
| 1858 | connect(Lf3.n, Rld3.p) annotation (
|
|---|
| 1859 | Line(points = {{77, -52}, {90, -52}, {90, -50}, {111, -50}, {111, -51}}, color = {0, 0, 255}));
|
|---|
| 1860 | connect(Lf1.p, S1.n) annotation (
|
|---|
| 1861 | Line(points = {{58, 16}, {32, 16}, {32, 26}, {-46, 26}, {-46, 40}}, color = {0, 0, 255}));
|
|---|
| 1862 | connect(Lf2.p, S3.n) annotation (
|
|---|
| 1863 | Line(points = {{55, -18}, {36, -18}, {36, 8}, {-26, 8}, {-26, 40.3333}, {-25.5, 40.3333}}, color = {0, 0, 255}));
|
|---|
| 1864 | connect(Lf3.p, S2.p) annotation (
|
|---|
| 1865 | Line(points = {{57, -52}, {24, -52}, {24, -4}, {-6, -4}, {-6, -18}}, color = {0, 0, 255}));
|
|---|
| 1866 | connect(myNot[1].y, S4.control) annotation (
|
|---|
| 1867 | Line(points = {{10, -18.8}, {-12, -18.8}, {-12, -18}, {-39, -18}, {-39, -28}}, color = {255, 0, 255}));
|
|---|
| 1868 | connect(myNot[2].y, S6.control) annotation (
|
|---|
| 1869 | Line(points = {{10, -18.8}, {-4, -18.8}, {-4, -20}, {-19, -20}, {-19, -28}}, color = {255, 0, 255}));
|
|---|
| 1870 | connect(myNot[3].y, S2.control) annotation (
|
|---|
| 1871 | Line(points = {{10, -18.8}, {10, -28}, {1, -28}}, color = {255, 0, 255}));
|
|---|
| 1872 | connect(booleanPulse[1].y, S1.control) annotation (
|
|---|
| 1873 | Line(points = {{43, 62}, {4, 62}, {4, 64}, {-39, 64}, {-39, 50}}, color = {255, 0, 255}));
|
|---|
| 1874 | connect(booleanPulse[2].y, S3.control) annotation (
|
|---|
| 1875 | Line(points = {{43, 62}, {14, 62}, {14, 60}, {-18.5, 60}, {-18.5, 50.3333}}, color = {255, 0, 255}));
|
|---|
| 1876 | connect(booleanPulse[3].y, S5.control) annotation (
|
|---|
| 1877 | Line(points = {{43, 62}, {7, 62}, {7, 48}}, color = {255, 0, 255}));
|
|---|
| 1878 | connect(myNot.u, booleanPulse.y) annotation (
|
|---|
| 1879 | Line(points = {{10, -8.4}, {12, -8.4}, {12, 32}, {36, 32}, {36, 62}, {43, 62}}, color = {255, 0, 255}));
|
|---|
| 1880 | annotation (
|
|---|
| 1881 | experimentSetupOutput,
|
|---|
| 1882 | Documentation(info = "<html>
|
|---|
| 1883 | <p>Il risultato è identico a quello che si ha con interruttori pilotati e dioidi in antiparallelo entrambi iteali.</p>
|
|---|
| 1884 | <p>Questo perché con un controllo senza blanking time i due inverter sono identici.</p>
|
|---|
| 1885 | <p>Il sisema più fisico è superiore perché consente di valutare anche gli effetti del blanking time.</p>
|
|---|
| 1886 | </html>"),
|
|---|
| 1887 | experiment(StartTime = 0, StopTime = 0.1, Tolerance = 0.0001),
|
|---|
| 1888 | Diagram(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})),
|
|---|
| 1889 | Icon(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 1890 | end Test;
|
|---|
| 1891 | annotation (
|
|---|
| 1892 | Icon(coordinateSystem(extent = {{-100, -80}, {100, 80}})));
|
|---|
| 1893 | end ThreePhaseMultifilar;
|
|---|
| 1894 |
|
|---|
| 1895 | package SVPWM
|
|---|
| 1896 | import SI = Modelica.SIunits;
|
|---|
| 1897 |
|
|---|
| 1898 | model Id3Pwm1SVPWMtotal "Trifase con switches ideali individuali OM dev490 BAD"
|
|---|
| 1899 | parameter Modelica.SIunits.Resistance Rf = 0.125;
|
|---|
| 1900 | parameter Modelica.SIunits.Inductance Lf = 0.001;
|
|---|
| 1901 | parameter Modelica.SIunits.Capacitance Cf = 0.000634;
|
|---|
| 1902 | parameter Modelica.SIunits.Resistance Rld = 30.0;
|
|---|
| 1903 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 1904 | Placement(visible = true, transformation(extent = {{114, -53}, {134, -33}}, rotation = 0)));
|
|---|
| 1905 | Modelica.Electrical.Analog.Basic.Resistor Rld3(R = Rld) annotation (
|
|---|
| 1906 | Placement(visible = true, transformation(origin = {87, -59}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1907 | Modelica.Electrical.Analog.Basic.Capacitor Ff3(C = Cf, v(start = 0)) annotation (
|
|---|
| 1908 | Placement(visible = true, transformation(origin = {65, -60}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1909 | Modelica.Electrical.Analog.Basic.Inductor Lf3(L = Lf) annotation (
|
|---|
| 1910 | Placement(visible = true, transformation(extent = {{33, -60}, {53, -40}}, rotation = 0)));
|
|---|
| 1911 | Modelica.Electrical.Analog.Basic.Resistor Rf3(R = Rf) annotation (
|
|---|
| 1912 | Placement(visible = true, transformation(extent = {{7, -60}, {27, -40}}, rotation = 0)));
|
|---|
| 1913 | Modelica.Electrical.Analog.Basic.Resistor Rld2(R = Rld) annotation (
|
|---|
| 1914 | Placement(visible = true, transformation(origin = {85, -25}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1915 | Modelica.Electrical.Analog.Basic.Capacitor Ff2(C = Cf, v(start = 0)) annotation (
|
|---|
| 1916 | Placement(visible = true, transformation(origin = {63, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1917 | Modelica.Electrical.Analog.Basic.Inductor Lf2(L = Lf) annotation (
|
|---|
| 1918 | Placement(visible = true, transformation(extent = {{31, -26}, {51, -6}}, rotation = 0)));
|
|---|
| 1919 | Modelica.Electrical.Analog.Basic.Resistor Rf2(R = Rf) annotation (
|
|---|
| 1920 | Placement(visible = true, transformation(extent = {{5, -26}, {25, -6}}, rotation = 0)));
|
|---|
| 1921 | Modelica.Electrical.Analog.Basic.Resistor Rld1(R = Rld) annotation (
|
|---|
| 1922 | Placement(visible = true, transformation(origin = {88, 9}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1923 | Modelica.Electrical.Analog.Basic.Capacitor Ff1(C = Cf, v(start = 0)) annotation (
|
|---|
| 1924 | Placement(visible = true, transformation(origin = {66, 8}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1925 | Modelica.Electrical.Analog.Basic.Inductor Lf1(L = Lf) annotation (
|
|---|
| 1926 | Placement(visible = true, transformation(extent = {{34, 8}, {54, 28}}, rotation = 0)));
|
|---|
| 1927 | Modelica.Electrical.Analog.Basic.Resistor Rf1(R = Rf) annotation (
|
|---|
| 1928 | Placement(visible = true, transformation(extent = {{8, 8}, {28, 28}}, rotation = 0)));
|
|---|
| 1929 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S2 annotation (
|
|---|
| 1930 | Placement(visible = true, transformation(origin = {-30, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1931 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S4 annotation (
|
|---|
| 1932 | Placement(visible = true, transformation(origin = {-70, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1933 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 1934 | Placement(visible = true, transformation(origin = {-90, 14}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 1935 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S5 annotation (
|
|---|
| 1936 | Placement(visible = true, transformation(origin = {-24, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1937 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S1 annotation (
|
|---|
| 1938 | Placement(visible = true, transformation(origin = {-70, 58}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1939 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S3 annotation (
|
|---|
| 1940 | Placement(visible = true, transformation(origin = {-49.5, 58.3333}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1941 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch S6 annotation (
|
|---|
| 1942 | Placement(visible = true, transformation(origin = {-50, -26}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 1943 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 1944 | Placement(visible = true, transformation(origin = {104, 68}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1945 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 1946 | Placement(visible = true, transformation(origin = {114, 36}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 1947 | Modelica.Blocks.Sources.BooleanExpression g1(y = svpwm.gates[1]) annotation (
|
|---|
| 1948 | Placement(transformation(extent = {{-2, 40}, {-12, 60}})));
|
|---|
| 1949 | Modelica.Blocks.Sources.BooleanExpression g2(y = svpwm.gates[2]) annotation (
|
|---|
| 1950 | Placement(transformation(extent = {{-4, -56}, {-16, -36}})));
|
|---|
| 1951 | Modelica.Blocks.Sources.BooleanExpression g3(y = svpwm.gates[3]) annotation (
|
|---|
| 1952 | Placement(transformation(extent = {{6, -9}, {-6, 9}}, rotation = -90, origin = {-36, 41})));
|
|---|
| 1953 | Modelica.Blocks.Sources.BooleanExpression g4(y = svpwm.gates[4]) annotation (
|
|---|
| 1954 | Placement(transformation(extent = {{-6, -9}, {6, 9}}, rotation = -90, origin = {-42, -9})));
|
|---|
| 1955 | Modelica.Blocks.Sources.BooleanExpression g5(y = svpwm.gates[5]) annotation (
|
|---|
| 1956 | Placement(transformation(extent = {{6, -9}, {-6, 9}}, rotation = -90, origin = {-60, 41})));
|
|---|
| 1957 | Modelica.Blocks.Sources.BooleanExpression g6(y = svpwm.gates[6]) annotation (
|
|---|
| 1958 | Placement(transformation(extent = {{-6, -9}, {6, 9}}, rotation = -90, origin = {-62, -1})));
|
|---|
| 1959 | PowerSystems_Control_Modulation_SVPWM svpwm annotation (
|
|---|
| 1960 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {30, 42})));
|
|---|
| 1961 | Modelica.Blocks.Sources.RealExpression realExpression(y = 314.15 * time) annotation (
|
|---|
| 1962 | Placement(transformation(extent = {{66, 56}, {46, 76}})));
|
|---|
| 1963 | equation
|
|---|
| 1964 | connect(Rf2.p, S6.p) annotation (
|
|---|
| 1965 | Line(points = {{5, -16}, {-10, -16}, {-10, 8}, {-50, 8}, {-50, -16}}, color = {0, 0, 255}));
|
|---|
| 1966 | connect(S6.n, S2.n) annotation (
|
|---|
| 1967 | Line(points = {{-50, -36}, {-50, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1968 | connect(S3.n, S6.p) annotation (
|
|---|
| 1969 | Line(points = {{-49.5, 48.3333}, {-49.5, 5}, {-50, 5}, {-50, -16}}, color = {0, 0, 255}));
|
|---|
| 1970 | connect(S3.p, S1.p) annotation (
|
|---|
| 1971 | Line(points = {{-49.5, 68.3333}, {-49.5, 73}, {-70, 73}, {-70, 68}}, color = {0, 0, 255}));
|
|---|
| 1972 | connect(V1.p, S1.p) annotation (
|
|---|
| 1973 | Line(points = {{-90, 24}, {-90, 74}, {-69, 74}, {-69, 73}, {-70, 73}, {-70, 68}}, color = {0, 0, 255}));
|
|---|
| 1974 | connect(S5.p, S1.p) annotation (
|
|---|
| 1975 | Line(points = {{-24, 62}, {-24, 73}, {-70, 73}, {-70, 68}}, color = {0, 0, 255}));
|
|---|
| 1976 | connect(S1.n, S4.p) annotation (
|
|---|
| 1977 | Line(points = {{-70, 48}, {-70, -16}}, color = {0, 0, 255}));
|
|---|
| 1978 | connect(S5.n, S2.p) annotation (
|
|---|
| 1979 | Line(points = {{-24, 42}, {-24, 14}, {-30, 14}, {-30, -16}}, color = {0, 0, 255}));
|
|---|
| 1980 | connect(V1.n, S2.n) annotation (
|
|---|
| 1981 | Line(points = {{-90, 4}, {-90, -47}, {-69, -47}, {-69, -45}, {-70, -45}, {-70, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1982 | connect(S4.n, S2.n) annotation (
|
|---|
| 1983 | Line(points = {{-70, -36}, {-70, -46}, {-30, -46}, {-30, -36}}, color = {0, 0, 255}));
|
|---|
| 1984 | connect(Rf1.p, S4.p) annotation (
|
|---|
| 1985 | Line(points = {{8, 18}, {8, 18}, {-10, 18}, {-10, 31}, {-70, 31}, {-70, -16}}, color = {0, 0, 255}));
|
|---|
| 1986 | connect(Rf3.p, S2.p) annotation (
|
|---|
| 1987 | Line(points = {{7, -50}, {7, -28}, {-17, -28}, {-17, -2}, {-30, -2}, {-30, -16}}, color = {0, 0, 255}));
|
|---|
| 1988 | connect(Rf1.n, Lf1.p) annotation (
|
|---|
| 1989 | Line(points = {{28, 18}, {34, 18}}, color = {0, 0, 255}));
|
|---|
| 1990 | connect(Lf1.n, Ff1.p) annotation (
|
|---|
| 1991 | Line(points = {{54, 18}, {66, 18}}, color = {0, 0, 255}));
|
|---|
| 1992 | connect(Ff1.n, Rld1.n) annotation (
|
|---|
| 1993 | Line(points = {{66, -2}, {66, -1}, {88, -1}}, color = {0, 0, 255}));
|
|---|
| 1994 | connect(Rld1.p, Ff1.p) annotation (
|
|---|
| 1995 | Line(points = {{88, 19}, {66, 19}, {66, 18}}, color = {0, 0, 255}));
|
|---|
| 1996 | connect(ground.p, Rld1.n) annotation (
|
|---|
| 1997 | Line(points = {{124, -33}, {124, -1}, {88, -1}}, color = {0, 0, 255}));
|
|---|
| 1998 | connect(Rf2.n, Lf2.p) annotation (
|
|---|
| 1999 | Line(points = {{25, -16}, {31, -16}}, color = {0, 0, 255}));
|
|---|
| 2000 | connect(Lf2.n, Ff2.p) annotation (
|
|---|
| 2001 | Line(points = {{51, -16}, {63, -16}}, color = {0, 0, 255}));
|
|---|
| 2002 | connect(Rld2.n, Ff2.n) annotation (
|
|---|
| 2003 | Line(points = {{85, -35}, {75, -35}, {75, -36}, {63, -36}}, color = {0, 0, 255}));
|
|---|
| 2004 | connect(Rld2.p, Ff2.p) annotation (
|
|---|
| 2005 | Line(points = {{85, -15}, {75, -15}, {75, -16}, {63, -16}}, color = {0, 0, 255}));
|
|---|
| 2006 | connect(ground.p, Rld2.n) annotation (
|
|---|
| 2007 | Line(points = {{124, -33}, {106, -33}, {106, -35}, {85, -35}}, color = {0, 0, 255}));
|
|---|
| 2008 | connect(Rf3.n, Lf3.p) annotation (
|
|---|
| 2009 | Line(points = {{27, -50}, {33, -50}}, color = {0, 0, 255}));
|
|---|
| 2010 | connect(Lf3.n, Ff3.p) annotation (
|
|---|
| 2011 | Line(points = {{53, -50}, {65, -50}}, color = {0, 0, 255}));
|
|---|
| 2012 | connect(Rld3.n, Ff3.n) annotation (
|
|---|
| 2013 | Line(points = {{87, -69}, {77, -69}, {77, -70}, {65, -70}}, color = {0, 0, 255}));
|
|---|
| 2014 | connect(Rld3.p, Ff3.p) annotation (
|
|---|
| 2015 | Line(points = {{87, -49}, {77, -49}, {77, -50}, {65, -50}}, color = {0, 0, 255}));
|
|---|
| 2016 | connect(ground.p, Rld3.n) annotation (
|
|---|
| 2017 | Line(points = {{124, -33}, {110, -33}, {110, -69}, {87, -69}}, color = {0, 0, 255}));
|
|---|
| 2018 | connect(S5.control, g1.y) annotation (
|
|---|
| 2019 | Line(points = {{-12, 52}, {-14, 52}, {-14, 50}, {-12.5, 50}}, color = {255, 0, 255}));
|
|---|
| 2020 | connect(g2.y, S2.control) annotation (
|
|---|
| 2021 | Line(points = {{-16.6, -46}, {-18, -46}, {-18, -26}}, color = {255, 0, 255}));
|
|---|
| 2022 | connect(g3.y, S3.control) annotation (
|
|---|
| 2023 | Line(points = {{-36, 47.6}, {-36, 58.5}, {-37.5, 58.5}, {-37.5, 58.3333}}, color = {255, 0, 255}));
|
|---|
| 2024 | connect(g5.y, S1.control) annotation (
|
|---|
| 2025 | Line(points = {{-60, 47.6}, {-58, 47.6}, {-58, 58}}, color = {255, 0, 255}));
|
|---|
| 2026 | connect(g6.y, S4.control) annotation (
|
|---|
| 2027 | Line(points = {{-62, -7.6}, {-62, -16}, {-62, -26}, {-58, -26}}, color = {255, 0, 255}));
|
|---|
| 2028 | connect(g4.y, S6.control) annotation (
|
|---|
| 2029 | Line(points = {{-42, -15.6}, {-42, -20}, {-42, -26}, {-38, -26}}, color = {255, 0, 255}));
|
|---|
| 2030 | connect(ampl.y, svpwm.vPhasor[1]) annotation (
|
|---|
| 2031 | Line(points = {{93, 68}, {80, 68}, {80, 36}, {40.5, 36}}, color = {0, 0, 127}));
|
|---|
| 2032 | connect(phase.y, svpwm.vPhasor[2]) annotation (
|
|---|
| 2033 | Line(points = {{103, 36}, {39.5, 36}}, color = {0, 0, 127}));
|
|---|
| 2034 | connect(realExpression.y, svpwm.theta) annotation (
|
|---|
| 2035 | Line(points = {{45, 66}, {42, 66}, {42, 48}, {40, 48}}, color = {0, 0, 127}));
|
|---|
| 2036 | annotation (
|
|---|
| 2037 | experimentSetupOutput,
|
|---|
| 2038 | Documentation(info = "<html>
|
|---|
| 2039 | <p>Inverter SV-PWM realizzato utilizzando il blocco SV_PWM della libreria Power Systems.</p>
|
|---|
| 2040 | <p>Il modello richiede quindi Power Systems.</p>
|
|---|
| 2041 | </html>"),
|
|---|
| 2042 | experiment(StopTime = 0.2, __Dymola_NumberOfIntervals = 2500),
|
|---|
| 2043 | Diagram(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2}), graphics = {Text(extent = {{-34, -52}, {-28, -56}}, lineColor = {28, 108, 200}, fillColor = {175, 175, 175}, fillPattern = FillPattern.Solid, textString = "a"), Text(extent = {{-52, -52}, {-46, -56}}, lineColor = {28, 108, 200}, fillColor = {175, 175, 175}, fillPattern = FillPattern.Solid, textString = "b"), Text(extent = {{-72, -52}, {-66, -56}}, lineColor = {28, 108, 200}, fillColor = {175, 175, 175}, fillPattern = FillPattern.Solid, textString = "c")}),
|
|---|
| 2044 | Icon(coordinateSystem(extent = {{-100, -80}, {140, 80}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2})));
|
|---|
| 2045 | end Id3Pwm1SVPWMtotal;
|
|---|
| 2046 |
|
|---|
| 2047 | model Id3Pwm3SVPWMTotal "Tri-phase multiphase lib with ideal switches"
|
|---|
| 2048 | Modelica.SIunits.Power aronPower;
|
|---|
| 2049 | Real unFiltered1 = Rf.plug_p.pin[1].v - star2.pin_n.v;
|
|---|
| 2050 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 2051 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2052 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(2, 3)) annotation (
|
|---|
| 2053 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2054 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 2055 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2056 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 2057 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2058 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 2059 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2060 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 2061 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2062 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 2063 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2064 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2065 | Placement(visible = true, transformation(origin = {-42, -16}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2066 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2067 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2068 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 2069 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2070 | AronSensor aronSensor annotation (
|
|---|
| 2071 | Placement(visible = true, transformation(extent = {{46, -4}, {66, 16}}, rotation = 0)));
|
|---|
| 2072 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 2073 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2074 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 2075 | Placement(visible = true, transformation(origin = {-92, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2076 | PowerSystems_Control_Modulation_SVPWM svpwm annotation (
|
|---|
| 2077 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-4, 54})));
|
|---|
| 2078 | Modelica.Blocks.Sources.RealExpression realExpression(y = 314.15 * time) annotation (
|
|---|
| 2079 | Placement(transformation(extent = {{36, 56}, {16, 76}})));
|
|---|
| 2080 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 2081 | Placement(visible = true, transformation(origin = {74, 68}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2082 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 2083 | Placement(visible = true, transformation(origin = {84, 36}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2084 | Modelica.Blocks.Sources.BooleanExpression g1[3](y = {svpwm.gates[1], svpwm.gates[3], svpwm.gates[5]}) annotation (
|
|---|
| 2085 | Placement(transformation(extent = {{-4, 18}, {-24, 38}})));
|
|---|
| 2086 | Modelica.Blocks.Sources.BooleanExpression g2[3](y = {svpwm.gates[2], svpwm.gates[4], svpwm.gates[6]}) annotation (
|
|---|
| 2087 | Placement(transformation(extent = {{-4, -26}, {-24, -6}})));
|
|---|
| 2088 | equation
|
|---|
| 2089 | connect(ground2.p, V2.n) annotation (
|
|---|
| 2090 | Line(points = {{-92, 8}, {-70, 8}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 2091 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 2092 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 2093 | connect(V2.n, V1.p) annotation (
|
|---|
| 2094 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 2095 | connect(aronSensor.n, Rload.plug_p) annotation (
|
|---|
| 2096 | Line(points = {{66, 6}, {69, 6}, {72, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 2097 | connect(aronSensor.p, Cf.plug_p) annotation (
|
|---|
| 2098 | Line(points = {{46, 6}, {39, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 2099 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 2100 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 2101 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 2102 | Line(points = {{-42, 18}, {-42, -6}}, color = {0, 0, 255}));
|
|---|
| 2103 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 2104 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 2105 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 2106 | Line(points = {{-18, 6}, {-42, 6}, {-42, -6}}, color = {0, 0, 255}));
|
|---|
| 2107 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 2108 | Line(points = {{-42, -26}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 2109 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 2110 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 2111 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 2112 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 2113 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 2114 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 2115 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 2116 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 2117 | aronPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 2118 | connect(realExpression.y, svpwm.theta) annotation (
|
|---|
| 2119 | Line(points = {{15, 66}, {12, 66}, {12, 60}, {6, 60}}, color = {0, 0, 127}));
|
|---|
| 2120 | connect(phase.y, svpwm.vPhasor[2]) annotation (
|
|---|
| 2121 | Line(points = {{73, 36}, {42, 36}, {42, 48}, {5.5, 48}}, color = {0, 0, 127}));
|
|---|
| 2122 | connect(ampl.y, svpwm.vPhasor[1]) annotation (
|
|---|
| 2123 | Line(points = {{63, 68}, {36, 68}, {36, 48}, {6.5, 48}}, color = {0, 0, 127}));
|
|---|
| 2124 | connect(g1.y, upSW.control) annotation (
|
|---|
| 2125 | Line(points = {{-25, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 2126 | connect(g2.y, downSW.control) annotation (
|
|---|
| 2127 | Line(points = {{-25, -16}, {-30, -16}}, color = {255, 0, 255}));
|
|---|
| 2128 | annotation (
|
|---|
| 2129 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -60}, {100, 80}})),
|
|---|
| 2130 | experimentSetupOutput,
|
|---|
| 2131 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2132 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 2133 | experiment(StopTime = 0, Interval = 2e-05),
|
|---|
| 2134 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2135 | end Id3Pwm3SVPWMTotal;
|
|---|
| 2136 |
|
|---|
| 2137 | model Id3Pwm3 "Tri-phase multiphase lib with ideal switches"
|
|---|
| 2138 | Modelica.SIunits.Power aronPower;
|
|---|
| 2139 | Real unFiltered1 = Rf.plug_p.pin[1].v - star2.pin_n.v;
|
|---|
| 2140 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 2141 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2142 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(2, 3)) annotation (
|
|---|
| 2143 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2144 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 2145 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2146 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 2147 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2148 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 2149 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2150 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 2151 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2152 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 2153 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2154 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2155 | Placement(visible = true, transformation(origin = {-42, -14}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2156 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2157 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2158 | Modelica.Blocks.Sources.Constant ampl[3](k = fill(0.7, 3)) annotation (
|
|---|
| 2159 | Placement(visible = true, transformation(origin = {80, 50}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2160 | Modelica.Blocks.Sources.Constant phase[3](k = {0, -120, 120}) annotation (
|
|---|
| 2161 | Placement(visible = true, transformation(origin = {48, 42}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2162 | Support.PwmPulser pwmPulser[3](fMod = fill(50, 3), fCar = fill(1000, 3)) annotation (
|
|---|
| 2163 | Placement(visible = true, transformation(origin = {5, 50}, extent = {{-13, 13}, {13, -13}}, rotation = 180)));
|
|---|
| 2164 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 2165 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2166 | AronSensor aronSensor annotation (
|
|---|
| 2167 | Placement(visible = true, transformation(extent = {{46, -4}, {66, 16}}, rotation = 0)));
|
|---|
| 2168 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 2169 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2170 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 2171 | Placement(visible = true, transformation(origin = {-92, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2172 | equation
|
|---|
| 2173 | connect(phase.y, pwmPulser.ph_deg) annotation (
|
|---|
| 2174 | Line(points = {{37, 42}, {28, 42}, {28, 42.98}, {20.6, 42.98}}, color = {0, 0, 127}));
|
|---|
| 2175 | connect(ampl.y, pwmPulser.ampl) annotation (
|
|---|
| 2176 | Line(points = {{69, 50}, {66, 50}, {66, 58}, {50, 58}, {50, 58.32}, {20.6, 58.32}}, color = {0, 0, 127}));
|
|---|
| 2177 | connect(pwmPulser.down, downSW.control) annotation (
|
|---|
| 2178 | Line(points = {{-9.3, 42.46}, {-26, 42.46}, {-26, -14}, {-30, -14}}, color = {255, 0, 255}));
|
|---|
| 2179 | connect(pwmPulser.up, upSW.control) annotation (
|
|---|
| 2180 | Line(points = {{-9.3, 58.58}, {-20, 58.58}, {-20, 58}, {-30, 58}, {-30, 28}, {-30, 28}}, color = {255, 0, 255}));
|
|---|
| 2181 | connect(ground2.p, V2.n) annotation (
|
|---|
| 2182 | Line(points = {{-92, 8}, {-70, 8}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 2183 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 2184 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 2185 | connect(V2.n, V1.p) annotation (
|
|---|
| 2186 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 2187 | connect(aronSensor.n, Rload.plug_p) annotation (
|
|---|
| 2188 | Line(points = {{66, 6}, {69, 6}, {72, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 2189 | connect(aronSensor.p, Cf.plug_p) annotation (
|
|---|
| 2190 | Line(points = {{46, 6}, {39, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 2191 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 2192 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 2193 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 2194 | Line(points = {{-42, 18}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 2195 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 2196 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 2197 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 2198 | Line(points = {{-18, 6}, {-42, 6}, {-42, -4}}, color = {0, 0, 255}));
|
|---|
| 2199 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 2200 | Line(points = {{-42, -24}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 2201 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 2202 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 2203 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 2204 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 2205 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 2206 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 2207 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 2208 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 2209 | aronPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 2210 | annotation (
|
|---|
| 2211 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -60}, {100, 80}})),
|
|---|
| 2212 | experimentSetupOutput,
|
|---|
| 2213 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2214 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 2215 | experiment(StopTime = 0.2, Interval = 2e-05),
|
|---|
| 2216 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2217 | end Id3Pwm3;
|
|---|
| 2218 |
|
|---|
| 2219 | model Id3Pwm3SVPWM_PS "Tri-phase multiphase lib with ideal switches"
|
|---|
| 2220 | Modelica.SIunits.Power aronPower;
|
|---|
| 2221 | Real unFiltered1 = Rf.plug_p.pin[1].v - star2.pin_n.v;
|
|---|
| 2222 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 2223 | Placement(visible = true, transformation(origin = {78, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2224 | Modelica.Electrical.MultiPhase.Basic.Resistor Rload(R = fill(2, 3)) annotation (
|
|---|
| 2225 | Placement(visible = true, transformation(origin = {78, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2226 | Modelica.Electrical.MultiPhase.Basic.Capacitor Cf(C = fill(0.000634, 3)) annotation (
|
|---|
| 2227 | Placement(visible = true, transformation(origin = {32, -4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2228 | Modelica.Electrical.MultiPhase.Basic.Inductor Lf(L = fill(0.001, 3)) annotation (
|
|---|
| 2229 | Placement(visible = true, transformation(origin = {16, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2230 | Modelica.Electrical.MultiPhase.Basic.Resistor Rf(R = fill(0.05, 3)) annotation (
|
|---|
| 2231 | Placement(visible = true, transformation(origin = {-8, 6}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2232 | Modelica.Electrical.MultiPhase.Basic.Star star1 annotation (
|
|---|
| 2233 | Placement(visible = true, transformation(origin = {-42, -44}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2234 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 2235 | Placement(visible = true, transformation(origin = {-42, 56}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2236 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch downSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2237 | Placement(visible = true, transformation(origin = {-42, -16}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2238 | Modelica.Electrical.MultiPhase.Ideal.IdealClosingSwitch upSW(Ron = fill(1e-5, 3), Goff = fill(1e-5, 3)) annotation (
|
|---|
| 2239 | Placement(visible = true, transformation(origin = {-42, 28}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2240 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 50) annotation (
|
|---|
| 2241 | Placement(visible = true, transformation(origin = {-70, -10}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2242 | AronSensor aronSensor annotation (
|
|---|
| 2243 | Placement(visible = true, transformation(extent = {{46, -4}, {66, 16}}, rotation = 0)));
|
|---|
| 2244 | Modelica.Electrical.Analog.Sources.ConstantVoltage V2(V = 50) annotation (
|
|---|
| 2245 | Placement(visible = true, transformation(origin = {-70, 44}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2246 | Modelica.Electrical.Analog.Basic.Ground ground2 annotation (
|
|---|
| 2247 | Placement(visible = true, transformation(origin = {-92, -2}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2248 | PowerSystems.Control.Modulation.SVPWM svpwm annotation (
|
|---|
| 2249 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {-4, 54})));
|
|---|
| 2250 | Modelica.Blocks.Sources.RealExpression realExpression(y = 314.15 * time) annotation (
|
|---|
| 2251 | Placement(transformation(extent = {{36, 56}, {16, 76}})));
|
|---|
| 2252 | Modelica.Blocks.Sources.Constant ampl(k = 0.7) annotation (
|
|---|
| 2253 | Placement(visible = true, transformation(origin = {74, 68}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2254 | Modelica.Blocks.Sources.Constant phase(k = 0) annotation (
|
|---|
| 2255 | Placement(visible = true, transformation(origin = {84, 36}, extent = {{-10, 10}, {10, -10}}, rotation = 180)));
|
|---|
| 2256 | Modelica.Blocks.Sources.BooleanExpression g1[3](y = {svpwm.gates[1], svpwm.gates[3], svpwm.gates[5]}) annotation (
|
|---|
| 2257 | Placement(transformation(extent = {{-4, 18}, {-24, 38}})));
|
|---|
| 2258 | Modelica.Blocks.Sources.BooleanExpression g2[3](y = {svpwm.gates[2], svpwm.gates[4], svpwm.gates[6]}) annotation (
|
|---|
| 2259 | Placement(transformation(extent = {{-4, -26}, {-24, -6}})));
|
|---|
| 2260 | equation
|
|---|
| 2261 | connect(ground2.p, V2.n) annotation (
|
|---|
| 2262 | Line(points = {{-92, 8}, {-70, 8}, {-70, 34}}, color = {0, 0, 255}));
|
|---|
| 2263 | connect(V2.p, star.pin_n) annotation (
|
|---|
| 2264 | Line(points = {{-70, 54}, {-70, 70}, {-42, 70}, {-42, 66}}, color = {0, 0, 255}));
|
|---|
| 2265 | connect(V2.n, V1.p) annotation (
|
|---|
| 2266 | Line(points = {{-70, 34}, {-70, 34}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 2267 | connect(aronSensor.n, Rload.plug_p) annotation (
|
|---|
| 2268 | Line(points = {{66, 6}, {69, 6}, {72, 6}, {78, 6}}, color = {0, 0, 255}));
|
|---|
| 2269 | connect(aronSensor.p, Cf.plug_p) annotation (
|
|---|
| 2270 | Line(points = {{46, 6}, {39, 6}, {32, 6}}, color = {0, 0, 255}));
|
|---|
| 2271 | connect(V1.n, star1.pin_n) annotation (
|
|---|
| 2272 | Line(points = {{-70, -20}, {-70, -54}, {-42, -54}}, color = {0, 0, 255}));
|
|---|
| 2273 | connect(upSW.plug_n, downSW.plug_p) annotation (
|
|---|
| 2274 | Line(points = {{-42, 18}, {-42, -6}}, color = {0, 0, 255}));
|
|---|
| 2275 | connect(upSW.plug_p, star.plug_p) annotation (
|
|---|
| 2276 | Line(points = {{-42, 38}, {-42, 46}}, color = {0, 0, 255}));
|
|---|
| 2277 | connect(Rf.plug_p, downSW.plug_p) annotation (
|
|---|
| 2278 | Line(points = {{-18, 6}, {-42, 6}, {-42, -6}}, color = {0, 0, 255}));
|
|---|
| 2279 | connect(downSW.plug_n, star1.plug_p) annotation (
|
|---|
| 2280 | Line(points = {{-42, -26}, {-42, -34}}, color = {0, 0, 255}));
|
|---|
| 2281 | connect(Rf.plug_n, Lf.plug_p) annotation (
|
|---|
| 2282 | Line(points = {{2, 6}, {6, 6}}, color = {0, 0, 255}));
|
|---|
| 2283 | connect(Cf.plug_p, Lf.plug_n) annotation (
|
|---|
| 2284 | Line(points = {{32, 6}, {31, 6}, {31, 6}, {30, 6}, {26, 6}}, color = {0, 0, 255}));
|
|---|
| 2285 | connect(Cf.plug_n, Rload.plug_n) annotation (
|
|---|
| 2286 | Line(points = {{32, -14}, {78, -14}}, color = {0, 0, 255}));
|
|---|
| 2287 | connect(Rload.plug_n, star2.plug_p) annotation (
|
|---|
| 2288 | Line(points = {{78, -14}, {78, -20}}, color = {0, 0, 255}));
|
|---|
| 2289 | aronPower = Rload.plug_p.pin[1].v * Rload.plug_p.pin[1].i + Rload.plug_p.pin[2].v * Rload.plug_p.pin[2].i + Rload.plug_p.pin[3].v * Rload.plug_p.pin[3].i;
|
|---|
| 2290 | connect(realExpression.y, svpwm.theta) annotation (
|
|---|
| 2291 | Line(points = {{15, 66}, {12, 66}, {12, 60}, {6, 60}}, color = {0, 0, 127}));
|
|---|
| 2292 | connect(phase.y, svpwm.vPhasor[2]) annotation (
|
|---|
| 2293 | Line(points = {{73, 36}, {42, 36}, {42, 48}, {5.5, 48}}, color = {0, 0, 127}));
|
|---|
| 2294 | connect(ampl.y, svpwm.vPhasor[1]) annotation (
|
|---|
| 2295 | Line(points = {{63, 68}, {36, 68}, {36, 48}, {6.5, 48}}, color = {0, 0, 127}));
|
|---|
| 2296 | connect(g1.y, upSW.control) annotation (
|
|---|
| 2297 | Line(points = {{-25, 28}, {-35, 28}}, color = {255, 0, 255}));
|
|---|
| 2298 | connect(g2.y, downSW.control) annotation (
|
|---|
| 2299 | Line(points = {{-25, -16}, {-35, -16}}, color = {255, 0, 255}));
|
|---|
| 2300 | annotation (
|
|---|
| 2301 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -60}, {100, 80}})),
|
|---|
| 2302 | experimentSetupOutput,
|
|---|
| 2303 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2304 | </body></html>", revisions = "<html><head></head><body>non newInst</body></html>"),
|
|---|
| 2305 | experiment(StopTime = 0, Interval = 2e-05),
|
|---|
| 2306 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2307 | end Id3Pwm3SVPWM_PS;
|
|---|
| 2308 | end SVPWM;
|
|---|
| 2309 |
|
|---|
| 2310 | package Hyst
|
|---|
| 2311 | model ReTwoHy "Switch-diode pais, two-legs, square wave"
|
|---|
| 2312 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 2313 | Placement(visible = true, transformation(extent = {{82, -60}, {102, -40}}, rotation = 0)));
|
|---|
| 2314 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 225.0) annotation (
|
|---|
| 2315 | Placement(visible = true, transformation(origin = {-70, 12}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2316 | Modelica.Blocks.MathBoolean.Not nor1 annotation (
|
|---|
| 2317 | Placement(visible = true, transformation(origin = {-8, -20}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 2318 | Modelica.Electrical.Analog.Ideal.IdealDiode uD(Vknee = 0.1) annotation (
|
|---|
| 2319 | Placement(visible = true, transformation(origin = {-50, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2320 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW(Vknee = 0.1) annotation (
|
|---|
| 2321 | Placement(visible = true, transformation(origin = {-30, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2322 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW(Vknee = 0.1) annotation (
|
|---|
| 2323 | Placement(visible = true, transformation(origin = {-30, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2324 | Modelica.Electrical.Analog.Ideal.IdealDiode dD(Vknee = 0.1) annotation (
|
|---|
| 2325 | Placement(visible = true, transformation(origin = {-50, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2326 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 10e-3) annotation (
|
|---|
| 2327 | Placement(visible = true, transformation(origin = {92, 12}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2328 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 10) annotation (
|
|---|
| 2329 | Placement(visible = true, transformation(origin = {92, -16}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2330 | Modelica.Electrical.Analog.Ideal.IdealDiode uD1(Vknee = 0.1) annotation (
|
|---|
| 2331 | Placement(visible = true, transformation(origin = {12, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2332 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor uSW1(Vknee = 0.1) annotation (
|
|---|
| 2333 | Placement(visible = true, transformation(origin = {32, 34}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2334 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor dSW1(Vknee = 0.1) annotation (
|
|---|
| 2335 | Placement(visible = true, transformation(origin = {32, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2336 | Modelica.Electrical.Analog.Ideal.IdealDiode dD1(Vknee = 0.1) annotation (
|
|---|
| 2337 | Placement(visible = true, transformation(origin = {12, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
|
|---|
| 2338 | Modelica.Blocks.MathBoolean.Not nor2 annotation (
|
|---|
| 2339 | Placement(visible = true, transformation(origin = {42, 44}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 2340 | Modelica.Blocks.Logical.OnOffController onOffContr(bandwidth = 0.5) annotation (
|
|---|
| 2341 | Placement(visible = true, transformation(origin = {72, 60}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2342 | Modelica.Electrical.Analog.Sensors.CurrentSensor currtSens annotation (
|
|---|
| 2343 | Placement(visible = true, transformation(origin = {72, 28}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
|
|---|
| 2344 | Modelica.Blocks.Sources.Sine sine1(amplitude = 10, freqHz = 50) annotation (
|
|---|
| 2345 | Placement(visible = true, transformation(origin = {108, 62}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2346 | equation
|
|---|
| 2347 | connect(ground.p, dSW1.p) annotation (
|
|---|
| 2348 | Line(points = {{92, -40}, {92, -30}, {78, -30}, {78, -4}, {32, -4}, {32, -14}}, color = {0, 0, 255}));
|
|---|
| 2349 | connect(V1.n, dD1.p) annotation (
|
|---|
| 2350 | Line(points = {{-70, 2}, {-70, -48}, {12, -48}, {12, -34}}, color = {0, 0, 255}));
|
|---|
| 2351 | connect(V1.n, dD.p) annotation (
|
|---|
| 2352 | Line(points = {{-70, 2}, {-70, -48}, {-50, -48}, {-50, -34}}, color = {0, 0, 255}));
|
|---|
| 2353 | connect(V1.p, uD1.n) annotation (
|
|---|
| 2354 | Line(points = {{-70, 22}, {-70, 54}, {22, 54}, {22, 48}, {12, 48}, {12, 44}}, color = {0, 0, 255}));
|
|---|
| 2355 | connect(V1.p, uD.n) annotation (
|
|---|
| 2356 | Line(points = {{-70, 22}, {-70, 54}, {-40, 54}, {-40, 48}, {-50, 48}, {-50, 44}}, color = {0, 0, 255}));
|
|---|
| 2357 | connect(nor1.u, nor2.u) annotation (
|
|---|
| 2358 | Line(points = {{-8, -14.4}, {-8, 58}, {42, 58}, {42, 49.6}}, color = {255, 0, 255}));
|
|---|
| 2359 | connect(nor1.y, dSW.fire) annotation (
|
|---|
| 2360 | Line(points = {{-8, -24.8}, {-8, -34}, {-18, -34}}, color = {255, 0, 255}));
|
|---|
| 2361 | connect(uSW.p, uD.n) annotation (
|
|---|
| 2362 | Line(points = {{-30, 44}, {-30, 48}, {-50, 48}, {-50, 44}}, color = {0, 0, 255}));
|
|---|
| 2363 | connect(uD.p, uSW.n) annotation (
|
|---|
| 2364 | Line(points = {{-50, 24}, {-50, 16}, {-30, 16}, {-30, 24}}, color = {0, 0, 255}));
|
|---|
| 2365 | connect(uD.p, dSW.p) annotation (
|
|---|
| 2366 | Line(points = {{-50, 24}, {-50, 16}, {-40, 16}, {-40, -14}, {-30, -14}}, color = {0, 0, 255}));
|
|---|
| 2367 | connect(currtSens.p, uD.p) annotation (
|
|---|
| 2368 | Line(points = {{62, 28}, {58, 28}, {58, 12}, {-40, 12}, {-40, 16}, {-50, 16}, {-50, 24}}, color = {0, 0, 255}));
|
|---|
| 2369 | connect(uSW.fire, nor2.u) annotation (
|
|---|
| 2370 | Line(points = {{-18, 24}, {-14, 24}, {-14, 58}, {42, 58}, {42, 49.6}}, color = {255, 0, 255}));
|
|---|
| 2371 | connect(dD.n, dSW.p) annotation (
|
|---|
| 2372 | Line(points = {{-50, -14}, {-30, -14}}, color = {0, 0, 255}));
|
|---|
| 2373 | connect(dSW.n, dD.p) annotation (
|
|---|
| 2374 | Line(points = {{-30, -34}, {-30, -48}, {-50, -48}, {-50, -34}}, color = {0, 0, 255}));
|
|---|
| 2375 | connect(inductor.n, Load.p) annotation (
|
|---|
| 2376 | Line(points = {{92, 2}, {92, -6}}, color = {0, 0, 255}));
|
|---|
| 2377 | connect(currtSens.n, inductor.p) annotation (
|
|---|
| 2378 | Line(points = {{82, 28}, {92, 28}, {92, 22}}, color = {0, 0, 255}));
|
|---|
| 2379 | connect(Load.n, dSW1.p) annotation (
|
|---|
| 2380 | Line(points = {{92, -26}, {92, -30}, {78, -30}, {78, -4}, {32, -4}, {32, -14}}, color = {0, 0, 255}));
|
|---|
| 2381 | connect(uSW1.p, uD1.n) annotation (
|
|---|
| 2382 | Line(points = {{32, 44}, {32, 48}, {12, 48}, {12, 44}}, color = {0, 0, 255}));
|
|---|
| 2383 | connect(uD1.p, uSW1.n) annotation (
|
|---|
| 2384 | Line(points = {{12, 24}, {12, 16}, {32, 16}, {32, 24}}, color = {0, 0, 255}));
|
|---|
| 2385 | connect(uD1.p, dSW1.p) annotation (
|
|---|
| 2386 | Line(points = {{12, 24}, {12, 16}, {22, 16}, {22, -14}, {32, -14}}, color = {0, 0, 255}));
|
|---|
| 2387 | connect(nor2.y, uSW1.fire) annotation (
|
|---|
| 2388 | Line(points = {{42, 39.2}, {42, 24}, {44, 24}}, color = {255, 0, 255}));
|
|---|
| 2389 | connect(dD1.n, dSW1.p) annotation (
|
|---|
| 2390 | Line(points = {{12, -14}, {32, -14}}, color = {0, 0, 255}));
|
|---|
| 2391 | connect(dSW1.n, dD1.p) annotation (
|
|---|
| 2392 | Line(points = {{32, -34}, {32, -48}, {12, -48}, {12, -34}}, color = {0, 0, 255}));
|
|---|
| 2393 | connect(dSW1.fire, nor2.u) annotation (
|
|---|
| 2394 | Line(points = {{44, -34}, {50, -34}, {50, 58}, {42, 58}, {42, 49.6}}, color = {255, 0, 255}));
|
|---|
| 2395 | connect(onOffContr.y, nor2.u) annotation (
|
|---|
| 2396 | Line(points = {{61, 60}, {43, 60}, {43, 50}, {43, 50}}, color = {255, 0, 255}));
|
|---|
| 2397 | connect(currtSens.i, onOffContr.u) annotation (
|
|---|
| 2398 | Line(points = {{72, 39}, {72, 41}, {94, 41}, {94, 53}, {84, 53}}, color = {0, 0, 127}));
|
|---|
| 2399 | connect(sine1.y, onOffContr.reference) annotation (
|
|---|
| 2400 | Line(points = {{97, 62}, {91.5, 62}, {91.5, 66}, {84, 66}}, color = {0, 0, 127}));
|
|---|
| 2401 | annotation (
|
|---|
| 2402 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {120, 80}})),
|
|---|
| 2403 | experiment(StopTime = 0.1, StartTime = 0, Tolerance = 1e-06, Interval = 2e-05),
|
|---|
| 2404 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2405 | </body></html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 2406 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 2407 | end ReTwoHy;
|
|---|
| 2408 |
|
|---|
| 2409 | model IdTwoHy "Switch-diode pais, two-legs, square wave"
|
|---|
| 2410 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 2411 | Placement(visible = true, transformation(extent = {{64, -50}, {84, -30}}, rotation = 0)));
|
|---|
| 2412 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 225.0) annotation (
|
|---|
| 2413 | Placement(visible = true, transformation(origin = {-38, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2414 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 10e-3) annotation (
|
|---|
| 2415 | Placement(visible = true, transformation(origin = {74, 8}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2416 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 10) annotation (
|
|---|
| 2417 | Placement(visible = true, transformation(origin = {74, -16}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2418 | Modelica.Blocks.MathBoolean.Not nor2 annotation (
|
|---|
| 2419 | Placement(visible = true, transformation(origin = {24, 48}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 2420 | Modelica.Blocks.Logical.OnOffController onOffContr(bandwidth = 0.7) annotation (
|
|---|
| 2421 | Placement(visible = true, transformation(origin = {52, 58}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2422 | Modelica.Electrical.Analog.Sensors.CurrentSensor currtSens annotation (
|
|---|
| 2423 | Placement(visible = true, transformation(origin = {58, 24}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
|
|---|
| 2424 | Modelica.Blocks.Sources.Sine sine1(amplitude = 10, freqHz = 50) annotation (
|
|---|
| 2425 | Placement(visible = true, transformation(origin = {86, 60}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2426 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch1 annotation (
|
|---|
| 2427 | Placement(visible = true, transformation(origin = {-22, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2428 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch annotation (
|
|---|
| 2429 | Placement(visible = true, transformation(origin = {-22, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2430 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch2 annotation (
|
|---|
| 2431 | Placement(visible = true, transformation(origin = {2, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2432 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch3 annotation (
|
|---|
| 2433 | Placement(visible = true, transformation(origin = {2, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2434 | equation
|
|---|
| 2435 | connect(Load.n, switch3.p) annotation (
|
|---|
| 2436 | Line(points = {{74, -26}, {40, -26}, {40, 4}, {2, 4}, {2, -10}}, color = {0, 0, 255}));
|
|---|
| 2437 | connect(Load.n, ground.p) annotation (
|
|---|
| 2438 | Line(points = {{74, -26}, {74, -30}}, color = {0, 0, 255}));
|
|---|
| 2439 | connect(inductor.n, Load.p) annotation (
|
|---|
| 2440 | Line(points = {{74, -2}, {74, -6}}, color = {0, 0, 255}));
|
|---|
| 2441 | connect(sine1.y, onOffContr.reference) annotation (
|
|---|
| 2442 | Line(points = {{75, 60}, {73.5, 60}, {73.5, 64}, {64, 64}}, color = {0, 0, 127}));
|
|---|
| 2443 | connect(switch3.control, onOffContr.y) annotation (
|
|---|
| 2444 | Line(points = {{14, -20}, {34, -20}, {34, 58}, {41, 58}}, color = {255, 0, 255}));
|
|---|
| 2445 | connect(switch1.control, onOffContr.y) annotation (
|
|---|
| 2446 | Line(points = {{-10, 40}, {-10, 58}, {41, 58}}, color = {255, 0, 255}));
|
|---|
| 2447 | connect(currtSens.i, onOffContr.u) annotation (
|
|---|
| 2448 | Line(points = {{58, 35}, {58, 37}, {72, 37}, {72, 52}, {64, 52}}, color = {0, 0, 127}));
|
|---|
| 2449 | connect(onOffContr.y, nor2.u) annotation (
|
|---|
| 2450 | Line(points = {{41, 58}, {24, 58}, {24, 54}}, color = {255, 0, 255}));
|
|---|
| 2451 | connect(V1.p, switch1.p) annotation (
|
|---|
| 2452 | Line(points = {{-38, 20}, {-38, 50}, {-22, 50}}, color = {0, 0, 255}));
|
|---|
| 2453 | connect(V1.n, switch.n) annotation (
|
|---|
| 2454 | Line(points = {{-38, 0}, {-38, -30}, {-22, -30}}, color = {0, 0, 255}));
|
|---|
| 2455 | connect(currtSens.p, switch1.n) annotation (
|
|---|
| 2456 | Line(points = {{48, 24}, {-22, 24}, {-22, 30}}, color = {0, 0, 255}));
|
|---|
| 2457 | connect(currtSens.n, inductor.p) annotation (
|
|---|
| 2458 | Line(points = {{68, 24}, {74, 24}, {74, 18}}, color = {0, 0, 255}));
|
|---|
| 2459 | connect(switch.control, nor2.y) annotation (
|
|---|
| 2460 | Line(points = {{-10, -20}, {-4, -20}, {-4, 12}, {24, 12}, {24, 43}}, color = {255, 0, 255}));
|
|---|
| 2461 | connect(nor2.y, switch2.control) annotation (
|
|---|
| 2462 | Line(points = {{24, 43}, {24, 40}, {14, 40}}, color = {255, 0, 255}));
|
|---|
| 2463 | connect(switch.n, switch3.n) annotation (
|
|---|
| 2464 | Line(points = {{-22, -30}, {2, -30}}, color = {0, 0, 255}));
|
|---|
| 2465 | connect(switch2.n, switch3.p) annotation (
|
|---|
| 2466 | Line(points = {{2, 30}, {2, -10}}, color = {0, 0, 255}));
|
|---|
| 2467 | connect(switch1.p, switch2.p) annotation (
|
|---|
| 2468 | Line(points = {{-22, 50}, {2, 50}}, color = {0, 0, 255}));
|
|---|
| 2469 | connect(switch1.n, switch.p) annotation (
|
|---|
| 2470 | Line(points = {{-22, 30}, {-22, 30}, {-22, 32}, {-22, 32}, {-22, -8}, {-22, -8}, {-22, -10}, {-22, -10}}, color = {0, 0, 255}));
|
|---|
| 2471 | annotation (
|
|---|
| 2472 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {120, 80}})),
|
|---|
| 2473 | experiment(StopTime = 0.04, StartTime = 0, Tolerance = 1e-06, Interval = 8e-06),
|
|---|
| 2474 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2475 | </body></html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 2476 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 2477 | end IdTwoHy;
|
|---|
| 2478 |
|
|---|
| 2479 | model IdTwoRLE "Switch-diode pais, two-legs, square wave"
|
|---|
| 2480 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 2481 | Placement(visible = true, transformation(origin = {-64, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2482 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 5e-3) annotation (
|
|---|
| 2483 | Placement(visible = true, transformation(origin = {58, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2484 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 0.05) annotation (
|
|---|
| 2485 | Placement(visible = true, transformation(origin = {90, 24}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
|
|---|
| 2486 | Modelica.Blocks.MathBoolean.Not nor2 annotation (
|
|---|
| 2487 | Placement(visible = true, transformation(origin = {-2, 48}, extent = {{-4, -4}, {4, 4}}, rotation = 270)));
|
|---|
| 2488 | Modelica.Blocks.Logical.OnOffController onOffContr(bandwidth = 0.7) annotation (
|
|---|
| 2489 | Placement(visible = true, transformation(origin = {26, 58}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2490 | Modelica.Electrical.Analog.Sensors.CurrentSensor currtSens annotation (
|
|---|
| 2491 | Placement(visible = true, transformation(origin = {32, 24}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
|
|---|
| 2492 | Modelica.Blocks.Sources.Sine sine1(amplitude = 10, freqHz = 50) annotation (
|
|---|
| 2493 | Placement(visible = true, transformation(origin = {60, 60}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
|
|---|
| 2494 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch1 annotation (
|
|---|
| 2495 | Placement(visible = true, transformation(origin = {-48, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2496 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch4 annotation (
|
|---|
| 2497 | Placement(visible = true, transformation(origin = {-48, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2498 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch2 annotation (
|
|---|
| 2499 | Placement(visible = true, transformation(origin = {-24, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2500 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch3 annotation (
|
|---|
| 2501 | Placement(visible = true, transformation(origin = {-24, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2502 | Modelica.Electrical.Analog.Sources.SineVoltage fem(V = 90, freqHz = 50) annotation (
|
|---|
| 2503 | Placement(visible = true, transformation(origin = {100, 4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2504 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 2505 | Placement(visible = true, transformation(origin = {100, -22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2506 | equation
|
|---|
| 2507 | connect(fem.n, ground1.p) annotation (
|
|---|
| 2508 | Line(points = {{100, -6}, {100, -6}, {100, -12}, {100, -12}}, color = {0, 0, 255}));
|
|---|
| 2509 | connect(fem.n, switch3.p) annotation (
|
|---|
| 2510 | Line(points = {{100, -6}, {-12, -6}, {-12, 2}, {-24, 2}, {-24, -10}, {-24, -10}}, color = {0, 0, 255}));
|
|---|
| 2511 | connect(fem.p, Load.n) annotation (
|
|---|
| 2512 | Line(points = {{100, 14}, {100, 14}, {100, 24}, {100, 24}}, color = {0, 0, 255}));
|
|---|
| 2513 | connect(currtSens.n, inductor.p) annotation (
|
|---|
| 2514 | Line(points = {{42, 24}, {42, 23}, {48, 23}, {48, 24}}, color = {0, 0, 255}));
|
|---|
| 2515 | connect(inductor.n, Load.p) annotation (
|
|---|
| 2516 | Line(points = {{68, 24}, {80, 24}}, color = {0, 0, 255}));
|
|---|
| 2517 | connect(V1.n, switch4.n) annotation (
|
|---|
| 2518 | Line(points = {{-64, 0}, {-64, -30}, {-48, -30}}, color = {0, 0, 255}));
|
|---|
| 2519 | connect(V1.p, switch1.p) annotation (
|
|---|
| 2520 | Line(points = {{-64, 20}, {-64, 50}, {-48, 50}}, color = {0, 0, 255}));
|
|---|
| 2521 | connect(nor2.y, switch2.control) annotation (
|
|---|
| 2522 | Line(points = {{-2, 43.2}, {-2, 40.2}, {-12, 40.2}}, color = {255, 0, 255}));
|
|---|
| 2523 | connect(switch4.control, nor2.y) annotation (
|
|---|
| 2524 | Line(points = {{-36, -20}, {-30, -20}, {-30, 12}, {-2, 12}, {-2, 43}}, color = {255, 0, 255}));
|
|---|
| 2525 | connect(onOffContr.y, nor2.u) annotation (
|
|---|
| 2526 | Line(points = {{15, 58}, {-2, 58}, {-2, 54}}, color = {255, 0, 255}));
|
|---|
| 2527 | connect(currtSens.i, onOffContr.u) annotation (
|
|---|
| 2528 | Line(points = {{32, 35}, {32, 37}, {46, 37}, {46, 52}, {38, 52}}, color = {0, 0, 127}));
|
|---|
| 2529 | connect(switch1.control, onOffContr.y) annotation (
|
|---|
| 2530 | Line(points = {{-36, 40}, {-36, 58}, {15, 58}}, color = {255, 0, 255}));
|
|---|
| 2531 | connect(switch3.control, onOffContr.y) annotation (
|
|---|
| 2532 | Line(points = {{-12, -20}, {8, -20}, {8, 58}, {15, 58}}, color = {255, 0, 255}));
|
|---|
| 2533 | connect(sine1.y, onOffContr.reference) annotation (
|
|---|
| 2534 | Line(points = {{49, 60}, {47.5, 60}, {47.5, 64}, {38, 64}}, color = {0, 0, 127}));
|
|---|
| 2535 | connect(currtSens.p, switch1.n) annotation (
|
|---|
| 2536 | Line(points = {{22, 24}, {-48, 24}, {-48, 30}}, color = {0, 0, 255}));
|
|---|
| 2537 | connect(switch1.n, switch4.p) annotation (
|
|---|
| 2538 | Line(points = {{-48, 30}, {-48, 30}, {-48, 32}, {-48, 32}, {-48, -8}, {-48, -8}, {-48, -10}, {-48, -10}}, color = {0, 0, 255}));
|
|---|
| 2539 | connect(switch1.p, switch2.p) annotation (
|
|---|
| 2540 | Line(points = {{-48, 50}, {-24, 50}}, color = {0, 0, 255}));
|
|---|
| 2541 | connect(switch4.n, switch3.n) annotation (
|
|---|
| 2542 | Line(points = {{-48, -30}, {-24, -30}}, color = {0, 0, 255}));
|
|---|
| 2543 | connect(switch2.n, switch3.p) annotation (
|
|---|
| 2544 | Line(points = {{-24, 30}, {-24, -10}}, color = {0, 0, 255}));
|
|---|
| 2545 | annotation (
|
|---|
| 2546 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -60}, {120, 80}})),
|
|---|
| 2547 | experiment(StopTime = 0.1, StartTime = 0, Tolerance = 1e-06, Interval = 2e-05),
|
|---|
| 2548 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2549 | </body></html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 2550 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 2551 | end IdTwoRLE;
|
|---|
| 2552 |
|
|---|
| 2553 | model WIP "Switch-diode pais, two-legs, square wave"
|
|---|
| 2554 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V = 100) annotation (
|
|---|
| 2555 | Placement(visible = true, transformation(origin = {-64, 10}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2556 | Modelica.Electrical.Analog.Basic.Inductor inductor(L = 5e-3) annotation (
|
|---|
| 2557 | Placement(visible = true, transformation(origin = {-4, 24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2558 | Modelica.Electrical.Analog.Basic.Resistor Load(R = 0.05) annotation (
|
|---|
| 2559 | Placement(visible = true, transformation(origin = {22, 24}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
|
|---|
| 2560 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch1 annotation (
|
|---|
| 2561 | Placement(visible = true, transformation(origin = {-48, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2562 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch4 annotation (
|
|---|
| 2563 | Placement(visible = true, transformation(origin = {-48, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2564 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch2 annotation (
|
|---|
| 2565 | Placement(visible = true, transformation(origin = {-26, 40}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2566 | Modelica.Electrical.Analog.Ideal.IdealClosingSwitch switch3 annotation (
|
|---|
| 2567 | Placement(visible = true, transformation(origin = {-26, -20}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2568 | Modelica.Electrical.Analog.Sources.SineVoltage fem(V = 90, freqHz = 50) annotation (
|
|---|
| 2569 | Placement(visible = true, transformation(origin = {32, 4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
|
|---|
| 2570 | Modelica.Electrical.Analog.Basic.Ground ground1 annotation (
|
|---|
| 2571 | Placement(visible = true, transformation(origin = {32, -22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2572 | equation
|
|---|
| 2573 | connect(fem.n, ground1.p) annotation (
|
|---|
| 2574 | Line(points = {{32, -6}, {32, -6}, {32, -12}, {32, -12}}, color = {0, 0, 255}));
|
|---|
| 2575 | connect(fem.p, Load.n) annotation (
|
|---|
| 2576 | Line(points = {{32, 14}, {32, 14}, {32, 24}, {32, 24}}, color = {0, 0, 255}));
|
|---|
| 2577 | connect(fem.n, switch3.p) annotation (
|
|---|
| 2578 | Line(points = {{32, -6}, {-12, -6}, {-12, 2}, {-26, 2}, {-26, -10}}, color = {0, 0, 255}));
|
|---|
| 2579 | connect(inductor.n, Load.p) annotation (
|
|---|
| 2580 | Line(points = {{6, 24}, {12, 24}}, color = {0, 0, 255}));
|
|---|
| 2581 | connect(switch2.n, switch3.p) annotation (
|
|---|
| 2582 | Line(points = {{-26, 30}, {-26, -10}}, color = {0, 0, 255}));
|
|---|
| 2583 | connect(switch4.n, switch3.n) annotation (
|
|---|
| 2584 | Line(points = {{-48, -30}, {-26, -30}}, color = {0, 0, 255}));
|
|---|
| 2585 | connect(inductor.p, switch1.n) annotation (
|
|---|
| 2586 | Line(points = {{-14, 24}, {-48, 24}, {-48, 30}}, color = {0, 0, 255}));
|
|---|
| 2587 | connect(switch1.p, switch2.p) annotation (
|
|---|
| 2588 | Line(points = {{-48, 50}, {-26, 50}}, color = {0, 0, 255}));
|
|---|
| 2589 | connect(V1.n, switch4.n) annotation (
|
|---|
| 2590 | Line(points = {{-64, 0}, {-64, -30}, {-48, -30}}, color = {0, 0, 255}));
|
|---|
| 2591 | connect(V1.p, switch1.p) annotation (
|
|---|
| 2592 | Line(points = {{-64, 20}, {-64, 50}, {-48, 50}}, color = {0, 0, 255}));
|
|---|
| 2593 | connect(switch1.n, switch4.p) annotation (
|
|---|
| 2594 | Line(points = {{-48, 30}, {-48, 30}, {-48, 32}, {-48, 32}, {-48, -8}, {-48, -8}, {-48, -10}, {-48, -10}}, color = {0, 0, 255}));
|
|---|
| 2595 | annotation (
|
|---|
| 2596 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-80, -40}, {60, 60}})),
|
|---|
| 2597 | experiment(StopTime = 0.1, StartTime = 0, Tolerance = 1e-06, Interval = 2e-05),
|
|---|
| 2598 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2599 | </body></html>", revisions = "<html><head></head><body>no newInst</body></html>"),
|
|---|
| 2600 | Icon(coordinateSystem(extent = {{-80, -60}, {120, 80}}, preserveAspectRatio = false)));
|
|---|
| 2601 | end WIP;
|
|---|
| 2602 | annotation (
|
|---|
| 2603 | Diagram(coordinateSystem(extent = {{-100, -80}, {100, 80}})));
|
|---|
| 2604 | end Hyst;
|
|---|
| 2605 |
|
|---|
| 2606 | package Support
|
|---|
| 2607 | model PulseDelay
|
|---|
| 2608 | annotation (
|
|---|
| 2609 | Icon(coordinateSystem(preserveAspectRatio = false)),
|
|---|
| 2610 | Diagram(coordinateSystem(preserveAspectRatio = false)));
|
|---|
| 2611 | end PulseDelay;
|
|---|
| 2612 |
|
|---|
| 2613 | model QMonoSensor "Sensor to measure the reactive power"
|
|---|
| 2614 | Modelica.Electrical.Analog.Interfaces.PositivePin pc "Positive pin, current path" annotation (
|
|---|
| 2615 | Placement(transformation(extent = {{-90, -10}, {-110, 10}}, rotation = 0)));
|
|---|
| 2616 | Modelica.Electrical.Analog.Interfaces.NegativePin nc "Negative pin, current path" annotation (
|
|---|
| 2617 | Placement(transformation(extent = {{110, -10}, {90, 10}}, rotation = 0)));
|
|---|
| 2618 | Modelica.Electrical.Analog.Interfaces.PositivePin pv "Positive pin, voltage path" annotation (
|
|---|
| 2619 | Placement(transformation(extent = {{-10, 110}, {10, 90}}, rotation = 0)));
|
|---|
| 2620 | Modelica.Electrical.Analog.Interfaces.NegativePin nv "Negative pin, voltage path" annotation (
|
|---|
| 2621 | Placement(transformation(extent = {{10, -110}, {-10, -90}}, rotation = 0)));
|
|---|
| 2622 | Modelica.Blocks.Interfaces.RealOutput power annotation (
|
|---|
| 2623 | Placement(transformation(origin = {-80, -110}, extent = {{-10, 10}, {10, -10}}, rotation = 270)));
|
|---|
| 2624 | Modelica.Electrical.Analog.Sensors.VoltageSensor voltageSensor annotation (
|
|---|
| 2625 | Placement(transformation(origin = {0, -30}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2626 | Modelica.Electrical.Analog.Sensors.CurrentSensor currentSensor annotation (
|
|---|
| 2627 | Placement(transformation(extent = {{-50, -10}, {-30, 10}}, rotation = 0)));
|
|---|
| 2628 | Modelica.Blocks.Math.Product product annotation (
|
|---|
| 2629 | Placement(transformation(origin = {-30, -50}, extent = {{-10, -10}, {10, 10}}, rotation = 270)));
|
|---|
| 2630 | Modelica.Blocks.Nonlinear.VariableDelay variableDelay(delayMax = 1.0) annotation (
|
|---|
| 2631 | Placement(transformation(extent = {{32, -40}, {52, -20}})));
|
|---|
| 2632 | Modelica.Blocks.Sources.Constant const(k = 1 / (50 * 4)) annotation (
|
|---|
| 2633 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {18, -66})));
|
|---|
| 2634 | equation
|
|---|
| 2635 | connect(pv, voltageSensor.p) annotation (
|
|---|
| 2636 | Line(points = {{0, 100}, {0, -20}, {6.12323e-016, -20}}, color = {0, 0, 255}));
|
|---|
| 2637 | connect(voltageSensor.n, nv) annotation (
|
|---|
| 2638 | Line(points = {{-6.12323e-016, -40}, {-6.12323e-016, -63}, {0, -63}, {0, -100}}, color = {0, 0, 255}));
|
|---|
| 2639 | connect(pc, currentSensor.p) annotation (
|
|---|
| 2640 | Line(points = {{-100, 0}, {-50, 0}}, color = {0, 0, 255}));
|
|---|
| 2641 | connect(currentSensor.n, nc) annotation (
|
|---|
| 2642 | Line(points = {{-30, 0}, {100, 0}}, color = {0, 0, 255}));
|
|---|
| 2643 | connect(currentSensor.i, product.u2) annotation (
|
|---|
| 2644 | Line(points = {{-40, -11}, {-40, -30}, {-36, -30}, {-36, -38}}, color = {0, 0, 127}));
|
|---|
| 2645 | connect(product.y, power) annotation (
|
|---|
| 2646 | Line(points = {{-30, -61}, {-30, -80}, {-80, -80}, {-80, -110}}, color = {0, 0, 127}));
|
|---|
| 2647 | connect(variableDelay.u, voltageSensor.v) annotation (
|
|---|
| 2648 | Line(points = {{30, -30}, {11, -30}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2649 | connect(const.y, variableDelay.delayTime) annotation (
|
|---|
| 2650 | Line(points = {{18, -55}, {18, -36}, {30, -36}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2651 | connect(variableDelay.y, product.u1) annotation (
|
|---|
| 2652 | Line(points = {{53, -30}, {68, -30}, {68, 20}, {-24, 20}, {-24, -38}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2653 | annotation (
|
|---|
| 2654 | Icon(coordinateSystem(preserveAspectRatio = true, extent = {{-100, -100}, {100, 100}}, grid = {2, 2}), graphics = {Ellipse(extent = {{-70, 70}, {70, -70}}, lineColor = {0, 0, 0}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Line(points = {{0, 100}, {0, 70}}, color = {0, 0, 255}), Line(points = {{0, -70}, {0, -100}}, color = {0, 0, 255}), Line(points = {{-80, -100}, {-80, 0}}, color = {0, 0, 255}), Line(points = {{-100, 0}, {100, 0}}, color = {0, 0, 255}), Text(extent = {{150, 120}, {-150, 160}}, textString = "%name", lineColor = {0, 0, 255}), Line(points = {{0, 70}, {0, 40}}, color = {0, 0, 0}), Line(points = {{22.9, 32.8}, {40.2, 57.3}}, color = {0, 0, 0}), Line(points = {{-22.9, 32.8}, {-40.2, 57.3}}, color = {0, 0, 0}), Line(points = {{37.6, 13.7}, {65.8, 23.9}}, color = {0, 0, 0}), Line(points = {{-37.6, 13.7}, {-65.8, 23.9}}, color = {0, 0, 0}), Line(points = {{0, 0}, {9.02, 28.6}}, color = {0, 0, 0}), Polygon(points = {{-0.48, 31.6}, {18, 26}, {18, 57.2}, {-0.48, 31.6}}, lineColor = {0, 0, 0}, fillColor = {0, 0, 0}, fillPattern = FillPattern.Solid), Ellipse(extent = {{-5, 5}, {5, -5}}, lineColor = {0, 0, 0}, fillColor = {0, 0, 0}, fillPattern = FillPattern.Solid), Text(extent = {{-29, -11}, {30, -70}}, lineColor = {0, 0, 0}, textString = "Q")}),
|
|---|
| 2655 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {2, 2}), graphics),
|
|---|
| 2656 | Documentation(info = "<html>
|
|---|
| 2657 | <p>This power sensor measures instantaneous electrical power of a singlephase system and has a separated voltage and current path. The pins of the voltage path are pv and nv, the pins of the current path are pc and nc. The internal resistance of the current path is zero, the internal resistance of the voltage path is infinite.</p>
|
|---|
| 2658 | </html>", revisions = "<html>
|
|---|
| 2659 | <ul>
|
|---|
| 2660 | <li><i>January 12, 2006</i> by Anton Haumer implemented</li>
|
|---|
| 2661 | </ul>
|
|---|
| 2662 | </html>"));
|
|---|
| 2663 | end QMonoSensor;
|
|---|
| 2664 |
|
|---|
| 2665 | block PwmPulser
|
|---|
| 2666 | Modelica.Blocks.Interfaces.RealInput ampl annotation (
|
|---|
| 2667 | Placement(transformation(extent = {{-140, 40}, {-100, 80}}), iconTransformation(extent = {{-140, 44}, {-100, 84}})));
|
|---|
| 2668 | Modelica.Blocks.Interfaces.RealInput ph_deg annotation (
|
|---|
| 2669 | Placement(transformation(extent = {{-138, -76}, {-98, -36}}), iconTransformation(extent = {{-140, -74}, {-100, -34}})));
|
|---|
| 2670 | parameter Modelica.SIunits.Frequency fCar = 1050 "Carrier Frequency";
|
|---|
| 2671 | parameter Modelica.SIunits.Time carStartTime = 0 "Carrier start time";
|
|---|
| 2672 | import PI = Modelica.Constants.pi;
|
|---|
| 2673 | protected
|
|---|
| 2674 | Modelica.Blocks.Sources.Trapezoid carrier(rising = 1 / (2 * fCar), width = 0, falling = 1 / (2 * fCar), period = 1 / fCar, amplitude = 2, offset = -1, startTime = carStartTime) annotation (
|
|---|
| 2675 | Placement(transformation(extent = {{14, -56}, {34, -36}})));
|
|---|
| 2676 | Modelica.Blocks.Math.Sin sin annotation (
|
|---|
| 2677 | Placement(transformation(extent = {{-20, -28}, {0, -8}})));
|
|---|
| 2678 | Modelica.Blocks.Continuous.Integrator integrator annotation (
|
|---|
| 2679 | Placement(transformation(extent = {{-50, 16}, {-32, 34}})));
|
|---|
| 2680 | Modelica.Blocks.Sources.RealExpression realExpression(y = 2 * PI * fSig) annotation (
|
|---|
| 2681 | Placement(transformation(extent = {{-90, 14}, {-64, 36}})));
|
|---|
| 2682 | public
|
|---|
| 2683 | Modelica.Blocks.Math.Add add annotation (
|
|---|
| 2684 | Placement(transformation(extent = {{-54, -28}, {-34, -8}})));
|
|---|
| 2685 | Modelica.Blocks.Math.Gain ToRAD(k = PI / 180) annotation (
|
|---|
| 2686 | Placement(transformation(extent = {{-66, -62}, {-54, -50}})));
|
|---|
| 2687 | Modelica.Blocks.Math.Product signal annotation (
|
|---|
| 2688 | Placement(transformation(extent = {{14, -22}, {32, -4}})));
|
|---|
| 2689 | Modelica.Blocks.Interfaces.BooleanOutput up annotation (
|
|---|
| 2690 | Placement(transformation(extent = {{100, 10}, {120, 30}}), iconTransformation(extent = {{100, 56}, {120, 76}})));
|
|---|
| 2691 | Modelica.Blocks.Logical.Greater greater annotation (
|
|---|
| 2692 | Placement(transformation(extent = {{46, -24}, {66, -4}})));
|
|---|
| 2693 | Modelica.Blocks.Interfaces.BooleanOutput down annotation (
|
|---|
| 2694 | Placement(transformation(extent = {{100, -62}, {120, -42}}), iconTransformation(extent = {{100, -68}, {120, -48}})));
|
|---|
| 2695 | Modelica.Blocks.Logical.Not not1 annotation (
|
|---|
| 2696 | Placement(transformation(extent = {{60, -60}, {80, -40}})));
|
|---|
| 2697 | parameter Modelica.SIunits.Frequency fSig = 50 "Signal Frequency";
|
|---|
| 2698 | equation
|
|---|
| 2699 | connect(ToRAD.u, ph_deg) annotation (
|
|---|
| 2700 | Line(points = {{-67.2, -56}, {-118, -56}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2701 | connect(sin.u, add.y) annotation (
|
|---|
| 2702 | Line(points = {{-22, -18}, {-33, -18}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2703 | connect(signal.u2, sin.y) annotation (
|
|---|
| 2704 | Line(points = {{12.2, -18.4}, {14, -18.4}, {14, -18}, {1, -18}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2705 | connect(add.u1, integrator.y) annotation (
|
|---|
| 2706 | Line(points = {{-56, -12}, {-64, -12}, {-64, 2}, {-24, 2}, {-24, 25}, {-31.1, 25}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2707 | connect(signal.u1, ampl) annotation (
|
|---|
| 2708 | Line(points = {{12.2, -7.6}, {12.2, 60}, {-120, 60}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2709 | connect(add.u2, ToRAD.y) annotation (
|
|---|
| 2710 | Line(points = {{-56, -24}, {-64, -24}, {-64, -34}, {-46, -34}, {-46, -56}, {-53.4, -56}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2711 | connect(greater.u1, signal.y) annotation (
|
|---|
| 2712 | Line(points = {{44, -14}, {46.45, -14}, {46.45, -13}, {32.9, -13}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2713 | connect(greater.u2, carrier.y) annotation (
|
|---|
| 2714 | Line(points = {{44, -22}, {44, -46}, {35, -46}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2715 | connect(up, greater.y) annotation (
|
|---|
| 2716 | Line(points = {{110, 20}, {74, 20}, {74, -14}, {67, -14}}, color = {255, 0, 255}, smooth = Smooth.None));
|
|---|
| 2717 | connect(not1.y, down) annotation (
|
|---|
| 2718 | Line(points = {{81, -50}, {84, -50}, {84, -52}, {110, -52}}, color = {255, 0, 255}, smooth = Smooth.None));
|
|---|
| 2719 | connect(not1.u, greater.y) annotation (
|
|---|
| 2720 | Line(points = {{58, -50}, {52, -50}, {52, -32}, {74, -32}, {74, -14}, {67, -14}}, color = {255, 0, 255}, smooth = Smooth.None));
|
|---|
| 2721 | connect(integrator.u, realExpression.y) annotation (
|
|---|
| 2722 | Line(points = {{-51.8, 25}, {-62.7, 25}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2723 | annotation (
|
|---|
| 2724 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -80}, {100, 80}})),
|
|---|
| 2725 | Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Rectangle(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 127}, fillPattern = FillPattern.Solid, fillColor = {255, 255, 255}), Text(extent = {{-98, 88}, {-40, 60}}, lineColor = {0, 0, 127}, textString = "ampl"), Text(extent = {{-98, -62}, {-28, -88}}, lineColor = {0, 0, 127}, textString = "ph(°)"), Text(extent = {{28, 86}, {100, 60}}, lineColor = {255, 0, 255}, textString = "u"), Text(extent = {{42, -62}, {96, -88}}, lineColor = {255, 0, 255}, textString = "d", fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Line(points = {{-60, -60}, {-40, 62}, {-20, -60}, {0, 60}, {20, -62}, {40, 60}, {60, -62}, {80, 58}}, color = {0, 0, 127}, smooth = Smooth.None), Line(points = {{-80, 20}, {-38, 40}, {0, 44}, {42, 40}, {80, 20}}, color = {0, 0, 127}, smooth = Smooth.None, thickness = 0.5), Text(extent = {{-100, 140}, {100, 110}}, lineColor = {0, 0, 255}, textString = "%name")}),
|
|---|
| 2726 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2727 | end PwmPulser;
|
|---|
| 2728 |
|
|---|
| 2729 | block PwmPulser3
|
|---|
| 2730 | Modelica.Blocks.Interfaces.RealInput ampl annotation (
|
|---|
| 2731 | Placement(transformation(extent = {{-140, 40}, {-100, 80}}), iconTransformation(extent = {{-140, 44}, {-100, 84}})));
|
|---|
| 2732 | Modelica.Blocks.Interfaces.RealInput ph_deg annotation (
|
|---|
| 2733 | Placement(transformation(extent = {{-138, -76}, {-98, -36}}), iconTransformation(extent = {{-140, -74}, {-100, -34}})));
|
|---|
| 2734 | parameter Modelica.SIunits.Frequency fCar = 1050 "Carrier Frequency";
|
|---|
| 2735 | import PI = Modelica.Constants.pi;
|
|---|
| 2736 | Modelica.Blocks.Interfaces.BooleanOutput up[3] annotation (
|
|---|
| 2737 | Placement(transformation(extent = {{100, 30}, {120, 50}}), iconTransformation(extent = {{100, 56}, {120, 76}})));
|
|---|
| 2738 | Modelica.Blocks.Interfaces.BooleanOutput down[3] annotation (
|
|---|
| 2739 | Placement(transformation(extent = {{100, -50}, {120, -30}}), iconTransformation(extent = {{100, -68}, {120, -48}})));
|
|---|
| 2740 | parameter Modelica.SIunits.Frequency fSig = 50 "Modulating signal Frequency";
|
|---|
| 2741 | PwmPulser pwmPulser[3](fCar = fill(fCar, 3), carStartTime = 3 / fCar * {-1, -2, 0}, fSig = fill(fSig, 3)) annotation (
|
|---|
| 2742 | Placement(transformation(extent = {{36, -10}, {56, 10}})));
|
|---|
| 2743 | Modelica.Blocks.Routing.Replicator replicator(nout = 3) annotation (
|
|---|
| 2744 | Placement(transformation(extent = {{-58, 0}, {-38, 20}})));
|
|---|
| 2745 | Modelica.Blocks.Routing.Replicator replicator1(nout = 3) annotation (
|
|---|
| 2746 | Placement(transformation(extent = {{-88, -66}, {-68, -46}})));
|
|---|
| 2747 | Modelica.Blocks.Math.Add add[3] annotation (
|
|---|
| 2748 | Placement(transformation(extent = {{-10, -60}, {10, -40}})));
|
|---|
| 2749 | Modelica.Blocks.Sources.Constant const[3](k = {0, -120, 120}) annotation (
|
|---|
| 2750 | Placement(transformation(extent = {{-52, -38}, {-32, -18}})));
|
|---|
| 2751 | equation
|
|---|
| 2752 | connect(replicator.u, ampl) annotation (
|
|---|
| 2753 | Line(points = {{-60, 10}, {-80, 10}, {-80, 60}, {-120, 60}}, color = {0, 0, 127}));
|
|---|
| 2754 | connect(replicator.y, pwmPulser.ampl) annotation (
|
|---|
| 2755 | Line(points = {{-37, 10}, {-26, 10}, {-26, 6.4}, {34, 6.4}}, color = {0, 0, 127}));
|
|---|
| 2756 | connect(replicator1.u, ph_deg) annotation (
|
|---|
| 2757 | Line(points = {{-90, -56}, {-118, -56}}, color = {0, 0, 127}));
|
|---|
| 2758 | connect(add.u2, replicator1.y) annotation (
|
|---|
| 2759 | Line(points = {{-12, -56}, {-67, -56}}, color = {0, 0, 127}));
|
|---|
| 2760 | connect(const.y, add.u1) annotation (
|
|---|
| 2761 | Line(points = {{-31, -28}, {-20, -28}, {-20, -44}, {-12, -44}}, color = {0, 0, 127}));
|
|---|
| 2762 | connect(pwmPulser.ph_deg, add.y) annotation (
|
|---|
| 2763 | Line(points = {{34, -5.4}, {28, -5.4}, {28, -6}, {22, -6}, {22, -50}, {11, -50}}, color = {0, 0, 127}));
|
|---|
| 2764 | connect(pwmPulser.up, up) annotation (
|
|---|
| 2765 | Line(points = {{57, 6.6}, {72, 6.6}, {72, 40}, {110, 40}}, color = {255, 0, 255}));
|
|---|
| 2766 | connect(down, pwmPulser.down) annotation (
|
|---|
| 2767 | Line(points = {{110, -40}, {66, -40}, {66, -5.8}, {57, -5.8}}, color = {255, 0, 255}));
|
|---|
| 2768 | annotation (
|
|---|
| 2769 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -80}, {100, 80}})),
|
|---|
| 2770 | Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Rectangle(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 127}, fillPattern = FillPattern.Solid, fillColor = {255, 255, 255}), Text(extent = {{-98, 88}, {-40, 60}}, lineColor = {0, 0, 127}, textString = "ampl"), Text(extent = {{-98, -62}, {-28, -88}}, lineColor = {0, 0, 127}, textString = "ph(°)"), Text(extent = {{48, 88}, {104, 62}}, lineColor = {255, 0, 255}, textString = "u"), Text(extent = {{56, -60}, {100, -86}}, lineColor = {255, 0, 255}, textString = "d", fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Line(points = {{-60, -60}, {-40, 62}, {-20, -60}, {0, 60}, {20, -62}, {40, 60}, {60, -62}, {80, 58}}, color = {0, 0, 127}, smooth = Smooth.None), Line(points = {{-80, 20}, {-38, 40}, {0, 44}, {42, 40}, {80, 20}}, color = {0, 0, 127}, smooth = Smooth.None, thickness = 0.5), Text(extent = {{-100, 140}, {100, 110}}, lineColor = {0, 0, 255}, textString = "%name"), Text(extent = {{-26, 50}, {34, -54}}, lineColor = {238, 46, 47}, textString = "3")}),
|
|---|
| 2771 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2772 | end PwmPulser3;
|
|---|
| 2773 |
|
|---|
| 2774 | model ToPark "Semplice PMM con modello funzionale inverter"
|
|---|
| 2775 | parameter Integer p "number of pole pairs";
|
|---|
| 2776 | Modelica.Electrical.Machines.SpacePhasors.Blocks.Rotator rotator annotation (
|
|---|
| 2777 | Placement(transformation(extent = {{0, 0}, {20, 20}})));
|
|---|
| 2778 | Modelica.Blocks.Interfaces.RealOutput y[2] annotation (
|
|---|
| 2779 | Placement(transformation(extent = {{100, -10}, {120, 10}}), iconTransformation(extent = {{100, -10}, {120, 10}})));
|
|---|
| 2780 | Modelica.Blocks.Interfaces.RealInput X[3] annotation (
|
|---|
| 2781 | Placement(transformation(extent = {{-140, -20}, {-100, 20}}), iconTransformation(extent = {{-140, -20}, {-100, 20}})));
|
|---|
| 2782 | Modelica.Blocks.Interfaces.RealInput phi annotation (
|
|---|
| 2783 | Placement(transformation(extent = {{-20, -20}, {20, 20}}, rotation = 90, origin = {10, -110}), iconTransformation(extent = {{-20, -20}, {20, 20}}, rotation = 90, origin = {0, -120})));
|
|---|
| 2784 | Modelica.Electrical.Machines.SpacePhasors.Blocks.ToSpacePhasor toSpacePhasor annotation (
|
|---|
| 2785 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 0, origin = {-30, 10})));
|
|---|
| 2786 | Modelica.Blocks.Math.Gain gain(k = p) annotation (
|
|---|
| 2787 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = 90, origin = {10, -42})));
|
|---|
| 2788 | equation
|
|---|
| 2789 | connect(toSpacePhasor.y, rotator.u) annotation (
|
|---|
| 2790 | Line(points = {{-19, 10}, {-2, 10}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2791 | connect(rotator.y, y) annotation (
|
|---|
| 2792 | Line(points = {{21, 10}, {66, 10}, {66, 0}, {110, 0}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2793 | connect(toSpacePhasor.u, X) annotation (
|
|---|
| 2794 | Line(points = {{-42, 10}, {-82, 10}, {-82, 0}, {-120, 0}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2795 | connect(gain.y, rotator.angle) annotation (
|
|---|
| 2796 | Line(points = {{10, -31}, {10, -2}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2797 | connect(gain.u, phi) annotation (
|
|---|
| 2798 | Line(points = {{10, -54}, {10, -110}}, color = {0, 0, 127}, smooth = Smooth.None));
|
|---|
| 2799 | annotation (
|
|---|
| 2800 | Diagram(coordinateSystem(preserveAspectRatio = true, extent = {{-100, -100}, {100, 100}}), graphics),
|
|---|
| 2801 | experiment(StopTime = 5, Interval = 0.001),
|
|---|
| 2802 | Documentation(info = "<html>
|
|---|
| 2803 | <p>Converts variables phase quantities into Park's</p>
|
|---|
| 2804 | </html>"),
|
|---|
| 2805 | __Dymola_experimentSetupOutput,
|
|---|
| 2806 | Icon(graphics = {Rectangle(extent = {{-100, 100}, {100, -100}}, lineColor = {0, 0, 127}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid), Text(extent = {{-96, 32}, {96, -22}}, lineColor = {0, 0, 127}, textString = "=>P"), Text(extent = {{-106, 144}, {104, 106}}, lineColor = {0, 0, 255}, textString = "%name")}));
|
|---|
| 2807 | end ToPark;
|
|---|
| 2808 | end Support;
|
|---|
| 2809 |
|
|---|
| 2810 | package Misc
|
|---|
| 2811 | model acFiltQS
|
|---|
| 2812 | import PI = Modelica.Constants.pi;
|
|---|
| 2813 | parameter Real f0 = 200;
|
|---|
| 2814 | final parameter Real W0 = 2 * PI * f0;
|
|---|
| 2815 | final parameter Real X0 = W0 * Lf.L;
|
|---|
| 2816 | Modelica.Electrical.QuasiStationary.SinglePhase.Basic.Resistor Rf(R_ref = 0.05) annotation (
|
|---|
| 2817 | Placement(transformation(extent = {{-38, 30}, {-18, 50}})));
|
|---|
| 2818 | Modelica.Electrical.QuasiStationary.SinglePhase.Basic.Inductor Lf(L = 0.001) annotation (
|
|---|
| 2819 | Placement(transformation(extent = {{-2, 30}, {18, 50}})));
|
|---|
| 2820 | Modelica.Electrical.QuasiStationary.SinglePhase.Basic.Capacitor capacitor(C = 1 / (W0 ^ 2 * Lf.L)) annotation (
|
|---|
| 2821 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {24, 16})));
|
|---|
| 2822 | Modelica.Electrical.QuasiStationary.SinglePhase.Basic.Resistor loadR(R_ref = 2.0) annotation (
|
|---|
| 2823 | Placement(transformation(extent = {{-10, -10}, {10, 10}}, rotation = -90, origin = {54, 16})));
|
|---|
| 2824 | Modelica.Electrical.QuasiStationary.SinglePhase.Sources.VariableVoltageSource variableVoltageSource annotation (
|
|---|
| 2825 | Placement(visible = true, transformation(origin = {-56, 14}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
|
|---|
| 2826 | Modelica.ComplexBlocks.Sources.ComplexConstant const annotation (
|
|---|
| 2827 | Placement(transformation(extent = {{-98, 36}, {-78, 56}})));
|
|---|
| 2828 | Modelica.Electrical.QuasiStationary.SinglePhase.Basic.Ground ground annotation (
|
|---|
| 2829 | Placement(transformation(extent = {{-30, -34}, {-10, -14}})));
|
|---|
| 2830 | Modelica.Blocks.Sources.RealExpression time_(y = time) annotation (
|
|---|
| 2831 | Placement(visible = true, transformation(origin = {-88, -14}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2832 | equation
|
|---|
| 2833 | connect(variableVoltageSource.f, time_.y) annotation (
|
|---|
| 2834 | Line(points = {{-68, 8}, {-72, 8}, {-72, -14}, {-80, -14}, {-80, -16}, {-78, -16}, {-78, -14}, {-77, -14}}, color = {0, 0, 127}));
|
|---|
| 2835 | connect(ground.pin, variableVoltageSource.pin_n) annotation (
|
|---|
| 2836 | Line(points = {{-20, -14}, {-20, -8}, {-56, -8}, {-56, 4}}, color = {85, 170, 255}));
|
|---|
| 2837 | connect(loadR.pin_n, variableVoltageSource.pin_n) annotation (
|
|---|
| 2838 | Line(points = {{54, 6}, {54, -8}, {-56, -8}, {-56, 4}}, color = {85, 170, 255}));
|
|---|
| 2839 | connect(capacitor.pin_n, variableVoltageSource.pin_n) annotation (
|
|---|
| 2840 | Line(points = {{24, 6}, {24, -8}, {-56, -8}, {-56, 4}}, color = {85, 170, 255}));
|
|---|
| 2841 | connect(variableVoltageSource.pin_p, Rf.pin_p) annotation (
|
|---|
| 2842 | Line(points = {{-56, 24}, {-56, 40}, {-38, 40}}, color = {85, 170, 255}));
|
|---|
| 2843 | connect(const.y, variableVoltageSource.V) annotation (
|
|---|
| 2844 | Line(points = {{-77, 46}, {-68, 46}, {-68, 20}}, color = {85, 170, 255}));
|
|---|
| 2845 | connect(Rf.pin_n, Lf.pin_p) annotation (
|
|---|
| 2846 | Line(points = {{-18, 40}, {-2, 40}}, color = {85, 170, 255}));
|
|---|
| 2847 | connect(Lf.pin_n, capacitor.pin_p) annotation (
|
|---|
| 2848 | Line(points = {{18, 40}, {24, 40}, {24, 26}}, color = {85, 170, 255}));
|
|---|
| 2849 | connect(loadR.pin_p, capacitor.pin_p) annotation (
|
|---|
| 2850 | Line(points = {{54, 26}, {54, 40}, {24, 40}, {24, 26}}, color = {85, 170, 255}));
|
|---|
| 2851 | annotation (
|
|---|
| 2852 | Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -40}, {80, 60}})),
|
|---|
| 2853 | Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -40}, {80, 60}}), graphics = {Text(extent = {{16, 76}, {58, 62}}, lineColor = {28, 108, 200}, textString = "cut-off f0=%f0 Hz
|
|---|
| 2854 | W0=%W0 ohm")}),
|
|---|
| 2855 | experiment(StopTime = 1000));
|
|---|
| 2856 | end acFiltQS;
|
|---|
| 2857 |
|
|---|
| 2858 | model AronPow "bidirectional switches, one-leg, PWM"
|
|---|
| 2859 | Modelica.Electrical.MultiPhase.Basic.Resistor resistor(R = {1, 1, 1}) annotation (
|
|---|
| 2860 | Placement(transformation(extent = {{22, -10}, {42, 10}})));
|
|---|
| 2861 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 2862 | Placement(transformation(extent = {{-40, -10}, {-60, 10}})));
|
|---|
| 2863 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 2864 | Placement(transformation(extent = {{-80, -20}, {-60, 0}})));
|
|---|
| 2865 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 2866 | Placement(transformation(extent = {{10, -10}, {-10, 10}}, rotation = 90, origin = {58, -10})));
|
|---|
| 2867 | Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage(V = fill(100, 3), freqHz = fill(50, 3)) annotation (
|
|---|
| 2868 | Placement(transformation(extent = {{-32, -10}, {-12, 10}})));
|
|---|
| 2869 | Modelica.Electrical.MultiPhase.Sensors.AronSensor aronSensor annotation (
|
|---|
| 2870 | Placement(transformation(extent = {{-4, -10}, {16, 10}})));
|
|---|
| 2871 | equation
|
|---|
| 2872 | connect(star.pin_n, ground.p) annotation (
|
|---|
| 2873 | Line(points = {{-60, 0}, {-70, 0}}, color = {0, 0, 255}));
|
|---|
| 2874 | connect(resistor.plug_n, star2.plug_p) annotation (
|
|---|
| 2875 | Line(points = {{42, 0}, {50, 0}, {58, 0}}, color = {0, 0, 255}));
|
|---|
| 2876 | connect(star.plug_p, sineVoltage.plug_p) annotation (
|
|---|
| 2877 | Line(points = {{-40, 0}, {-32, 0}}, color = {0, 0, 255}));
|
|---|
| 2878 | connect(aronSensor.plug_p, sineVoltage.plug_n) annotation (
|
|---|
| 2879 | Line(points = {{-4, 0}, {-12, 0}}, color = {0, 0, 255}));
|
|---|
| 2880 | connect(aronSensor.plug_n, resistor.plug_p) annotation (
|
|---|
| 2881 | Line(points = {{16, 0}, {22, 0}}, color = {0, 0, 255}));
|
|---|
| 2882 | annotation (
|
|---|
| 2883 | experiment(StopTime = 0.1),
|
|---|
| 2884 | experimentSetupOutput,
|
|---|
| 2885 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2886 | </body></html>"),
|
|---|
| 2887 | Diagram(coordinateSystem(extent = {{-80, -40}, {80, 40}}, preserveAspectRatio = false)),
|
|---|
| 2888 | Icon(coordinateSystem(extent = {{-80, -40}, {80, 40}}, preserveAspectRatio = false)));
|
|---|
| 2889 | end AronPow;
|
|---|
| 2890 |
|
|---|
| 2891 | model MFPower "bidirectional switches, one-leg, PWM"
|
|---|
| 2892 | Modelica.Electrical.MultiPhase.Sensors.PowerSensor powerSensor annotation (
|
|---|
| 2893 | Placement(visible = true, transformation(extent = {{-10, -10}, {10, 10}}, rotation = 0)));
|
|---|
| 2894 | Modelica.Electrical.MultiPhase.Basic.Resistor resistor(R = {1, 1, 1}) annotation (
|
|---|
| 2895 | Placement(visible = true, transformation(extent = {{16, -10}, {36, 10}}, rotation = 0)));
|
|---|
| 2896 | Modelica.Electrical.MultiPhase.Basic.Star star annotation (
|
|---|
| 2897 | Placement(visible = true, transformation(extent = {{-46, -10}, {-66, 10}}, rotation = 0)));
|
|---|
| 2898 | Modelica.Electrical.Analog.Basic.Ground ground annotation (
|
|---|
| 2899 | Placement(visible = true, transformation(extent = {{-86, -20}, {-66, 0}}, rotation = 0)));
|
|---|
| 2900 | Modelica.Electrical.MultiPhase.Basic.Star star2 annotation (
|
|---|
| 2901 | Placement(visible = true, transformation(origin = {52, -10}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
|
|---|
| 2902 | Modelica.Electrical.MultiPhase.Sources.SineVoltage sineVoltage(V = fill(100, 3), freqHz = fill(50, 3)) annotation (
|
|---|
| 2903 | Placement(visible = true, transformation(extent = {{-36, -10}, {-16, 10}}, rotation = 0)));
|
|---|
| 2904 | equation
|
|---|
| 2905 | connect(sineVoltage.plug_p, powerSensor.nv) annotation (
|
|---|
| 2906 | Line(points = {{-36, 0}, {-36, -28}, {0, -28}, {0, -10}}, color = {0, 0, 255}));
|
|---|
| 2907 | connect(star.plug_p, sineVoltage.plug_p) annotation (
|
|---|
| 2908 | Line(points = {{-46, 0}, {-42, 0}, {-36, 0}}, color = {0, 0, 255}));
|
|---|
| 2909 | connect(powerSensor.pc, sineVoltage.plug_n) annotation (
|
|---|
| 2910 | Line(points = {{-10, 0}, {-12, 0}, {-12, 0}, {-14, 0}, {-16, 0}}, color = {0, 0, 255}));
|
|---|
| 2911 | connect(resistor.plug_n, star2.plug_p) annotation (
|
|---|
| 2912 | Line(points = {{36, 0}, {40, 0}, {44, 0}, {48, 0}, {52, 0}}, color = {0, 0, 255}));
|
|---|
| 2913 | connect(star.pin_n, ground.p) annotation (
|
|---|
| 2914 | Line(points = {{-66, 0}, {-76, 0}}, color = {0, 0, 255}));
|
|---|
| 2915 | connect(powerSensor.nc, resistor.plug_p) annotation (
|
|---|
| 2916 | Line(points = {{10, 0}, {16, 0}}, color = {0, 0, 255}));
|
|---|
| 2917 | connect(powerSensor.pv, powerSensor.pc) annotation (
|
|---|
| 2918 | Line(points = {{0, 10}, {-2.5, 10}, {-2.5, 10}, {-5, 10}, {-5, 10}, {-10, 10}, {-10, 5}, {-10, 5}, {-10, 0}}, color = {0, 0, 255}));
|
|---|
| 2919 | annotation (
|
|---|
| 2920 | experiment(StopTime = 0.1),
|
|---|
| 2921 | experimentSetupOutput,
|
|---|
| 2922 | Documentation(info = "<html><head></head><body><p><br></p>
|
|---|
| 2923 | </body></html>"),
|
|---|
| 2924 | Diagram(coordinateSystem(extent = {{-100, -40}, {100, 40}}, preserveAspectRatio = false)),
|
|---|
| 2925 | Icon(coordinateSystem(extent = {{-100, -20}, {100, 60}}, preserveAspectRatio = false)),
|
|---|
| 2926 | __OpenModelica_commandLineOptions = "");
|
|---|
| 2927 | end MFPower;
|
|---|
| 2928 | end Misc;
|
|---|
| 2929 | annotation (
|
|---|
| 2930 | uses(Modelica(version = "3.2.3"), PowerSystems(version = "0.6.0")),
|
|---|
| 2931 | Documentation(info = "<html><head></head><body><p><font size=\"4\">Inverter reference data:</font></p>
|
|---|
| 2932 | <p><font size=\"4\">Total DC voltage 100 V</font></p>
|
|---|
| 2933 | <p><font size=\"4\">When a passive load is fed: resistance 1 ohm, inductance 5mH</font></p>
|
|---|
| 2934 | <p><font size=\"4\">Filter resistance 0.05 ohm</font></p>
|
|---|
| 2935 | </body></html>"));
|
|---|
| 2936 | end InvPWM;
|
|---|