WSF
P6DofVehicleData.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
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 P6DOFOBJECTDATA_HPP
13#define P6DOFOBJECTDATA_HPP
14
15#include <iostream>
16#include <vector>
17
18class UtLLAPos;
19
20namespace P6DOF
21{
22namespace DataType
23{
25{
28};
29
36} // namespace DataType
37
38namespace Appearance
39{
40enum
41{
42 IsDead = 0x00000001,
43 SmokePlume = 0x00000002,
44 FlamesPresent = 0x00000004,
45 TrailingEffect = 0x00000008,
46 PowerPlantOn = 0x00000010,
47 EngineSmoking = 0x00000020,
48 AfterburnerOn = 0x00000040,
49 LightsNavOn = 0x00000100,
50 LightStrobeOn = 0x00000200,
51 LightsLandingOn = 0x00000400,
52 LightsTaxiOn = 0x00000800,
53 LightsFormationOn = 0x00001000,
54 LightsLiveryOn = 0x00002000,
55 CanopyOpen = 0x00004000,
56 ChuteDeployed = 0x00008000,
57 LauncherRaised = 0x00010000,
58 LaunchFlash = 0x00020000
59};
60}
61
62// -----------------------------------------------------------------------------------------
63
64// This data structure is used to define a control surface position
71
72// This data structure is used to define a control input and its value
74{
76 : normalizedValue(1.0)
78 , typeData()
79 , boolData(false)
80 {
81 }
82
83 explicit FlightControlInputValue(const std::string& aName)
84 : normalizedValue(1.0)
85 , controlInputName(aName)
86 , typeData(DataType::Float)
87 , boolData(false)
88 {
89 }
90
92
94 std::string controlInputName;
97};
98
100{
101 float lat;
102 float lon;
103 float alt_m;
107};
108
109// This data structure is used to define a single PID's 'gain' data for both a single
110// data case and an entry in a tabular data case
112{
114 {
115 KpGain = 0.0f;
116 KiGain = 0.0f;
117 KdGain = 0.0f;
118 LowpassAlpha = 0.0f;
119 MaxAccum = 0.0f;
120 MaxErrorZero = 0.0f;
121 MinErrorZero = 0.0f;
122 KtAntiWindup = 0.0f;
123 ControllingValue = 0.0f;
124 }
125
127 {
128 KpGain = 0.0f;
129 KiGain = 0.0f;
130 KdGain = 0.0f;
131 LowpassAlpha = 0.0f;
132 MaxAccum = 0.0f;
133 MaxErrorZero = 0.0f;
134 MinErrorZero = 0.0f;
135 KtAntiWindup = 0.0f;
136 ControllingValue = 0.0f;
137 }
138
139 float KpGain;
140 float KiGain;
141 float KdGain;
143 float MaxAccum;
148};
149
150// This data structure is used to define a single PID's 'value' data
152{
154 {
155 SetPoint = 0.0f;
156 CurrentValue = 0.0f;
157 KpValue = 0.0f;
158 KiValue = 0.0f;
159 KdValue = 0.0f;
160 FFValue = 0.0f;
161 OutputBase = 0.0f;
162 OutputLimited = 0.0f;
163 AccumError = 0.0f;
164 FFValueValid = false;
165 }
166
167 float SetPoint;
169 float KpValue;
170 float KiValue;
171 float KdValue;
172 float FFValue;
177};
178
217
218// This data structure is used to define an autopilot's PID 'value' data for a given technique
242
243// This data structure is used to define various autopilot limits
298
299namespace Lateral
300{
302{
304 Waypoint, // Fly waypoints
305 Point, // Fly to point
306 Heading, // Fly heading
307 YawRate, // Yaw cmd, rate
308 YawGLoad, // Yaw cmd, g-load
309 Bank, // Roll cmd, bank
310 DeltaRoll, // Roll cmd, delta-roll angle
311 RollRate, // Roll cmd, rate
313};
314}
315
316namespace Vertical
317{
319{
321 Waypoint, // Fly waypoints
322 Point, // Fly to point
323 Altitude, // Hold altitude
324 VertSpeed, // Hold vert speed
325 PitchAng, // Pitch cmd, angle
326 PitchRate, // Pitch cmd, rate
327 FltPathAng, // Pitch cmd, flt-path
328 DeltaPitch, // Pitch cmd, delta-angle
329 PitchGLoad, // Pitch cmd, g-load
330 Alpha, // Pitch cmd, alpha
331
332};
333}
334
335namespace Speed
336{
338{
340 Waypoint, // Fly waypoints
341 ForwardAccel, // Fly controlling accel
342 FPS, // Fly controlling ft/sec
343 KIAS, // Fly controlling KIAS
344 KTAS, // Fly controlling KTAS
345 Mach // Fly controlling mach
346};
347}
348
349namespace Control
350{
352{
354 BankToTurnNoYaw, // Bank-to-Turn-NoYaw BTTNY uses StickBack, StickRgt, Throttle
355 BankToTurnWithYaw, // Bank-to-Turn-WithYaw BTTWY uses StickBack, StickRgt, Throttle, Rudder
356 YawToTurnNoRoll, // Yaw-to-Turn-NoRoll YTTNR uses StickBack, RudderRgt, Throttle
357 YawToTurnRollRate, // Yaw-to-Turn-RollRate YTTZRR uses StickBack, RudderRgt, Throttle, StickRgt
358 YawToTurnZeroBank // Yaw-to-Turn-ZeroBank YTTZB uses StickBack, RudderRgt, Throttle, StickRgt
359};
360}
361
362namespace Nav
363{
370
377} // namespace Nav
378
379// This data structure is used to waypoint parameters to help study waypoint control performance
403
404// This data structure is used to define the main autopilot data coming repeatedly from the sim
406{
407 // Autopilot current mode values
410};
411
412// This data structure is used to define the waypoint data from the sim
419
421{
422 std::string sensorName;
423 std::string targetName;
424 double targetLat;
425 double targetLon;
427};
428
445}; // namespace P6DOF
446
447#endif
Definition P6DofVehicleData.hpp:39
@ ChuteDeployed
Definition P6DofVehicleData.hpp:56
@ LightsNavOn
Definition P6DofVehicleData.hpp:49
@ LauncherRaised
Definition P6DofVehicleData.hpp:57
@ LightsLiveryOn
Definition P6DofVehicleData.hpp:54
@ AfterburnerOn
Definition P6DofVehicleData.hpp:48
@ FlamesPresent
Definition P6DofVehicleData.hpp:44
@ SmokePlume
Definition P6DofVehicleData.hpp:43
@ TrailingEffect
Definition P6DofVehicleData.hpp:45
@ PowerPlantOn
Definition P6DofVehicleData.hpp:46
@ LightsFormationOn
Definition P6DofVehicleData.hpp:53
@ EngineSmoking
Definition P6DofVehicleData.hpp:47
@ LightsLandingOn
Definition P6DofVehicleData.hpp:51
@ LightStrobeOn
Definition P6DofVehicleData.hpp:50
@ LaunchFlash
Definition P6DofVehicleData.hpp:58
@ IsDead
Definition P6DofVehicleData.hpp:42
@ LightsTaxiOn
Definition P6DofVehicleData.hpp:52
@ CanopyOpen
Definition P6DofVehicleData.hpp:55
Definition P6DofVehicleData.hpp:350
Method
Definition P6DofVehicleData.hpp:352
@ YawToTurnNoRoll
Definition P6DofVehicleData.hpp:356
@ YawToTurnRollRate
Definition P6DofVehicleData.hpp:357
@ BankToTurnNoYaw
Definition P6DofVehicleData.hpp:354
@ Undefined
Definition P6DofVehicleData.hpp:353
@ BankToTurnWithYaw
Definition P6DofVehicleData.hpp:355
@ YawToTurnZeroBank
Definition P6DofVehicleData.hpp:358
Definition P6DofVehicleData.hpp:23
Simple
Definition P6DofVehicleData.hpp:25
@ Float
Definition P6DofVehicleData.hpp:26
@ Boolean
Definition P6DofVehicleData.hpp:27
Angular
Definition P6DofVehicleData.hpp:31
@ AngleRad
Definition P6DofVehicleData.hpp:34
@ Normalized
Definition P6DofVehicleData.hpp:32
@ AngleDeg
Definition P6DofVehicleData.hpp:33
Definition P6DofVehicleData.hpp:300
Mode
Definition P6DofVehicleData.hpp:302
@ Undefined
Definition P6DofVehicleData.hpp:303
@ Heading
Definition P6DofVehicleData.hpp:306
@ Waypoint
Definition P6DofVehicleData.hpp:304
@ DeltaRoll
Definition P6DofVehicleData.hpp:310
@ Bank
Definition P6DofVehicleData.hpp:309
@ YawGLoad
Definition P6DofVehicleData.hpp:308
@ RollRate
Definition P6DofVehicleData.hpp:311
@ YawRate
Definition P6DofVehicleData.hpp:307
@ Point
Definition P6DofVehicleData.hpp:305
@ Beta
Definition P6DofVehicleData.hpp:312
Definition P6DofVehicleData.hpp:363
SwitchingType
Definition P6DofVehicleData.hpp:372
@ OnPassing
Definition P6DofVehicleData.hpp:375
@ OnApproach
Definition P6DofVehicleData.hpp:374
@ SwitchUndefined
Definition P6DofVehicleData.hpp:373
LegType
Definition P6DofVehicleData.hpp:365
@ LegUndefined
Definition P6DofVehicleData.hpp:366
@ DirectTo
Definition P6DofVehicleData.hpp:368
@ FollowTrack
Definition P6DofVehicleData.hpp:367
Definition P6DofVehicleData.hpp:180
Type
Definition P6DofVehicleData.hpp:182
@ Beta
Definition P6DofVehicleData.hpp:191
@ TaxiHeading
Definition P6DofVehicleData.hpp:194
@ FltPathAngle
Definition P6DofVehicleData.hpp:188
@ ForwardAccel
Definition P6DofVehicleData.hpp:199
@ TaxiSpeed
Definition P6DofVehicleData.hpp:202
@ Altitude
Definition P6DofVehicleData.hpp:190
@ BankAngle
Definition P6DofVehicleData.hpp:197
@ VertSpeed
Definition P6DofVehicleData.hpp:185
@ YawHeading
Definition P6DofVehicleData.hpp:193
@ YawRate
Definition P6DofVehicleData.hpp:192
@ RollHeading
Definition P6DofVehicleData.hpp:198
@ Alpha
Definition P6DofVehicleData.hpp:184
@ TaxiForwardAccel
Definition P6DofVehicleData.hpp:201
@ DeltaRoll
Definition P6DofVehicleData.hpp:196
@ PitchAngle
Definition P6DofVehicleData.hpp:186
@ PitchRate
Definition P6DofVehicleData.hpp:187
@ DeltaPitch
Definition P6DofVehicleData.hpp:189
@ TaxiYawRate
Definition P6DofVehicleData.hpp:203
@ Speed
Definition P6DofVehicleData.hpp:200
@ LastPidType
Definition P6DofVehicleData.hpp:204
@ RollRate
Definition P6DofVehicleData.hpp:195
@ Unknown
Definition P6DofVehicleData.hpp:183
Flags
Definition P6DofVehicleData.hpp:208
@ ZeroLtMin
Definition P6DofVehicleData.hpp:212
@ UseKt
Definition P6DofVehicleData.hpp:213
@ UseAlpha
Definition P6DofVehicleData.hpp:209
@ LimitMax
Definition P6DofVehicleData.hpp:210
@ ZeroGtMax
Definition P6DofVehicleData.hpp:211
@ ClearAccum
Definition P6DofVehicleData.hpp:214
Definition P6DofVehicleData.hpp:336
Mode
Definition P6DofVehicleData.hpp:338
@ Waypoint
Definition P6DofVehicleData.hpp:340
@ FPS
Definition P6DofVehicleData.hpp:342
@ KIAS
Definition P6DofVehicleData.hpp:343
@ ForwardAccel
Definition P6DofVehicleData.hpp:341
@ KTAS
Definition P6DofVehicleData.hpp:344
@ Mach
Definition P6DofVehicleData.hpp:345
@ Undefined
Definition P6DofVehicleData.hpp:339
Definition P6DofVehicleData.hpp:317
Mode
Definition P6DofVehicleData.hpp:319
@ Waypoint
Definition P6DofVehicleData.hpp:321
@ PitchRate
Definition P6DofVehicleData.hpp:326
@ PitchAng
Definition P6DofVehicleData.hpp:325
@ PitchGLoad
Definition P6DofVehicleData.hpp:329
@ Alpha
Definition P6DofVehicleData.hpp:330
@ Altitude
Definition P6DofVehicleData.hpp:323
@ DeltaPitch
Definition P6DofVehicleData.hpp:328
@ FltPathAng
Definition P6DofVehicleData.hpp:327
@ VertSpeed
Definition P6DofVehicleData.hpp:324
@ Undefined
Definition P6DofVehicleData.hpp:320
@ Point
Definition P6DofVehicleData.hpp:322
Definition P6DofVehicleData.hpp:21
Definition P6DofVehicleData.hpp:406
NavWaypointParameters navWaypointParameters
Definition P6DofVehicleData.hpp:409
bool autopilotEnabled
Definition P6DofVehicleData.hpp:408
float yawRate_Max
Definition P6DofVehicleData.hpp:290
float alpha_Min
Definition P6DofVehicleData.hpp:282
float afterburnerThreshold
Definition P6DofVehicleData.hpp:275
float pitchGLoad_Min
Definition P6DofVehicleData.hpp:280
float yawGLoad_Max
Definition P6DofVehicleData.hpp:288
float routeAllowableAngleError_rad
Definition P6DofVehicleData.hpp:278
float pitchGLoad_Max
Definition P6DofVehicleData.hpp:281
float forwardAccel_Max
Definition P6DofVehicleData.hpp:294
float pitchRate_Max
Definition P6DofVehicleData.hpp:285
float taxiYawRate_Max
Definition P6DofVehicleData.hpp:296
bool enableSpeedBrakeAutoControl
Definition P6DofVehicleData.hpp:274
float alpha_Max
Definition P6DofVehicleData.hpp:283
AutopilotLimitsAndSettings()
Definition P6DofVehicleData.hpp:246
float pitchRate_Min
Definition P6DofVehicleData.hpp:284
float beta_Max
Definition P6DofVehicleData.hpp:289
float forwardAccel_Min
Definition P6DofVehicleData.hpp:293
bool enableAfterburnerAutoControl
Definition P6DofVehicleData.hpp:273
float speedBrakeThreshold
Definition P6DofVehicleData.hpp:276
float rollRate_Max
Definition P6DofVehicleData.hpp:291
float bankAngle_Max
Definition P6DofVehicleData.hpp:292
float taxiSpeed_Max
Definition P6DofVehicleData.hpp:295
float vertSpd_Min
Definition P6DofVehicleData.hpp:286
float vertSpd_Max
Definition P6DofVehicleData.hpp:287
float turnRollInMultiplier
Definition P6DofVehicleData.hpp:277
Definition P6DofVehicleData.hpp:220
SinglePidValueData forwardAccelPID
Definition P6DofVehicleData.hpp:236
SinglePidValueData bankAnglePID
Definition P6DofVehicleData.hpp:234
SinglePidValueData yawRatePID
Definition P6DofVehicleData.hpp:229
SinglePidValueData taxiHeadingPID
Definition P6DofVehicleData.hpp:231
SinglePidValueData speedPID
Definition P6DofVehicleData.hpp:237
SinglePidValueData rollHeadingPID
Definition P6DofVehicleData.hpp:235
SinglePidValueData taxiSpeedPID
Definition P6DofVehicleData.hpp:239
SinglePidValueData deltaRollPID
Definition P6DofVehicleData.hpp:233
SinglePidValueData taxiForwardAccelPID
Definition P6DofVehicleData.hpp:238
SinglePidValueData betaPID
Definition P6DofVehicleData.hpp:228
SinglePidValueData pitchAnglePID
Definition P6DofVehicleData.hpp:223
SinglePidValueData fltpathAnglePID
Definition P6DofVehicleData.hpp:225
SinglePidValueData vertSpeedPID
Definition P6DofVehicleData.hpp:222
SinglePidValueData altitudePID
Definition P6DofVehicleData.hpp:227
SinglePidValueData yawheadingPID
Definition P6DofVehicleData.hpp:230
SinglePidValueData pitchRatePID
Definition P6DofVehicleData.hpp:224
SinglePidValueData alphaPID
Definition P6DofVehicleData.hpp:221
SinglePidValueData rollRatePID
Definition P6DofVehicleData.hpp:232
SinglePidValueData deltaPitchPID
Definition P6DofVehicleData.hpp:226
SinglePidValueData taxiYawRatePID
Definition P6DofVehicleData.hpp:240
Definition P6DofVehicleData.hpp:414
unsigned char waypointListNumItems
Definition P6DofVehicleData.hpp:416
unsigned char currentWaypointIndex
Definition P6DofVehicleData.hpp:415
AutopilotWaypointData waypointListData[50]
Definition P6DofVehicleData.hpp:417
Definition P6DofVehicleData.hpp:100
float lon
Definition P6DofVehicleData.hpp:102
float speed_kias
Definition P6DofVehicleData.hpp:104
float alt_m
Definition P6DofVehicleData.hpp:103
float lat
Definition P6DofVehicleData.hpp:101
float speed_mach
Definition P6DofVehicleData.hpp:106
float speed_ktas
Definition P6DofVehicleData.hpp:105
Definition P6DofVehicleData.hpp:66
DataType::Angular typeData
Definition P6DofVehicleData.hpp:69
float value
Definition P6DofVehicleData.hpp:67
std::string controlSurfaceName
Definition P6DofVehicleData.hpp:68
Definition P6DofVehicleData.hpp:430
bool isValid
Definition P6DofVehicleData.hpp:431
float targetElevation_deg
Definition P6DofVehicleData.hpp:434
float autopilotPitchGLoadCommand_g
Definition P6DofVehicleData.hpp:442
float guidanceGBias_g
Definition P6DofVehicleData.hpp:438
float targetAziumth_deg
Definition P6DofVehicleData.hpp:433
float guidanceMaxG
Definition P6DofVehicleData.hpp:439
float guidancePitchAccelCommand_g
Definition P6DofVehicleData.hpp:437
float autopilotRollRateCommand_dps
Definition P6DofVehicleData.hpp:443
float guidanceYawAccelCommand_g
Definition P6DofVehicleData.hpp:436
float targetSlantRange_nm
Definition P6DofVehicleData.hpp:435
std::string targetName
Definition P6DofVehicleData.hpp:432
float guidanceFlightPathAngle_deg
Definition P6DofVehicleData.hpp:440
float autopilotYawGLoadCommand_g
Definition P6DofVehicleData.hpp:441
DataType::Simple typeData
Definition P6DofVehicleData.hpp:95
FlightControlInputValue(const FlightControlInputValue &aSrc)=default
float normalizedValue
Definition P6DofVehicleData.hpp:93
FlightControlInputValue()
Definition P6DofVehicleData.hpp:75
bool boolData
Definition P6DofVehicleData.hpp:96
FlightControlInputValue(const std::string &aName)
Definition P6DofVehicleData.hpp:83
std::string controlInputName
Definition P6DofVehicleData.hpp:94
Definition P6DofVehicleData.hpp:381
float navWaypointAimHeading_rad
Definition P6DofVehicleData.hpp:394
float navWaypointPrevAlt
Definition P6DofVehicleData.hpp:387
float navWaypointTurnAngle_rad
Definition P6DofVehicleData.hpp:397
float navWaypointStartTurnHdg_rad
Definition P6DofVehicleData.hpp:395
float navWaypointPrevLon
Definition P6DofVehicleData.hpp:386
Nav::SwitchingType navWaypointSwitchingType
Definition P6DofVehicleData.hpp:384
bool navWaypointDataValid
Definition P6DofVehicleData.hpp:382
float navWaypointNextAlt
Definition P6DofVehicleData.hpp:393
float navWaypointPrevLat
Definition P6DofVehicleData.hpp:385
float navWaypointTurnRefPtLat
Definition P6DofVehicleData.hpp:398
float navWaypointTurnRefPtLon
Definition P6DofVehicleData.hpp:399
float navWaypointNextLat
Definition P6DofVehicleData.hpp:391
float navWaypointTurnCenterLon
Definition P6DofVehicleData.hpp:401
float navWaypointTurnCenterLat
Definition P6DofVehicleData.hpp:400
float navWaypointCurrAlt
Definition P6DofVehicleData.hpp:390
float navWaypointCurrLon
Definition P6DofVehicleData.hpp:389
float navWaypointCurrLat
Definition P6DofVehicleData.hpp:388
float navWaypointNextLon
Definition P6DofVehicleData.hpp:392
Nav::LegType navWaypointLegType
Definition P6DofVehicleData.hpp:383
float navWaypointTurnRadius_m
Definition P6DofVehicleData.hpp:396
float ControllingValue
Definition P6DofVehicleData.hpp:147
float KtAntiWindup
Definition P6DofVehicleData.hpp:146
PidGainData()
Definition P6DofVehicleData.hpp:113
void clearData()
Definition P6DofVehicleData.hpp:126
float LowpassAlpha
Definition P6DofVehicleData.hpp:142
float KpGain
Definition P6DofVehicleData.hpp:139
float KdGain
Definition P6DofVehicleData.hpp:141
float KiGain
Definition P6DofVehicleData.hpp:140
float MaxAccum
Definition P6DofVehicleData.hpp:143
float MinErrorZero
Definition P6DofVehicleData.hpp:145
float MaxErrorZero
Definition P6DofVehicleData.hpp:144
Definition P6DofVehicleData.hpp:152
float OutputBase
Definition P6DofVehicleData.hpp:173
float KiValue
Definition P6DofVehicleData.hpp:170
SinglePidValueData()
Definition P6DofVehicleData.hpp:153
float KpValue
Definition P6DofVehicleData.hpp:169
float OutputLimited
Definition P6DofVehicleData.hpp:174
float CurrentValue
Definition P6DofVehicleData.hpp:168
float KdValue
Definition P6DofVehicleData.hpp:171
bool FFValueValid
Definition P6DofVehicleData.hpp:176
float SetPoint
Definition P6DofVehicleData.hpp:167
float AccumError
Definition P6DofVehicleData.hpp:175
float FFValue
Definition P6DofVehicleData.hpp:172
Definition P6DofVehicleData.hpp:421
double targetLat
Definition P6DofVehicleData.hpp:424
double targetAlt_m
Definition P6DofVehicleData.hpp:426
std::string sensorName
Definition P6DofVehicleData.hpp:422
double targetLon
Definition P6DofVehicleData.hpp:425
std::string targetName
Definition P6DofVehicleData.hpp:423
Copyrights Multiple, All Rights Reserved