WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
SimpleComAnalysisModel.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
17/*
18Communications Data Model header file
19
20Author: Daniel Krobath
21*/
22/*
23Metadata for MS GUI:
24imdata = {"displayname" : "Simple Communication Analysis Model",
25 "exclude" : False,
26 "category" : "Assemblies"
27}
28aliases = {"frequency" : "Frequency (Hz)",
29 "bandwidth" : "Bandwidth (Hz)",
30 "bit_rate" : "Bit Rate (bps)",
31 "power_TX" : "Transmit Power (W)",
32 "gain_TX" : "Transmit Gain (dBi)",
33 "loss_TX" : "Transmit Loss (dB)",
34 "gain_RX" : "Receive Gain (dBi)",
35 "loss_RX" : "Receive Loss (dB)",
36 "noise_temperature" : "System Noise Temperature (K)",
37 "cross_pol_loss" : "Cross Polarization Loss (dB)",
38 "ebno_required" : "Eb/N0 Required (dB)",
39 "range" : "Range (meters)",
40 "masked" : "Masked (false = visible)",
41 "free_space_path_loss" : "EXCLUDE",
42 "eff_isotropic_radiated_pwr" : "EXCLUDE",
43 "power_RX" : "EXCLUDE",
44 "system_noise_figure" : "EXCLUDE",
45 "signal_to_noise_ratio" : "Signal to Noise Ratio (dB)",
46 "ebno_received" : "Eb/N0 Received (dB)",
47 "link_margin" : "Link Margin (dB)",
48}
49*/
50
51#ifndef MODELS_COMMUNICATIONS_SIMPLE_COM_ANALYSIS_MODEL_H
52#define MODELS_COMMUNICATIONS_SIMPLE_COM_ANALYSIS_MODEL_H
53
54#include <string>
55#include <vector>
56#include <cmath>
57
58#include "simulation/Model.h"
59
60namespace warptwin {
61
79 MODEL(SimpleComAnalysisModel)
80 public:
81 // Model params
82 // NAME TYPE DEFAULT VALUE
85 SIGNAL(frequency, double, 0.0)
87 SIGNAL(bandwidth, double, 0.0)
89 SIGNAL(bit_rate, double, 0.0)
91 SIGNAL(power_TX, double, 0.0)
95 SIGNAL(return_loss, double, 0.0)
97 SIGNAL(gain_TX, double, 0.0)
102 SIGNAL(loss_TX, double, 0.0)
104 SIGNAL(gain_RX, double, 0.0)
108 SIGNAL(noise_temperature, double, 0.0)
112 SIGNAL(loss_RX, double, 0.0)
117 SIGNAL(cross_pol_loss, double, 0.0)
121 SIGNAL(ebno_required, double, 0.0)
123
124 // Model inputs
125 // NAME TYPE DEFAULT VALUE
128 SIGNAL(range, double, 0.0)
130 SIGNAL(masked, bool, true)
132
133 // Model outputs
134 // NAME TYPE DEFAULT VALUE
137 SIGNAL(free_space_path_loss, double, 0.0)
139 SIGNAL(eff_isotropic_radiated_pwr, double, 0.0)
141 SIGNAL(power_RX, double, 0.0)
143 SIGNAL(system_noise_figure, double, 0.0)
145 SIGNAL(signal_to_noise_ratio, double, 0.0)
147 SIGNAL(ebno_received, double, 0.0)
149 SIGNAL(link_margin, double, 0.0)
151
157 double getGainRx(double antenna_diameter, double antenna_efficiency, double frequency) const;
158
159 protected:
160 int16 start() override;
161 int16 execute() override;
162
167 double _computeFreeSpacePathLoss(double range, double frequency) const;
168
171
174
175 };
176}
177
178#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 propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
int16 start() override
Class to execute logging.
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
double _power_TX_dBm
Power leaving the transmitter in decibel-milliWats.
Definition SimpleComAnalysisModel.h:170
@ 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 _power_reflected_W
Power reflected back into the system in Watts.
Definition SimpleComAnalysisModel.h:173
double _computeFreeSpacePathLoss(double range, double frequency) const
Function to compute the free space path loss.
Definition SimpleComAnalysisModel.cpp:145