Ticket #2960: SMAChopper.mo

File SMAChopper.mo, 4.8 KB (added by massimo ceraolo, 9 years ago)
Line 
1model 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})));
50equation
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&apos;andamento della coppia &egrave; molto differente da quello risultante dalle analisi algebriche essenzialmente per il transitorio di carica dell&apos;inuttanza di armatura. </p>
101<p>Mostrare come riducendo artificialmente l&apos;induttanza di armatura l&apos;andamento diviene pi&ugrave; possimo a quello ottenibile da analisi quasi statiche. Al solito si pu&ograve; 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
107per ridurre coppia e corrente di spunto")}),
108 Icon(coordinateSystem(extent={{-100,-80},{100,80}})),
109 uses(Modelica(version="3.2.2")));
110end SMAChopper;