Aerospace and Electronic Systems Magazine April 2017 - 9
Imai et al.
estimated. Because of the way
L(t) is created, the largest element will always be equal to 1.
Given a significance threshold
τ ∈ ( 0,1) , PILOTS checks for
one likely candidate lj that is
sufficiently more likely than its
successor lk by ensuring that lk
≤ τ. Thus, j is determined to be
the correct mode by choosing the
most likely error signature Sj. If j
= 0, then the system is in normal
mode. Well-designed vectors of
error signatures should produce
mode likelihood vectors forming
an orthonormal basis under the
modeled m + 1 conditions. However, if lk > τ, then both modes j
and k match the measured error
within the significance threshold, and therefore, unknown error
mode (−1) is estimated.
High-level architecture of the PILOTS system.
5. Fault-tolerant sensor fusion: It is problem dependent if a
known error mode i is recoverable or not. If there is a mathematical relationship between an erroneous value and other
independently measured values, the erroneous value can be replaced by a new value computed from the other independently
measured values. In the case of the speed vector example used
in Equation (2), if the ground speed vg is detected as erroneous,
its true value vˆg can be estimated as follows:
v 2va vw cos a w v .
PROGRAMMING SYSTEM SUPPORT
PILOTS enables data analysts and programmers to use a high-level
application programming environment for designing error signatures for fault-tolerant dynamic data stream processing.
applying a corresponding data estimation function. Finally, the PILOTS application computes output streams based on the estimated
inputs produced from the error analyzer. These output values could
be displayed in the cockpit or used directly in unmanned flight
PILOTS PROGRAMMING LANGUAGE
PILOTS is a declarative, domain-specific programming language
specifically developed to help users analyze spatio-temporal data
streams and design error signatures to detect erroneous data. Using
PILOTS, application programmers can easily develop systems that
handle data streams by writing a high-level program specification.
Table 2 compares the number of lines to write the three programs
we will introduce using PILOTS and Java.
PILOTS programs must contain an inputs and an outputs
section. The inputs section specifies the data streams and how data
is to be extrapolated from incomplete data, typically using declarative geometric criteria such as closest, interpolate, and
euclidean keywords (refer to  for details of the geometric
criteria). The outputs section specifies data streams to be produced
by the application, as a function of the input streams with a given
frequency. The optional errors and signatures sections are
required in order to detect errors. The errors section specifies error
Figure 5 shows the high-level architecture of the PILOTS runtime system. The PILOTS application is written in the PILOTS
programming language, which has been developed for aviation
studies to analyze inputs from aircraft sensors. The PILOTS initial studies and experimental analyses
have focused on aviation data analytTable 2.
ics, but could be adapted to other sensor and actuator systems. The error
Comparison of Lines of Code
analyzer collects the latest ω error values from the PILOTS application and
keeps detecting faults based on known
error signatures. If PILOTS detects a
recoverable error, it replaces an erroJava
neous input with the estimated one by
Between PILOTS and Java Applications
IEEE A&E SYSTEMS MAGAZINE