WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
AerodynamicsStateModel.h
Go to the documentation of this file.
1/******************************************************************************
2* Copyright (c) ATTX INC 2025. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX, INC. The Software is
6* furnished under a license agreement between ATTX and the user organization
7* and may be used or copied only in accordance with the terms of the agreement.
8* Refer to 'license/attx_license.adoc' for standard license terms.
9*
10* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
11* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
12* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
13* transmitted in any form or by any means, for any purpose, without the express
14* written permission of ATTX, INC.
15******************************************************************************/
16/*
17Aerodynamics state model header file
18
19Author: Mickey Mathew
20*/
21/*
22Metadata for MS GUI:
23imdata = {"displayname" : "Aerodynamic State",
24 "exclude" : False,
25 "category" : "Dynamics"
26}
27aliases = {"aero_frame_ptr" : "Vehicle Frame",
28 "velo_frame_ptr" : "Velocity Frame",
29 "wind_frame_ptr" : "Wind Frame",
30 "v_obj__velo" : "Vehicle Velocity",
31 "v_wind__wind" : "Wind Velocity",
32 "speed_of_sound" : "Speed of Sound",
33 "v_aero__aero" : "EXCLUDE",
34 "v_inf__aero" : "V infinity",
35 "angle_of_attack" : "Angle of Attack",
36 "sideslip_angle" : "Sideslip Angle",
37 "airspeed" : "Magnitude of Velocity",
38 "mach_number" : "Mach Number",
39}
40*/
41
42#ifndef MODELS_STATES_AERODYNAMICS_STATE_MODEL_H
43#define MODELS_STATES_AERODYNAMICS_STATE_MODEL_H
44
45#include "simulation/Model.h"
46#include "frames/Frame.h"
47
48namespace warptwin {
49
63 MODEL(AerodynamicsStateModel)
64 public:
65 // Model params
66 // NAME TYPE DEFAULT VALUE
69 SIGNAL(aero_frame_ptr, Frame*, nullptr)
71 SIGNAL(velo_frame_ptr, Frame*, nullptr)
73 SIGNAL(wind_frame_ptr, Frame*, nullptr)
75
76 // Model inputs
77 // NAME TYPE DEFAULT VALUE
80 SIGNAL(v_obj__velo, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
82 SIGNAL(v_wind__wind, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
84 SIGNAL(speed_of_sound, double, 343.0)
86
87 // Model outputs
88 // NAME TYPE DEFAULT VALUE
91 SIGNAL(v_aero__aero, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
93 SIGNAL(v_inf__aero, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
95 SIGNAL(angle_of_attack, double, 0.0)
97 SIGNAL(sideslip_angle, double, 0.0)
99 SIGNAL(airspeed, double, 0.0)
101 SIGNAL(mach_number, double, 0.0)
103
104 protected:
105 int16 start() override;
106 int16 execute() override;
107
108 // Temporary vectors and variables to carry out our calculations
112 };
113
114}
115
116#endif
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition appmacros.h:27
#define START_PARAMS
Definition appmacros.h:42
#define END_OUTPUTS
Definition appmacros.h:33
#define END_PARAMS
Definition appmacros.h:47
#define START_OUTPUTS
Definition appmacros.h:28
#define END_INPUTS
Definition appmacros.h:40
#define START_INPUTS
Definition appmacros.h:35
Frame class definition.
Definition Frame.h:96
#define CartesianVector3
Definition mathmacros.h:43
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
int16 start() override
Class to execute logging.
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
CartesianVector3 _v_obj__aero
Definition AerodynamicsStateModel.h:109
double _safesqrtresult
Definition AerodynamicsStateModel.h:111
@ MODEL
Simplified dynamics model representing motion in the circular restricted 3 body problem.
Definition ImNode.h:31
int16 execute() override
Function to check monitor input conditions and set trigger flag accordingly. Should be implemented in...
CartesianVector3 _v_wind__aero
Definition AerodynamicsStateModel.h:110