ModelSpace
All Classes Namespaces Functions Variables Enumerations Pages
LvcStateSensorModel.h
1/******************************************************************************
2* Copyright (c) ATTX LLC 2024. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX, LLC. 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, LLC.
15******************************************************************************/
16/*
17Frams state sensor model header file
18
19Author: Alex Reynolds
20*/
21
22#ifndef MODELS_STATES_LVC_STATE_SENSOR_MODEL_H
23#define MODELS_STATES_LVC_STATE_SENSOR_MODEL_H
24
25#include "core/macros.h"
26#include "simulation/Model.h"
27#include "core/CartesianVector.hpp"
28#include "utils/frameutils.hpp"
29
30namespace modelspace {
31
32 /**
33 * @brief LVC State Sensor Model
34 *
35 * This model senses the LVC position of a chaser spacecraft relative
36 * to a target spacecraft. The LVC frame defined for the purposes
37 * of this model is a simplistic one based on the Dr. Schaub
38 * curvilinear relative state model, with axes as follows:
39 *
40 * +Z axis directed toward the center of the Earth and defined as R_target - R_chaser
41 * +Y axis perpendicular to the orbit plane with direction opposite angular momentum
42 * +X axis in the direction of orbit travel and defined as R_target*theta, where
43 * theta is the angular separation between spacecraft
44 */
45 class LvcStateSensorModel : public Model {
46 public:
47 // Model params
48 // NAME TYPE DEFAULT VALUE
50
52
53 // Model inputs
54 // NAME TYPE DEFAULT VALUE
56 /** The position of the target spacecraft in a planet-centered inertial frame */
58 /** The velocity of the target spacecraft in a planet-centered inertial frame */
60 /** The position of the chaser spacecraft in a planet-centered inertial frame */
63
64 // Model outputs
65 // NAME TYPE DEFAULT VALUE
67 /** The LVLH frame produced by this model */
70
71 // Model-specific implementations of startup and derivative
72 LvcStateSensorModel();
73 LvcStateSensorModel(Model &pnt, const std::string &m_name="lvc_state_sensor");
74 LvcStateSensorModel(SimulationExecutive &e, const std::string &m_name="lvc_state_sensor");
75 LvcStateSensorModel(Model &pnt, int schedule_slot, const std::string &m_name="lvc_state_sensor");
76 LvcStateSensorModel(SimulationExecutive &e, int schedule_slot, const std::string &m_name="lvc_state_sensor");
77 virtual ~LvcStateSensorModel() {}
78 protected:
79 int execute();
80 };
81
82}
83
84#endif
LVC State Sensor Model.
Definition LvcStateSensorModel.h:45
int execute()
Function to execute the task. All math and calculations should be here.
Definition LvcStateSensorModel.cpp:35
Base model class for derived implementation.
Definition Model.h:56
Implementation of the executive class for simulation.
Definition SimulationExecutive.h:63
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition macros.h:87
#define START_PARAMS
Definition macros.h:96
#define CartesianVector3D
Definition macros.h:54
#define END_OUTPUTS
Definition macros.h:90
#define END_PARAMS
Definition macros.h:98
#define START_OUTPUTS
Definition macros.h:88
#define END_INPUTS
Definition macros.h:94
#define START_INPUTS
Definition macros.h:92
Class to propagate CR3BP dynamics in characteristic units.
Definition ConfigurationWriter.cpp:18
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > pos_tgt_planet__inertial
Definition LvcStateSensorModel.h:57
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > pos_chaser_planet__inertial
Definition LvcStateSensorModel.h:61
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > vel_tgt_planet__inertial
Definition LvcStateSensorModel.h:59
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > pos_chaser_tgt_lvc
Definition LvcStateSensorModel.h:68