AIDA is a study case for model based system engineering, made by MOISE project. This project contains the simulation model of AIDA (made with SimulationX in Modelica)
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.

65 lines
2.2 KiB

// CP: 65001
// SimulationX Version: 3.8.2.45319 x64
within AIDAModelica;
model PositionConvector "PositionConvector"
Modelica.Blocks.Interfaces.RealInput Latitude(
quantity="Mechanics.Rotation.Angle",
displayUnit="deg") "'input Real' as connector" annotation(Placement(
transformation(extent={{-20,-20},{20,20}}),
iconTransformation(
origin={-50,-100},
extent={{-20,-20},{20,20}},
rotation=90)));
Modelica.Blocks.Interfaces.RealInput Longitude(
quantity="Mechanics.Rotation.Angle",
displayUnit="deg") "'input Real' as connector" annotation(Placement(
transformation(extent={{-20,-20},{20,20}}),
iconTransformation(
origin={50,-100},
extent={{-20,-20},{20,20}},
rotation=90)));
Modelica.Blocks.Interfaces.RealOutput XCoordinate(
quantity="Mechanics.Translation.Displace",
displayUnit="m") "'output Real' as connector" annotation(Placement(
transformation(extent={{-10,-10},{10,10}}),
iconTransformation(
origin={-50,100},
extent={{-10,-10},{10,10}},
rotation=90)));
Modelica.Blocks.Interfaces.RealOutput YCoordinate(
quantity="Mechanics.Translation.Displace",
displayUnit="m") "'output Real' as connector" annotation(Placement(
transformation(extent={{-10,-10},{10,10}}),
iconTransformation(
origin={50,100},
extent={{-10,-10},{10,10}},
rotation=90)));
parameter Real a(
quantity="Basics.Length",
displayUnit="m")=6378137 "Radius semi-major axis";
parameter Real e2=0.00669437999 "First numerical eccentricity of the elipsoid";
parameter Real pi=3.14159265359 "Parameter pi";
Real Lat(
quantity="Mechanics.Rotation.Angle",
displayUnit="rad") "Latitude";
Real Lon(
quantity="Mechanics.Rotation.Angle",
displayUnit="rad") "Longitude";
Real R(
quantity="Basics.Length",
displayUnit="m") "The prime vertical radius of curvature";
parameter Real h=0 "Height above the elipsoide";
equation
// enter your equations here
Lat = Latitude*(pi/180);
Lon = Longitude*(pi/180);
R = a/sqrt(1-e2*((1-cos(2*Lat))/2));
XCoordinate = (R+h)*cos(Lat)*cos(Lon);
YCoordinate = -1*((R+h)*cos(Lat)*sin(Lon));
annotation(Icon(graphics={
Rectangle(
fillColor={255,255,255},
fillPattern=FillPattern.Solid,
extent={{-100,100},{100,-100}})}));
end PositionConvector;