Patent Description:
As aircraft become more complex, it is increasingly difficult and time consuming to maintain them. Many modern aircraft include aircraft health monitoring systems to detect fault conditions and assist maintenance personnel with identifying and troubleshooting the fault condition. For example, in response to detecting a particular fault condition, an aircraft health monitoring system may generate a fault code. The fault code may be indexed to a fault isolation process in a fault isolation manual associated with the aircraft. The fault isolation process lists a series of tasks that should be performed by maintenance personnel to isolate and correct the fault condition. Different detected fault conditions are indexed to respective fault isolation procedures. Each fault isolation procedure specifies a sequence of tasks that should be performed. The sequence of tasks is ordered based on some predetermined criteria, such as how likelihood that each task will resolve the fault condition.

<CIT> mentions, in its abstract, that a "a system provides engine maintenance information automatically from fault code data received from an onboard engine performance monitoring computer. The maintenance information is provided by an HTML repair guide electronically called by the control system using the fault code as part of the page address in the HTML guide. The control system automatically ensures that all fault codes are responded to, i.e. that maintenance personnel carry out the appropriate maintenance actions in response to each and every fault code, with a view to improve quality assurance of maintenance. Maintenance actions of maintenance personnel are automatically recorded for the purposes of validating and/or generating warranty claim applications. The system also has a warranty claim report generator for processing aircraft maintenance action log data. The generator has a warranty action discriminator for reading the action log data and outputting data representing possible warranty covered actions, and a warranty action validator receiving the possible warranty covered actions data and engine performance data for outputting data representing warranty claim actions. The warranty claim actions data are processed to produce warranty claim report output data".

<CIT> mentions, in its abstract, that "A system for completing a walk around inspection of an aircraft is provided. The system may include a processor, a memory, and a user interface. The user interface also includes a user input system and a user output system. The user interface is configured for presenting a graphical checklist for a walk around inspection of an aircraft. The system also includes a communications device. The communications device is configured for communicating with an Onboard Maintenance System for the aircraft. The system, including the processor, memory, user interface and communications device, can be used to perform the inspection of the aircraft and provide a compliance record for the inspection".

The abstract of "<NPL>, mentions that a "proposed system helps the maintenance engineer in planning and coordinating the line maintenance process by using a mobile device. The mobile device uses a dynamic checklist for updating each line item status, image processing technology to detect anomalies, and voice processing techniques to make the maintenance process hands free. A wearable device connected to the mobile device may be used for aiding the hands free operation".

In a first aspect there is provided an aircraft maintenance system as defined in claim <NUM> of the appended claims.

Optionally, the aircraft maintenance system of the first aspect further includes a display device onboard the aircraft, where the display device is configured to display the first checklist display and the second checklist display.

Optionally, in the first aspect, the one or more memory devices store at least a portion of the historical maintenance data, or at least a portion of the historical maintenance data is stored on at least one of the one or more memory devices or a data repository offboard the aircraft.

Optionally, the aircraft maintenance system of the first aspect further includes a communication interface configured to access at least a portion of the historical maintenance data from a data repository offboard the aircraft.

Further optionally, in the aircraft maintenance system of the first aspect, the fault code data is associated with multiple fault isolation paths, and each fault isolation path of the multiple fault isolation paths specifies a sequence of tasks to isolate a cause of a particular fault condition of the one or more fault conditions.

Further optionally, in the aircraft maintenance system of the first aspect, the fault context data includes sensor data indicating an operational environment associated with the aircraft during the timeframe, configuration data indicating a state of the aircraft during the timeframe, or both.

Further optionally, in the aircraft maintenance system of the first aspect, the historical maintenance data identifies prior maintenance activity associated with the aircraft, associated with one or more other aircraft, or associated with both, and the prior maintenance activity indicates a plurality of historical fault conditions, historical fault context data associated with each of the historical fault conditions, a respective ordered sequence of tasks performed to resolve each of the historical fault conditions.

Further optionally, in the aircraft maintenance system of the first aspect, the state data indicates one or more configuration states of the aircraft.

Further optionally, in the aircraft maintenance system of the first aspect, the instructions are further executable by the one or more processors to cause the one or more processors to update the historical maintenance data based on the input.

Further optionally, in the aircraft maintenance system of the first aspect, the instructions are further executable by the one or more processors to cause the one or more processors to, after updating the historical maintenance data, obtain second fault code data and second fault context data via the one or more data bus interfaces, and responsive to the second fault code data matching the fault code data and the second fault context data matching the fault context data, generate a third checklist display including a third set of incomplete checklist items, wherein the third set of incomplete checklist items is different from the first set of incomplete checklist items and is different from the second set of incomplete checklist items.

Further optionally, in the aircraft maintenance system of any of the first aspect, the input includes one or more data bus signals detected by the one or more data bus interfaces, wherein the one or more data bus signals indicate a configuration state of the aircraft or a change of the configuration state of the aircraft, and optionally the one or more data bus signals are generated responsive to a user changing the configuration of the aircraft, and/or the input includes user input received responsive to the first checklist display.

Further optionally, in the aircraft maintenance system of the first aspect, generating the second checklist display includes automatically indicating as complete one or more checklist items of the first set of incomplete checklist items, and optionally the second set of incomplete checklist items includes each checklist item of the first set of incomplete checklist items except the one or more checklist items indicated as complete, and/or the second set of incomplete checklist items includes one or more checklist items not present in the first set of incomplete checklist items.

Further optionally, in the aircraft maintenance system of the first aspect, the timeframe associated with the one or more fault conditions corresponds to a period before or simultaneous with detection of the one or more fault conditions.

Further optionally, in the aircraft maintenance system of the first aspect, the first set of incomplete checklist items includes an ordered sequence of fault isolation tasks derived from a fault isolation manual associated with the aircraft, an ordered sequence of maintenance tasks derived from a maintenance manual associated with the aircraft, or an ordered sequence including both fault isolation tasks and maintenance tasks.

Further optionally, in the aircraft maintenance system of the first aspect, a sequence of the first set of incomplete checklist items is determined based on the fault code data, the fault context data, the state data, and the historical maintenance data.

Further optionally, in the aircraft maintenance system of the first aspect, a checklist item of the first set of incomplete checklist items is associated with a task, and the first checklist display further includes an estimate of a likelihood that performance of the task will resolve the one or more fault conditions.

Further optionally, in the aircraft maintenance system of the first aspect, each of a plurality of checklist items of the first set of incomplete checklist items is associated with a corresponding task, and the first set of incomplete checklist items are ordered in the first checklist display based on estimates of a likelihood that performance of each of the corresponding tasks will resolve the one or more fault conditions.

In a second aspect there is provided a method as defined in appended claim <NUM>.

Optionally, the method further includes displaying the first checklist display and the second checklist display at a display device onboard the aircraft, and/or one or more memory devices store at least a portion of the historical maintenance data.

Further optionally, the method further includes accessing at least a portion of the historical maintenance data from a data repository offboard the aircraft.

Further optionally, the fault code data is associated with multiple fault isolation paths, and each fault isolation path of the multiple fault isolation paths specifies a sequence of tasks to isolate a cause of a particular fault condition of the one or more fault conditions.

Further optionally, the fault context data includes sensor data indicating an operational environment associated with the aircraft during the timeframe, configuration data indicating a state of the aircraft during the timeframe, or both.

Further optionally, the historical maintenance data identifies prior maintenance activity associated with the aircraft, associated with one or more other aircraft, or associated with both, and the prior maintenance activity indicates a plurality of historical fault conditions, historical fault context data associated with each of the historical fault conditions, a respective ordered sequence of tasks performed to resolve each of the historical fault conditions.

Further optionally, the state data indicates one or more configuration states of the aircraft.

Further optionally, the method further includes updating the historical maintenance data based on the input, and optionally the method further includes, after updating the historical maintenance data, obtaining second fault code data and second fault context data via the one or more data bus interfaces, and responsive to the second fault code data matching the fault code data and the second fault context data matching the fault context data, generating a third checklist display including a third set of incomplete checklist items, wherein the third set of incomplete checklist items is different from the first set of incomplete checklist items and is different from the second set of incomplete checklist items.

Further optionally, the input includes one or more data bus signals detected by the one or more data bus interfaces, wherein the one or more data bus signals indicate a configuration state of the aircraft or a change of the configuration state of the aircraft, and optionally the one or more data bus signals are generated responsive to a user changing the configuration of the aircraft, and/or the input includes user input received responsive to the first checklist display.

Further optionally, generating the second checklist display includes automatically indicating as complete one or more checklist items of the first set of incomplete checklist items, and optionally the second set of incomplete checklist items includes each checklist item of the first set of incomplete checklist items except the one or more checklist items indicated as complete, and/or the second set of incomplete checklist items includes one or more checklist items not present in the first set of incomplete checklist items.

Further optionally, the timeframe associated with the one or more fault conditions corresponds to a period before or simultaneous with detection of the one or more fault conditions.

Further optionally, the first set of incomplete checklist items include an ordered sequence of fault isolation tasks derived from a fault isolation manual associated with the aircraft, an ordered sequence of maintenance tasks derived from a maintenance manual associated with the aircraft, or an ordered sequence including both fault isolation tasks and maintenance tasks.

Further optionally, in the method of the second example, a sequence of the first set of incomplete checklist items is determined based on the fault code data, the fault context data, the state data, and the historical maintenance data.

Further optionally, a checklist item of the first set of incomplete checklist items is associated with a task, and the first checklist display further includes an estimate of a likelihood that performance of the task will resolve the one or more fault conditions.

Further optionally, each of a plurality of checklist items of the first set of incomplete checklist items is associated with a corresponding task, and the first set of incomplete checklist items are ordered in the first checklist display based on estimates of a likelihood that performance of each of the corresponding tasks will resolve the one or more fault conditions.

In a third aspect there is provided a computer-readable storage device as defined in appended claim <NUM>. Optionally, the operations further include updating the historical maintenance data based on the input.

In some examples, there is provided a computer-readable storage device that stores instructions that are executable by one or more processors to cause the one or more processors to perform the steps of the method, and optionally to update the historical maintenance data based on the input.

In some examples, an aircraft maintenance system includes one or more data bus interfaces, one or more processors coupled to the one or more data bus interfaces, and one or more memory devices accessible by the one or more processors. The one or more data bus interfaces are configured to receive fault code data and fault context data via one or more aircraft data buses. The fault code data identifies one or more fault conditions detected onboard an aircraft, and the fault context data indicates one or more conditions of the aircraft in a timeframe associated with the one or more fault conditions. The one or more memory devices store instructions that are executable by the one or more processors to cause the one or more processors to generate a first checklist display including a first set of incomplete checklist items. The first checklist display is generated based on the fault code data, the fault context data, state data indicating a current state of the aircraft, and historical maintenance data. The instructions are further executable by the one or more processors to cause the one or more processors to receive input indicating completion of one or more checklist items of the first set of incomplete checklist items and to update the state data based on the input. The instructions are further executable by the one or more processors to cause the one or more processors to generate a second checklist display including a second set of incomplete checklist items. The second checklist display is generated based on the fault code data, the fault context data, the updated state data, and the historical maintenance data, and the second set of incomplete checklist items is different from the first set of incomplete checklist items.

According to some examples, a method includes receiving fault code data via one or more aircraft data buses, where the fault code data identifies one or more fault conditions detected onboard an aircraft. The method also includes receiving fault context data via the one or more aircraft data buses, where fault context data indicates one or more conditions of the aircraft in a timeframe associated with the one or more fault conditions. The method further includes generating, by one or more processors, a first checklist display including a first set of incomplete checklist items. The first checklist display is generated based on the fault code data, the fault context data, state data indicating a current state of the aircraft, and historical maintenance data. The method also includes receiving, by the one or more processors, input indicating completion of one or more checklist items of the first set of incomplete checklist items and updating, by the one or more processors, the state data based on the input. The method further includes generating, by the one or more processors, a second checklist display including a second set of incomplete checklist items. The second checklist display is generated based on the fault code data, the fault context data, the updated state data, and historical maintenance data, and the second set of incomplete checklist items is different from the first set of incomplete checklist items.

According to some examples, a computer-readable storage device stores instructions that are executable by one or more processors to cause the one or more processors to perform operations. The operations include receiving fault code data identifying one or more fault conditions detected onboard an aircraft and receiving fault context data indicating one or more conditions of the aircraft in a timeframe associated with the one or more fault conditions. The operations also include generating a first checklist display including a first set of incomplete checklist items, where the first checklist display is generated based on the fault code data, the fault context data, state data indicating a current state of the aircraft, and historical maintenance data. The operations further include receiving input indicating completion of one or more checklist items of the first set of incomplete checklist items and updating the state data based on the input. The operations further include generating a second checklist display including a second set of incomplete checklist items. The second checklist display is generated based on the fault code data, the fault context data, the updated state data, and historical maintenance data, and the second set of incomplete checklist items is different from the first set of incomplete checklist items.

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.

In a particular implementation, a context-sensitive aircraft maintenance system uses data descriptive of a fault, context information, state data, and historical data to make recommendations regarding which procedure to perform and/or an order (e.g., sequence) in which tasks should be performed to identify and/or correct a fault condition. The context information includes information about the aircraft from a time period during which the fault occurred or was detected. In some implementations, the context information also includes current state or configuration information related to the aircraft, such as settings of various controls (e.g., selector switch position, valve position, circuit breaker state, etc.), control surface positions, other system parameters, etc..

The order of the tasks is determined, in part, based on which tasks solved prior complaints associated with the same or related fault codes and the same or similar context information. The order is determined dynamically (e.g., at runtime). Thus, over time as additional historical data is accumulated, the order of the tasks for a particular fault isolation checklist changes.

In some implementations, the fault isolation checklist is controlled by a component that has access to the current state of the aircraft and memory indicating prior operations performed during a particular maintenance activity. In such implementations, the fault isolation checklist can be automatically updated to indicate that a particular step or operation was previously performed or is not needed during the particular maintenance activity. For example, some fault isolation tasks of a fault isolation checklist refer to maintenance processes that includes multiple tasks. In this example, each maintenance process is reasonably comprehensive, in that it explicitly or implicitly lists all of the tasks needed to perform the maintenance process. Many such steps overlap from one maintenance process to another maintenance process. To illustrate, a maintenance task related to a particular subsystem may include a task for removing an access panel to gain access to a component of the particular subsystem. If several components of the subsystem are disposed beneath the access panel, the user may subsequently perform another maintenance task process that also lists a maintenance task of removing the access panel. In this situation, the fault isolation checklist can automatically indicate that the task of removing the access panel as complete based on the access panel having been removed during the prior maintenance task. Additionally, or in the alternative, two or more tasks may be listed adjacent to one another in the fault isolation checklist due, in part, to the fact that each of the two or more tasks requires removal of the access panel thereby reducing time required for ancillary tasks (e.g., tasks that are not by themselves intended to correct the fault condition).

In another example, a particular fault isolation process described by a fault isolation checklist may include a task of setting a control input to a particular state, such as turning a knob, flipping a switch, opening a breaker, etc. In this example, the task can be automatically indicated as complete based on detecting the state of the control input (e.g., based on data read from an aircraft data bus, based on sensor data, and/or based on data stored in a memory indicating the state of the control input).

Each fault isolation checklist describes a process including a plurality of tasks. Each fault isolation checklist is associated with (e.g., indexed to) one or more fault codes, and each fault code is associated with (e.g., indexed to) one or more fault isolation checklists. In some implementations, an order of the tasks of a fault isolation checklist is determined based at least in part on the context information and historical maintenance information. As a result, tasks that have historically resulted in resolution of the fault condition, based on the fault code and the context information, may be performed earlier in the maintenance activities. One technical benefit of the dynamic fault isolation process describe herein is decreased downtime (or conversely increased availability) of aircraft because the dynamic ordering of the fault isolation tasks results in performing operations that are likely to resolve the fault condition earlier in the maintenance process. This benefit is cumulative since the order changes as more historical information becomes available.

Particular implementations are described herein with reference to the drawings. In the description, common features are designated by common reference numbers throughout the drawings. In some drawings, multiple instances of a particular type of feature are used. Although these features are physically and/or logically distinct, the same reference number is used for each, and the different instances are distinguished by addition of a letter to the reference number. When the features as a group or a type are referred to herein (e.g., when no particular one of the features is being referenced), the reference number is used without a distinguishing letter. However, when one particular feature of multiple features of the same type is referred to herein, the reference number is used with the distinguishing letter. For example, referring to <FIG>, multiple instances of historical maintenance data are illustrated and associated with reference numbers 156A and 156B. When referring to a particular one of these instances of historical maintenance data, such as the historical maintenance data 156A, the distinguishing letter "A" is used. However, when referring to any arbitrary instance of historical maintenance data or to these instances of historical maintenance data as a group, the reference number <NUM> is used without a distinguishing letter.

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, some features described herein are singular in some implementations and plural in other implementations. For ease of reference herein, such features are generally introduced as "one or more" features and are subsequently referred to in the singular unless aspects related to multiple of the features are being described.

The terms "comprise," "comprises," and "comprising" are used interchangeably with "include," "includes," or "including. " Moreover, terms such as "includes," "including," "has," "contains," and variants thereof used herein, are intended to be inclusive in a manner similar to the term "comprises" as an open transition word without precluding any additional or other elements. 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.

As used herein, "generating", "calculating", "using", "selecting", "accessing", and "determining" are interchangeable unless context indicates otherwise. For example, "generating", "calculating", or "determining" a parameter (or a signal) can refer to actively generating, calculating, or determining the parameter (or the signal) or can refer to using, selecting, or accessing the parameter (or signal) that is already generated, such as by another component or device. As used herein, "coupled" can include "communicatively coupled," "electrically coupled," or "physically coupled," and can also (or alternatively) include any combinations thereof. Two devices (or components) can be coupled (e.g., communicatively coupled, electrically coupled, or physically coupled) directly or indirectly via one or more other devices, components, wires, buses, networks (e.g., a wired network, a wireless network, or a combination thereof), etc. Two devices (or components) that are electrically coupled can be included in the same device or in different devices and can be connected via electronics, one or more connectors, or inductive coupling, as illustrative, non-limiting examples. In some implementations, two devices (or components) that are communicatively coupled, such as in electrical communication, can send and receive electrical signals (digital signals or analog signals) directly or indirectly, such as via one or more wires, buses, networks, etc. As used herein, "directly coupled" is used to describe two devices that are coupled (e.g., communicatively coupled, electrically coupled, or physically coupled) without intervening components.

As used herein, a "fault condition" refers to any detected or detectable abnormality in the aircraft. Typically, fault conditions are associated with fault codes which describe the systems or subsystems affected. Fault conditions (or fault codes) may also be associated with text summaries that provide more readily understandable (relative to fault codes) information about the fault condition.

As used herein, "state data" refers to any data indicative of a current state of the aircraft, such as sensor data, stored values in memory, data bus signals, etc. In this context, the current state of the aircraft includes whether particular components are present or not, whether particular components are active or not, positions of components (e.g., flight control surfaces, switches, etc.), results of function tests, etc. In this context, configuration data is a subset of state data. The configuration data indicates specific settings or positions of aircraft components at a particular time. For example, the configuration data associated with a fault condition may indicate whether flaps of the aircraft were deployed with the fault condition was detected.

As used herein, "historical maintenance data" refers to a record associated with a particular aircraft or with multiple aircraft (e.g., all of the aircraft of a fleet). The historical maintenance data identifies aircraft complaints (e.g., fault codes or crew reported complaints) and maintenance tasks that were performed. In some implementations, the historical maintenance data also identifies context information associated with some or all of the aircraft complaints, an order in which the maintenance tasks were performed, and some indication of which maintenance task(s) resolved the complaint.

<FIG> is a block diagram that illustrates a system <NUM> including an aircraft <NUM> and an associated aircraft maintenance system <NUM>. In <FIG>, the system <NUM> also includes a data repository <NUM> that is coupled to or accessible to the aircraft maintenance system <NUM>. In <FIG>, the data repository <NUM> is offboard the aircraft <NUM>. In other implementations, the data repository <NUM> or portions thereof is onboard the aircraft <NUM>. Further, in <FIG>, the aircraft maintenance system <NUM> is onboard the aircraft <NUM>; however, in other implementations, the aircraft maintenance system <NUM> is offboard the aircraft <NUM>.

In <FIG>, the aircraft <NUM> includes multiple systems <NUM>. The systems <NUM> includes any component, line replaceable unit (LRU), or bus of the aircraft <NUM>. Each of the systems <NUM> has a corresponding configuration <NUM>, which refers to a state of each of the systems <NUM>. The aircraft <NUM> also includes controls <NUM>, each of which has a corresponding configuration <NUM>. The controls <NUM> include automatic controls and user selectable controls. Examples of automatic controls include control circuits and processors that generate control signals based on sensed data or other information. Examples of user selectable controls include switches, dials, knobs, touchscreen interfaces, buttons, etc..

The aircraft <NUM> further includes sensors <NUM>. The sensors <NUM> are configured to generate sensor data, such as data indicating the configuration <NUM> of one or more of the system <NUM>, the configuration <NUM> of one or more of the controls <NUM>, or other information about the operation or state of the aircraft <NUM> or its surroundings.

The aircraft <NUM> also includes a health monitoring system <NUM>. The health monitoring system <NUM> is configured to detect fault conditions within the aircraft <NUM>. For example, the health monitoring system <NUM> can receive the sensor data, configuration data descriptive of the configuration <NUM> of one or more of the systems <NUM>, configuration data descriptive of the configuration <NUM> of one or more of the controls <NUM>, other data, or any combination thereof, via one or more aircraft data buses <NUM> and compare the data to various fault detection criteria (e.g., thresholds, patterns, etc.) to determine when a fault condition is present. Responsive to detecting a fault condition, the health monitoring system <NUM> generates data descriptive of the fault condition, such as a fault code or a similar fault indication. Although <FIG> shows the health monitoring system <NUM> as a distinct component, in some implementations, the health monitoring system <NUM>, or portions thereof, is distributed among the systems <NUM> that are monitored. For example, an electrical system of the system <NUM> can include an electrical system controller or an electrical system monitor that performs electrical system-specific health monitoring.

The aircraft maintenance system <NUM> includes one or more data bus interfaces <NUM> to receive data via the aircraft data bus(es) <NUM>. For example, in a particular implementation, the data bus interface(s) <NUM> receive fault code data <NUM> from the health monitoring system <NUM> via the aircraft data bus(es) <NUM>. The fault code data <NUM> identifies one or more fault conditions detected onboard an aircraft. In some implementations, the data bus interface(s) <NUM> also receive fault context data <NUM> via the aircraft data bus(es) <NUM>. The fault context data <NUM> indicates one or more conditions of the aircraft <NUM> in a timeframe associated with the one or more fault conditions (e.g., a period before or simultaneous with detection of the one or more fault conditions). In a particular example, the fault context data <NUM> includes sensor data from the sensors <NUM> indicating an operational environment associated with the aircraft <NUM> during the timeframe associated with the fault condition(s), configuration data indicating a state (e.g., describes one or more of the configurations <NUM> or <NUM>) of the aircraft <NUM> during the timeframe, or both.

The aircraft maintenance system <NUM> includes one or more processors <NUM> coupled to the data bus interface(s) <NUM> and one or more memory devices <NUM> accessible to the processor(s) <NUM>. In a particular implementation, the aircraft maintenance system <NUM> enables a computer system to operate as a special purpose computer system that supports dynamic fault isolation for aircraft maintenance. In <FIG>, the aircraft maintenance system <NUM> also includes one or more communication interfaces <NUM> configured to facilitate offboard communication. For example, when the data repository <NUM> is located offboard the aircraft, the communication interface(s) <NUM> can access data from the data repository <NUM> via an offboard communication connection <NUM>, which can include a wired or wireless connection.

The memory device(s) <NUM> store data and instructions <NUM> that are executable by the processor(s) <NUM> to perform various operations. In <FIG>, the data includes the fault code data <NUM> and the fault context data <NUM>. In some implementations, the memory device(s) <NUM> also stores state data <NUM> which indicates a current state of the aircraft <NUM>. For example, the state data <NUM> indicates one or more configuration states (e.g., describes one or more of the configurations <NUM> or <NUM>) of the aircraft <NUM> in real-time or near real-time.

In the example illustrated in <FIG>, the memory device(s) <NUM> also stores historical maintenance data 156B. In some implementations, the memory device(s) <NUM> stores a portion of the historical maintenance data 156B, and the data repository <NUM> stores another portion of the historical maintenance data 156A. The historical maintenance data <NUM> identifies prior maintenance activity associated with the aircraft <NUM>, associated with one or more other aircraft (e.g., other similar aircraft), or associated with both. The prior maintenance activity indicates a plurality of historical fault conditions, historical fault context data associated with each of the historical fault conditions, a respective ordered sequence of tasks performed to resolve each of the historical fault conditions.

In <FIG>, the instructions <NUM> include dynamic fault isolation instructions <NUM> and update instructions <NUM>. The dynamic fault isolation instructions <NUM> are executable by the processor(s) <NUM> to generate checklist display(s) <NUM> to guide maintenance personnel through a fault isolation process and related maintenance processes. In <FIG>, the checklist display(s) <NUM> are shown as presented via one or more display devices <NUM> onboard the aircraft <NUM>; however, in other implementations, the checklist display(s) <NUM> are presented via a display device that is offboard the aircraft <NUM> or a portable display device, such as an electronic maintenance manual device.

The checklist display(s) <NUM> lists an ordered sequence of fault isolation tasks <NUM> based on a fault isolation manual (FIM) <NUM>, an ordered sequence of maintenance tasks <NUM> based on a maintenance manual <NUM>, or both. The set of tasks and the order of the tasks presented in the checklist display(s) <NUM> is determined (e.g., by the processor(s) <NUM>) based on the fault code data <NUM>, the fault context data <NUM>, the state data <NUM>, the historical maintenance data <NUM>, the FIM <NUM>, the maintenance manual <NUM>, a minimum equipment list (MEL) <NUM>, or combinations thereof, as described further below. The FIM <NUM> maps each fault code to a particular fault isolation process, and each fault isolation process indicates a set of fault isolation tasks <NUM>, some of which may be maintenance tasks <NUM>. To illustrate, the fault code data is associated with (e.g., indexed to or mapped to) multiple fault isolation paths of the FIM <NUM>, and each fault isolation path specifies a sequence of tasks to isolate a cause of a particular fault condition of the one or more fault conditions.

In some implementations, a particular checklist display <NUM> lists the set of the fault isolation tasks <NUM> (and maintenance tasks <NUM>) that are associated with a particular detected fault code and the order of tasks in the list is determined (e.g., by the processor(s) <NUM>) based on the historical maintenance data <NUM> (alone or in combination with other data). To illustrate, the fault context data <NUM> can be evaluated along with the historical maintenance data <NUM> to determine which tasks are more likely to resolve the fault condition based on which tasks resolved similar fault conditions (e.g., fault conditions associated with the same or related fault codes and the same or similar fault contexts) in the past.

Additionally, or in the alternative, the set of tasks and/or the order of tasks listed in a particular checklist display <NUM> can be determined (e.g., by the processor(s) <NUM>) at least partially based on the state data <NUM>. For example, some fault isolation tasks <NUM> of the FIM <NUM> include checks to determine or verify the configuration <NUM>, <NUM> of a particular system <NUM> or control <NUM>. In this example, if the state data <NUM> indicates the configuration <NUM>, <NUM> of the particular system <NUM> or control <NUM>, a checklist item to determine the configuration <NUM>, <NUM> can be omitted from the checklist display <NUM>. Alternatively, the checklist item can be included in the checklist display <NUM> with a checklist item status <NUM> indicating that the checklist item is complete.

In some circumstances, the FIM <NUM> includes or refers to a deferrable maintenance task <NUM>. A deferrable maintenance task <NUM> is a maintenance task associated with inoperative equipment, where dispatch is allowed with the equipment remaining inoperative in accordance with conditions detailed in the Minimum Equipment List (MEL). Accordingly, a maintenance task to repair or replace a system <NUM> that is not identified on the MEL <NUM> is not deferrable.

After a user performs a task, the user or the aircraft <NUM> can provide input indicating that the task is complete or indicating an outcome of the task. For example, the user can perform the task by modifying the configuration <NUM> of a control <NUM>. In this example, the user can subsequently provide input to the aircraft maintenance system <NUM> to indicate that the task was performed. Alternatively, or additionally, modifying the configuration <NUM> of the control <NUM> can cause the state data <NUM> to be automatically updated based on a signal or data proved to the aircraft maintenance system <NUM> via the aircraft data bus(es) <NUM>, in which case the signal or data can be used as the input to indicate that the task was performed.

In response to the input indicating that a task associated with a particular checklist item was performed, the checklist item status <NUM> is updated, and the checklist display <NUM> is modified to show the checklist item as complete, to show a result of the checklist item, to indicate a next checklist item to be performed, or a combination thereof. For example, some checklists include branching paths (each including a set of tasks) and which path is performed or the order of performance of the tasks in a path depends on the result of a particular task. To illustrate, the particular task can include a function check, and a different sequence of tasks can be performed depending on whether the function check is passed or failed.

In some situations, a particular maintenance task <NUM> is present in the list of tasks multiple times. For example, several components of a system may be located within a particular access panel of the aircraft <NUM>. In this example, removal of the particular access panel can be listed as a maintenance task <NUM> in a replacement process for each of the components. In such situations, when the maintenance task <NUM> for removal of the access panel is indicated as complete, the checklist item status <NUM> associated with the maintenance task <NUM> is updated and each checklist item (not just a current or active checklist item) indicating the maintenance task <NUM> is updated to show the task as complete.

The update instructions <NUM> are executable by the processor(s) <NUM> to update the historical maintenance data <NUM> during or after maintenance. For example, after a particular task or set of tasks is indicated as complete, the update instructions <NUM> update the historical maintenance data <NUM> to indicate that the task(s) were performed and/or results of performing the task(s) (e.g., whether performing the task(s) cleared the fault condition or resulted in another detectable change, such as another fault condition or a change in a function check). In some implementations, the update instructions <NUM> also generate statistics or other analytic data based on the historical maintenance data <NUM>. For example, the update instructions <NUM> calculate a probability that a particular task or set of tasks will resolve a particular fault condition in a particular context (e.g., when particular fault context data are present). In this example, probability data calculated by the update instructions <NUM> is stored with the historical maintenance data <NUM> and is used to determine an order of tasks to be performed when a similar fault condition is detected on the aircraft <NUM> or on another aircraft.

During operation, the aircraft maintenance system <NUM> receives an indication of a fault condition, such as the fault code data <NUM>, the fault context data <NUM>, or both. Responsive to initiating a maintenance activity related to the fault condition, the aircraft maintenance system <NUM> generates a first checklist display including a first set of incomplete checklist items. The first checklist display is generated based on, at least, the fault code data <NUM>, the fault context data <NUM>, and the state data <NUM>. The first set of incomplete checklist items corresponds to or includes an ordered sequence of fault isolation tasks <NUM> derived from the FIM <NUM> associated with the aircraft <NUM>, an ordered sequence of maintenance tasks <NUM> derived from a maintenance manual <NUM> associated with the aircraft <NUM>, or an ordered sequence comprising both the fault isolation tasks <NUM> and the maintenance tasks <NUM>. Each checklist item of the first set of incomplete checklist items is associated with a respective task. In some implementations, the first set of incomplete checklist items are ordered in the first checklist display based on estimates of a likelihood that performance of each of the corresponding tasks will resolve the fault condition(s). In some implementations, the first checklist display includes a numeric value or other estimate of a likelihood that performance of a particular task will resolve the one or more fault conditions.

After the first checklist display is generated and presented to a user, the aircraft maintenance system <NUM> receives input indicating completion of one or more checklist items of the first set of incomplete checklist items. The input can be provided by a user, such as via one of the controls <NUM> or via interaction with the first checklist display on the display device(s) <NUM>. Additionally, or in the alternative, the input can be receive via signals or data sent over the aircraft data bus(es) <NUM>, such as a signal sent from a control <NUM> to a system <NUM> to change the configuration <NUM> of the system <NUM>. The aircraft maintenance system <NUM> updates data in the memory device(s) <NUM> based on the input. In a particular example, the state data <NUM>, the historical maintenance data <NUM>, the checklist item status <NUM>, or a combination thereof, are updated based on the input.

After receiving the input, the aircraft maintenance system <NUM> can generate a second checklist display including a second set of incomplete checklist items that is different from the first set of incomplete checklist items. For example, the checklist display <NUM> can be updated to identify a new task. The second checklist display is generated based on the fault code data <NUM>, the fault context data <NUM>, the updated state data <NUM>, and the historical maintenance data <NUM>.

In some situations, the tasks to be performed are dynamically selected (e.g., by the processor(s) <NUM>) to generate a checklist display, and the list of tasks is static after this initial selection. In such situation, a set of incomplete checklist items (e.g., the second set of incomplete checklist items) presented in a subsequent checklist display (e.g., the second checklist display) includes each checklist item of the prior set of incomplete checklist items except the one or more checklist items indicated as complete. In other situations, the list of tasks to be performed is dynamically updated occasionally (e.g., by the processor(s) <NUM>) while the checklist is being performed, such as when additional information becomes available or after results of particular tasks or checks are known. In such situations, the subsequent set of incomplete checklist items includes one or more checklist items that were not present in the prior set of incomplete checklist items. When a subsequent checklist display is generated, one or more checklist items of the prior set of incomplete checklist items can be automatically indicated as complete based on the input received from the systems <NUM>, the controls <NUM>, the sensors <NUM>, or the health monitoring system <NUM>.

In a particular implementation, after updating the historical maintenance data <NUM> based on maintenance that cleared the fault condition on the aircraft <NUM> or on another aircraft, the aircraft maintenance system <NUM> may obtain additional fault code data (e.g., second fault code data or subsequent fault code data) corresponding to a new fault condition and additional fault context data (e.g., second fault context data or subsequent fault code data) associated with the new fault condition. In response to determining that the additional fault code data matches (e.g., is identical to or similar to based on a comparison criterion) the prior fault code data and the additional fault context data matches (e.g., is identical to or similar to based on a comparison criterion) the prior fault context data, the aircraft maintenance system <NUM> generates a new checklist display (e.g., a third checklist display) including a set of incomplete checklist items (e.g., a third set of incomplete checklist items). The set of incomplete checklist items presented in the new checklist display is different from the set of incomplete checklist items presented in prior checklist displays (e.g., the first and second sets). For example, the aircraft maintenance system <NUM> selects the tasks to be performed, the order that the tasks are to be performed, or both, based on the updated historical maintenance data <NUM> to cause a task or tasks that resolved the prior fault condition to be performed earlier in the fault isolation process with the expectation that the task(s) that resolved the prior fault condition are likely to also resolve the current fault condition.

Thus, the aircraft maintenance system <NUM> provides an improved technical solution to the technical problem of aircraft fault isolation. For example, by updating the historical maintenance data <NUM> with information indicating which tasks resolved each complaint and using the updated historical maintenance data <NUM> to sequence tasks performed during subsequent maintenance activities, the aircraft maintenance system <NUM> generates checklists displays that are sorted in a manner that reduces the time needed to isolate and resolve a fault condition onboard the aircraft <NUM>.

<FIG> illustrate examples of checklist displays <NUM> including a first checklist display 118A in <FIG>, a second checklist display 118B in <FIG>, and a third checklist display 118C in <FIG>. The example checklist displays <NUM> in <FIG> are merely intended to illustrate particular examples of the disclosure. In some implementations, one or more features of the checklist displays <NUM> illustrated in <FIG> are omitted. In other implementations, the checklist displays <NUM> include additional features that are not shown in <FIG>.

In <FIG>, each checklist display <NUM> includes information <NUM>, <NUM> descriptive of a fault condition. In <FIG>, the information <NUM>, <NUM> includes a maintenance message (e.g., Maintenance Message _1), which provides a text description related to a fault condition. The information <NUM>, <NUM> also includes fault code data <NUM> (e.g., FAULT CODE DATA_1 or FAULT CODE DATA_2), fault context data <NUM> (e.g., CONTEXT DATA_1 or CONTEXT DATA_2), and state data <NUM> (e.g., STATE DATA_1 and STATE DATA_2). In some implementations, the information <NUM>, <NUM> also includes a descriptor of the system <NUM> associated with or affected by the fault condition. In <FIG>, each checklist display <NUM> also includes a plurality of checklist items associated with a fault isolation path <NUM>, <NUM>, <NUM> or a fault isolation process. Each fault isolation path <NUM>, <NUM>, <NUM> lists, as checklists items, an ordered sequence of tasks to be performed. As explained above, the sequence of the tasks in the checklist display <NUM> is based on at least the fault code data <NUM>, the fault context data <NUM>, and the historical maintenance data <NUM>.

In <FIG>, the first checklist display 118A includes one or more completed checklist items <NUM>, which are associated with check marks in the first checklist display 118A. Each completed checklist item <NUM> is associated with a checklist item status <NUM> indicating that the checklist item is complete. Additionally, some of the completed checklist items <NUM> are associated with state data <NUM> indicating that an aircraft state or configuration that is a result of performing a task associated with the completed checklist item <NUM>. For example, in <FIG>, a completed checklist item <NUM> indicates that a FIM TASK_1 was performed. In this example, FIM TASK_1 is a function check, which was passed, and the state data <NUM> may therefore include a field or data element indicated that the function check associated with FIM TASK_1 was passed. As another example, in <FIG>, a completed checklist item <NUM> indicates that a maintenance safety check was performed. In some implementations, the maintenance safety check can include configuring particular systems <NUM> or controls <NUM> is a safe state (e.g., turning off electrical systems). In such implementations, performing the maintenance safety check can result in a particular configuration <NUM> of a system <NUM> or a particular configuration <NUM> of a control <NUM>, and the configuration <NUM>, <NUM> can be detected via signals or data communicated via the aircraft data bus(es) <NUM>. In such implementations, the signals or data are used to update the state data <NUM> such that in a subsequent checklist display, such as the second checklist display 118B, the maintenance safety check can automatically be indicated as complete without user input.

In <FIG>, the first checklist display 118A also includes one or more incomplete checklist items <NUM>, which are not associated with check marks in the first checklist display 118A. In <FIG>, a particular one of the incomplete checklist items is highlighted <NUM> or otherwise displayed in a visually distinct manner to indicate that the particular incomplete checklist item describes the next task to be performed in the sequence of tasks.

Differences between the checklist display 118A of <FIG> and the checklist display 118C of <FIG> illustrate progression through a single FIM process over time. For example, in <FIG>, the next task to be performed is FIM Task_2. In <FIG>, the checklist display 118A indicates that FIM PATH_1 branches depending on the result of FIM Task_2. For example, the checklist display 118A indicates that Maintenance Task_1 is to be performed if FIM Task_2 fails. However, if FIM Task_2 passes, the next task to be performed is FIM Task_3. In <FIG>, the FIM Task_2 is indicated as complete and failed, and the next task to be performed is Maintenance Task_1.

Differences between the checklist display 118A of <FIG> and the checklist display 118B of <FIG> illustrate changes in the order of tasks that performed responsive to a fault condition over time (e.g., based on accumulation of historical maintenance data <NUM> and dynamical ordering tasks in the checklist display <NUM>). In some implementations, the FAULT CODE DATA_2 of <FIG> is the same as (i.e., is identical to) the FAULT CODE DATA_1 of <FIG>. In other implementations, the FAULT CODE DATA_2 of <FIG> is similar to (based on a comparison criterion) but not identical to the FAULT CODE DATA_1 of <FIG>. For example, the FAULT CODE DATA_1 and the FAULT CODE DATA_2 can both indicate faults in the same system <NUM> of the aircraft <NUM>. Likewise, in some implementations, the CONTEXT DATA_2 of <FIG> is the same as (i.e., is identical to) the CONTEXT DATA_1 of <FIG>, and in other implementations, the CONTEXT DATA_2 of <FIG> is similar to (based on a comparison criterion) but not identical to the CONTEXT DATA_1 of <FIG>. For example, the CONTEXT DATA_1 and the CONTEXT DATA_2 may both includes a sensor reading that falls within a particular range indicated by the comparison criterion. Further, in some implementations, the STATE DATA_2 of <FIG> is the same as (i.e., is identical to) the STATEDATA_1 of <FIG>, and in other implementations, the STATE DATA_2 of <FIG> is similar to (based on a comparison criterion) but not identical to the STATE DATA_1 of <FIG>. For example, a first subset of the systems <NUM> may have the same configuration <NUM> in the STATE DATA_1 and the STATE DATA_2 and the comparison criterion may indicate that sharing this configuration <NUM> indicates similarity for purposed of determine the checklist display <NUM>. Thus, although there may be differences in the fault code data <NUM>, the fault context data <NUM>, the state data <NUM>, or any combination thereof, between generation of the first checklist display 118A and the second checklist display 118B, the two checklist displays 118A, 118B relate to fault conditions that the aircraft maintenance system <NUM> considers match one another.

Following the sequence of tasks indicted by <FIG>, FIM Task_4 is to be performed after FIM Task_1, after FIM Task_2, and only if FIM Task_2 fails. However, in the sequence of tasks indicted by <FIG>, FIM Task_4 is to be performed before FIM Task_1, and FIM Task_1 is only performed if FIM Task_5 passes. This rearrangement of the sequence of tasks to be performed is based, at least in part, on the historical maintenance data <NUM>. For example, during a first maintenance operation (or a first set of maintenance operations) it may be the case that the fault condition associated with FAULT CODE DATA_1, CONTEXT DATA_1, and STATE DATA_1 is frequently resolved by performing FIM Task_4 and is rarely resolved by performing FIM Task_1. In this situation, the dynamic fault isolation instructions <NUM> dynamically reorder the sequence of tasks to schedule performance of FIM Task_4 before performance of FIM Task_1. One technical benefit of the dynamic fault isolation process rearranging the sequence of tasks in this manner is increased availability of the aircraft <NUM> because the dynamic reordering results in earlier performance of tasks that are likely to resolve the fault condition.

<FIG> is a flowchart of an example of a method <NUM> of dynamic fault isolation according to a particular implementation. The method <NUM> can be performed by the aircraft maintenance system <NUM> of <FIG> in response to receiving an indication that a fault condition has been detected. For example, the processor(s) <NUM> can execute the dynamic fault isolation instructions <NUM>, the update instructions <NUM>, or both, to perform various operations of the method <NUM>.

The method <NUM> includes, at <NUM>, obtaining selection data. Examples of selection data include the fault code data <NUM>, the fault context data <NUM>, the state data <NUM>, and the historical maintenance data <NUM>. The selection data can be obtained from the memory device(s) <NUM>, from the health monitoring system <NUM>, from the sensors <NUM>, from the data repository <NUM>, or combinations thereof.

The method <NUM> also includes, at <NUM>, selecting a procedure to be performed based on the selection data. The procedure includes a set of tasks to isolate or resolve a fault condition. Generally, the procedure is selected based on the fault code data as specified by the FIM <NUM>, and one procedure can refer to or incorporate other procedures. For example, a specific FIM procedure may include a fault isolation task that requires performance of a particular maintenance procedure that includes multiple maintenance tasks. Thus, procedures can be nested and can include branching paths.

In some implementations, selecting the procedure includes selecting an order of performance of a set of tasks. In such implementations, the order of performance or sequence of the tasks is selected such that tasks that are more likely to result in resolving the fault condition are scheduled to be performed before tasks that are less likely to resolve the fault condition. For example, the historical maintenance data <NUM> can be evaluated to determine which task or tasks have resolved similar fault conditions. In this context, a fault condition that occurred in a prior instance is considered similar to the present fault condition if the two fault conditions have the same or related fault codes, affect the same or related systems <NUM>, and occurred in similar contexts (e.g., the fault context data <NUM> matches fault context data associated with the prior instance within some specified similarity threshold or criterion).

The method <NUM> further includes, at <NUM>, selecting a task from the procedure and determining whether the task needs to be performed, at <NUM>. For example, the selected task (or each task) of the procedure can be evaluated based on the state data <NUM> to determine whether the task is needed. In some situations, one or more of the tasks may not need to be performed because the state data <NUM> indicates that an aircraft state to be achieved by performing the task is already present. To illustrate, if the task relates to adjusting the configuration <NUM> of a particular control (e.g., turning a knob to a specified setting), the method <NUM> determines, at <NUM>, whether that task is needed by determining whether the particular control <NUM> already has the target configuration <NUM> (e.g., is already turned to the specified setting).

If the task is not needed, at <NUM>, the method <NUM> selects another task, at <NUM>. If the task is needed, the method <NUM> determined whether the task is complete. For example, the task can be listed in a checklist display <NUM>, and the method <NUM> can determine that the task is complete when input is received indicating that the task is complete. In some circumstances, the input is user input indicating completion of the task. In other instances, the input is a signal or data from a system <NUM> of the aircraft <NUM> that indicates the configuration <NUM> of the system <NUM> or a change of the configuration <NUM> of the system <NUM>. For example, if the task is to deploy flaps of the aircraft <NUM>, the input can be a signal indicating that the flaps are deployed or a signal commanding deployment of the flaps. In still other instances, the input is a signal or data from a control <NUM> of the aircraft <NUM> that indicates the configuration <NUM> of the control <NUM> or a change of the configuration <NUM> of the control <NUM>. For example, if the task is to toggle a switch, the input can be a signal that is generated responsive to toggling the switch. In yet other instances, the input is a signal or data from a sensor <NUM> of the aircraft <NUM> that indicates a condition or change associated with performing the task. For example, if the task is to deploy flaps of the aircraft <NUM>, the input can be a signal from a flap position sensor indicating that the flaps are deployed.

When the task is complete, the method <NUM> includes, at <NUM>, updating the state. For example, the processor(s) <NUM> store new or update state data <NUM> responsive to determining that the task is complete. Additionally, or in the alternative, the processor(s) <NUM> update the checklist item status <NUM> of a checklist item associated with the task.

The method <NUM> also includes, at <NUM>, determining whether the fault is cleared (e.g., determining whether the fault condition is still present). For example, the processor(s) <NUM> may perform an automated function check to determine whether the fault is cleared. Alternatively, a user can initiate a function check to determine whether the fault is cleared. Although <FIG> illustrates determining whether the fault is cleared after each single task is performed, in other implementations, the method <NUM> can be arranged such that multiple tasks are performed between checks to determine whether the fault is cleared. For example, a function check to determine whether the fault is cleared can be performed automatically according to a schedule (e.g., periodically), in which case the determination of whether the fault is clear may sometimes come after a single task is performed and may at other times come after several tasks have been performed.

The method <NUM> includes, if the fault is cleared, saving FIM update data, at <NUM>. In some implementations, the FIM update data updates or modifies the FIM <NUM>. For example, the FIM update data may cause an order of tasks listed in the FIM <NUM> be changed. In other implementations, the FIM update data updates or modifies the historical maintenance data <NUM> to indicate which task or tasks were performed to clear the fault. In such implementations, the updated or modified historical maintenance data <NUM> is used to dynamically change the order of tasks in the FIM <NUM> when the method <NUM> is performed at some future time, such as when another aircraft experiences a similar fault condition.

In some implementations, the method <NUM> also includes, if the fault is not cleared, performing a dispatch check, at <NUM>. The dispatch check determines whether the fault prevents dispatch of the aircraft <NUM>. For example, if fault isolation tasks that have already been performed or the fault code data <NUM> narrows the fault down to a particular system <NUM> and the particular system <NUM> is listed in the MEL <NUM>, the dispatch check <NUM> indicates that aircraft <NUM> can be returned to service and maintenance to clear the fault can be deferred until a more convenient time. If the particular system <NUM> is not listed in the MEL <NUM> or a user determines not to defer maintenance, the method <NUM> continues by performing another iteration. In the example illustrated in <FIG>, the next iteration begins by obtaining selection data, at <NUM>; however, in other implementations, the next iteration begins by selecting a procedure, at <NUM>, based on previously obtained selection data or begins by selecting another task from the previously selected procedure, at <NUM>.

The various operations illustrated in <FIG> are performed in a different order in other implementations. For example, in some implementations, the dispatch check is performed before the procedure is selected, before the task is selected, or before the task is determined to be complete.

<FIG> is a flowchart of another example of a method <NUM> of dynamic fault isolation according to a particular implementation. The method <NUM> can be performed by the aircraft maintenance system <NUM> of <FIG>. For example, the processor(s) <NUM> can execute the dynamic fault isolation instructions <NUM>, the update instructions <NUM>, or both, to perform various operations of the method <NUM>.

The method <NUM> includes, at <NUM>, receiving fault code data via one or more aircraft data buses, where the fault code data identifies one or more fault conditions detected onboard an aircraft. For example, the aircraft maintenance system <NUM> receives the fault code data <NUM> from the health monitoring system <NUM>.

The method <NUM> also includes, at <NUM>, receiving fault context data via the one or more aircraft data buses, where fault context data indicates one or more conditions of the aircraft in a timeframe associated with the one or more fault conditions. For example, the aircraft maintenance system <NUM> receives the fault context data <NUM> from the systems <NUM>, the controls <NUM>, the sensors <NUM>, the health monitoring system <NUM>, or a combination thereof.

The method <NUM> further includes, at <NUM>, generating, by one or more processors, a first checklist display including a first set of incomplete checklist items, where the first checklist display is generated based on the fault code data, the fault context data, state data indicating a current state of the aircraft, and historical maintenance data. For example, the aircraft maintenance system <NUM> selects a FIM procedure to be performed based on the fault code data <NUM> and determines an order in which the tasks of the FIM procedure should be performed to most expediently resolve the fault condition. In this example, the tasks are order in a sequence from most likely to resolve the fault condition (based on historical maintenance data and how closely the fault context data matches prior fault context data) to least likely to resolve the fault condition. In some implementations, other factors can also be considered to determine the order of the tasks, such as time or parts available associated with each task. To illustrate, a task that can be performed very quickly but is less likely to resolve the fault may be scheduled ahead of a task that is more likely to resolve the fault but that requires much more time to perform. As another illustrative example, a task that is less likely to resolve the fault but does not require any parts or supplies may be scheduled ahead of a task that is more likely to resolve the fault but that requires expensive parts or supplies or difficult to obtain (e.g., long lead time) parts or supplies.

After the order of the tasks is determined, the first checklist display is generated and arranges the tasks in a sequence based on the determined order. The first checklist display is presented to a user via the display device(s) <NUM> to guide the user through performance of the various tasks. Initially, the first checklist display includes a list of incomplete checklist items, with each incomplete checklist item corresponding to a task that has not been performed. In some situations, the first checklist display can also initially list one or more complete checklist items. For example, if a particular checklist item instructs the user to change the configuration <NUM> of a control <NUM> to a target configuration and the aircraft maintenance system <NUM> is able to automatically determine (e.g., via signals on the aircraft data bus(es) <NUM>) that the control <NUM> is in the target configuration, the first checklist display may display the particular checklist item with an indication that the particular checklist item is completed.

The method <NUM> includes, at <NUM>, receiving, by the one or more processors, input indicating completion of one or more checklist items of the first set of incomplete checklist items. For example, the aircraft maintenance system <NUM> can receive user input or signals or data from the aircraft data bus(es) to indicate that a checklist item is complete.

The method <NUM> includes, at <NUM>, updating, by the one or more processors, the state data based on the input. For example, the aircraft maintenance system <NUM> updates the state data <NUM> based on the input. Additionally, or in the alternative, the one or more processors update the checklist item status <NUM>, the historical maintenance data <NUM>, or both, based on the input.

The method <NUM> includes, at <NUM>, generating, by the one or more processors, a second checklist display including a second set of incomplete checklist items. For example, the aircraft maintenance system <NUM> generates a subsequent checklist display, such as one of the checklist displays 118B or 118C. In this example, the subsequent checklist display may be generated based on the fault code data, the fault context data, the updated state data, and historical maintenance data, and the second set of incomplete checklist items may be different from the first set of incomplete checklist items.

<FIG> is a flowchart illustrating a life cycle of an aircraft that includes the aircraft maintenance system <NUM> of <FIG>. During pre-production, the exemplary life cycle <NUM> includes, at block <NUM>, specification and design of an aircraft, such as the aircraft <NUM> described with reference to <FIG>. During specification and design of the aircraft, the life cycle <NUM> may include specification and design of the aircraft maintenance system <NUM>. At block <NUM>, the life cycle <NUM> includes material procurement, which may include procuring materials for the aircraft maintenance system <NUM>.

During production, the life cycle <NUM> includes, at block <NUM>, component and subassembly manufacturing and, at block <NUM>, system integration of the aircraft. For example, the life cycle <NUM> may include component and subassembly manufacturing of the aircraft maintenance system <NUM> and system integration of the aircraft maintenance system <NUM>. At block <NUM>, the life cycle <NUM> includes certification and delivery of the aircraft and, at block <NUM>, placing the aircraft in service. Certification and delivery may include certification of the aircraft maintenance system <NUM> to place the aircraft maintenance system <NUM> in service. While in service by a customer, the aircraft may be scheduled for routine maintenance and service (which may also include modification, reconfiguration, refurbishment, and so on). At block <NUM>, the life cycle <NUM> includes performing maintenance and service on the aircraft, which may include performing maintenance and service on the aircraft maintenance system <NUM>.

Each of the processes of the life cycle <NUM> may be performed or carried out by a system integrator, a third party, and/or an operator (e.g., a customer). For the purposes of this description, a system integrator may include without limitation any number of aircraft manufacturers and major-system subcontractors; a third party may include without limitation any number of venders, subcontractors, and suppliers; and an operator may be an airline, leasing company, military entity, service organization, and so on.

Aspects of the disclosure can be described in the context of an example of a vehicle. A particular example of a vehicle is an aircraft <NUM> as shown in <FIG>. In the example of <FIG>, the aircraft <NUM> includes an airframe <NUM> with an interior <NUM> and the systems <NUM>. In the example illustrated in <FIG>, the systems <NUM> include a propulsion system <NUM>, an electrical system <NUM>, an environmental system <NUM>, a hydraulic system <NUM>, and the aircraft maintenance system <NUM>. Any number of other systems may be included.

<FIG> is a block diagram of a computing environment <NUM> including a computing device <NUM> configured to support aspects of computer-implemented methods and computer-executable program instructions (or code) according to the subject disclosure. For example, the computing device <NUM>, or portions thereof, is configured to execute instructions to initiate, perform, or control one or more operations described with reference to <FIG>. The example of <FIG> illustrates an implementation in which the aircraft maintenance system <NUM> is not integrated onboard the aircraft <NUM>. For example, the aircraft maintenance system <NUM> can be embodied in a computing device (e.g., a notebook computer or tablet computer) that is coupled to the aircraft <NUM> temporarily, such as to perform maintenance or fault isolation tasks.

The computing device <NUM> includes the one or more processor(s) <NUM>. The processor(s) <NUM> are configured to communicate with system memory <NUM>, one or more storage device(s) <NUM>, one or more input/output interface(s) <NUM>, the one or more communication interface(s) <NUM>, or any combination thereof. The system 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. The system memory <NUM> stores an operating system <NUM>, which may include a basic input/output system for booting the computing device <NUM> as well as a full operating system to enable the computing device <NUM> to interact with users, other programs, and other devices. The system memory <NUM> stores program data <NUM>, such as the fault code data <NUM>, the fault context data <NUM>, the state data <NUM>, the historical maintenance data <NUM>, the checklist item status <NUM>, or a combination thereof.

The system memory <NUM> includes one or more applications <NUM> (e.g., sets of instructions) executable by the processor(s) <NUM>. As an example, the one or more applications <NUM> include instructions executable by the processor(s) <NUM> to initiate, control, or perform one or more operations described with reference to <FIG>. To illustrate, the one or more applications processor(s) <NUM> include the dynamic fault isolation instructions <NUM> and the update instructions <NUM>.

The one or more storage device(s) <NUM> include nonvolatile storage devices, such as magnetic disks, optical disks, or flash memory devices. In a particular example, the storage device(s) <NUM> include both removable and non-removable memory devices. The storage device(s) <NUM> are configured to store an operating system, images of operating systems, applications (e.g., one or more of the applications <NUM>), and program data (e.g., the program data <NUM>). In some examples, the system memory <NUM>, the storage device(s) <NUM>, or both, include tangible computer-readable media. In some examples, one or more of the storage device(s) <NUM> are external to the computing device <NUM>.

The one or more input/output interface(s) <NUM> that enable the computing device <NUM> to communicate with one or more input/output device(s) <NUM> to facilitate user interaction. For example, the input/output interface(s) <NUM> can include a checklist display, a display interface, an input interface, or both. For example, the input/output interface(s) <NUM> is adapted to receive input from a user, to receive input from another computing device, or a combination thereof. In some implementations, the input/output interface(s) <NUM> conforms to one or more standard interface protocols, including serial interfaces (e.g., universal serial bus (USB) interfaces or Institute of Electrical and Electronics Engineers (IEEE) interface standards), parallel interfaces, display adapters, audio adapters, or custom interfaces ("IEEE" is a registered trademark of The Institute of Electrical and Electronics Engineers, Inc. of Piscataway, New Jersey). In some implementations, the input/output interface(s) <NUM> includes one or more user interface devices and displays, including some combination of buttons, keyboards, pointing devices, displays, speakers, microphones, touch screens, and other devices.

The processor(s) <NUM> are configured to communicate with device(s) or controller(s) <NUM> via the one or more communication interface(s) <NUM>. For example, the one or more communication interface(s) <NUM> can include a network interface. The device(s) or controller(s) <NUM> can include, for example, the data repository <NUM>.

In some implementations, a non-transitory, computer readable medium stores instructions that, when executed by one or more processors, cause the one or more processors to initiate, perform, or control operations to perform part or all of the functionality described above. For example, the instructions may be executable to implement one or more of the operations or methods of <FIG>. In some implementations, part or all of one or more of the operations or methods of <FIG> may be implemented by one or more processors (e.g., one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs)) executing instructions, by dedicated hardware circuitry, or any combination thereof.

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. Other implementations may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the teaching of 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.

Moreover, although specific examples have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar results may be substituted for the specific implementations shown, subject to the scope of protection that is defined by the appended claims. This disclosure is intended to include any and all subsequent adaptations or variations of various implementations. Combinations of the above implementations, and other implementations not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.

Claim 1:
An aircraft maintenance system (<NUM>) comprising:
one or more data bus interfaces (<NUM>) to receive fault code data (<NUM>) and fault context data (<NUM>) via one or more aircraft data buses (<NUM>), wherein the fault code data identifies one or more fault conditions detected onboard an aircraft (<NUM>) and the fault context data indicates one or more conditions of the aircraft in a timeframe associated with the one or more fault conditions;
one or more processors (<NUM>) coupled to the one or more data bus interfaces; and
one or more memory devices (<NUM>) accessible to the one or more processors, the one or more memory devices storing instructions (<NUM>) that are executable by the one or more processors to cause the one or more processors to:
generate a first checklist display (<NUM>) including a first set of incomplete checklist items, wherein the first checklist display is generated based on state data (<NUM>) indicating a current state of the aircraft, and one or more of the fault code data, the fault context data, and historical maintenance data (<NUM>);
receive input indicating completion of one or more checklist items of the first set of incomplete checklist items;
based on the input, update the state data to generate updated state data; and
generate a second checklist display including a second set of incomplete checklist items, wherein the second checklist display is generated based on the updated state data, and one or more of the fault code data, the fault context data, and the historical maintenance data, and wherein the second set of incomplete checklist items is different from the first set of incomplete checklist items.