WSF
WsfLink16Correlation.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 WSFLINK16CORRELATION_HPP
13#define WSFLINK16CORRELATION_HPP
14
15#include <map>
16#include <set>
17
18#include "UtEntity.hpp"
19class UtInput;
21#include "WsfCovariance.hpp"
22#include "WsfTrackId.hpp"
23
27{
28public:
30 ~WsfLink16Correlation() override = default;
31
32 WsfCorrelationStrategy* Clone() const override { return new WsfLink16Correlation(*this); }
33
34 WsfLocalTrack* CorrelateImpl(double aSimTime, const WsfTrack& aNonLocalTrack, WsfLocalTrackList& aTrackList) override;
35
36 bool ProcessInput(UtInput& aInput) override;
37
38private:
39 bool PositionalTest(unsigned int aLocalTQ,
40 unsigned int aRemoteTQ,
41 double aDistance,
42 unsigned int aMinTQ,
43 unsigned int aMaxTQ,
44 const double* aTQ_ToDM_ConversionTable,
45 double aScaleFactor = 1.0) const;
46
47 bool CourseTest(const WsfTrack& aNewTrack, const WsfTrack& aLocalTrack) const;
48
49 bool SpeedTest(const WsfTrack& aNewTrack, const WsfTrack& aLocalTrack) const;
50
51 bool AltitudeTest(const WsfTrack& aTrack1, const WsfTrack& aTrack2) const;
52
53 double GetDistanceBetweenTracks(const WsfTrack& aTrack1, const WsfTrack& aTrack2) const;
54
55 bool RunCorrelationTest(double aSimTime, const WsfTrack& aNewTrack, const WsfLocalTrack& aLocalTrack);
56
57 bool RunDecorrelationTest(double aSimTime, const WsfTrack& aNewTrack, const WsfLocalTrack& aLocalTrack);
58
59 double GetCourse(const WsfTrack& aTrack) const;
60
61 //#########################################################################
62 //#Allows increasing or decreasing the standard TQ-based window
63 //#sizes to be used by all IUs in an interface
64 //# a = 1.0(0.5 - 3.0, 0.1)
65 double mWindowSizeMultiplier; // = 1.0;
66
67 //#########################################################################
68 //#A value applied to all calculated windows to insure that windows
69 //#are not so small as to prevent valid correlations, e.g., due to
70 //#minor errors introduced by extrapolation.
71 //# b = 0.5(0 - 2.0, 0.25) dm
72
73 double mMinimumWindowSize; // = 0.5;
74
75 //#########################################################################
76 //#The minimum TQ to be used in positional correlation calculations.
77 //#Lower TQs shall be treated as if they were c. This prevents correlation
78 //#windows from being unrealistically large. Note: The value used for c can
79 //#never be less than or equal to the value used for e (Restriced_TQ).
80 //# c = 7(3 - 7, 1)
81
82 unsigned mMinimumTQ; // = 7
83
84 //#########################################################################
85 //#The maximum TQ to be used in positional correlations calculations.
86 //#Higher TQs shall be treated as if they were d. This prevents correlation
87 //#windows from being unrealistically small.
88 //# d = 10(8 - 15, 1)
89
90 unsigned mMaximumTQ; // = 10
91
92 //#########################################################################
93 //#The minimum value of Qpg to be used in positional correlation calculations.
94 //#Lower values shall be treated as if they were j. This prevents correlation
95 //#windows used in testing correlation of PPLI positions from being
96 //#unrealistically large.
97 //# j = 2(1 - 5, 1)
98
99 unsigned mMinimumPPLI_TQ; // = 2
100
101 //#########################################################################
102 //# The maximum value of Qpg to be used in positional correlation calculations.
103 //#Higher values shall be treated as if they were k. This prevents correlation
104 //#windows used in testing correlation of PLI positions from being
105 //#unrealistically small.
106 //# k = 11(1 - 15, 1)
107
108 unsigned mMaximumPPLI_TQ; // = 11
109
110 //#########################################################################
111 //#Tracks with TQ less than or equal to e are not eligible for correlation
112 //# e = 4(2 - 6, 1)
113
114 unsigned mRestrictedTQ; // = 4
115
116 //#########################################################################
117 //#The maximum difference between the reported course of the remote track
118 //#and the calculated course of the local track allowable for correlation.
119 //#If the speed of either track is less than 10 dmh, "course differential"
120 //#shall not be applied in the correlation test.
121 //# f = 45(15 - 90, 15) degrees
122
123 double mCourseDifferential; // = 45
124 double mMinimumSpeed; // = 10
125
126 //#########################################################################
127 //#The maximum percentage by which the speed of the faster track may differ
128 //#from the speed of the slower track for correlation.
129 //# g = 40(10 - 100, 10) percent
130
131 double mSpeedDifferential; // = 40
132 double mSpeedDeltaAir; // = 200
133 double mSpeedDeltaSurface; // = 20
134
135 //#########################################################################
136 //#The maximum altitude difference between two air tracks allowable for
137 //#correlation. (Not applicable to surface track correlation.)
138 //# h = 10(5 - 50, 5) thousand feet (kft)
139 double mAltitudeDifferential; // = 10
140
141 double mMinDistance;
142
143 mutable UtEntity mConverter;
144};
145
146#endif
WsfTrackListT< WsfLocalTrack > WsfLocalTrackList
Definition WsfTrackList.hpp:89
WsfCorrelationStrategy()
Definition WsfCorrelationStrategy.cpp:21
WsfCorrelationStrategy * Clone() const override
Create a clone of "this" object.
Definition WsfLink16Correlation.hpp:32
WsfLink16Correlation()
Definition WsfLink16Correlation.cpp:72
bool ProcessInput(UtInput &aInput) override
Process input from a common source.
Definition WsfLink16Correlation.cpp:93
~WsfLink16Correlation() override=default
WsfLocalTrack * CorrelateImpl(double aSimTime, const WsfTrack &aNonLocalTrack, WsfLocalTrackList &aTrackList) override
Definition WsfLink16Correlation.cpp:174
Definition WsfLocalTrack.hpp:32
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Copyrights Multiple, All Rights Reserved