Content uploaded by Umberto Saetti
Author content
All content in this area was uploaded by Umberto Saetti on Oct 08, 2020
Content may be subject to copyright.
A Motion Primitive Perspective on Rotorcraft Regime Recognition
Umberto Saetti
Postdoctoral Fellow
School of Aerospace Engineering
Georgia Institute of Technology
Atlanta, GA 30313
Jonathan Rogers
Associate Professor
School of Aerospace Engineering
Georgia Institute of Technology
Atlanta, GA 30313
ABSTRACT
An alternative approach to regime recognition that is based on the notion of motion primitives is developed. The algo-
rithm developed is non-causal and leverages the ideas of maneuvers and trims as defined in a motion primitive context.
The algorithm functions in three major steps. Given a state and control input time history obtained from flight data,
the first step consists of classifying the state and control time history into trim and maneuver segments. The second
step leverages the information in the trim state and control vectors to classify each trim segment into a particular trim
condition based on conditional (if-else-if) logic. The third step entails the classification of each maneuver segment
(flown between two trim segments) as a particular maneuver condition. Importantly, maneuver classification lever-
ages dynamic time warping in order to compensate for rate and time duration variations. Accuracy of the proposed
algorithm is evaluated using SH-60B simulated flight data. Operation of the algorithm is also demonstrated using
real-world piloted flight test data from a generic utility helicopter.
INTRODUCTION
Regime recognition has seen increasing interest from both
the military and civil aviation sectors. Regime recognition
consists of analyzing and categorizing flight data into certain
flight regimes. This enables determination of usage spectra
for a given aircraft model, as well as fatigue life calculation
since component fatigue rates for each life-limited part are
characterized for each maneuver category by the manufac-
turer. Typically, regime recognition is carried out post-flight,
at which point fatigue life on various vehicle components can
be updated and assessed.
To date, two major types of regime recognition algorithms
have been developed: rule-based algorithms (Refs. 1–6), and
Hidden Markov model-based algorithms (HMMs) (Refs. 7,8).
The former are deterministic algorithms that perform classifi-
cation at each time step using a set of logical rules that are
based on thresholds. The latter are probabilistic algorithms
that perform classification using a Gaussian mixture model,
where the mixture coefficients are computed based on the cur-
rent and past observations. The use of past observations to
condition the current classifications introduces an element of
memory, improving the robustness of the recognition algo-
rithm to high-frequency noise and short-term perturbations.
Although rule-based algorithms are relatively easy to con-
struct, they suffer two major limitations. First, they lack a
general recursion scheme (i.e. memory), making them sus-
ceptible to high frequency switching when the aircraft is fly-
ing along the boundary between maneuvers. Second, they per-
Presented at the VFS International 76th Annual Forum &
Technology Display, Virginia Beach, VA, October 6–8, 2020. Copy-
right c
2020 by the Vertical Flight Society. All rights reserved.
form classification in a binary way: either the flight data at a
certain point in time belongs to a particular regime or it does
not. It follows that this approach may suffer from the inherent
uncertainty of the regime recognition process. In contrast, the
probabilistic approach taken by HMM algorithms generally
leads to smoother recognition results, at the price of complex-
ity and the need for a large amount of training data.
The regime recognition problem is made more difficult by
the lack of a single standard defining the state boundaries of
each maneuver. Instead, current algorithms classify regimes
based on state boundaries defined empirically through time
histories recorded in piloted flight tests. Such maneuver time
histories may vary significantly from pilot to pilot and air-
craft to aircraft. Thus, regime recognition may benefit from
a more rigorous mathematical definition of the maneuver cat-
egories. The work described here, in which motion primi-
tives (Refs. 9,10) are used to develop a mathematical frame-
work that clearly defines and classifies flight regimes, repre-
sents a first step in this direction.
It is also important to note that because regime recognition
is a post-processing step, there is no requirement that the al-
gorithm be causal or capable of real-time operation. For this
reason, classification of the current data point should not only
use information from past data points, but also from future
data points. Such a non-causal approach should improve clas-
sification results by allowing the algorithm access to more in-
formation at each classification timestep.
The objective of this paper is to develop an alternative ap-
proach to regime recognition that is based on the notion of
motion primitives, which is a common path planning tech-
nique that captures path segments as a discrete set of possi-
ble motions. The algorithm developed here is intended to be
1
non-causal, and leverages the ideas of maneuvers and trims as
defined in a motion primitive context.
The paper begins with an explanation of the mathematical
methodology behind the motion primitive approach to regime
recognition. The second section presents a detailed discussion
of the three-step approach to the regime recognition problem.
The discussion of each step includes a mathematical expla-
nation and an illustration through an example involving sim-
ulated SH-60B flight data. Further, the accuracy of the algo-
rithm is evaluated. The third section demonstrates the applica-
tion of the proposed methodology to real-world piloted flight
test data from a generic utility helicopter. Final remarks sum-
marize the overall findings of the study and identify areas for
future work.
METHODOLOGY
Consider a time-invariant non-linear system representing the
flight dynamics of a rotorcraft:
˙
x=f(x,˙
x,u)(1)
where x∈X⊆Rnis the state vector, belonging to an n-
dimensional manifold X, and u∈U⊆Rmis the control in-
put vector, belonging to a m-dimensional manifold U. Pre-
vious research (Ref. 9) has shown that the state space X
can be decomposed into the product C×Y, where Care
the so-called cyclic coordinates and Yare the non-cyclic
coordinates. The system dynamics are invariant with re-
spect to group actions (e.g. translations or rotations) on C
(Refs. 9,10). The space Cis called a reduced configura-
tion space and is defined by a subset of the state vector with
respect to which the system has certain symmetry proper-
ties (Ref. 10). Consider the following state and control input
vectors relative to the 6-DoF dynamics of the conventional
helicopter of Eq. 1:
xT= [uvwpqrφ θ ψ x y z](2a)
uT= [θ1cθ1sθ0θ0T](2b)
where:
u,v, and ware the body axes velocities,
p,q, and rare the body axes angular rates,
φ,θ, and ψare the Euler angles,
x,y, and zare the position coordinates in the earth-fixed
North-East-Down (NED) frame,
θ1cand θ1sare the lateral and longitudinal cyclic angles,
θ0is the collective angle, and
θ0Tare the tail rotor collective angle.
Since the helicopter dynamics do not depend on its position or
on its heading angle ψ, the space Ccorresponds to the space
of translations in the position space and rotations about the
NED frame vertical axis. Specifically, the space Cis invariant
with respect to actions of the group G, defined as the space of
4×4 matrices of the form:
g(ψ,x,y,z) =
cosψ−sin ψ0x
sinψcos ψ0y
0 0 1 z
0 0 0 1
(3)
where the air density change with respect to the vertical po-
sition zis assumed to be negligible. In light of this, it is
convenient to partition the state vector into invariant and non-
invariant parts with respect to the group action G, given re-
spectively by:
xT
c= [ψx y z](4a)
xT
y= [uvwpqrφ θ ](4b)
The invariance with respect to a group action leads to the defi-
nition of a notion of equivalent trajectories, and to the con-
cept of motion primitives. Two state and control trajecto-
ries are said to be equivalent if they can be exactly superim-
posed through time translation and the action of the symmetry
group G. Consider a time-invariant system of Eq. 1, invariant
with respect to the group G, and a state and control trajec-
tory π:[0,T]→X×U. A motion primitive is the class of
trajectories equivalent to π.
Once motion primitives are defined, it is convenient to classify
them in two groups: trim primitives and maneuver primitives.
Trim primitives correspond to steady-state motions, or trim
trajectories, where the controls and non-invariant part of the
state vector are constant (or trimmed). This means that their
time derivative is zero:
d
dt xT
yuTT=0 (5)
On the other hand, maneuver primitives are defined as un-
steady trajectories that begin and end at a steady-state condi-
tion. This means that maneuver primitives are those trajecto-
ries that connect subsequent trim primitives.
In the context of regime recognition, these notions help define
the notions of trim flight and maneuvering flight for a heli-
copter in a mathematically rigorous way. Specifically, trim
primitives correspond to arcs of helices with a vertical axis,
including degenerate ones such as straight lines and horizontal
circles, flown at constant speed, constant roll and pitch angles,
and constant control settings. In terms of typical helicopter
maneuvers, these trim trajectories correspond to hover, steady
level flight, steady turns, steady climbs and descents, and their
combinations (i.e. steady climbing or descending turns, etc.).
Maneuvers are defined as those trajectories that connect the
above trim conditions. An example may be pull-up or push-
over maneuvers that connect trim conditions including, but
not limited to, steady level flight and steady climbing or de-
scending flight. Another example may be roll-in or roll-out
maneuvers that connect trim conditions such as steady level
flight and steady turns. This concept is illustrated in Fig. 1.
Based on the motion primitive approach presented above, the
regime recognition problem is divided into three major steps,
which are articulated as follows:
2
Figure 1: Classification between trim and maneuver
primitives.
1. Classifying the state and control time history into trim
and maneuver segments.
2. Classifying each trim segment as a particular trim condi-
tion.
3. Classifying each maneuver segment (flown between two
trim segments) as a particular maneuver condition.
Given a state and control input time history obtained from
flight data, the first step consists of evaluating when the time
derivatives of the controls and the invariant parts of the state
vector are approximately zero. The second step leverages the
information in the trim state and control vectors to classify
each trim segment into a particular trim condition based on
conditional (if-else-if) logic. The third step involves the use a
library of maneuvers (obtained either from simulation or flight
test) that is compared to the maneuver segments of the flight
data. Importantly, maneuver classification uses dynamic time
warping (DTW), a methodology that has been used in other
recent work on flight data processing (Refs. 11,12), to com-
pensate for rate and time duration variations.
A major difference between this approach and previous ap-
proaches to regime recognition (Ref. 13) lies in its non-causal
nature. Whereas past approaches have all been causal (i.e.,
using only previous data at a given classification time), the ap-
proach proposed here uses the entire flight history in a batch
formulation. This is an advantage in the sense that more infor-
mation can be used toward classification of the flight regime
at a particular time.
COMPUTATIONAL METHODS
This section presents a detailed discussion of the three-step
approach to regime recognition using the concept of motion
primitives. The discussion of each step includes a mathemati-
cal explanation and an illustration through an example involv-
ing simulated flight data. The flight data was obtained using
a 6-degree-of-freedom flight dynamic simulation of the SH-
60B. The virtual pilot algorithm developed in Ref. 14 was
Table 1: Simulated flight card.
Time [s] Flown Regime
0 Forward Flight 110 kts
30 Right Turn AOB 30 deg
60 Forward Flight 110 kts
80 Left Turn AOB 30 deg
110 Forward Flight 110 kts
130 Climb 900 ft/min
160 Forward Flight 110 kts
180 Descent 900 ft/min
210 Forward Flight 110 kts
240 Forward Flight 80 kts
270 Forward Flight 110 kts
310 Forward Flight 140 kts
340 Forward Flight 110 kts
370 End
Table 2: Properties of the zero-mean Gaussian noise by
which the measurement noise is corrupted.
State/Control Standard Deviation, σ
V1 ft/s
Vz1 ft/s
p1 deg/s
q1 deg/s
r1 deg/s
φ1 deg
θ1 deg
θ1c0.2 deg
θ1s0.2 deg
θ00.2 deg
θ0T0.2 deg
used to fly the maneuver sequence listed in Table 1. The flight
data was subsequently perturbed with zero-mean white Gaus-
sian noise to create more realistic simulated data. Table 2
shows the noise standard deviations for each state and con-
trol, which were derived from experience with real HUMS
measurement data.
Classification of Flight Data into Trim and Maneuver Seg-
ments
A Kalman filter was implemented to both filter the measure-
ment noise on the state and control vector time histories, and
to estimate the state and control vectors time derivatives that
are used for classification. Since in practice the body veloci-
ties u,v, and ware generally difficult to measure or estimate,
they are not used in classification. The total vehicle speed
Vand vertical speed in NED frame (positive downward) Vz
are adopted as states instead. This is because such variables
are typically readily available as measurements on military
rotorcraft. In light of this, a new non-invariant state vector is
defined:
xT
y= [V Vzpqrφ θ ](6)
3
where:
V=pu2+v2+w2(7a)
Vz=−usinθ+vsin φcos θ+wcosφcos θ(7b)
The newly-defined state vector is subsequently augmented
with the control vector:
sT=xT
yuT(8)
The dynamics of the continuous-time system to which the
Kalman filter is applied are:
˙
s
¨
s=0 I
0 0
| {z }
A
s
˙
s+w(9a)
y=I 0
0 0
| {z }
C
s
˙
s+v(9b)
where:
xT= [sT˙
sT]is the state vector,
yis the measurement vector,
wis the process noise vector,
vis the measurement noise vector,
Iis the 11 ×11 identity matrix, and
0is the 11 ×11 zero matrix.
Since the Kalman filter is implemented in discrete-time, the
system is converted to discrete time using a Zero-Order-Hold
(ZOH) approximation:
sk
˙
sk=exp 0 I
0 0 T
| {z }
Ad
sk−1
˙
sk−1+wk−1(10a)
yk=I 0
0 0
| {z }
C
sk
˙
sk+vk(10b)
where Tis the sampling time. The prediction step of the
Kalman filter involves calculating the a priori estimate of the
state vector and the covariance of the estimation error of the a
priori estimate at time k:
ˆ
x−
k=Adˆ
x+
k−1(11a)
P−
k=AdP+
k−1AT
d+Q(11b)
where Qis the process noise covariance matrix. For this par-
ticular case, the process noise covariance matrix is taken as
Q=1×10−4I, where Iis the 22 ×22 identity matrix. The
correction step of the Kalman filter involves calculating the
Kalman filter gain, the a posteriori estimate of the state vec-
tor, and the the covariance of the estimation error of the a
posteriori estimate at time k:
Kk=P−
kCTCP−
kCT+R−1(12a)
0 50 100 150 200 250 300 350
-0.2
0
0.2
p [rad/s]
Measured Filtered
0 50 100 150 200 250 300 350
-0.1
0
0.1
q [rad/s]
0 50 100 150 200 250 300 350
Time [s]
-0.1
0
0.1
r [rad/s]
Figure 2: Simulated flight data filtered angular rates.
ˆ
x+
k=ˆ
x−
k+Kkyk−Cˆ
x−
k(12b)
P+
k= (I−KkC)P−
k(12c)
where Iis the 22 ×22 identity matrix and Ris the measure-
ment noise covariance matrix. For this particular case, the
measurement noise covariance matrix is taken as 22×22 di-
agonal matrix with the standard deviations from Table 2on the
diagonal. Figure 2shows the measured (simulated) angular
rates and the filtered angular rates obtained with the Kalman
filter. The Kalman filter is shown to adequately filter the raw
data to provide a reasonably smooth estimate for the state and
control vector time histories.
Other than filtering the raw measurement data, the Kalman fil-
ter serves the second major function of providing a reasonably
smooth estimate of the state and control time derivatives. The
vector of state and control time derivative estimates ˆ
˙
sis com-
pared at each time step kwith a vector of thresholds. If each
component of ˆ
˙
sat time step kfalls within the threshold, then
the time step kis classified as a trim instant; if not, the time
step kis classified as a maneuver instant. Formally:
trimk=(1,if ˆ
˙
sk,i<ai,i=1,...,11
0,otherwise (13)
where aiis the ith element of the vector of thresholds a,ˆ
˙
sk,i
denotes the ith element of the vector ˆ
˙
sat time k, and trim is
a Boolean vector. The vector of thresholds was tuned manu-
ally for the examples in this work, and its values are shown in
Table 3. This procedure is illustrated in Fig. 3. Specifically,
Fig. 3(a) shows the total velocity and vertical velocity deriva-
tives, Fig. 3(b) shows the angular rate derivatives, and Fig.
3(c) shows the roll and pitch attitude derivatives. The control
derivatives are omitted for brevity.
Since the trim classification history can be noisy, a moving
average smoother is applied to ensure that trim segments have
a minimum duration of an arbitrary number of seconds. Such
minimum duration is chosen to be 4 seconds and is enforced
4
0 50 100 150 200 250 300 350
-4
-2
0
2
4
Filtered Data Trim Instants Threshold
0 50 100 150 200 250 300 350
Time [s]
-2
-1
0
1
2
(a)
0 50 100 150 200 250 300 350
-0.1
0
0.1
Filtered Data Trim Instants Threshold
0 50 100 150 200 250 300 350
-0.02
0
0.02
0 50 100 150 200 250 300 350
Time [s]
-0.02
0
0.02
(b)
0 50 100 150 200 250 300 350
-0.1
0
0.1
Filtered Data Trim Instants Threshold
0 50 100 150 200 250 300 350
Time [s]
-0.02
-0.01
0
0.01
0.02
(c)
Figure 3: Simulated flight test data state derivatives: (a) Total
velocity and vertical velocity derivatives, (b) Angular rate
derivatives, and (c) Roll and pitch attitude derivatives.
Table 3: Thresholds for the trim classification of simulated
flight data.
State/Control Derivative Threshold
˙
V1.5 ft/s2
˙
Vz0.5 ft/s
˙p0.02 rad/s2
˙q0.02 rad/s2
˙r0.01 rad/s2
˙
φ0.03 rad/s
˙
θ0.01 rad/s
˙
θ1c0.005 rad/s
˙
θ1s0.005 rad/s
˙
θ00.005 rad/s
˙
θ0T0.005 rad/s
0 50 100 150 200 250 300 350
Time [s]
0
1
Trim
Raw Smoothened
Figure 4: Simulated flight data classification into trim and
maneuver segments: raw vs. smoothed predictions.
by selecting an appropriate sliding window (4 seconds) for
the smoother. A smoother was chosen rather than a filter so
as not to introduce delay in the trim classification. Further,
smoothers are non-causal, whereas filters are causal. It fol-
lows that the smoother utilizes more data compared to the fil-
ter, thus providing a better prediction of the trim and maneu-
vering segments. Figure 4shows how the raw classification
of trim and maneuvering segments is smoothed. When com-
paring against the flight card actually flown in simulation in
Table 1, the algorithm correctly classifies the flight data into
trim and maneuvering segments. The identified trim and ma-
neuvering segments are illustrated for the simulated flight data
state vector in Fig. 5. Specifically, Fig. 5(a) shows the mea-
sured total velocity, vertical velocity, and altitude, Fig. 5(b)
shows the measured angular rates, and Fig. 5(c) shows the
measured Euler angles. The measured control inputs are omit-
ted for brevity. In this figure, it is evident that the identified
trim segments largely correspond to the times between ma-
neuver transitions (blue dashed vertical lines), indicating fa-
vorable performance of the trim identification portion of the
algorithm.
5
0 50 100 150 200 250 300 350
80
100
120
140
V [kts]
Flight Data Trim Instants
0 50 100 150 200 250 300 350
-1000
0
1000
Vz [ft/min]
0 50 100 150 200 250 300 350
Time [s]
5000
5200
5400
h [ft]
(a)
0 50 100 150 200 250 300 350
-0.2
0
0.2
p [deg/s]
Flight Data Trim Instants
0 50 100 150 200 250 300 350
-0.05
0
0.05
0.1
q [deg/s]
0 50 100 150 200 250 300 350
Time [s]
-0.1
0
0.1
r [deg/s]
(b)
0 50 100 150 200 250 300 350
-0.5
0
0.5
[deg]
Flight Data Trim Instants
0 50 100 150 200 250 300 350
-0.1
0
0.1
[deg]
0 50 100 150 200 250 300 350
Time [s]
0
50
100
[deg]
(c)
Figure 5: Simulated flight data classification into trim and
maneuver segments: (a) Total velocity, vertical velocity, and
altitude, (b) Angular rates, and (c) Euler angles.
Classification of Each Trim Segment as a Particular Trim
Condition
Once the flight data is classified into trim and maneuver seg-
ments, the state vector history relative to each trim segment is
averaged over the duration of the trim segment. The average
trim state vector is classified into a particular trim condition
based on conditional logic (if-else-if). The conditional logic
according to which each trim segment is classified is shown
in Table 4. Results showing the classification of each trim as
a particular trim condition for the example flight sequence are
shown in the next section.
Classification of Each Maneuver Segment as a Particular
Maneuver Condition
The classification of each maneuver segment as a particular
maneuver condition involves the use of a library of maneuvers
(obtained either from simulation or flight test) that is com-
pared to the maneuver segments of the flight data. Because
each type of maneuver (e.g. roll-in/roll-out, pull-up/push-
over) may be flown with varying levels of aggressiveness
and with varying duration, it is convenient to compensate for
rate and time duration variations during the classification pro-
cess. Recently, DTW has been used to compare maneuvers
while compensating for variations in rate and time duration
(Refs. 11,12). Although DTW has shown success in compar-
ing maneuvers when described by a single parameter or state
(e.g. bank angle for a turn), it has not yet been applied to ma-
neuvers described by more than one parameter or state. Fur-
ther, DTW has previously been used to compare maneuvers
that, according to the approach of the current study, consist of
three different flight segments: maneuver-trim-maneuver. Be-
cause of these reasons, it is necessary to take additional steps
to compensate for varying initial conditions and magnitudes.
To compensate for the initial condition at which a pilot may
start a maneuver, the object of comparison is chosen to be the
perturbation from the state at which the maneuver is initiated:
∆ˆ
s(t) = ˆ
s(t)−ˆ
s(tstart),tstart ≤t<tstop (14)
where tstart and tstop are the start and stop times of the each
maneuver segment. To compensate for possible differences in
the magnitude of a maneuver (e.g. for a roll-in maneuver, dif-
ferences in the maximum bank angle excursion), each element
of the state and control perturbation vectors are normalized by
their maximum absolute values over the duration of the ma-
neuver:
¯
∆ˆ
si=∆ˆ
si
maxt|∆ˆ
si|,i=1,...,11 (15)
This way, each element of the state and control vectors lie
between ±1. It is worth noting that, because of the com-
pensation for time rate of change, time duration, magnitude,
and initial condition, only one maneuver sample per maneu-
ver type is needed in the maneuver library. This is generally
true for forward flight conditions at sufficiently high speeds
(≥60 kts). However, in the case where one maneuver type
6
Table 4: Trim classification thresholds.
Trim Condition V[kts] Vz[ft/min] r[deg/s] φ[deg]
Hover V≤5|Vz|<100 |r|<2 -
Left Hover Turn V≤5|Vz|<100 r<−2 -
Right Hover Turn V≤5|Vz|<100 r>2 -
Axial Climb V≤5Vz<−100 r>2 -
Axial Descent V≤5Vz>100 r>2 -
Level Flight 10 kts 5 <V≤10 |Vz|<100 |r|<2 -
Level Flight 20 kts 10 <V≤20 |Vz|<100 |r|<2 -
Level Flight 30 kts 20 <V≤30 |Vz|<100 |r|<2 -
Level Flight 40 kts 30 <V≤40 |Vz|<100 |r|<2 -
Level Flight 50 kts 40 <V≤50 |Vz|<100 |r|<2 -
Level Flight 60 kts 50 <V≤60 |Vz|<100 |r|<2 -
Level Flight 70 kts 60 <V≤70 |Vz|<100 |r|<2 -
Level Flight 80 kts 70 <V≤80 |Vz|<100 |r|<2 -
Level Flight 90 kts 80 <V≤90 |Vz|<100 |r|<2 -
Level Flight 100 kts 90 <V≤100 |Vz|<100 |r|<2 -
Level Flight 110 kts 100 <V≤110 |Vz|<100 |r|<2 -
Level Flight 120 kts 110 <V≤120 |Vz|<100 |r|<2 -
Level Flight 130 kts 120 <V≤130 |Vz|<100 |r|<2 -
Level Flight 140 kts 130 <V≤140 |Vz|<100 |r|<2 -
Level Flight 150 kts 140 <V≤150 |Vz|<100 |r|<2 -
Level Flight 160 kts 150 <V≤160 |Vz|<100 |r|<2 -
Left Turn AOB 45 deg V>5|Vz|<100 r<−2 30 <|φ|≤45
Left Turn AOB 30 deg V>5|Vz|<100 r<−2 0 <|φ|≤30
Right Turn AOB 45 deg V>5|Vz|<100 r>2 30 <|φ|≤45
Right Turn AOB 30 deg V>5|Vz|<100 r>2 0 <|φ|≤30
Climb V>5Vz<−100 r>2 -
Descent V>5Vz>100 r>2 -
7
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
p/( p)max
Roll-in RT Roll-in LT Roll-out RT Roll-out LT
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
q/( q)max
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Non-dimensional time
-1
0
1
r/( r)max
Figure 6: Library of roll-in/roll-out maneuvers.
exists for both hover and forward flight, then the maneuver li-
brary will have to include two sample time histories: one for
hover and one for forward flight. Since the present study only
considers forward flight maneuvers, a total of eight type of
maneuvers are included in the maneuver library: roll-in right
turn, roll-out right turn, roll-in left turn, roll-out left turn, pull-
up, push-over, acceleration, and deceleration. Each maneuver
included in the library is compensated for magnitude and ini-
tial condition.
For this study, the maneuver library was obtained using simu-
lation data. Figure 6shows the normalized angular rates over
the course of standard roll-in/roll-out maneuvers. Figure 7
shows the normalized pitch rate, pitch attitude, and vertical
speed over the course of standard pull-up/push-over maneu-
vers. Figure 8shows the normalized pitch rate, pitch atti-
tude, and total speed over the course of standard accelera-
tion/deceleration maneuvers. The classification of each ma-
neuver segment into a particular maneuver relies on the as-
sumption that a single maneuver is performed between two
trim segments. In other words, the algorithm does not contem-
plate maneuvers that are performed sequentially. This may
hinder the prediction accuracy of the algorithm under certain
flight regimes. However, this limitation could be partially re-
laxed by augmenting the maneuver library with maneuvers
that are a combination of maneuvers (e.g. a roll reversal can
be seen as a sequential combination of roll-in/roll-out maneu-
vers).
This study uses the DTW algorithm built-in to MATLAB R
(i.e. the function dtw). Each maneuver segment is compared
to each maneuver in the library to find the maneuver that gives
the smallest average Euclidean distance across all states and
controls. All states and controls contained in the augmented
state vector estimate ˆ
sare compared simultaneously. It fol-
lows that the the DTW algorithm solves for the warped time
vector that minimizes the average distance across all states
and controls. The error given by the DTW algorithm is di-
vided by the total number of states and controls being com-
pared (i.e. 11). Table 5shows the error resulting from com-
paring each maneuver segment to each maneuver stored in the
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
q/( q)max
Pull-up Push-over
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
/( )max
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Non-dimensional time
-1
0
1
Vz/( Vz)max
Figure 7: Library of pull-up/push-over maneuvers.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
q/( q)max
Acceleration Deceleration
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
0
1
/( )max
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Non-dimensional time
-1
0
1
V/( V)max
Figure 8: Library of acceleration/deceleration maneuvers.
library, with the maneuver yielding the minimum error shown
in red. The error associated with the maneuver that gives the
least error is contained between a minimum value of approx-
imately 6 and a maximum value of approximately 14. Table
6shows the classification results for trim and maneuver seg-
ments as well as regime classifications. The identified regimes
closely match the flown regimes shown in Table 1. In particu-
lar, the trim segments are correctly identified, and the maneu-
ver segments are appropriately classified as those that connect
the flown trim regimes. It is worth noting that the initial flight
segment, which is identified as a maneuver, is not included
in the classification because it exhibits a transient perturba-
tion while the virtual pilot trims the aircraft due to an initial
condition which does not correspond to the trim value.
RESULTS
The three-step approach to regime recognition described in
the previous section is applied to piloted flight-test data. The
helicopter used to gather the flight data is a generic utility heli-
copter (the proprietary nature of the data requires that dimen-
sions from all plots be removed). It is worth noting that for
8
Table 5: Dynamic time warping error between for the simulated flight data maneuver segments.
Maneuver Roll-in RT Roll-out RT Roll-in LT Roll-out LT Pull-up Push-over Accel. Decel.
16.6806 18.1308 15.1269 13.5641 14.1428 17.6705 44.2467 38.9646
2 14.4996 9.0229 12.0223 14.2895 16.6643 10.0534 37.6307 45.4418
3 19.5731 19.2885 13.7898 22.1338 20.4264 21.5460 52.3805 22.4221
4 12.4466 12.7415 15.4184 9.9821 13.8010 14.0255 23.9934 44.3009
5 21.1860 17.9873 21.0942 21.3706 9.3747 26.5638 47.4346 37.8997
6 21.6410 25.6598 22.2148 25.1831 26.0282 14.9030 43.1192 48.6393
7 21.4688 25.0701 22.7575 24.1515 26.5949 10.3865 43.6695 47.8158
8 20.1478 17.9954 19.7370 21.0398 12.4091 24.8477 47.4698 35.5876
9 35.0833 35.5595 35.7757 36.4195 38.0378 35.0446 15.8554 67.8899
10 34.2711 34.4262 28.8087 35.5498 33.5430 38.2089 69.2604 15.4121
11 34.2812 34.9089 29.5105 36.2244 34.2517 38.8870 70.0936 10.7342
12 36.5407 36.7175 37.3121 37.5451 39.3016 35.6313 13.0219 69.4547
this particular dataset, no “truth” data on the flown regimes is
available. If follows that the objective of this example is not
to evaluate the accuracy of the proposed algorithm but rather
to demonstrate its operation using real-world data. Based on
subjective analysis, the flight segment used for this example
consists of a series of level flight segments, climbs, descents,
climbing turns, and descending turns. The thresholds used for
the classification of the flight data into trim and maneuver seg-
ments was tuned manually and can be found in Table 7. Such
values differ slightly from the thresholds used for the simu-
lated flight test data but retain the same order of magnitude.
Figure 9shows how the raw classification into trim and ma-
neuvering segments is smoothed. The classification into trim
and maneuver segments is shown in Figure 10. Specifically,
Fig. 10(a) shows the measured total velocity, vertical veloc-
ity, and altitude, Fig. 10(b) shows the measured angular rates,
and Fig. 10(c) shows the measured Euler angles. Although
no “truth” data is available for comparison, the flight data ap-
pears to be accurately classified between trim and maneuver
segments based on the subjective judgement of the authors.
The measured control inputs are omitted for brevity.
Table 8shows the error resulting from comparing each ma-
neuver segment to each maneuver stored in the library. The
error associated with the maneuver that gives the least error is
contained between a minimum value of approximately 9 and
and a maximum value of approximately 54. The upper bound-
ary of the error relative to the piloted flight data is greater than
the upper boundary of the error obtained for simulated flight
data. This may be due to discrepancies between the closed-
loop flight dynamics model with which the maneuver library
is obtained and the dynamics of the piloted helicopter. Table
9shows the predicted trim and maneuver segments, as well as
the particular regime classifications. The algorithm appears
to correctly classify each maneuver segment as a maneuver
that can feasibly connect the trim segment of origin and the
trim segment of completion. It is worth noting that although
the flight segment involves changes in altitude, the vertical
speed is often slower than that for a “Climb” or “Descent”
regime as defined by the thresholds in Table 4. Thus, although
0 50 100 150 200 250 300 350 400 450
Time [s]
0
1
Trim
Raw Smoothened
Figure 9: Piloted flight data classification into trim and
maneuver segments: raw vs. smoothed prediction.
the flight data segment involving slow changes in altitude are
effectively slow steady climbs or descents, the proposed al-
gorithm classifies such segments in a deterministic fashion as
“Forward Flight” or other particular trim conditions as defined
in Table 4.
Using a MATLAB R
implementation of the algorithm on a
computer equipped with an Intel R
CoreTM 8th Gen i7-8650U
processor, the algorithm takes on average 0.56 seconds to pro-
cess 490 seconds (approximately 8 minutes) of flight data.
By extrapolating this result, it is concluded that the algorithm
takes approximately 4 seconds per 1 hour of flight data pro-
cessed.
CONCLUSIONS
An alternative approach to regime recognition that is based
on the notion of motion primitives has been developed. The
algorithm is non-causal and leverages the notions of maneu-
vers and trims as defined in a motion primitive context. The
algorithm consists of three major steps. Given a state and con-
trol input time history obtained from flight data, the first step
9
0 50 100 150 200 250 300 350 400 450 500
V
Flight Data Trim Instants
0 50 100 150 200 250 300 350 400 450 500
0
Vz
0 50 100 150 200 250 300 350 400 450 500
Time [s]
0
h
(a)
0 50 100 150 200 250 300 350 400 450 500
0
p
Flight Data Trim Instants
0 50 100 150 200 250 300 350 400 450 500
0
q
0 50 100 150 200 250 300 350 400 450 500
Time [s]
0
r
(b)
0 50 100 150 200 250 300 350 400 450 500
0
Flight Data Trim Instants
0 50 100 150 200 250 300 350 400 450 500
0
0 50 100 150 200 250 300 350 400 450 500
Time [s]
0
(c)
Figure 10: Piloted flight data classification into trim and
maneuver segments: (a) Total velocity, vertical velocity, and
altitude, (b) Angular rates, and (c) Euler angles.
Table 6: Identified regimes for the simulated flight data.
Time [s] Segment Type Identified Regime
8.5-29.9 Trim Level Flight 110 kts
30.0-37.0 Maneuver Roll-in Right Turn
37.1-56.8 Trim Right Turn AOB 30 deg
56.9-63.1 Maneuver Roll-out Right Turn
63.2-79.9 Trim Level Flight 110 kts
80.0-90.3 Maneuver Roll-in Left Turn
90.4-106.9 Trim Left turn AOB 45 deg
107.0-113.1 Maneuver Roll-out Left Turn
113.2-130.8 Trim Level Flight 110 kts
130.9-142.4 Maneuver Pull-up
142.5-156.6 Trim Climb
156.7-168.2 Maneuver Push-over
168.3-180.6 Trim Level Flight 110 kts
180.7-191.9 Maneuver Push-over
192.0-206.7 Trim Descent
206.8-218.4 Maneuver Pull-up
218.5-244.3 Trim Level Flight 110 kts
244.4-265.2 Maneuver Deceleration
265.3-273.9 Trim Level Flight 80 kts
274.0-294.8 Maneuver Acceleration
294.9-314.9 Trim Level Flight 110 kts
315.0-334.6 Maneuver Acceleration
334.7-343.0 Trim Level Flight 140 kts
343.1-363.9 Maneuver Deceleration
364.0-369.9 Trim Level Flight 110 kts
consists of classifying the time history into trim and maneu-
ver segments. The second step leverages the information in
the trim state and control vectors to classify each trim seg-
ment into a particular trim condition based on conditional (if-
else-if) logic. The third step entails the classification of each
maneuver segment (flown between two trim segments) as a
particular maneuver condition. This step uses dynamic time
warping to compensate for rate and time duration variations.
Accuracy of the proposed algorithm was evaluated using sim-
ulated SH-60B flight data. Algorithm performance was also
Table 7: Thresholds for the trim classification of piloted
flight data.
State/Control Derivative Threshold
˙
V2 ft/s2
˙
Vz0.1 ft/s
˙p0.03 rad/s2
˙q0.02 rad/s2
˙r0.02 rad/s2
˙
φ0.03 rad/s
˙
θ0.03 rad/s
˙
θ1c0.002 rad/s
˙
θ1s0.0015 rad/s
˙
θ00.0015 rad/s
˙
θ0T0.002 rad/s
10
Table 8: Dynamic time warping error for the piloted flight data maneuver segments.
Maneuver Roll-in RT Roll-out RT Roll-in LT Roll-out LT Pull-up Push-over Accel. Decel.
119.6420 31.5744 30.7475 21.8756 24.3761 54.6124 110.1235 101.0895
2 16.6723 17.7836 27.0262 9.5621 20.4930 42.6204 85.1570 96.9769
3 38.3037 23.9743 14.4829 47.2742 33.6650 37.4496 91.7861 106.6232
4 62.9770 81.2827 61.6474 82.9144 88.8744 47.7847 89.0079 170.1424
5 25.0600 31.8885 22.2159 42.7498 41.7243 42.0397 97.1100 82.9244
628.6733 51.9813 47.5542 35.5854 50.5607 46.8405 77.0237 129.6071
7 63.8798 55.4416 54.6403 73.5310 61.3426 86.9263 166.7108 114.2292
828.6672 76.5414 49.6500 58.2752 58.4077 63.2039 105.4324 133.5490
9 57.6138 30.0795 53.2729 47.7430 44.8744 71.6386 106.4672 129.1644
Table 9: Identified regimes for the piloted flight data.
Time [s] Segment Type Identified Regime
2.3-19.0 Trim Level Flight 110 kts
19.1-23.4 Maneuver Roll-in Right Turn
23.5-36.1 Trim Right Turn AOB 30 deg
36.2-39.3 Maneuver Roll-out Left Turn
39.4-113.0 Trim Right Turn AOB 30 deg
113.1-116.9 Maneuver Roll-in Left Turn
117.0-208.6 Trim Level Flight 70 kts
208.7-225.2 Maneuver Push-over
225.3-252.1 Trim Level Flight 90 kts
252.2-257.1 Maneuver Roll-in Left Turn
257.2-301.0 Trim Left Turn AOB 30 deg
301.1-307.8 Maneuver Roll-in Right Turn
307.9-339.8 Trim Right Turn AOB 30 deg
339.9-360.5 Maneuver Roll-in Left Turn
360.6-393.4 Trim Left Turn AOB 30 deg
393.5-406.2 Maneuver Roll-in Right Turn
406.3-449.6 Trim Right Turn AOB 45 deg
449.7-458.2 Maneuver Roll-out Right Turn
458.3-490.1 Trim Level Flight 70 kts
demonstrated using real-world piloted flight test data from a
generic utility helicopter. This work results in the following
conclusions:
1. The classification into trim and maneuver segments and
the classification of each trim state into a particular
trim condition may be based on conditional logic that
relies on thresholds. Threshold-based algorithms are
known for high-frequency switching between the iden-
tified regimes. This issue is substantially mitigated in
this work by implementing a moving average smoother
with a sliding window of several seconds.
2. The classification of each maneuver segment as a par-
ticular maneuver condition may be performed through a
comparison between each maneuver segment with a li-
brary of maneuvers. Dynamic time warping may be used
to compensate for variations in time rate of change, du-
ration, magnitude, and initial condition of the maneuver.
3. The classification of each maneuver segment into a par-
ticular maneuver relies on the assumption that a single
maneuver is performed between two trim segments. This
may hinder the prediction accuracy of the algorithm un-
der certain flight regimes. This shortcoming may be ad-
dressed by augmenting the maneuver library with ma-
neuvers that are a sequential combination of multiple ma-
neuvers.
4. When the algorithm is applied to simulated flight data,
the identified regimes closely match the flown regimes
indicating favorable accuracy. In particular, the trim seg-
ments are correctly identified and maneuver segments are
appropriately classified as those maneuvers that connect
the trim segments.
5. The algorithm is fairly computationally efficient, requir-
ing on the order of several seconds to process 1 hour of
flight data.
6. Although the methodology proposed was applied to ro-
torcraft flight data, it is sufficiently general to be ex-
tended to fixed-wing applications.
In upcoming work, the methodology proposed in this paper
will be extended to account for a greater number of maneu-
vers, including maneuvers starting or ending in a hover con-
dition. Limitations related to the assumption that a single ma-
neuver is performed between two trim segments will also be
addressed. Comparisons will be performed between the pro-
posed algorithm and other existing regime recognition strate-
gies to quantify the advantages and tradeoffs of the proposed
approach.
ACKNOWLEDGEMENTS
This work was sponsored by the Naval Air Systems Command
under SBIR contract N152-094. The authors gratefully ac-
knowledge this support.
REFERENCES
1. Barndt, G., and Moon, S., “Development of a Fatigue
Tracking Program for Navy Rotory Wing Aircraft,” Pro-
ceedings of the 50th Annual Forum of the American He-
licopter Society, Washington, D.C., May 11-13, 1994.
11
2. Barndt, G., Sarkar, S., and Miller, G., “Maneuver Regime
Recognition Development and Validation for H-60 Struc-
tural Monitoring,” Proceedings of the 63rd Annual Forum
of the American Helicopter Society, Virginia Beach, VA,
May 1–3, 2007.
3. Moon, S., and Phan, N., “Rotary Wing Aircraft Regime
Recognition Algorithms Development & Validation,”
Proceedings of the 64th Annual Forum of the American
Helicopter Society, Montreal, Canada, April 29 – May 1,
2008.
4. Hass, D., Walker, J., and Kough, L., “Using Flight Data to
Improve Operational Readiness in Naval Aviation,” Pro-
ceedings of the 64th Annual Forum of the American He-
licopter Society, Montreal, Canada, April 29 – May 1,
2008.
5. Teal, R., Evernham, J., Larchuck, T., Miller, G., Mar-
quith, D., White, F., and Deibler, D., “Regime Recog-
nition for MH-47E Structural Usage Monitoring,” Pro-
ceedings of the 53rd Annual Forum of the American He-
licopter Society, Virginia Beach, VA, April 29 – May 1,
1997.
6. Lu, Y., Chris, R., Puckett, T., Teal, R., and Thompson,
B., “AH-64 Apache Longbow Structural Usage Monitor-
ing System,” Proceedings of the 58th Annual Forum of
the American Helicopter Society, Montreal, Canada, June
11–13, 2002.
7. Wu, S., and Bechhoefer, E., “A Practical Regime Recog-
nition Approach for HUMS Applications,” Proceedings
of the 63rd Annual Forum of the American Helicopter So-
ciety, Virginia Beach, VA, May 1-3, 2007.
8. He, D., Wu, S., and Bechhoefer, E., “A Regime Recog-
nition Algorithm for Helicopter Usage Monitoring,”
Aerospace Technologies Advancements, Thawar T. Arif,
IntechOpen, January 2001, DOI: 10.5772/7165.
9. Frazzoli, E., Dahlel, M. A., and Feron, E., “Real-
Time Motion Planning for Agile Autonomous Vehi-
cles,” Journal of Guidance, Control, and Dynamics, Vol.
25, (1), Janurary–February 2002, pp. 116–129, DOI:
10.2514/2.4856.
10. Frazzoli, E., Dahlel, M. A., and Feron, E., “Maneuver-
Based Motion Planning for Nonlinear Systems With
Symmetries,” IEEE Transactions on Robotics, Vol.
21, (6), December 2005, pp. 1077–1091, DOI:
10.1109/TRO.2005.852260.
11. Statham, M., Wilson, A., and Wade, D., “Dynamic
Time Warping for pattern Detection in Time Series
Flight Data,” Proceedings of the American Helicopter
Society Airworthiness and HUMS Specialist Meeting,
Huntsville, AL, Feb 21–22, 2018.
12. Hull, J., Monaco, J., Glucksman, M., and Semidey, R.,
“Dynamic Time Warping to Quantify Structural Maneu-
ver Variability,” Proceedings of the 75th Annual Forum of
the Vertical Flight Society, Philadelphia, PA, May 13–16,
2019.
13. Musso, D., and Rogers, J., “Interacting Multiple Model
Algorithms for Rotorcraft Regime Recognition,” Pro-
ceedings of the 75th Annual Forum of the Vertical Flight
Society, Philadelphia, PA, May 13–16, 2019.
14. Fowler, L., Rogers, J., Sarkar, S., and Iyyer, N., “A Vir-
tual Pilot Algorithm for Synthetic HUMS Data Gener-
ation,” Journal of the American Helicopter Society,64,
042006 (2017), DOI: 10.4050/JAHS 62.042006.
12