WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
MarkovUncertaintyModel.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/*
17Bias and noise model header file
18
19Author: James Tabony
20*/
21/*
22Metadata for MS GUI:
23imdata = {"exclude" : True}
24*/
25
26#ifndef MODELS_SUPPORT_MARKOV_UNCERTAINTY_MODEL_H
27#define MODELS_SUPPORT_MARKOV_UNCERTAINTY_MODEL_H
28
29#include "simulation/Model.h"
31
32namespace warptwin {
33
88 MODEL(MarkovUncertaintyModel)
89 public:
90 // Model params
91 // NAME TYPE DEFAULT VALUE
95 SIGNAL(bias_initial, double, 0.0)
97 SIGNAL(bias_random_walk_std, double, 0.0)
99 SIGNAL(noise_std, double, 0.0)
101 SIGNAL(scale_factor_std, double, 0.0)
103 SIGNAL(rate_hz, double, 0.0)
105 SIGNAL(seed_value, int, 0)
107
108 // Model inputs
109 // NAME TYPE DEFAULT VALUE
112 SIGNAL(input_val, double, 0.0)
114
115 // Model outputs
116 // NAME TYPE DEFAULT VALUE
119 SIGNAL(output_val, double, 0.0)
121
123 void setBias(double new_bias);
125 double getBias();
126
127 protected:
128 int16 start() override;
129 int16 execute() override;
130
132 NormalRandom<double> *_rng = nullptr;
133
135 double _bias;
137
140 double _noise;
141
144 };
145
146}
147
148#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
Class to generate random numbers according to normal distribution.
Definition NormalRandom.hpp:40
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
double _bias
Internal variable for holding the bias and its deviations from the initial value.
Definition MarkovUncertaintyModel.h:135
int16 start() override
Class to execute logging.
double _noise
Definition MarkovUncertaintyModel.h:140
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
MODEL(MarkovUncertaintyModel) public double getBias()
Markov Uncertainty Model.
Definition MarkovUncertaintyModel.cpp:53
double _scale_factor
Internal variables for the different noise sources.
Definition MarkovUncertaintyModel.h:139
double _bias_drift
Definition MarkovUncertaintyModel.h:136
NormalRandom< double > * _rng
RNG to produce our distribution.
Definition BiasNoiseModel.h:74
@ 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...
double _sqrt_time_step
Internal variable for 1/sqrt(Hz).
Definition MarkovUncertaintyModel.h:143