| 1 | model SMAChopper
|
|---|
| 2 | // parameter Real freq=1000;
|
|---|
| 3 | parameter Modelica.SIunits.Frequency freq=1000;
|
|---|
| 4 | Modelica.Electrical.Analog.Sources.ConstantVoltage V1(V=150) annotation (
|
|---|
| 5 | Placement(transformation(
|
|---|
| 6 | extent={{-10,-10},{10,10}},
|
|---|
| 7 | rotation=270,
|
|---|
| 8 | origin={-80,12})));
|
|---|
| 9 | Modelica.Electrical.Analog.Ideal.IdealGTOThyristor idealGTOThyristor
|
|---|
| 10 | annotation (Placement(transformation(
|
|---|
| 11 | extent={{-10,-10},{10,10}},
|
|---|
| 12 | rotation=270,
|
|---|
| 13 | origin={-20,58})));
|
|---|
| 14 | Modelica.Electrical.Analog.Ideal.IdealDiode idealDiode annotation (
|
|---|
| 15 | Placement(transformation(
|
|---|
| 16 | extent={{-10,-10},{10,10}},
|
|---|
| 17 | rotation=90,
|
|---|
| 18 | origin={-20,-14})));
|
|---|
| 19 | Modelica.Blocks.Logical.LessThreshold lessThreshold(threshold=0.66)
|
|---|
| 20 | annotation (Placement(transformation(
|
|---|
| 21 | extent={{-10,-10},{10,10}},
|
|---|
| 22 | rotation=180,
|
|---|
| 23 | origin={14,50})));
|
|---|
| 24 | Modelica.Electrical.Analog.Basic.Ground ground
|
|---|
| 25 | annotation (Placement(transformation(extent={{-90,-66},{-70,-46}})));
|
|---|
| 26 | Modelica.Mechanics.Rotational.Sources.ConstantTorque constantTorque(
|
|---|
| 27 | tau_constant=-80) annotation (Placement(transformation(
|
|---|
| 28 | extent={{-10,-10},{10,10}},
|
|---|
| 29 | rotation=180,
|
|---|
| 30 | origin={58,-10})));
|
|---|
| 31 | Modelica.Electrical.Analog.Sensors.PotentialSensor potentialSensor
|
|---|
| 32 | annotation (Placement(transformation(
|
|---|
| 33 | extent={{-8,-8},{8,8}},
|
|---|
| 34 | rotation=270,
|
|---|
| 35 | origin={-48,14})));
|
|---|
| 36 | Modelica.Blocks.Sources.SawTooth sawTooth(period=1/freq)
|
|---|
| 37 | annotation (
|
|---|
| 38 | Placement(transformation(
|
|---|
| 39 | extent={{-10,-10},{10,10}},
|
|---|
| 40 | rotation=180,
|
|---|
| 41 | origin={50,50})));
|
|---|
| 42 | parameter Real Fact=2;
|
|---|
| 43 | Modelica.Electrical.Machines.BasicMachines.DCMachines.DC_PermanentMagnet
|
|---|
| 44 | dcpm(La=0.0015/Fact)
|
|---|
| 45 | annotation (Placement(transformation(extent={{10,-20},{30,0}})));
|
|---|
| 46 | Modelica.Blocks.Math.Mean mUmach(f=freq) annotation (Placement(transformation(
|
|---|
| 47 | extent={{10,-10},{-10,10}},
|
|---|
| 48 | rotation=90,
|
|---|
| 49 | origin={-48,-14})));
|
|---|
| 50 | equation
|
|---|
| 51 | connect(idealDiode.n, idealGTOThyristor.n) annotation (Line(
|
|---|
| 52 | points={{-20,-4},{-20,22},{-20,48},{-20,48}},
|
|---|
| 53 | color={0,0,255},
|
|---|
| 54 | smooth=Smooth.None));
|
|---|
| 55 | connect(idealGTOThyristor.p, V1.p) annotation (Line(
|
|---|
| 56 | points={{-20,68},{-80,68},{-80,22}},
|
|---|
| 57 | color={0,0,255},
|
|---|
| 58 | smooth=Smooth.None));
|
|---|
| 59 | connect(V1.n, idealDiode.p) annotation (Line(
|
|---|
| 60 | points={{-80,2},{-80,-34},{-20,-34},{-20,-24}},
|
|---|
| 61 | color={0,0,255},
|
|---|
| 62 | smooth=Smooth.None));
|
|---|
| 63 | connect(lessThreshold.y, idealGTOThyristor.fire) annotation (Line(
|
|---|
| 64 | points={{3,50},{4,50},{4,51},{-9,51}},
|
|---|
| 65 | color={255,0,255},
|
|---|
| 66 | smooth=Smooth.None));
|
|---|
| 67 | connect(ground.p, V1.n) annotation (Line(
|
|---|
| 68 | points={{-80,-46},{-80,2}},
|
|---|
| 69 | color={0,0,255},
|
|---|
| 70 | smooth=Smooth.None));
|
|---|
| 71 | connect(potentialSensor.p, idealGTOThyristor.n) annotation (Line(
|
|---|
| 72 | points={{-48,22},{-48,26},{-20,26},{-20,48}},
|
|---|
| 73 | color={0,0,255},
|
|---|
| 74 | smooth=Smooth.None));
|
|---|
| 75 | connect(lessThreshold.u, sawTooth.y) annotation (Line(
|
|---|
| 76 | points={{26,50},{39,50}},
|
|---|
| 77 | color={0,0,127},
|
|---|
| 78 | smooth=Smooth.None));
|
|---|
| 79 | connect(dcpm.flange, constantTorque.flange) annotation (Line(
|
|---|
| 80 | points={{30,-10},{39,-10},{39,-10},{48,-10}},
|
|---|
| 81 | color={0,0,0},
|
|---|
| 82 | smooth=Smooth.None));
|
|---|
| 83 | connect(dcpm.pin_ap, idealGTOThyristor.n) annotation (Line(
|
|---|
| 84 | points={{26,0},{26,26},{-20,26},{-20,48}},
|
|---|
| 85 | color={0,0,255},
|
|---|
| 86 | smooth=Smooth.None));
|
|---|
| 87 | connect(dcpm.pin_an, idealDiode.p) annotation (Line(
|
|---|
| 88 | points={{14,0},{0,0},{0,-24},{-20,-24}},
|
|---|
| 89 | color={0,0,255},
|
|---|
| 90 | smooth=Smooth.None));
|
|---|
| 91 | connect(potentialSensor.phi, mUmach.u)
|
|---|
| 92 | annotation (Line(points={{-48,5.2},{-48,-2}}, color={0,0,127}));
|
|---|
| 93 | annotation (
|
|---|
| 94 | experiment(StopTime=0.2),
|
|---|
| 95 | experimentSetupOutput,
|
|---|
| 96 | Commands(file="FA_DCM.mos" "FA_DCM"),
|
|---|
| 97 | Documentation(info="<html>
|
|---|
| 98 | <p>Il modello mostra un aviamento contro coppia resistente costante con la macchina con eccitazione a magnete permanente.</p>
|
|---|
| 99 | <p>I parametri della macchina sono quelli standard di MSL. </p>
|
|---|
| 100 | <p>Si osserva che l'andamento della coppia è molto differente da quello risultante dalle analisi algebriche essenzialmente per il transitorio di carica dell'inuttanza di armatura. </p>
|
|---|
| 101 | <p>Mostrare come riducendo artificialmente l'induttanza di armatura l'andamento diviene più possimo a quello ottenibile da analisi quasi statiche. Al solito si può usare Fact.</p>
|
|---|
| 102 | </html>"),
|
|---|
| 103 | Diagram(coordinateSystem(extent={{-100,-80},{100,80}}), graphics={Text(
|
|---|
| 104 | extent={{-2,-44},{70,-62}},
|
|---|
| 105 | lineColor={28,108,200},
|
|---|
| 106 | textString="Aggiungere indice progressivo
|
|---|
| 107 | per ridurre coppia e corrente di spunto")}),
|
|---|
| 108 | Icon(coordinateSystem(extent={{-100,-80},{100,80}})),
|
|---|
| 109 | uses(Modelica(version="3.2.2")));
|
|---|
| 110 | end SMAChopper;
|
|---|