Patent Description:
Aircraft typically include various sensors that generate flight data that can be used to determine aircraft performance parameters. Calculation of particular types of aircraft performance parameters is time intensive, depends on data that cannot be determined during flight, or both. Such aircraft performance parameters are not available in real-time during a flight to inform pilot flight decisions. <CIT> in accordance with its abstract states an apparatus for detecting under performance of a current takeoff of an aircraft by predicting at least one takeoff performance characteristic of an aircraft prior to takeoff for a current flight is provided. <CIT> in accordance with its abstract states a method and apparatus for monitoring an aircraft.

A device for flight performance parameter computation according to claim <NUM> is presented herein. The device includes a memory, a network interface, and a processor. The memory is configured to store an aircraft performance model. The aircraft performance model is based on historical flight data of one or more aircraft. The aircraft performance model includes a recurrent neural network layer. The network interface is configured to receive real-time time-series flight data from a data bus of a first aircraft. The processor is configured to receive, via the network interface, the real-time time-series flight data. The processor is also configured to generate, based on the real-time time-series flight data and the aircraft performance model, one or more aircraft performance parameters. The processor is further configured to provide the aircraft performance parameters to a display device. The processor further comprises a GUI generator to generate one or more recommended settings, including a recommended trim setting, based on the one or more aircraft performance parameters.

A method of flight performance parameter computation according to claim <NUM> is presented herein. The method includes receiving, at a device, real-time time-series flight data of a first aircraft. The method also includes generating one or more aircraft performance parameters based on the real-time time-series flight data and an aircraft performance model. The aircraft performance model is based on historical flight data of one or more aircraft. The aircraft performance model includes a recurrent neural network layer. The method further includes providing the aircraft performance parameters to a display device. The method further comprises generating one or more recommended settings, including a recommended trim setting, based on the one or more aircraft performance parameters.

A computer-readable storage device according to claim <NUM> is presented herein. The computer-readable storage device stores instructions that, when executed by one or more processors, cause the one or more processors to receive real-time time-series flight data of a first aircraft. The instructions, when executed by the one or more processors, also cause the one or more processors to generate one or more aircraft performance parameters based on the real-time time-series flight data and an aircraft performance model. The aircraft performance model is based on historical flight data of one or more aircraft. The aircraft performance model includes a recurrent neural network layer. The instructions, when executed by the one or more processors, also cause the one or more processors to provide the aircraft performance parameters to a display device. The instructions further cause the one or more processors to generate one or more recommended settings, including a recommended trim setting, based on the one or more aircraft performance parameters.

The features, functions, and advantages described herein can be achieved independently in various implementations or may be combined in yet other implementations, further details of which can be found with reference to the following description and drawings.

Implementations described herein are directed to systems and methods for flight performance parameter computation. A particular aircraft includes an on-board computing device that has access to an aircraft performance model. In a particular example, the aircraft performance model is associated with historical flight data of the particular aircraft, other aircraft of a same aircraft type as the particular aircraft, other aircraft of another aircraft type, or a combination thereof.

A parameter generator generates flight performance parameters based on real-time time-series flight data of the particular aircraft. The flight performance parameters represent real-time aircraft performance specific to the particular aircraft. In some examples, the parameter generator is integrated into an on-board computing device of the particular aircraft. In alternative examples, an off-board device (e.g., a ground-based device) includes the parameter generator. The on-board computing device includes a graphical user interface (GUI) generator. The GUI generator receives the flight performance parameters from the parameter generator and generates a GUI indicating one or more of the flight performance parameters. The GUI generator provides the GUI to a display device of the particular aircraft.

As used herein, various terminology is used for the purpose of describing particular implementations only and is not intended to be limiting. For example, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Further, the terms "comprise," "comprises," and "comprising" are used interchangeably with "include," "includes," or "including. " Additionally, the term "wherein" is used interchangeably with the term "where. " As used herein, "exemplary" indicates an example, an implementation, and/or an aspect, and should not be construed as limiting or as indicating a preference or a preferred implementation. As used herein, an ordinal term (e.g., "first," "second," "third," etc.) used to modify an element, such as a structure, a component, an operation, etc., does not by itself indicate any priority or order of the element with respect to another element, but rather merely distinguishes the element from another element having a same name (but for use of the ordinal term). As used herein, the term "set" refers to a grouping of one or more elements, and the term "plurality" refers to multiple elements.

Referring to <FIG>, a system <NUM> for flight performance parameter computation is shown. The system <NUM> includes an aircraft <NUM>. The aircraft <NUM> includes an on-board computing device <NUM>, a data bus <NUM>, one or more sensors <NUM>, a display device <NUM>, or a combination thereof. The on-board computing device <NUM> includes one or more processors <NUM>, a memory <NUM>, a network interface <NUM> (e.g., a first network interface), a network interface <NUM> (e.g., a second network interface), or a combination thereof. In a particular aspect, the on-board computing device <NUM> includes or corresponds to an aircraft integration device (AID), a flight management system, or both. It should be understood that the on-board computing device <NUM> is provided as an illustrative example. In some examples, the on-board computing device <NUM> corresponds to a mobile device (e.g., a tablet, a communication device, a computing device, or a combination thereof) that can be on-board the aircraft <NUM> at various times and off-board the aircraft <NUM> at other times. In a particular aspect, the memory <NUM>, the network interface <NUM>, the processor <NUM>, a parameter generator <NUM>, a GUI generator <NUM>, the on-board computing device <NUM>, or a combination thereof, are integrated into a portable Electronic Flight Bag (EFB) computer. In a particular aspect an EFB computer includes a tablet, a mobile device, a communication device, a computing device, or a combination thereof.

It should be noted that in the following description, various functions performed by the system <NUM> of <FIG> are described as being performed by certain components or modules. However, this division of components and modules is for illustration only. In an alternate aspect, a function described herein as performed by a particular component or module is divided amongst multiple components or modules. Moreover, in an alternate aspect, two or more components or modules of <FIG> are integrated into a single component or module. In a particular aspect, one or more functions described herein as performed by the on-board computing device <NUM> are divided amongst multiple devices (e.g., the on-board computing device <NUM>, an AID, a flight management system, a central server, a distributed system, or any combination thereof). Each component or module illustrated in <FIG> may be implemented using hardware (e.g., a field-programmable gate array (FPGA) device, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a controller, etc.), software (e.g., instructions executable by a processor), or any combination thereof.

The memory <NUM> includes volatile memory devices (e.g., random access memory (RAM) devices), nonvolatile memory devices (e.g., read-only memory (ROM) devices, programmable read-only memory, and flash memory), or both. In a particular aspect, the memory <NUM> includes one or more applications (e.g., instructions) executable by the processor <NUM> to initiate, control, or perform one or more operations described herein. In an illustrative example, a computer-readable storage device (e.g., the memory <NUM>) includes instructions that, when executed by the processor <NUM>, cause the processor <NUM> to initiate, perform, or control operations described herein. In a particular aspect, the memory <NUM> is configured to store instructions <NUM> that are executable by the processor <NUM> to perform one or more operations described herein.

The memory <NUM> is configured to store an aircraft performance model <NUM>. In a particular aspect, the aircraft performance model <NUM> is associated with the aircraft <NUM>, an aircraft type <NUM> of the aircraft <NUM>, one or more other aircraft, or a combination thereof. For example, an off-board device <NUM> (or another device) generates the aircraft performance model <NUM> based on aircraft performance of the aircraft <NUM>, a representative aircraft (e.g., a newly manufactured aircraft) of the same aircraft type as the aircraft <NUM>, one or more other aircraft, or a combination thereof, as further described with reference to <FIG>. In a particular aspect, the aircraft performance model <NUM> includes at least a recurrent neural network layer <NUM> (e.g., a long short-term memory (LSTM) network layer), as further described with reference to <FIG>. The recurrent neural network layer <NUM> enables the aircraft performance model <NUM> to exhibit temporal dynamic behavior. For example, the recurrent neural network layer <NUM> enables the aircraft performance model <NUM> to process real-time time-series data (e.g., the flight data <NUM>) and detect temporal trends. The aircraft performance model <NUM> can include one or more additional network layers (e.g., a convolutional neural network (CNN) layer) that incorporate time delays, data compression, feedback loops, etc..

The sensors <NUM> are configured to provide flight data <NUM> (e.g., real-time time-series flight data) to the data bus <NUM>. The flight data <NUM> indicate measurements performed by the sensors <NUM>, as further described with reference to <FIG>. The on-board computing device <NUM> is configured to receive the flight data <NUM> via the network interface <NUM> from the data bus <NUM>. In a particular aspect, the on-board computing device <NUM> (e.g., an aircraft integration device) obtains the flight data <NUM> as one or more of the sensors <NUM> provide the flight data <NUM> via the data bus <NUM> to a digital flight data recorder. In a particular example, the on-board computing device <NUM> obtains, at a first time, a first portion of the flight data <NUM> from a first sensor of the sensors <NUM>. The on-board computing device <NUM> obtains, at a second time, a second portion of the flight data <NUM> from a second sensor of the sensors <NUM>. To illustrate, the first sensor provides the first portion of the flight data <NUM> at first time intervals, in response to detecting a first event, or both. The second sensor provides the second portion of the flight data <NUM> at second time intervals, in response to detecting a second event, or both. In a particular aspect, one or more of the sensors142 continuously provide portions of the flight data <NUM> during operation of the aircraft <NUM>, e.g., during flight or ground maneuvers.

In a particular aspect, the network interface <NUM> is configured to communicate, via an off-board network <NUM>, with an off-board device <NUM> (e.g., a ground-based device), a database <NUM>, or both. The off-board network <NUM> includes a wired network, a wireless network, or both. The off-board network <NUM> includes one or more of a local area network (LAN), a wide area network (WAN), a cellular network, and a satellite network.

The processor <NUM> includes the parameter generator <NUM>, the GUI generator <NUM>, or both. The parameter generator <NUM> is configured to generate aircraft performance parameters <NUM> based on the flight data <NUM>, as further described with reference to <FIG>. For example, the aircraft performance parameters <NUM> represent real-time aircraft performance of the aircraft <NUM>. "Aircraft performance parameters" as used herein refers to values derived from flight sensor data. The parameter generator <NUM> stores the flight data <NUM>, the aircraft performance parameters <NUM>, or a combination thereof, in the memory <NUM>. In a particular aspect, the parameter generator <NUM> provides the flight data <NUM>, the aircraft performance parameters <NUM>, or a combination thereof, to the off-board device <NUM>, the database <NUM>, or both.

In a particular aspect, the parameter generator <NUM> is integrated into the off-board device <NUM>. In this aspect, the off-board device <NUM> includes a memory configured to store data used (or generated) by the parameter generator <NUM>. The on-board computing device <NUM> receives the aircraft performance parameters <NUM>, via the off-board network <NUM>, from the off-board device <NUM>. The on-board computing device <NUM> stores the aircraft performance parameters <NUM> in the memory <NUM>. The GUI generator <NUM> is configured to generate a GUI <NUM> indicating one or more of the aircraft performance parameters <NUM>.

During operation, the sensors <NUM> provide the flight data <NUM> to the data bus <NUM> during operation (e.g., a flight) of the aircraft <NUM>. The sensors <NUM> provide the flight data <NUM> (e.g., real-time time-series flight data) to the data bus <NUM> at a particular time interval, in response to detecting an event, in response to receiving a request from a component of the aircraft <NUM>, continuously, or a combination thereof. In a particular aspect, the flight data <NUM> indicates measurements performed by the sensors <NUM> during the flight. For example, the flight data <NUM> indicates a detected Mach number, a detected total air temperature, a detected wind speed, a detected wind direction, a detected ground speed, a detected altitude, a detected heading, another detected condition, or a combination thereof, of the aircraft <NUM>. The parameter generator <NUM> determines the aircraft performance parameters <NUM> based on the flight data <NUM>, as further described with reference to <FIG>. For example, the parameter generator <NUM> generates the aircraft performance parameters <NUM> based on the flight data <NUM> and the aircraft performance model <NUM>. To illustrate, the aircraft performance parameters <NUM> include a drag, a lift, a mass, a fuel consumption, another aircraft performance parameter, or a combination thereof, of the aircraft <NUM> predicted by the aircraft performance model <NUM> as corresponding to the flight data <NUM>, as further described with reference to <FIG>. The aircraft performance model <NUM> can predict the aircraft performance parameters <NUM> in real-time (e.g., within <NUM> minutes of generation or receipt of the flight data <NUM>) improving a pilot's situational awareness and enabling the pilot of the aircraft <NUM> to make informed flight decisions based on real-time data.

In a particular aspect, the parameter generator <NUM> provides particular data (e.g., the flight data <NUM>, the aircraft performance parameters <NUM>, or a combination thereof) to the database <NUM> in response to determining that the on-board computing device <NUM> is within a communication range of the database <NUM>, determining that the aircraft <NUM> has a particular status (e.g., landed), receiving a user input indicating that the particular data is to be provided to the database <NUM>, receiving a request from the off-board device <NUM>, or a combination thereof. In this aspect, the particular data (e.g., the flight data <NUM>, the aircraft performance parameters <NUM>, or a combination thereof) can be used to further train the aircraft performance model <NUM>, another aircraft performance model, or both, as further described with reference to <FIG>. The GUI generator <NUM> generates the GUI <NUM> indicating the flight data <NUM>, the aircraft performance parameters <NUM>, or a combination thereof. In a particular aspect, the GUI generator <NUM> generates one or more recommended settings (e.g., a recommended trim setting) based on the aircraft performance parameters <NUM>. In this aspect, the GUI <NUM> indicates the recommended settings. The GUI generator <NUM> provides the GUI <NUM> to the display device <NUM>. In a particular aspect, a flight control system (e.g., an autopilot system) of the aircraft <NUM> automatically updates a setting (e.g., a trim setting) based on one or more of the aircraft performance parameters <NUM>. The system <NUM> thus enables computation of the aircraft performance parameters <NUM> that are based on real-time time-series flight data (e.g., the flight data <NUM>). Using the aircraft performance model <NUM> (e.g., a machine-learning model) improves the on-board computing device <NUM> and the aircraft <NUM> by enabling the aircraft performance parameters <NUM> to be estimated in real-time rather than using more time-intensive calculations after landing. One or more of the aircraft performance parameters <NUM>, the recommended settings, or a combination thereof, can be displayed to improve pilot situational awareness and to enable the pilot to make informed flight decisions based on real-time data. For example, the pilot can update a flight setting, such as accept or edit a recommended setting, based on the displayed information. In some examples, flight control settings of the aircraft <NUM> can be automatically adjusted based on the aircraft performance parameters <NUM>.

<FIG> illustrate examples of systems for training the aircraft performance model <NUM>. <FIG> illustrates that historical flight data and corresponding historical aircraft performance parameters are retrieved from a database for training the aircraft performance model <NUM>. <FIG> illustrates that historical flight data is retrieved from a database and corresponding historical aircraft performance parameters are calculated for training the aircraft performance model <NUM>. <FIG> illustrates training of the aircraft performance model <NUM> based on the historical flight data and the corresponding historical aircraft performance parameters.

Referring to <FIG>, a system <NUM> includes the database <NUM>, a data ingestor <NUM>, a data processor <NUM>, a model trainer <NUM>, or a combination thereof. The data processor <NUM> includes a data filter <NUM>, a data smoother <NUM>, a feature selector <NUM>, or a combination thereof. The database <NUM> is configured to store historical data <NUM> that includes historical flight data <NUM> and corresponding historical aircraft performance parameters <NUM>.

In a particular example, the historical flight data <NUM> includes first flight data of a first aircraft that is distinct from the aircraft <NUM>. The historical flight data <NUM> also includes first aircraft performance parameters corresponding to the first flight data. In a particular aspect, a first aircraft performance model of the first aircraft is used to generate the first aircraft performance parameters by processing the first flight data in real-time, as described with reference to <FIG>. In an alternative aspect, time-intensive calculations are performed, as further described with reference to <FIG>, to generate the first aircraft performance parameters by processing the first flight data. The model trainer <NUM> is configured to generate the aircraft performance model <NUM> based on the first flight data and the corresponding first aircraft performance parameters.

In a particular example, the historical flight data <NUM> includes the flight data <NUM> of the aircraft <NUM>, second flight data of a second aircraft that is distinct from the aircraft <NUM>, or a combination thereof. The model trainer <NUM> is configured to update the aircraft performance model <NUM> based on the flight data <NUM> and the aircraft performance parameters <NUM>, the second flight data and corresponding second aircraft performance parameters, or a combination thereof. The second aircraft performance parameters can be generated using a second aircraft performance model or time-intensive calculations. In a particular aspect, an aircraft type of the aircraft <NUM> is the same as a first aircraft type of the first aircraft, a second aircraft type of the second aircraft, or both. In a particular aspect, the aircraft type of the aircraft <NUM> is distinct from the first aircraft type of the first aircraft, the second aircraft type of the second aircraft, or both. In a particular aspect, one or more aircraft have the same aircraft type as the first aircraft. In a particular aspect, the one or more aircraft include the first aircraft.

During operation, the data ingestor <NUM> receives the historical data <NUM> from the database <NUM>. For example, the data ingestor <NUM> retrieves the historical data <NUM> in response to detecting an event. In a particular aspect, detecting the event includes receiving a user input initiating training of the aircraft performance model <NUM>, detecting that a timer has expired, detecting that the historical data <NUM> has been added to the database <NUM>, or a combination thereof. The data ingestor <NUM> converts the historical data <NUM> from a first format (e.g., a binary format) to ingested historical data <NUM> having a second format (e.g., a comma separated value (CSV) format). The data ingestor <NUM> provides the ingested historical data <NUM> to the data processor <NUM>.

The data filter <NUM> generates filtered historical data <NUM> by cleaning and filtering the ingested historical data <NUM>. For example, the ingested historical data <NUM> can include incorrect values due to conversion errors from the first format to the second format. The data filter <NUM> cleans the ingested historical data <NUM> by removing the incorrect values. For example, the data filter <NUM> removes values that are outside a data validity range from the ingested historical data <NUM> to generate cleaned data. In a particular example, the ingested historical data <NUM> may include outliers or noise in the sensor measurements. The data filter <NUM> uses various filtering techniques (e.g., Savitzky-Golay filtering) to remove the outliers from the cleaned data to generate the filtered historical data <NUM>. The data smoother <NUM> generates smoothed historical data <NUM> by using various smoothing techniques to process (e.g., remove noise from) the filtered historical data <NUM>. The feature selector <NUM> uses machine learning feature selection techniques to select features from the smoothed historical data <NUM>. For example, the smoothed historical data <NUM> includes smoothed historical flight data. The feature selector <NUM> selects one or more features and corresponding feature values of the smoothed historical flight data as historical flight data <NUM>. The feature selector <NUM> provides the historical flight data <NUM> and corresponding historical aircraft performance parameters <NUM> as historical data <NUM> to the model trainer <NUM>. The model trainer <NUM> generates (or updates) the aircraft performance model <NUM> based on the historical data <NUM>, as further described with reference to <FIG>.

In a particular implementation, one or more of the data ingestor <NUM>, the data filter <NUM>, the data smoother <NUM>, or the feature selector <NUM> are optional. For example, the historical data <NUM> could be stored in the database <NUM> in a format that does not have to be converted into another format by the data ingestor <NUM> prior to processing by subsequent components of the system <NUM>. In another example, the historical data <NUM> (or data derived from the historical data <NUM>) could be processed by subsequent components of the system <NUM> without filtering by the data filter <NUM>, smoothing by the data smoother <NUM>, or both. In a particular example, feature values of all features of the historical flight data <NUM> (or flight data derived from the historical flight data <NUM>) can be provided to the model trainer <NUM> without performing feature selection by the feature selector <NUM>.

Referring to <FIG>, a system <NUM> includes the database <NUM>, a data ingestor <NUM>, a data processor <NUM>, an aircraft performance parameter generator <NUM>, a model trainer <NUM>, or a combination thereof. The data processor <NUM> includes a data filter <NUM>, a data smoother <NUM>, a feature selector <NUM>, or a combination thereof. The database <NUM> is configured to store the historical flight data <NUM>.

The data ingestor <NUM>, the data filter <NUM>, the data smoother <NUM>, and the feature selector <NUM> perform similar functions as the data ingestor <NUM>, the data filter <NUM>, the data smoother <NUM>, and the feature selector <NUM> of <FIG> on versions of the historical flight data <NUM> (and not historical aircraft performance parameters). For example, the data ingestor <NUM> converts the historical flight data <NUM> from a first format (e.g., a binary format) to ingested historical flight data <NUM> having a second format (e.g., a comma separated value (CSV) format). The data filter <NUM> generates filtered historical flight data <NUM> by cleaning and filtering the ingested historical flight data <NUM>. The data smoother <NUM> generates smoothed historical flight data <NUM> by using various smoothing techniques to process (e.g., remove noise from) the filtered historical flight data <NUM>. The feature selector <NUM> uses machine learning feature selection techniques to select features from the smoothed historical flight data <NUM>. The feature selector <NUM> selects one or more features and corresponding feature values of the smoothed historical flight data <NUM> as historical flight data <NUM>. The feature selector <NUM> provides the historical flight data <NUM> to the aircraft performance parameter generator <NUM> and to the model trainer <NUM>.

The aircraft performance parameter generator <NUM> generates historical aircraft performance parameters <NUM> based on the historical flight data <NUM>. For example, the aircraft performance parameter generator <NUM> determines drag, lift, mass, fuel consumption, or a combination thereof, using time-intensive calculations (e.g., independently of a neural network) to process the historical flight data <NUM>. The model trainer <NUM> generates (or updates) the aircraft performance model <NUM> based on the historical flight data <NUM> and the corresponding historical aircraft performance parameters <NUM>, as further described with reference to <FIG>.

Referring to <FIG>, a system for training the aircraft performance model <NUM> is shown and generally designated <NUM>. The system <NUM> includes a device <NUM> that includes a model trainer <NUM> and a memory <NUM>. In a particular aspect, the model trainer <NUM> corresponds to the model trainer <NUM> of <FIG>, the model trainer <NUM> of <FIG>, or both. In a particular aspect, the device <NUM> corresponds to the on-board computing device <NUM> or the off-board device <NUM> of <FIG>.

The model trainer <NUM> trains (e.g., generates or updates) the aircraft performance model <NUM> based on historical flight data <NUM> and corresponding historical aircraft performance parameters <NUM>. In a particular aspect, the historical flight data <NUM> and the historical aircraft performance parameters <NUM> correspond to the historical flight data <NUM> and the historical aircraft performance parameters <NUM> of <FIG>. In an alternative aspect, the historical flight data <NUM> and the historical aircraft performance parameters <NUM> correspond to the historical flight data <NUM> and the historical aircraft performance parameters <NUM> of <FIG>.

The historical flight data <NUM> includes a plurality of entries <NUM>. Each of the entries <NUM> corresponds to a particular instance of flight data, such as the flight data <NUM> of <FIG>. In a particular aspect, the entries <NUM> include one or more entries associated with flight data of the same aircraft (e.g., the aircraft <NUM>) for which the aircraft performance model <NUM> is being trained. For example, the entries <NUM> include an entry <NUM> that corresponds to the flight data <NUM> received, during a particular flight, by the on-board computing device <NUM> at a first time from the data bus <NUM>, generated by the sensors <NUM> during a first time interval, or both. The entry <NUM> includes a data collection time <NUM> indicating the first time, the first time interval, or both. In a particular aspect, the entries <NUM> include a second entry that corresponds to the flight data <NUM> received by the on-board computing device <NUM> at a second time from the data bus <NUM>, generated by the sensors <NUM> during a second time interval, or both. The second entry includes a second data collection time indicating the second time, the second time interval, or both.

In a particular aspect, the entries <NUM> include one or more entries associated with flight data of a second aircraft that is distinct from the aircraft <NUM> for which the aircraft performance model <NUM> is being trained. For example, the entries <NUM> include an entry <NUM> that corresponds to first flight data received, during a particular flight, by a first on-board computing device of the second aircraft at a first time from a first data bus, generated by first sensors of the second aircraft during a first time interval, or both. The entry <NUM> includes a data collection time <NUM> indicating the first time, the first time interval, or both. In a particular aspect, the entries <NUM> include a second entry that corresponds to the first flight data received by the first on-board computing device at a second time from the first data bus, generated by the first sensors during a second time interval, or both. The second entry includes a second data collection time indicating the second time, the second time interval, or both.

The entry <NUM> indicates speed information (e.g., a Mach number <NUM>, a ground speed <NUM>, or both), location information (e.g., an altitude <NUM>, a heading <NUM>, or a combination thereof), ambient environment conditions (e.g., a total air temperature <NUM>, wind speed <NUM>, wind direction <NUM>, or a combination thereof), or a combination thereof. In a particular aspect, the historical flight data <NUM> corresponds to a comma separated values (CSV) file and each line of the CSV file corresponds to an entry of the historical flight data <NUM>. In a particular aspect, the historical flight data <NUM> of <FIG> corresponds to a CSV file and each entry of the historical flight data <NUM> corresponds to (e.g., is based on) a line of the CSV file.

In a particular aspect, the Mach number <NUM>, the total air temperature <NUM>, the wind speed <NUM>, the wind direction <NUM>, the ground speed <NUM>, the altitude <NUM>, the heading <NUM>, or a combination thereof, are detected by the sensors <NUM> during a particular flight of a particular aircraft (e.g., the aircraft <NUM> or a second aircraft). For example, the Mach number <NUM> corresponds to a detected Mach number of the particular aircraft at a first time during the particular flight. The total air temperature <NUM> corresponds to a detected air temperature outside the particular aircraft at a second time during the particular flight. The wind speed <NUM> corresponds to a detected wind speed outside the particular aircraft at a third time during the particular flight. The wind direction <NUM> corresponds to a detected wind direction outside the particular aircraft at a fourth time during the particular flight. The ground speed <NUM> corresponds to a detected ground speed of the particular aircraft at a fifth time during the particular flight. The altitude <NUM> corresponds to a detected altitude of the particular aircraft at a sixth time during the particular flight. The heading <NUM> corresponds to a detected heading of the particular aircraft at a seventh time during the particular flight. In a particular aspect, the data collection time <NUM> indicates the first time, the second time, the third time, the fourth time, the fifth time, the sixth time, the seventh time, an eighth time, a first time interval, or a combination thereof. In a particular aspect, the eighth time is greater than or equal to each of the first time, the second time, the third time, the fourth time, the fifth time, the sixth time, and the seventh time. In a particular aspect, the first time interval has a start time and an end time. The start time is less than or equal to each of the first time, the second time, the third time, the fourth time, the fifth time, the sixth time, and the seventh time. The end time is greater than or equal to each of the first time, the second time, the third time, the fourth time, the fifth time, the sixth time, and the seventh time.

In a particular aspect, each of particular sensors (e.g., the sensors <NUM> of <FIG> or the second sensors of the second aircraft) generates a time-series of values. For example, a first sensor of the sensors <NUM> generates a first time-series of values (e.g., Mach numbers) and a second sensor of the sensors <NUM> generates a second time-series of values (e.g., total air temperature measurements). In a particular aspect, the first sensor generates the first time-series of values (e.g., at two second intervals) asynchronously with the second time-series of values (e.g., at ten second intervals). For example, the first sensor generates a first Mach number at time t1 (e.g., <NUM>:<NUM>:<NUM>), a second Mach number at time t2 (e.g., <NUM>:<NUM>:<NUM>), a third Mach number at time t3 (e.g., <NUM>:<NUM>:<NUM>), a fourth Mach number at time t4 (e.g., <NUM>:<NUM>:<NUM>), a fifth Mach number at time t5 (e.g., <NUM>:<NUM>:<NUM>), and so on. The second sensor generates a first total air temperature at time t11 (e.g., <NUM>:<NUM>:<NUM>) and a second total air temperature at time t12 (e.g., <NUM>:<NUM>:<NUM>).

In a particular aspect, aggregation or binning is used to determine flight data values corresponding to a common time-series (e.g., at five second intervals). For example, values for the entry <NUM> correspond to a first time interval (e.g., <NUM>:<NUM>:<NUM> - <NUM>:<NUM>:<NUM>). To illustrate, a first value (e.g., the Mach number <NUM>) is based on the second Mach number for time t2 (e.g., <NUM>:<NUM>:<NUM>), the third Mach number for time t3 (e.g., <NUM>:<NUM>:<NUM>), the fourth Mach number for time t4 (e.g., <NUM>:<NUM>:<NUM>), or a combination thereof. In a particular aspect, the first value (e.g., the Mach number <NUM>) is based on an average of the second Mach number for time t2 (e.g., <NUM>:<NUM>:<NUM>), the third Mach number for time t3 (e.g., <NUM>:<NUM>:<NUM>), the fourth Mach number for time t4 (e.g., <NUM>:<NUM>:<NUM>), or a combination thereof.

In a particular aspect, the entry <NUM> indicates a data collection time <NUM> corresponding to the first time interval. For example, the data collection time <NUM> includes a first timestamp corresponding to a beginning (e.g., <NUM>:<NUM>:<NUM>) of the first time interval, a second timestamp corresponding to an end (e.g., <NUM>:<NUM>:<NUM>) of the first time interval, a third timestamp corresponding to a middle (e.g., <NUM>:<NUM>:<NUM>) of the first time interval, or a combination thereof.

The historical aircraft performance parameters <NUM> includes a plurality of entries <NUM>. Each of the entries <NUM> corresponds to a particular entry of the entries <NUM>. For example, the entries <NUM> include an entry <NUM> indicating aircraft performance parameters corresponding to the entry <NUM>. For example, the entry <NUM> indicates drag <NUM>, lift <NUM>, mass <NUM>, fuel consumption <NUM>, or a combination thereof. In a particular aspect, the entry <NUM> indicates the data collection time <NUM>, a reference to the entry <NUM>, or both.

The aircraft performance model <NUM> includes a recurrent neural network layer <NUM> (e.g., a LSTM network layer, a gated recurrent unit (GRU) layer, or both). In a particular aspect, the aircraft performance model <NUM> includes one or more additional network layers, such as a CNN layer, multilayer perceptron (MLP) network layer, or both, coupled to the recurrent neural network layer <NUM>. In a particular implementation, the aircraft performance model <NUM> includes a one-dimension CNN layer (e.g., including <NUM> filters with a kernel size of <NUM>), a one-dimension max pooling layer (e.g., having a pool size of <NUM> and no strides), a LSTM network layer (e.g., including <NUM> LSTM cells), a first densely-connected neural network layer (e.g., including <NUM> cells using a rectified linear unit (ReLU) activation function), a second densely-connected neural network layer (e.g., including <NUM> cell using a linear activation function), or a combination thereof. In a particular aspect, the CNN layer enables identification of relevant features of the historical flight data <NUM> for determining aircraft performance parameters, while the LSTM layer is suitable for detecting and identifying temporal patterns and trends in time-series components.

During operation, the model trainer <NUM> trains (generates or updates) the aircraft performance model <NUM> based on the historical flight data <NUM> and the historical aircraft performance parameters <NUM>. For example, the model trainer <NUM> provides the entry <NUM> as input to the aircraft performance model <NUM> that uses the neural network layers to process the entry <NUM> and produce a corresponding output. The model trainer <NUM> compares the output to the entry <NUM> and updates hyperparameters (e.g., weights and biases) of the aircraft performance model <NUM> based on the comparison. The model trainer <NUM> provides a second entry as input to the aircraft performance model <NUM> and updates the hyperparameters of the aircraft performance model <NUM> based on a comparison of a second entry of the entries <NUM> and a second output of the aircraft performance model <NUM>.

In a particular example, the model trainer <NUM> trains multiple versions of the aircraft performance model <NUM> having various types of layers, counts of cells in layers, activation functions, loss functions, optimization methods, learning rates, dropout mechanisms, number of epochs, pooling size, kernel size, other parameters, etc. The model trainer <NUM> selects one of the multiple versions as the aircraft performance model <NUM>. For example, the model trainer <NUM> uses, during a training phase, a first subset of the historical flight data <NUM> and a first subset of the historical aircraft performance parameters <NUM> to generate multiple aircraft performance models. The model trainer <NUM> uses a second subset of the historical flight data <NUM> and a corresponding second subset of the historical aircraft performance parameters <NUM> during a training phase. For example, the model trainer <NUM> provides the second subset of the historical flight data <NUM> to the multiple aircraft performance models as input, compares the output of the multiple aircraft performance models to the second subset of the historical aircraft performance parameters <NUM>, and determines prediction errors of the multiple aircraft performance models based on the comparison. The model trainer <NUM> selects a particular aircraft performance model that corresponds to a lowest prediction error as the aircraft performance model <NUM>. The model trainer <NUM> thus enables the aircraft performance model <NUM> to be adapted (e.g., generated or updated) to intrinsic properties of the historical flight data <NUM>.

Referring to <FIG>, a diagram <NUM> illustrates aspects of the parameter generator <NUM> and the memory <NUM>. The parameter generator <NUM> has access to the aircraft performance model <NUM>.

During operation, the parameter generator <NUM> has access (e.g., in real-time) to the flight data <NUM> generated by the sensors <NUM> during a flight. The flight data <NUM> indicates a plurality of parameters. For example, the flight data <NUM> indicates speed information (e.g., a Mach number <NUM>, a ground speed <NUM>, or both), location information (e.g., an altitude <NUM>, a heading <NUM>, or a combination thereof), ambient environment conditions (e.g., a total air temperature <NUM>, wind speed <NUM>, wind direction <NUM>, or a combination thereof), or a combination thereof. The parameter generator <NUM> generates, based on the flight data <NUM> and the aircraft performance model <NUM>, the aircraft performance parameters <NUM>. For example, the parameter generator <NUM> provides the flight data <NUM> as input to the aircraft performance model <NUM>. The aircraft performance model <NUM> processes the flight data <NUM> and outputs the aircraft performance parameters <NUM>. For example, the aircraft performance parameters <NUM> (e.g., drag <NUM>, lift <NUM>, mass <NUM>, fuel consumption <NUM>, or a combination thereof) indicate predicted performance parameter values corresponding to the flight data <NUM>. In a particular aspect, the parameter generator <NUM> determines the aircraft performance parameters <NUM> in real-time (e.g., within seconds) of receiving the flight data <NUM>.

<FIG> is a flowchart of a method <NUM> for flight performance parameter computation. In a particular aspect, the method <NUM> is performed by the parameter generator <NUM>, the GUI generator <NUM>, the processor <NUM>, the on-board computing device <NUM>, the aircraft <NUM>, the off-board device <NUM>, the system <NUM> of <FIG>, or any combination thereof.

The method <NUM> includes receiving real-time time-series flight data of a first aircraft, at <NUM>. For example, the parameter generator <NUM> of <FIG> receives the flight data <NUM> (e.g., real-time time-series flight data) from the data bus <NUM> of the aircraft <NUM>, as described with reference to <FIG>.

The method <NUM> also includes generating one or more aircraft performance parameters based on the real-time time-series flight data and an aircraft performance model, at <NUM>. For example, the parameter generator <NUM> of <FIG> generates the aircraft performance parameters <NUM> based on the flight data <NUM> (e.g., real-time time-series flight data) and the aircraft performance model <NUM>, as described with reference to <FIG> and <FIG>. The aircraft performance model <NUM> includes the recurrent neural network layer <NUM>.

The method <NUM> further includes providing the aircraft performance parameters to a display device, at <NUM>. For example, the GUI generator <NUM> of <FIG> provides a GUI <NUM> to the display device <NUM>. The GUI <NUM> indicates one or more of the aircraft performance parameters <NUM>, such as predicted aircraft performance parameter values indicated by the drag <NUM>, the lift <NUM>, the mass <NUM>, the fuel consumption <NUM> of <FIG>, or a combination thereof.

The method <NUM> thus enables use of the aircraft performance parameters <NUM> by a pilot to make informed decisions during a flight of the aircraft <NUM>. The predicted values of the aircraft performance parameters <NUM> are displayed in real-time within seconds of detection of the corresponding flight data <NUM>. Using the aircraft performance model <NUM> (e.g., a machine-learning model) enables the aircraft performance parameters <NUM> to be estimated in real-time rather than using more time-intensive calculations after landing. In a particular aspect, the aircraft performance parameters <NUM> are used to generate recommended settings, automatically update a setting or configuration of the aircraft <NUM>, or a combination thereof. One or more of the aircraft performance parameters <NUM>, the recommended settings, or a combination thereof, can be displayed to improve pilot situational awareness and to enable the pilot to make informed flight decisions based on real-time data. For example, the pilot can update a flight setting, such as accept or edit a recommended setting, based on the displayed information. In a particular aspect, the method further comprises receiving the aircraft performance model from a second device.

Aspects of the disclosure may be described in the context of the aircraft <NUM> as shown in <FIG>. The aircraft <NUM> includes an airframe <NUM> with a plurality of systems <NUM> (e.g., high-level systems) and an interior <NUM>. Examples of the systems <NUM> include one or more of a propulsion system <NUM>, an electrical system <NUM>, an environmental system <NUM>, a hydraulic system <NUM>, the sensors <NUM>, the parameter generator <NUM>, and the GUI generator <NUM>. In a particular implementation, the systems <NUM> include the model trainer <NUM>. Other systems can also be included.

The parameter generator <NUM>, the GUI generator <NUM>, the model trainer <NUM>, or a combination thereof, are configured to support aspects of computer-implemented methods and computer-executable program instructions (or code) according to the present disclosure. For example, the parameter generator <NUM>, the GUI generator <NUM>, the model trainer <NUM>, or portions thereof, are configured to execute instructions to initiate, perform, or control one or more operations described with reference to <FIG>.

Although one or more of <FIG> illustrate systems, apparatuses, and/or methods according to the teachings of the disclosure, the disclosure is not limited to these illustrated systems, apparatuses, and/or methods. One or more functions or components of any of <FIG> as illustrated or described herein may be combined with one or more other portions of another of <FIG>. For example, one or more elements of the method <NUM> of <FIG> may be performed in combination with other operations described herein. Accordingly, no single implementation described herein should be construed as limiting and implementations of the disclosure may be suitably combined without departing form the teachings of the disclosure. As an example, one or more operations described with reference to <FIG> may be optional, may be performed at least partially concurrently, and/or may be performed in a different order than shown or described.

Examples described above are illustrative and do not limit the disclosure. It is to be understood that numerous modifications and variations are possible within the scope of the appended claims.

The illustrations of the examples described herein are intended to provide a general understanding of the structure of the various implementations. Many other implementations may be apparent to those of skill in the art upon reviewing the disclosure. For example, method operations may be performed in a different order than shown in the figures or one or more method operations may be omitted.

Claim 1:
A device for flight performance parameter computation, the device comprising:
a memory (<NUM>) configured to store an aircraft performance model (<NUM>), the aircraft performance model (<NUM>) based on historical flight data (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) of one or more aircraft, wherein the aircraft performance model (<NUM>) includes a recurrent neural network layer (<NUM>);
a network interface (<NUM>) configured to receive real-time time-series flight data (<NUM>) from a data bus (<NUM>) of a first aircraft (<NUM>); and
a processor (<NUM>) configured to:
receive, via the network interface (<NUM>), the real-time time-series flight data (<NUM>);
generate, based on the real-time time-series flight data (<NUM>) and the aircraft performance model (<NUM>), one or more aircraft performance parameters (<NUM>);
provide the aircraft performance parameters (<NUM>) to a display device (<NUM>); and
wherein the processor (<NUM>) comprises a GUI generator (<NUM>) to generate one or more recommended settings, including a recommended trim setting, based on the one or more aircraft performance parameters (<NUM>).