The technology herein relates to analyzing time series signals including but not limited to from aircraft, and to allowing the user to specify the desired search and analysis easily, using regular expression, without the knowledge of computer programing languages. For exemplification's sake, the methodology can be used on data obtained from simulation, tests or final product measurements of airplanes, cars, boats, or spaceships. The technology herein provides a versatile and powerful way to analyze signal data recorded as a time series from any data source (aircrafts, cars, ships, stock price, etc).
In recent years, general product development engineering has become more model based and data driven. The product design usually starts with simulations done on each engineer's personal computer, evolves for testing each component in isolation in the laboratory or test bench (hardware in the loop) and ends on testing the integration of all the components on a prototype of the final product.
In each of the described stages of development, a huge amount of data is generated. Most of this data is composed of time series, i.e. a series of values of a quantity obtained at successive times, often with equal intervals between them, representing the changing value of a signal over time.
The aircraft development engineering is especially affected by such massive accumulation of data. A modern military or commercial aircraft has several hundred computers, sensors and bus signals that work together to build up all the necessary systems. Each of these individual equipment units by itself generates several hundred to thousands of time series with each time series being sampled several times per second. Even a single aircraft flight test that records data from many sensors and systems monitoring can by itself generate and record massive quantities of time series data. See e.g., Zhang et al, “Time Series Analysis Methods and Applications for Flight Data” (Springer 2017).
For example, an airborne automatic flight data recording system generally acquires (e.g., periodically samples) many discrete signal data streams comprising continuous parameters from many different airborne sensors and also acquires digital data streams from airborne digital sensors and other airborne data sources. While previous generations of flight recorders recorded time series signal data streams on different magnetic tape tracks or even on different chart paper traces, modern flight data recorders are solid state and digitally record signal data streams received from data busses and other data sources into a solid state memory. Such signal data streams (along with a cockpit voice stream) are automatically recorded by the crash-protected flight recorder system for the entire duration of the flight from a time before the flight begins to a time after the flight ends (see e.g., 14 CFR § 91.609). Generally, each parameter is recorded a few times per second, although some units store “bursts” of data at a much higher frequencies if the data begin to change quickly. Current FAA regulations require certain specific parameters to be recorded: relative time, indicated airspeed, altitude and altitude rate, magnetic heading, vertical and longitudinal accelerations, pitch and roll attitudes, stabilizer trim or other pitch control position, engine power for each engine, angle of attack, flap positions, thrust reverser, spoiler/speedbrake, and autopilot engaged/disengaged. See 14 CFR § 91.609 Appendix E. Some flight recorder systems monitor these and additional parameters and test flight data recorders may acquire and record even more data. Some recorded parameters are sensed by one or more sensors, other recorded parameters may be processed by airborne systems, and other parameters reflect the state(s) of an airborne system such as wheels on ground. Thus, these time series do not come from sensors alone.
Without a tool that implements a proper methodology to navigate through this data, the effort of the product development engineer can be herculean. A good analogy for the issue is trying to navigate on the internet without a search engine.
Once prototypes or components have been constructed, they can be bench tested and data may be collected manually, by test instruments and/or by sensors. Such collected data can be reported to storage 110.
In further phases of development, subsystems can be integrated together and tested. Test results and testing parameters can be reported to storage 110.
In later phases of development, subsystems can be integrated into systems that can be tested as a whole. The result of such system tests can be reported to storage 110.
The particular nature of the time sequence data streams that are collected depend on the component, system or subsystem being monitored. Some data streams may be analog time-varying signals produced by sensors that are then sampled at appropriate Nyquist frequencies and digitized to provide a digital data stream. Other data streams may be produced by various digital data sources including digital monitoring systems, digital sensors such as shaft encoders, gyrosensors, accelerometers, control inputs, etc., or any other digital data source that produces a time varying signal. Many different kinds of time sequence data streams from many different kinds of data sources can be employed including for example simulators that synthesize data streams. See e.g., Shy et al, The Role of Aircraft Simulation in Improving Flight Safety Through Control Training, NASA/TM-2002-210731 (NASA 2002); H. Sagirkaya et al, “Avionics Simulation Environment,” 2020 IEEE International Test Conference (ITC), Washington, DC, USA, 2020, pp. 1-3, doi: 10.1109/ITC44778.2020.9325215.
In many cases, the data streams are reported in flat files such as .txt, .csv, .tsv, .hdf5, feather, and the like. Different tests and processes can report data in different formats. The data can be communicated to the data storage 110 in a variety of different ways such as direct entry, wireless transmission, transmission over a wired or wireless network, etc. In some embodiments, storage 110 stores the data reported to it as a heap and does not attempt to index the data.
As one example, assume the system is an aircraft comprising thousands of components. Each component may be simulated by a simulation 102, and then prototyped to provide test bench results 104. The components may be integrated into subsystems such as an avionics system, an engine or propulsion system, an environmental control system, etc. There may be many different hierarchical levels of such subsystems (for example, a propulsion system may comprise individual engines; an environmental control system may comprise a bleed air subsystem, an air pressurization subsystem, a temperature control system, etc.; and so on). Each such subsystem may be tested individually at 106 before being integrated into an overall aircraft system test 108. The aircraft system test 108 can be of different types including for example test flights.
Such testing in different phases can thus extend over the course of months or years and may involve thousands or tens of thousands of individual tests performed at different times and places by different people implementing different processes to provide vast amounts of data in many different formats.
Some of these signals may be produced or derived from sensors such as control surface position and/or orientation detectors, other signals may represent command/control signals to control surface actuators or other components, other signals may be produced based on user inputs such as pilot sticks, other signals may represent state of the flight control computer (e.g., angle of attack protection engaged), etc. Some signals may be sampled analog signals produced by sensors or other signal sources, other signals may be produced by digital sensors or other digital data sources, still other signals may be produced by processors that analyze ones or combinations of the above signals, still other signals may be Boolean signals indicating system state, etc. The various signals are presented for illustration purposes on 2D graphs against an abscissa providing progressively increasing time coordinates such as 49322, 49326, etc. describing a series of time instants (earlier in time is to the left, later in time is to the right). The graphs show various time varying signals relative to a common ordinate (angle or degree) axis for purpose of illustration but one skilled in the art will understand that different kinds of signals may vary based on amplitude or magnitude as well as angle or phase. This is just one non-limiting example for purposes of illustration—there are many ossibilities.
The effort to navigate and analyze this and other signal data can be divided in three basic stages (see
Most of the commercially available software to search databases perform such tasks on SQL (relational) databases. However, relational databases are not often used to store time series due to scalability problems. NoSQL (non-relational databases) as Amazon's DynamoDB (see e.g., U.S. Pat. No. 8,965,849) and MongoDB, are beginning to be used as a scalable alternative to storing time series data. However, they present two problems:
Having this in mind, aspects of the technology herein relate to an unique computer-implemented methodology capable of performing in an integrated manner a search, analysis and summarization on time series data stored directly in a bundle of the abovementioned flat files. In one embodiment, a user can search through a massive collection of time-sequenced flat file test results to locate particular stored data time sequences bracketed by particular start and end events or combinations of events. The system will retrieve time slices of data files that satisfy the particular specified event window(s). The user can also input analysis equations and results to further condition search results.
The technology here described “FlightSearch—A Search, Analysis and Summarization computer-implemented methodology for signal data composed of time series” provides integration of a time series search engine, an analysis platform and summarization algorithms. Flight Search was not created to perform a specific type of search or analysis on the data, but to allow the user to specify the desired search and analysis easily, using regular expression, without the knowledge of computer programming languages.
Therefore, the methodology is extremely flexible to attend to every engineer need, allowing the specification of any data temporal pattern (involving any quantity of time series) that defines the event of interest and the specification of any equations that constitutes analysis that needs to be done on the event. The methodology provides a computer-implemented infrastructure that increases engineer productivity on dealing with huge flat file data banks.
FlightSearch is able to search on several files format: .csv, .txt, .tsv and hdf5, but several other formats that can store time series can be easily added. The methodology is not dependent on the file format, and example embodiments can operate on any kind of flat file.
Moreover, the technology herein implements the methodology in an algorithm and a graphical interface is created to facilitate engineer interaction with the algorithm without the need of programming language understanding.
In a Search stage of the methodology, the user is requested to enter a statement called “Begin Slice”, that marks the beginning of the (signal-defined) event to be searched and a statement called “End Slice”, that marks the end of the (signal-defined) event. The search is applied several times, one for each file on the user database.
In the analysis stage, the user is requested to specify one or more analysis to be applied in each of the found events. For each analysis, the user needs to enter the analysis name, an equation or other expression to be evaluated and a pass/fail criterion to be applied on the value resultant of the equation. As result of this stage, there is a table containing the results of all the equations for each event found. Equations can have various different forms such as max(Signal_1−Reference), which returns the maximum excursion of the signal “Signal_1” above the limit “Reference”.
In the summarization stage, the table generated on the analysis stage is transported or exported to a spreadsheet file (see
The integrated methodology has as inputs the information written by the user on the graphical interface and has as output a spreadsheet with the summary of the analysis results and the figures containing plots of the signals of interest, as shown in
In order to produce the figures with the signals of interest, a file containing instructions to generate the curves and legends may be prepared a priori. Figures may be generated for each time slice (
The following
The proposed computer-methodology can be applied to several engineering and science fields, being mostly agnostic about the field application itself. The only dependency of methodology is data to be composed of time series and be stored in flat files. For exemplification's sake, the methodology can be used on data obtained from simulation, tests or final product measurements of airplanes, cars, boats, or spaceships.
All patents and publications cited herein are incorporated by reference.
While the technology herein has been described in connection with exemplary illustrative non-limiting embodiments, the invention is not to be limited by the disclosure. The invention is intended to be defined by the claims and to cover all corresponding and equivalent arrangements whether or not specifically disclosed herein.
Priority is claimed from U.S. provisional patent application No. 63/374,739 filed Sep. 6, 2022, incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63374739 | Sep 2022 | US |