|
|
|
|
within AIDAModelica;
|
|
|
|
|
|
|
|
|
|
model ComputationChangeAngleVelocity "Computation ChangeAngle Velocity"
|
|
|
|
|
// CP: 65001
|
|
|
|
|
// SimulationX Version: 3.8.2.45319 x64
|
|
|
|
|
Modelica.Blocks.Interfaces.RealInput DronAngularVelocities[3](quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rad/s") "'input Real' as connector" annotation(
|
|
|
|
|
Placement(transformation(extent = {{-20, -20}, {20, 20}}), iconTransformation(extent = {{-95, 5}, {-55, 45}})));
|
|
|
|
|
Modelica.Blocks.Interfaces.RealInput Attitude[3](quantity = "Mechanics.Rotation.Angle", displayUnit = "rad") "'input Real' as connector" annotation(
|
|
|
|
|
Placement(transformation(extent = {{-20, -20}, {20, 20}}), iconTransformation(origin = {-75, -25}, extent = {{-20, -20}, {20, 20}})));
|
|
|
|
|
Modelica.Blocks.Interfaces.RealOutput ChangeAngleVelocity[3](quantity = "Mechanics.Rotation.RotVelocity", displayUnit = "rad/s") "'output Real' as connector" annotation(
|
|
|
|
|
Placement(transformation(extent = {{-10, -10}, {10, 10}}), iconTransformation(extent = {{61.7, -10}, {81.7, 10}})));
|
|
|
|
|
Real W[3, 3] "Matrix W";
|
|
|
|
|
equation
|
|
|
|
|
// enter your equations here
|
|
|
|
|
W[1, 1] = 1;
|
|
|
|
|
W[1, 2] = tan(Attitude[2]) * sin(Attitude[1]);
|
|
|
|
|
W[1, 3] = tan(Attitude[2]) * cos(Attitude[1]);
|
|
|
|
|
W[2, 1] = 0;
|
|
|
|
|
W[2, 2] = cos(Attitude[1]);
|
|
|
|
|
W[2, 3] = -sin(Attitude[1]);
|
|
|
|
|
W[3, 1] = 0;
|
|
|
|
|
W[3, 2] = sin(Attitude[1]) / cos(Attitude[2]);
|
|
|
|
|
W[3, 3] = cos(Attitude[1]) * cos(Attitude[2]);
|
|
|
|
|
ChangeAngleVelocity = W * DronAngularVelocities;
|
|
|
|
|
annotation(
|
|
|
|
|
Icon(coordinateSystem(extent = {{-75, -75}, {75, 75}}, initialScale = 0.1), graphics = {Rectangle(fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-80, 76.7}, {76.7, -76.7}}), Text(origin = {-5, 1}, extent = {{-19, 7}, {19, -7}}, textString = "%name")}));
|
|
|
|
|
end ComputationChangeAngleVelocity;
|