// CP: 65001 // SimulationX Version: 3.8.2.45319 x64 within AIDAModelica; model SimXToProSIVICInterfaceTest "Simulation X to ProSIVIC Interface Test" Modelica.Blocks.Interfaces.RealInput Position[3]( quantity="Mechanics.Translation.Displace", displayUnit="m") "'input Real' as connector" annotation(Placement( transformation(extent={{-80,60},{-40,100}}), iconTransformation( origin={-75,100}, extent={{-20,-20},{20,20}}, rotation=-90))); Modelica.Blocks.Interfaces.RealInput Attitude[3]( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "'input Real' as connector" annotation(Placement( transformation(extent={{20,60},{60,100}}), iconTransformation( origin={75,100}, extent={{-20,-20},{20,20}}, rotation=-90))); Modelica.Blocks.Interfaces.RealInput Speed[3]( quantity="Mechanics.Translation.Velocity", displayUnit="m/s") "'input Real' as connector" annotation(Placement( transformation(extent={{-20,-20},{20,20}}), iconTransformation( origin={-275,100}, extent={{-20,-20},{20,20}}, rotation=-90))); Modelica.Blocks.Interfaces.RealInput AngularSpeed[3]( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'input Real' as connector" annotation(Placement( transformation(extent={{-20,-20},{20,20}}), iconTransformation( origin={275,100}, extent={{-20,-20},{20,20}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput translation_x( quantity="Mechanics.Translation.Displace", displayUnit="m") "Tracking translation x" annotation(Placement( transformation(extent={{-95,30},{-75,50}}), iconTransformation( origin={-125,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput translation_y( quantity="Mechanics.Translation.Displace", displayUnit="m") "Tracking translation y" annotation(Placement( transformation(extent={{-70,30},{-50,50}}), iconTransformation( origin={-75,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput translation_z( quantity="Mechanics.Translation.Displace", displayUnit="m") "Tracking translation z" annotation(Placement( transformation(extent={{-30,30},{-10,50}}), iconTransformation( origin={-25,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput rotation_xi( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "Tracking rotation xi " annotation(Placement( transformation(extent={{10,30},{30,50}}), iconTransformation( origin={125,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput rotation_theta( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "Tracking rotation theta" annotation(Placement( transformation(extent={{40,30},{60,50}}), iconTransformation( origin={75,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput rotation_phi( quantity="Mechanics.Rotation.Angle", displayUnit="rad") "Tracking rotation phi" annotation(Placement( transformation(extent={{70,30},{90,50}}), iconTransformation( origin={25,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput rollRate( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={175,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput pitchRate( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={225,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput yawRate( quantity="Mechanics.Rotation.RotVelocity", displayUnit="rad/s") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={275,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput SpeedX( quantity="Mechanics.Translation.Displace", displayUnit="m") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={-275,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput SpeedY( quantity="Mechanics.Translation.Displace", displayUnit="m") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={-225,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); Modelica.Blocks.Interfaces.RealOutput SpeedZ( quantity="Mechanics.Translation.Displace", displayUnit="m") "'output Real' as connector" annotation(Placement( transformation(extent={{-10,-10},{10,10}}), iconTransformation( origin={-175,-100}, extent={{-10,-10},{10,10}}, rotation=-90))); equation // enter your equations here translation_x = Position[1]; translation_y = -1*Position[2]; translation_z = -1*Position[3]; rotation_phi = Attitude[1]; rotation_theta = -1*Attitude[2]; rotation_xi = -1*Attitude[3]; rollRate = AngularSpeed[1]; pitchRate = -1*AngularSpeed[2]; yawRate = -1*AngularSpeed[3]; SpeedX = Speed[1]; SpeedY = -1*Speed[2]; SpeedZ = -1*Speed[3]; annotation( Position(flags=2), Attitude(flags=2), translation_x(flags=2), translation_y(flags=2), translation_z(flags=2), rotation_xi(flags=2), rotation_theta(flags=2), rotation_phi(flags=2), Icon( coordinateSystem(extent={{-325,-100},{325,100}}), graphics={ Rectangle( fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-323.2,100},{326.7,-100}})}), experiment( StopTime=1, StartTime=0, Interval=0.002, MaxInterval="0.001")); end SimXToProSIVICInterfaceTest;