1 | model FB "Versione dell'antiwindup con PID (back-calculation)" |
---|
2 | Modelica.Blocks.Continuous.FirstOrder plant(T = 10) annotation( |
---|
3 | Placement(visible = true, transformation(origin = {50, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
4 | Modelica.Blocks.Math.Feedback feedback annotation( |
---|
5 | Placement(visible = true, transformation(origin = {-32, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
6 | Modelica.Blocks.Continuous.PI PI annotation( |
---|
7 | Placement(visible = true, transformation(origin = {4, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
8 | Modelica.Blocks.Sources.Step step annotation( |
---|
9 | Placement(visible = true, transformation(origin = {-78, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
10 | Modelica.Blocks.Continuous.PI PI1 annotation( |
---|
11 | Placement(visible = true, transformation(origin = {4, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
12 | Modelica.Blocks.Math.Feedback feedback1 annotation( |
---|
13 | Placement(visible = true, transformation(origin = {-32, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
14 | Modelica.Blocks.Continuous.FirstOrder plant1(T = 10) annotation( |
---|
15 | Placement(visible = true, transformation(origin = {50, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); |
---|
16 | equation |
---|
17 | connect(PI1.u, feedback1.u1) annotation( |
---|
18 | Line(points = {{-8, -30}, {-42, -30}, {-42, -30}, {-40, -30}}, color = {0, 0, 127})); |
---|
19 | connect(feedback1.u1, step.y) annotation( |
---|
20 | Line(points = {{-40, -30}, {-50, -30}, {-50, 0}, {-66, 0}, {-66, 0}}, color = {0, 0, 127})); |
---|
21 | connect(feedback1.u2, plant1.y) annotation( |
---|
22 | Line(points = {{-32, -38}, {-32, -38}, {-32, -50}, {70, -50}, {70, -30}, {62, -30}, {62, -30}}, color = {0, 0, 127})); |
---|
23 | connect(feedback.u2, plant.y) annotation( |
---|
24 | Line(points = {{-32, 22}, {-32, 22}, {-32, 4}, {72, 4}, {72, 30}, {62, 30}, {62, 30}}, color = {0, 0, 127})); |
---|
25 | connect(feedback.u1, step.y) annotation( |
---|
26 | Line(points = {{-40, 30}, {-50, 30}, {-50, 0}, {-68, 0}, {-68, 0}, {-66, 0}}, color = {0, 0, 127})); |
---|
27 | connect(PI1.y, plant1.u) annotation( |
---|
28 | Line(points = {{15, -30}, {37, -30}, {37, -30}, {37, -30}}, color = {0, 0, 127})); |
---|
29 | connect(feedback.y, PI.u) annotation( |
---|
30 | Line(points = {{-23, 30}, {-11, 30}, {-11, 30}, {-9, 30}}, color = {0, 0, 127})); |
---|
31 | connect(PI.y, plant.u) annotation( |
---|
32 | Line(points = {{15, 30}, {25, 30}, {25, 30}, {35, 30}, {35, 30}, {36, 30}, {36, 30}, {37, 30}}, color = {0, 0, 127})); |
---|
33 | annotation( |
---|
34 | Diagram(coordinateSystem(extent = {{-100, -60}, {80, 60}})), |
---|
35 | uses(Modelica(version = "3.2.3")), |
---|
36 | experiment(StartTime = 0, StopTime = 200, Tolerance = 1e-06, Interval = 0.4)); |
---|
37 | end FB; |
---|