WSF
BrawlerMIND.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef BRAWLERMIND_HPP
13#define BRAWLERMIND_HPP
14
15#include <array>
16#include <string>
17
18#include "BrawlerUtil.hpp"
19
26{
27public:
28 BrawlerMIND() = default;
29 virtual ~BrawlerMIND() = default;
30
35 virtual bool LoadMindFile(const std::string& absolutePathFile);
36
39 double ManeuverReconsiderationMax() { return agemod[2][1]; }
40
43 double WeaponReconsiderationMax() { return agemod[6][1]; }
44
48 double TimeProjection() { return tproj; }
49
51 double MaxGeesForRouteFlying() { return gmaxm; }
52
59 double RangeWeapon(BRAWLER::WeaponType aType);
60
64 double SmoothingTimeSeconds() { return tvpold; }
65
68 double DefaultHostileAssessmentRate() { return detr0; }
69
72 double MinTimeBetweenHostAssessments() { return tearly; }
73
77 double SlowGee() { return slogee; }
78
82 double SlowGeeLeeway() { return sl_g_leeway; }
83
89 double TunnelAlpha() { return tnl_alpha; }
90 double TunnelBetaLow() { return tnl_beta_low; }
91 double TunnelBetaMed() { return tnl_beta_med; }
92 double TunnelBetaHi() { return tnl_beta_hi; }
93 double TunnelTauLow() { return tnl_tau_low; }
94 double TunnelTauMed() { return tnl_tau_med; }
95 double TunnelTauHi() { return tnl_tau_hi; }
96 double TunnelContrast() { return tnl_cntrst; }
98
99private:
100 bool mDebug{false};
101
105 double age1{2.0};
106 double chisig{6.0}; // obsolete
107 // Default values used in the constructor are
108 // taken from the BRAWLER v7.5 release MIND file
109 // tcorr[3];
110 std::array<double, 3> tcorr = {{10.0, 10.0, 10.0}}; // not in use
111 std::array<std::array<double, 2>, 7> agemod = {
112 {{{5.0, 20.0}}, {{0.5, 5.0}}, {{0.25, 1.0}}, {{5.0, 20.0}}, {{5.0, 60.0}}, {{5.0, 60.9}}, {{1.0, 1.0}}}};
113 double valsig{0.001};
114 double vcutf{0.6};
115 int malts{5};
116 double stkpn{5.0};
117 double tmusup{5.0};
118 double trch{20.0}; // not in use
119 double trchw{5.0}; // not in use
120 double wtvmsl{0.5};
121 double tproj{3.0};
122 double agfolo{20.0};
123 double agerad{10.0};
124 double climbm{10000.0};
125 double gmaxm{4.0};
126 double rfxdly{0.2};
127 double wrform{0.1};
128 double wrrfrm{0.5};
129 std::array<double, 5> rngwpn = {{25000.0, 30000.0, 85000.0, 3000.0, 40000.0}};
130 double tvpold{15.0};
131 double detr0{0.02};
132 double tearly{4.99};
133 double hdsprd{2.0};
134 double hdpklo{0.05};
135 double hdpkhi{0.10};
136 double hdrkmx{0.5};
137 double hdpsmn{0.8};
138 double splita{45.0};
139 double reqdly{15.0};
140 double orddly{20.1};
141 double chswls{0.3};
142 double chswlo{0.2};
143 double dtnear{10.0}; // User Manual says this is an array of 10 values, input file usually only has one (unlabeled)
144 double dtudes{5.0};
145 double delfac{0.3};
146 double cwidth{5.0};
147 int maxac_low{3};
148 int maxac_med{5};
149 int maxac_hi{10};
150 double slogee{3.0};
151 double sl_g_leeway{2.0};
152 double tnl_alpha{0.3};
153 double tnl_beta_low{0.6};
154 double tnl_beta_med{0.75};
155 double tnl_beta_hi{0.9};
156 double tnl_tau_low{60.0};
157 double tnl_tau_med{30.0};
158 double tnl_tau_hi{0.001};
159 double tnl_cntrst{2.0};
160 double hotmin{1000.0};
161 double ft_reject_t{0.02}; // Not documented in User Manaual
162 double tau_estab{30.0};
163 double mm_est_lvl{20.0};
164 double mm_disest_lvl{10.0}; // Not currently used
165 double mm_purge_lvl{1.0}; // Not currently used
166 std::array<double, 29> obs_est_val = {{// [1] & [8] are different defaults
167 40.0, 13.2, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 13.2, 40.0,
168 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0,
169 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0}};
171 /* obs_est_vals:
172 0 visual
173 1 radar_scan
174 2 radar_stt
175 3 radar_tws
176 4 radar_spot
177 5 radar_active
178 6 message
179 7 inferred
180 8 jammed_radar_scan
181 9 jammed_radar_stt
182 10 jammed_radar_tws
183 11 jammed_radar_spot
184 12 jammed_radar_active
185 13 jammed_message
186 14 iff
187 15 rhaw
188 16 irst
189 17 mw
190 18 maw
191 19 rwr
192 20 san
193 21 ttt
194 22 sss
195 23 xav
196 24 toc
197 25 esm
198 26 ext
199 27 otd
200 28 dld
201 */
202};
203
204/* EXAMPLE MIND FILE
205
206AGE1 2.
207CHISIG 6.
208TCORR 10. 10. 10. !OBSERVATION CORRELATION TIMES
20944444444444444444444444444400000000000000000000000 VALKEY 1-50
21000000000000000000000000000000000000000000000000000 VALKEY 51-100
211AGEMOD 5.0 20.0
212 0.5 5.0
213 0.25 1.0
214 5.0 20.0
215 5.0 60.0
216 5.0 60.0
217 0.1 1.0
218VALSIG 0.001
219VCUTF 0.6
220MALTS 5
221STKPN 5.0
222TMUSUP 5.0
223TRCH 20.0
224TRCHW 5.0
225WTVMSL 0.5
226TPROJ 3.0
227AGFOLO 20.0
228AGERAD 10.0
229CLIMBM 10000.0
230GMAXM 4.0
231RFXDLY 0.2 !REFLEX_DELAY - FOR MANEUVER IMPLEMENTATION AFTER DECISION IS
232WRFORM 0.1
233WRRFRM 0.5
234RNGWPN 25000. 30000. 85000. 3000. 40000. !SRM,MRM,LRM,GUN,DEW
235TVPOLD 15.
236DETR0 0.02
237TEARLY 4.99
238HDSPRD 2.0
239HDPKLO 0.05
240HDPKHI 0.10
241HDRKMX 0.5
242HDPSMN 0.8
243SPLITA 45.0
244REQDLY 15.0
245ORDDLY 20.1
246CHSWLS .3
247CHSWLO .2
24810. NEARBY UPDATE INTERVAL
249DTUDES 5.0
250DELFAC 0.3
251CWIDTH 5.0
252MAXAC_LOW 3
253MAXAC_MED 5
254MAXAC_HI MACMND
255SLOGEE 3.
256SL_G_LEEWAY 2.
257TNL_ALPHA 0.3
258TNL_BETA_LOW 0.6
259TNL_BETA_MED 0.75
260TNL_BETA_HI 0.9
261TNL_TAU_LOW 60.0
262TNL_TAU_MED 30.0
263TNL_TAU_HI 0.001
264TNL_CNTRST 2.
265HOTMIN 1000. !minimum height over terrain
266FT_REJECT_T 0.02 !Time (per false tgt) to reject false targets (sec)
267TAU_ESTAB 30. Establishment value time constant
268ESTABLISH 20. Threshold for establishment
269DIS-ESTABLISH 10. Threshold for disestablishment (currently unused)
270PURGE 1. Threshold for purging (currently unused)
271VISUAL 40. Value added for a visual observation
272RADAR Values added for radar obs
273 SCAN 13.2 => roughly 2 hits in 20 seconds will establish
274 STT 40.
275 TWS 40.
276 SPOT 40.
277 ACTIVE 40.
278MESSAGE 40.
279INFERRED 40.
280JAMMED_RADAR
281 SCAN 13.2
282 STT 40.
283 TWS 40.
284 SPOT 40.
285 ACTIVE 40.
286JAMMED_MESSAGE 40.
287IFF 40.
288RHAW 40.
289IRST 40.
290MW 40.
291MAW 40.
292RWR 40.
293SAN 40.
294TTT 40.
295SSS 40.
296XAV 40.
297TOC 40.
298ESM 40.
299EXT 40.
300OTD 40.
301DLD 40.
302
303*/
304
305#endif
double TunnelAlpha()
Definition BrawlerMIND.hpp:89
virtual ~BrawlerMIND()=default
double SlowGeeLeeway()
Definition BrawlerMIND.hpp:82
BrawlerMIND()=default
double SmoothingTimeSeconds()
Definition BrawlerMIND.hpp:64
double TimeProjection()
Definition BrawlerMIND.hpp:48
double DefaultHostileAssessmentRate()
Definition BrawlerMIND.hpp:68
double WeaponReconsiderationMax()
Definition BrawlerMIND.hpp:43
double RangeWeapon(BRAWLER::WeaponType aType)
Definition BrawlerMIND.cpp:432
double TunnelTauHi()
Definition BrawlerMIND.hpp:95
virtual bool LoadMindFile(const std::string &absolutePathFile)
Definition BrawlerMIND.cpp:23
double SlowGee()
Definition BrawlerMIND.hpp:77
double TunnelTauMed()
Definition BrawlerMIND.hpp:94
double TunnelBetaLow()
Definition BrawlerMIND.hpp:90
double TunnelContrast()
Definition BrawlerMIND.hpp:96
double MinTimeBetweenHostAssessments()
Definition BrawlerMIND.hpp:72
double ManeuverReconsiderationMax()
Definition BrawlerMIND.hpp:39
double TunnelBetaMed()
Definition BrawlerMIND.hpp:91
double TunnelTauLow()
Definition BrawlerMIND.hpp:93
double MaxGeesForRouteFlying()
Max Gees to use for ROUTEPOINT flying, (G units). Replaces gmaxm.
Definition BrawlerMIND.hpp:51
double TunnelBetaHi()
Definition BrawlerMIND.hpp:92
WeaponType
Definition BrawlerUtil.hpp:48
Copyrights Multiple, All Rights Reserved