You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
5.0 KiB
54 lines
5.0 KiB
within AIDAModelica; |
|
|
|
model ControlEffectivenessModel "Control effectiveness model" |
|
// CP: 65001 |
|
// SimulationX Version: 3.8.2.45319 x64 |
|
Modelica.Blocks.Interfaces.RealInput Motor1AngularVelocity(quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rpm") "Angular velocity of 1 motor input" annotation( |
|
Placement(transformation(extent = {{-135, 40}, {-95, 80}}), iconTransformation(extent = {{-120, 55}, {-80, 95}}))); |
|
Modelica.Blocks.Interfaces.RealInput Motor2AngularVelocity(quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rpm") "Angular velocity of 2 motor input" annotation( |
|
Placement(transformation(extent = {{-135, 10}, {-95, 50}}), iconTransformation(extent = {{-120, 5}, {-80, 45}}))); |
|
Modelica.Blocks.Interfaces.RealInput Motor3AngularVelocity(quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rpm") "Angular velocity of 3 motor input" annotation( |
|
Placement(transformation(extent = {{-135, -20}, {-95, 20}}), iconTransformation(extent = {{-120, -45}, {-80, -5}}))); |
|
Modelica.Blocks.Interfaces.RealInput Motor4AngularVelocity(quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rpm") "Angular velocity of 4 motor input" annotation( |
|
Placement(transformation(extent = {{-135, -50}, {-95, -10}}), iconTransformation(extent = {{-120, -95}, {-80, -55}}))); |
|
Modelica.Blocks.Interfaces.RealOutput TotalThrust(quantity = "Mechanics.Translation.Force", displayUnit = "N") "Total thrust output" annotation( |
|
Placement(transformation(extent = {{55, -35}, {75, -15}}), iconTransformation(extent = {{90, 65}, {110, 85}}))); |
|
Modelica.Blocks.Interfaces.RealOutput Moments[3](quantity = "Mechanics.Rotation.Torque", displayUnit = "Nm") "Moments output" annotation( |
|
Placement(transformation(extent = {{55, 45}, {75, 65}}), iconTransformation(extent = {{90, -85}, {110, -65}}))); |
|
ComputeMoments computeMoments1 annotation( |
|
Placement(transformation(extent = {{-20, 45}, {-5, 70}}))); |
|
ComputeTotalThrust computeTotalThrust1 annotation( |
|
Placement(transformation(extent = {{-20, -40}, {-5, -15}}))); |
|
equation |
|
connect(computeMoments1.Motor1AngularVelocity, Motor1AngularVelocity) annotation( |
|
Line(points = {{-20, 65}, {-25, 65}, {-110, 65}, {-110, 60}, {-115, 60}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeMoments1.Motor2AngularVelocity, Motor2AngularVelocity) annotation( |
|
Line(points = {{-20, 60}, {-25, 60}, {-110, 60}, {-110, 30}, {-115, 30}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeMoments1.Motor3AngularVelocity, Motor3AngularVelocity) annotation( |
|
Line(points = {{-20, 55}, {-25, 55}, {-110, 55}, {-110, 0}, {-115, 0}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeMoments1.Motor4AngularVelocity, Motor4AngularVelocity) annotation( |
|
Line(points = {{-20, 50}, {-25, 50}, {-110, 50}, {-110, -30}, {-115, -30}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeTotalThrust1.Motor1AngularVelocity, Motor1AngularVelocity) annotation( |
|
Line(points = {{-20, -20}, {-25, -20}, {-110, -20}, {-110, 60}, {-115, 60}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeTotalThrust1.Motor2AngularVelocity, Motor2AngularVelocity) annotation( |
|
Line(points = {{-20, -25}, {-25, -25}, {-110, -25}, {-110, 30}, {-115, 30}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeTotalThrust1.Motor3AngularVelocity, Motor3AngularVelocity) annotation( |
|
Line(points = {{-20, -30}, {-25, -30}, {-110, -30}, {-110, 0}, {-115, 0}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeTotalThrust1.Motor4AngularVelocity, Motor4AngularVelocity) annotation( |
|
Line(points = {{-20, -35}, {-25, -35}, {-110, -35}, {-110, -30}, {-115, -30}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeMoments1.Moments[:], Moments[:]) annotation( |
|
Line(points = {{-5, 55}, {0, 55}, {60, 55}, {65, 55}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
connect(computeTotalThrust1.TotalThrust, TotalThrust) annotation( |
|
Line(points = {{-5, -25}, {0, -25}, {60, -25}, {65, -25}}, color = {0, 0, 127}, thickness = 0.0625)); |
|
annotation( |
|
Motor1AngularVelocity(flags = 2), |
|
Motor2AngularVelocity(flags = 2), |
|
Motor3AngularVelocity(flags = 2), |
|
Motor4AngularVelocity(flags = 2), |
|
TotalThrust(flags = 2), |
|
Moments(flags = 2), |
|
computeMoments1(Motor1AngularVelocity(flags = 2), Motor2AngularVelocity(flags = 2), Motor3AngularVelocity(flags = 2), Motor4AngularVelocity(flags = 2), Moments(flags = 2)), |
|
computeTotalThrust1(Motor1AngularVelocity(flags = 2), Motor2AngularVelocity(flags = 2), Motor3AngularVelocity(flags = 2), Motor4AngularVelocity(flags = 2), TotalThrust(flags = 2)), |
|
Icon(coordinateSystem(extent = {{-100, -125}, {100, 125}}, initialScale = 0.1), graphics = {Rectangle(fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-100, 106.7}, {100, -106.7}}), Text(origin = {-7, 3}, extent = {{-15, 11}, {15, -11}}, textString = "%name")}), |
|
experiment(StopTime = 10, StartTime = 0, Interval = 0.02, MaxInterval = "0.001")); |
|
end ControlEffectivenessModel;
|
|
|