JSBSim Flight Dynamics Model
1.1.11 (13 Feb 2022)
An Open Source Flight Dynamics and Control Software Library in C++
FGGyro.cpp
1
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
3
Module: FGGyro.cpp
4
Author: Jon Berndt
5
Date started: 29 August 2009
6
7
------------- Copyright (C) 2009 -------------
8
9
This program is free software; you can redistribute it and/or modify it under
10
the terms of the GNU Lesser General Public License as published by the Free
11
Software Foundation; either version 2 of the License, or (at your option) any
12
later version.
13
14
This program is distributed in the hope that it will be useful, but WITHOUT
15
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
17
details.
18
19
You should have received a copy of the GNU Lesser General Public License along
20
with this program; if not, write to the Free Software Foundation, Inc., 59
21
Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23
Further information about the GNU Lesser General Public License can also be
24
found on the world wide web at http://www.gnu.org.
25
26
FUNCTIONAL DESCRIPTION
27
--------------------------------------------------------------------------------
28
29
HISTORY
30
--------------------------------------------------------------------------------
31
32
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33
COMMENTS, REFERENCES, and NOTES
34
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35
36
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37
INCLUDES
38
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
39
40
#include "FGGyro.h"
41
#include "models/FGFCS.h"
42
43
using namespace
std;
44
45
namespace
JSBSim {
46
47
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48
CLASS IMPLEMENTATION
49
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
50
51
FGGyro::FGGyro(FGFCS* fcs, Element* element) : FGSensor(fcs, element),
52
FGSensorOrientation(element)
53
{
54
Propagate = fcs->GetExec()->GetPropagate();
55
56
Debug(0);
57
}
58
59
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60
61
FGGyro::~FGGyro()
62
{
63
Debug(1);
64
}
65
66
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67
68
bool
FGGyro::Run(
void
)
69
{
70
// There is no input assumed. This is a dedicated rotation rate sensor.
71
72
// get aircraft rates
73
Rates = Propagate->
GetPQRi
();
74
75
// transform to the specified orientation
76
vRates = mT * Rates;
77
78
Input = vRates(axis);
79
80
ProcessSensorSignal();
81
82
SetOutput();
83
84
return
true
;
85
}
86
87
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
88
// The bitmasked value choices are as follows:
89
// unset: In this case (the default) JSBSim would only print
90
// out the normally expected messages, essentially echoing
91
// the config files as they are read. If the environment
92
// variable is not set, debug_lvl is set to 1 internally
93
// 0: This requests JSBSim not to output any messages
94
// whatsoever.
95
// 1: This value explicity requests the normal JSBSim
96
// startup messages
97
// 2: This value asks for a message to be printed out when
98
// a class is instantiated
99
// 4: When this value is set, a message is displayed when a
100
// FGModel object executes its Run() method
101
// 8: When this value is set, various runtime state variables
102
// are printed out periodically
103
// 16: When set various parameters are sanity checked and
104
// a message is printed out when they go out of bounds
105
106
void
FGGyro::Debug(
int
from)
107
{
108
string
ax[4] = {
"none"
,
"X"
,
"Y"
,
"Z"
};
109
110
if
(debug_lvl <= 0)
return
;
111
112
if
(debug_lvl & 1) {
// Standard console startup message output
113
if
(from == 0) {
// Constructor
114
cout <<
" Axis: "
<< ax[axis] << endl;
115
}
116
}
117
if
(debug_lvl & 2 ) {
// Instantiation/Destruction notification
118
if
(from == 0) cout <<
"Instantiated: FGGyro"
<< endl;
119
if
(from == 1) cout <<
"Destroyed: FGGyro"
<< endl;
120
}
121
if
(debug_lvl & 4 ) {
// Run() method entry print for FGModel-derived objects
122
}
123
if
(debug_lvl & 8 ) {
// Runtime state variables
124
}
125
if
(debug_lvl & 16) {
// Sanity checking
126
}
127
if
(debug_lvl & 64) {
128
if
(from == 0) {
// Constructor
129
}
130
}
131
}
132
}
JSBSim::FGPropagate::GetPQRi
const FGColumnVector3 & GetPQRi(void) const
Retrieves the body angular rates vector, relative to the ECI (inertial) frame.
Definition:
FGPropagate.h:223
src
models
flight_control
FGGyro.cpp
Generated on Sun Feb 13 2022 13:06:37 for JSBSim Flight Dynamics Model by
1.8.17