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.
64 lines
2.2 KiB
64 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;
|
|
|