WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
EffectiveSolarAreaModel.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/*
17Effective Solar Area model header file
18Author: Alex Jackson
19*/
20/*
21Metadata for MS GUI:
22imdata = {"displayname" : "Effective Solar Area",
23 "exclude" : False,
24 "category" : "Power"
25}
26aliases = {"pos_sc_sun__sun" : "Sun Rel. Position",
27 "face_normal_vector__body" : "Panel Body Normal",
28 "area" : "Surface Area",
29 "quat_body_solar" : "Attitude Body/Solar",
30 "eff_solar_area" : "Effective Area"
31}
32*/
33
34#ifndef MODELS_SUPPORT_EFFECTIVE_SOLAR_AREA_H
35#define MODELS_SUPPORT_EFFECTIVE_SOLAR_AREA_H
36
37#include "simulation/Model.h"
39#include "dynamics/Quaternion.h"
40
41namespace warptwin {
42
55 MODEL(EffectiveSolarAreaModel)
56 public:
57
58 // Model params
59 // NAME TYPE DEFAULT VALUE
62
63 // Model inputs
64 // NAME TYPE DEFAULT VALUE
67 SIGNAL(pos_sc_sun__sun, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
69 SIGNAL(face_normal_vector__body, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
71 SIGNAL(area, double, 1.0)
73 SIGNAL(quat_body_solar, clockwerk::Quaternion, clockwerk::Quaternion({1.0, 0.0, 0.0, 0.0}))
75
76 // Model outputs
77 // NAME TYPE DEFAULT VALUE
80 SIGNAL(eff_solar_area, double, 0.0)
82
83 protected:
84 int16 execute() override;
85
88
91
94 };
95
96}
97
98#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
#define CartesianVector3
Definition mathmacros.h:43
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
MODEL(EffectiveSolarAreaModel) public CartesianVector3 _face_normal_vector__body
Effective Solar Area model.
Definition EffectiveSolarAreaModel.h:55
CartesianVector3 _face_normal_vector__sun
Temporary variable to hold the vector that is normal to the surface after converting to the solar fra...
Definition EffectiveSolarAreaModel.h:90
double _dot_product_normal_solar
Temporary variable to hold the result of the dot product between the normal vector and solar vector.
Definition EffectiveSolarAreaModel.h:93
@ 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...