Patent Description:
Aircraft maintenance involves performing various maintenance operations on an aircraft to ensure continued desired operation of the aircraft or aircraft component. The maintenance operations can include inspection, replacement, reworking inconsistencies in components, or other operations that maintain compliance with airworthiness directives and maintenance standards.

Aircraft maintenance is often performed on a scheduled basis. In some cases, unscheduled aircraft maintenance can occur when a particular component no longer performs as desired. Unscheduled aircraft maintenance can be challenging depending on deployment location of an aircraft and the availability of spare components in different operational regions. Current maintenance systems rely on reactionary maintenance schedules for unscheduled maintenance. For example, aircrafts such as rotorcraft may be essentially grounded while replacement components and repairs are requested, ordered, and then delivered to the location of the rotorcraft. This type of maintenance can increase the time that aircraft is out of service.

Patent document <CIT>, according to its abstract, states a method, apparatus, and system for managing a supplemental cooling unit. The process receives data for a supplemental cooling unit. The data comprises a pressure, a temperature, and a speed. The process generates a set of alerts based on the data for the supplemental cooling unit and a signature in the data.

Patent document <CIT>, according to its abstract, states systems, devices, and methods related to assets and asset operating conditions. In particular, examples involve defining and executing predictive models for outputting health metrics that estimate the operating health of an asset or a part thereof, analyzing health metrics to determine variables that are associated with high health metrics, and modifying the handling of abnormal-condition indicators in accordance with a prediction of a likely response to such abnormal-condition indicators, among other examples.

Patent document <CIT>, according to its abstract, states a predictive maintenance server that receives data from sensors of equipment. The server uses one or more machine learning models to assign an anomaly score. Responsive to the anomaly score exceeding a threshold value, the server may issue an alert. The machine learning model may be supervised or unsupervised. The machine learning model can use several sensor channels to predict the values of one or more vitals of the equipment and compare the predicted values to the actual measured values of the vitals. The server may assign an anomaly score based on the differences between the predicted values and the measured values. The machine learning model may be an autoencoder that generates a distribution of the measurement values to determine the likelihood of observing the actual measured values in a normal operation. The server may use a histogram approach to predict anomaly.

Patent document <CIT>, according to its abstract, states a computer system, computer-implemented method and computer program product for training a reinforcement learning model to provide operating instructions for thermal control of a blast furnace. A domain adaptation machine learning model generates a first domain invariant dataset from historical operating data obtained as multivariate time series and reflecting thermal states of respective blast furnaces of multiple domains. A transient model of a generic blast furnace process is used to generate artificial operating data as multivariate time series reflecting a thermal state of a generic blast furnace for a particular thermal control action. A generative deep learning network generates a second domain invariant dataset by transferring the features learned from the historical operating data to the artificial operating data. The reinforcement learning model determines a reward for the particular thermal control action in view of a given objective function by processing the combined first and second domain invariant datasets. Dependent on the reward, the second domain invariant data set is regenerated based on modified parameters, and repeating the determining of the reward to learn optimized operating instructions for optimized thermal control actions to be applied for respective operating states of one or more blast furnaces.

For example, it would be desirable to have a method and apparatus that overcome a technical problem with scheduling aircraft maintenance.

The present disclosure provides a method for managing a platform according to claim <NUM>, and a platform management system according to claim <NUM>.

An illustrative example of the present disclosure provides a method for managing a platform, not encompassed by the wording of the claims.

A computer system generates a domain invariant representation of historical metric values from historical sensor information for a set of metrics and historical maintenance events for a part. A bias caused by the historical maintenance events is reduced in the domain invariant representation. The computer system trains a counterfactual machine learning model using the domain invariant representation. The computer system determines maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the counterfactual machine learning model trained with the domain invariant representation. The computer system selects a maintenance threshold from the maintenance thresholds meeting an objective, wherein the maintenance threshold is used to determine a maintenance action for the part.

Another illustrative example of the present disclosure provides a method for managing a platform, not encompassed by the wording of the claims.

A computer system generates a training dataset comprising historical metric values from historical sensor information for a set of metrics and historical maintenance events for a part. The computer system trains a machine learning model using the training dataset. The computer system determines maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the machine learning model trained with the training dataset. The computer system selects a maintenance threshold from the maintenance thresholds meeting an objective, wherein the maintenance threshold is used to determine when a maintenance action is needed for the part.

Yet another illustrative example of the present disclosure provides a platform management system, not encompassed by the wording of the claims, comprising a computer system and a platform manager in the computer system. The platform manager is configured to generate a domain invariant representation of historical metric values from historical sensor information for a set of metrics and historical maintenance events for a part, wherein a bias caused by the historical maintenance events is reduced in the domain invariant representation. The platform manager is configured to train a counterfactual machine learning model using the domain invariant representation. The platform manager is configured to determine maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the counterfactual machine learning model trained with the domain invariant representation. The platform manager is configured to select a maintenance threshold from the maintenance thresholds meeting an objective. The maintenance threshold is used to determine a maintenance action for the part.

Still another illustrative example of the present disclosure provides a platform management system, not encompassed by the wording of the claims, comprising a computer system and a platform manager in the computer system. The platform manager is configured to generate a training dataset comprising historical metric values from historical sensor information for a set of metrics and historical maintenance events for a part. The platform manager is configured to train a machine learning model using the training dataset. The platform manager is configured to determine maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the machine learning model trained with the training dataset. The platform manager is configured to select a maintenance threshold from the maintenance thresholds meeting an objective. The maintenance threshold is used to determine when a maintenance action is needed for the part.

The illustrative embodiments recognize and take into account one or more different considerations as described herein. The illustrative embodiments recognize and take into account one or more different considerations. For example, the illustrative embodiments recognize and take into account that maintenance for aircraft or other platforms can be easier to manage having knowledge of impending changes in part performance that result in undesired aircraft performance. For example, the illustrative embodiments recognize and take into account that the undesired aircraft performance may be, for example, reduction in fuel efficiency, flight envelopes, maximum altitude, or aircraft speed.

The illustrative embodiments recognize and take into account that accurately knowing when maintenance is needed for different parts and aircraft is extremely useful. For example, knowing when maintenance is needed can enable procuring parts ahead of time and can enable allocation of resources for maintenance. Those embodiments recognize and take into account that with currently used scheduling of maintenance, parts may have undesired performance before maintenance occurs. This undesired performance can include at least one of part failure or out of tolerance part performance. Examples of performance out of part performance tolerance can include at least one of an operating temperature, pressure, a fuel efficiency, revolutions per minute, actuator speed, or other parameter that may have a value that is out of a range for desired performance.

As used herein, the phrase "at least one of," when used with a list of items, means different combinations of one or more of the listed items can be used, and only one of each item in the list may be needed. In other words, "at least one of" means any combination of items and number of items may be used from the list, but not all of the items in the list are required. The item can be a particular object, a thing, or a category.

Current systems for prognostic and diagnostics of aircraft do not use models or do not incorporate maintenance events into modeling. As result, these current systems have limited ability to provide insight into decision-making regarding maintenance for aircraft. Thus, illustrative embodiments provide a method, apparatus, system, and computer program product for determining maintenance for aircraft and other platforms that utilizes models that take into account maintenance events. One or more illustrative examples can predict the future state of the model for both when a maintenance event occurs and when a maintenance event does not occur. In the illustrative example, these models can be used to identify thresholds for performing maintenance. In the illustrative examples, models can take the form of counterfactual machine learning models.

In one illustrative example, sensor data for a set of metrics for a part in a platform and historical maintenance events for the part is received from a sensor system for the platform. A computer system generates a domain invariant representation of metric values for the set of metrics and the historical maintenance events. A bias caused by the historical maintenance events is reduced in the domain invariant representation. The computer system trains a counterfactual machine learning model using the domain invariant representation. The computer system determines maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the counterfactual machine learning model trained with the domain invariant representation. The computer system selects a maintenance threshold from the maintenance thresholds meeting an objective while avoiding part anomalies. The maintenance threshold is used to determine a maintenance action for the part.

In illustrative example, a "set of" as used with reference items means one or more items. For example, a set of metrics is one or more of the metrics.

With reference now to the figures and, in particular, with reference to <FIG>, a pictorial representation of a network of data processing systems is depicted in which illustrative embodiments can be implemented. Network data processing system <NUM> is a network of computers in which the illustrative embodiments may be implemented. Network data processing system <NUM> contains network <NUM>, which is the medium used to provide communications links between various devices and computers connected together within network data processing system <NUM>. Network <NUM> may include connections, such as wire, wireless communication links, or fiber optic cables.

In the depicted example, server computer <NUM> and server computer <NUM> connect to network <NUM> along with storage unit <NUM>. In addition, client devices <NUM> connect to network <NUM>. As depicted, client devices <NUM> include client computer <NUM> and client computer <NUM>. Client devices <NUM> can be, for example, computers, workstations, or network computers. In the depicted example, server computer <NUM> provides information, such as boot files, operating system images, and applications to client devices <NUM>.

Further, client devices <NUM> can also include other types of client devices such as surface ship <NUM>, mobile phone <NUM>, rotorcraft <NUM>, and smart glasses <NUM>. In this illustrative example, server computer <NUM>, server computer <NUM>, storage unit <NUM>, and client devices <NUM> are network devices that connect to network <NUM> in which network <NUM> is the communications media for these network devices. Some or all of client devices <NUM> may form an Internet of things (IoT) in which these physical devices can connect to network <NUM> and exchange information with each other over network <NUM>.

Client devices <NUM> are clients to server computer <NUM> in this example. Network data processing system <NUM> may include additional server computers, client computers, and other devices not shown. Client devices <NUM> connect to network <NUM> utilizing at least one of wired, optical fiber, or wireless connections.

Program code located in network data processing system <NUM> can be stored on a computer-recordable storage medium and downloaded to a data processing system or other device for use. For example, program code can be stored on a computer-recordable storage medium on server computer <NUM> and downloaded to client devices <NUM> over network <NUM> for use on client devices <NUM>.

In the depicted example, network data processing system <NUM> is the Internet with network <NUM> representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of thousands of commercial, governmental, educational, and other computer systems that route data and messages. Of course, network data processing system <NUM> also may be implemented using a number of different types of networks. For example, network <NUM> can be comprised of at least one of the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN). <FIG> is intended as an example, and not as an architectural limitation for the different illustrative embodiments.

As used herein, "a number of" when used with reference to items, means one or more items. For example, "a number of different types of networks" is one or more different types of networks.

In this illustrative example, management of maintenance for client devices <NUM> such as surface ship <NUM> and rotorcraft <NUM> can be performed by platform manager <NUM> using counterfactual machine learning models <NUM>. The management of maintenance by platform manager <NUM> includes at least one of identifying needed maintenance, scheduling maintenance, ordering components, coordinating resource allocation, or other operations performed to manage maintenance for at least one of surface ship <NUM> or rotorcraft <NUM>.

In this illustrative example, platform manager <NUM> can train counterfactual machine learning models <NUM> using domain invariant representation <NUM> of historical sensor information <NUM> and historical maintenance events <NUM> for a part in rotorcraft <NUM>. With this invariant representation of historical information for rotorcraft <NUM>, platform manager <NUM> can train a counterfactual machine learning model in counterfactual machine learning models <NUM> to predict sensor information and maintenance events for rotorcraft <NUM>. In other words, a counterfactual machine learning model can be trained to make predictions of sensor data and maintenance events for rotorcraft <NUM>.

In this illustrative example, these predictions can be used to identify a set of thresholds <NUM> for rotorcraft <NUM> for performing maintenance on the part for rotorcraft <NUM> with respect to sensor data for the part generated for the part. With the set of thresholds <NUM>, maintenance can be initiated for the part when the set of thresholds <NUM> is exceeded by the sensor data generated by rotorcraft <NUM>. As result, maintenance can be performed in a manner that reduces undesired part performance more accurately than using scheduled maintenance plans. Further, by using the set of thresholds <NUM>, the expense for performing potentially unneeded maintenance on a part can be avoided.

This type of training of counterfactual machine learning models <NUM> to determine thresholds <NUM> can be performed for any number of parts in rotorcraft <NUM>. As another example, this type of determination of thresholds <NUM> can also be performed for other vehicles such as surface ship <NUM>.

Although the illustrative example in <FIG> describes the management of client devices <NUM> such as surface ship <NUM> and rotorcraft <NUM>, other types of client devices <NUM> can also be managed. For example, client devices <NUM> can also include a spacecraft, a building, or other suitable types of platforms for which maintenance can be managed. In the illustrative examples, this maintenance can also be extended to platforms in the form of data processing systems such as client computer <NUM>, client computer <NUM>, and smart glasses <NUM>.

With reference now to <FIG>, an illustration a block diagram of a platform maintenance environment is depicted in accordance with an illustrative embodiment. In this illustrative example, platform maintenance environment <NUM> includes components that can be implemented in hardware such as the hardware shown in network data processing system <NUM> in <FIG>.

As depicted, platform management system <NUM> can manage platform <NUM>. This management can include, for example, managing maintenance for platform <NUM>. In this illustrative example, platform <NUM> take the form of aircraft <NUM>. Platform <NUM> can take a number of different forms in addition to aircraft <NUM>. For example, platform <NUM> can be selected from a group comprising a mobile platform, a stationary platform, a land-based structure, an aquatic-based structure, a space-based structure, a commercial aircraft, a rotorcraft, a tilt-rotor aircraft, a tilt wing aircraft, a vertical takeoff and landing aircraft, an electrical vertical takeoff and landing vehicle, a personal air vehicle, a surface ship, a tank, a personnel carrier, a train, a spacecraft, a space station, a satellite, a submarine, an automobile, a power plant, a bridge, a dam, a house, a manufacturing facility, a building, and other types of platforms.

In this illustrative example, platform management system <NUM> is comprised of a number of different components. As depicted, platform management system <NUM> comprises computer system <NUM> and platform manager <NUM>. Platform manager <NUM> is located in computer system <NUM>.

Platform manager <NUM> can be implemented in software, hardware, firmware, or a combination thereof. When software is used, the operations performed by platform manager <NUM> can be implemented in program code configured to run on hardware, such as a processor unit. When firmware is used, the operations performed by platform manager <NUM> can be implemented in program code and data and stored in persistent memory to run on a processor unit. When hardware is employed, the hardware can include circuits that operate to perform the operations in platform manager <NUM>.

In the illustrative examples, the hardware can take a form selected from at least one of a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware configured to perform a number of operations. With a programmable logic device, the device can be configured to perform the number of operations. The device can be reconfigured at a later time or can be permanently configured to perform the number of operations. Programmable logic devices include, for example, a programmable logic array, a programmable array logic, a field programmable logic array, a field programmable gate array, and other suitable hardware devices. Additionally, the processes can be implemented in organic components integrated with inorganic components and can be comprised entirely of organic components excluding a human being. For example, the processes can be implemented as circuits in organic semiconductors.

Computer system <NUM> is a physical hardware system and includes one or more data processing systems. When more than one data processing system is present in computer system <NUM>, those data processing systems are in communication with each other using a communications medium. The communications medium can be a network. The data processing systems can be selected from at least one of a computer, a server computer, a tablet computer, or some other suitable data processing system.

As depicted, computer system <NUM> includes a number of processor units <NUM> that are capable of executing program code <NUM> implementing processes in the illustrative examples. As used herein a processor unit in the number of processor units <NUM> is a hardware device and is comprised of hardware circuits such as those on an integrated circuit that respond and process instructions and program code that operate a computer. When a number of processor units <NUM> execute program code <NUM> for a process, the number of processor units <NUM> is one or more processor units that can be on the same computer or on different computers. In other words, the process can be distributed between processor units on the same or different computers in a computer system. Further, the number of processor units <NUM> can be of the same type or different type of processor units. For example, a number of processor units can be selected from at least one of a single core processor, a dual-core processor, a multi-processor core, a general-purpose central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), or some other type of processor unit.

As depicted, platform management system <NUM> can manage maintenance for part <NUM> in platform <NUM> using machine learning model <NUM>. In this illustrative example, part <NUM> can take a number of different forms. In the illustrative example, part <NUM> can be a single component, assembly, a system, or some suitable form. For example, part <NUM> can be a gearbox, a fairing, a landing gear assembly, a door, a skin panel, a display, a computer, an encoder, a sensor, a harness, an actuator, a fuel pump, and auxiliary power unit (APU), or some other type of part.

In this example, machine learning model <NUM> is counterfactual machine learning model <NUM>. Counterfactual machine learning model <NUM> is a machine learning model that can provide output in the form of a "what if" feedback form. For example, if an input data point is x' instead of x, then counterfactual machine learning model <NUM> generates output of y' instead of y. Counterfactual machine learning model <NUM> can be implemented using a neural network, a recurrent neural network, a long short-term memory neural network, a gate recurrent unit neural network, convolutional recurrent neural network (CRN), and a Bayesian network. Counterfactual machine learning model <NUM> can be implemented using other types of machine leaning models that can predict a sequence of values.

In this illustrative example, platform manager <NUM> can receive sensor information <NUM> from sensor system <NUM> for platform <NUM>. Sensor information <NUM> comprises information for part <NUM> and can include information for other parts in platform <NUM>. In this example, sensor information <NUM> for part <NUM> can be any sensor information that is relevant to monitoring the health of part <NUM>.

In this illustrative example, sensor system <NUM> for platform <NUM> can generate sensor information <NUM> from monitoring platform <NUM>. Monitoring can include detecting events or changes in the environment for platform <NUM>. The changes in environment can be the environment around platform <NUM>, within platform <NUM>, or both around and within platform <NUM>.

Sensor system <NUM> is a hardware system and can include software. Sensors and other components in sensor system <NUM> can be located in platform <NUM>, exterior to platform <NUM>, or a combination thereof.

The sensors in sensor system <NUM> can include at least one of an airflow meter, a speed sensor, a voltage detector, accelerometer, an altimeter, a gyroscope, an inertial navigation system, an inertial reference unit, a yaw rate sensor, an incremental encoder, a linear encoder, a position sensor, a tilt sensor, a pitot tube, an angle of attack (AOA) sensor, a fuel sensor, a temperature sensors, a pressure sensor, or other suitable types of sensors that can be used to generate sensor information <NUM>. The other components in sensor system <NUM> can include processor units, computers, or other data processing devices that can process signals from sensors and generate sensor information <NUM>. As result, sensor information <NUM> can include values for parameters measured for part <NUM>, health information derived from measured parameters, and other suitable information that can be derived from sensor system <NUM> for part <NUM>. Sensor information <NUM> can be for a set of metrics <NUM> for part <NUM>. The set of metrics <NUM> comprises sensor information <NUM> that can be used to evaluate the health of part <NUM>.

In this illustrative example, sensor information <NUM> for metrics <NUM> can be stored over time by platform manager <NUM> to form historical sensor information <NUM> for metrics <NUM>. Further, platform manager <NUM> can also store historical maintenance events <NUM> for part <NUM>. In this illustrative example, historical maintenance events <NUM> can be maintenance events performed for part <NUM>. A maintenance event is an event in which maintenance action or operation is performed for a part. Historical maintenance events can include, for example, inspection, rework, replacement, or other types of maintenance actions for part <NUM>.

As depicted, platform manager <NUM> can generate domain invariant representation <NUM> of historical metric values <NUM> from historical sensor information <NUM> for the set of metrics <NUM> and historical maintenance events <NUM>. In this example, historical sensor information <NUM> can include other information in addition to historical values for metrics <NUM> of interest. For example, a set of metrics <NUM> can be a subset of metrics <NUM>.

In this illustrative example, bias <NUM> caused by historical maintenance events <NUM> can be reduced in domain invariant representation <NUM>. Bias <NUM> can occur because it may be unclear whether historical maintenance events <NUM> caused changes to historical metric values <NUM> and historical sensor information <NUM> for a set of metrics <NUM> for part <NUM>. For example, domain invariant representation <NUM> of historical metric values <NUM> and historical maintenance events <NUM> such that information loss with respect to historical metric values <NUM> is reduced and the information loss with respect to historical maintenance events <NUM> is increased resulting in reducing bias <NUM> caused by historical maintenance events <NUM> in domain invariant representation <NUM>.

In this illustrative example, the domain invariant representation <NUM> forms training dataset <NUM>. Platform manager <NUM> can train counterfactual machine learning model <NUM> using domain invariant representation <NUM>. In another illustrative example, training dataset <NUM> can comprise historical metric values <NUM> and historical maintenance events <NUM>. In this example, training dataset <NUM> does not include generating domain invariant representation <NUM> from historical metric values <NUM> and historical maintenance events <NUM>.

After training, platform manager <NUM> can determine maintenance thresholds <NUM> for metric <NUM> in the set of metrics <NUM> for performing maintenance on part <NUM> using counterfactual machine learning model <NUM> trained with the domain invariant representation <NUM>. In this illustrative example, platform manager <NUM> can select maintenance threshold <NUM> from maintenance thresholds <NUM> meeting objective <NUM>. In this example, maintenance thresholds <NUM> are values for when maintenance is triggered.

In this illustrative example, objective <NUM> can take a number of different forms. Objective <NUM> is selected from a group comprising increased life part, increased time between maintenance, reducing part failure between maintenance events, increased maintenance free operating period (MFOP), increased mean time between failures (MTBF), increased mission success rate if the platform <NUM> is an aircraft <NUM>, increased maintenance free operating period (MFOP), increased mean time between failures (MTBF), increased mission success rate if the platform <NUM> is an aircraft <NUM>, and other suitable types of objectives. An additional objective <NUM> can be reduced maintenance expense.

In this depicted example, maintenance threshold <NUM> is used to determine when maintenance action <NUM> is needed for part <NUM>. In one illustrative example, platform manager <NUM> can monitor metric <NUM> for part <NUM> in platform <NUM>. Monitoring of metric <NUM> can be performed by receiving sensor information <NUM> and comparing metric <NUM> in or derived from sensor information <NUM> for to maintenance threshold <NUM> to determine whether maintenance action <NUM> is needed. Platform manager can initiate maintenance action <NUM> for part <NUM> when metric <NUM> crosses maintenance threshold <NUM>. Metric <NUM> can cross maintenance threshold <NUM> by being greater than or less than maintenance threshold <NUM>. In another illustrative example, maintenance threshold <NUM> can be considered to be crossed when maintenance threshold <NUM> is reached.

In another illustrative example, platform manager <NUM> can send maintenance threshold <NUM> to platform <NUM>. With this example, computer system in platform <NUM> can make the comparison between sensor information <NUM> for metric <NUM> to maintenance threshold <NUM>.

With the use of maintenance threshold <NUM>, maintenance action <NUM> can be performed for part <NUM> based on when maintenance may be needed rather than on a fixed schedule. In other words, maintenance threshold <NUM> for metric <NUM> can indicate when metric <NUM> has changed sufficiently to require maintenance action <NUM> for part <NUM>. Maintenance action <NUM> for maintenance threshold <NUM> can take a number of different forms. For example, maintenance action <NUM> on part <NUM> can be part replacement, routine maintenance, extensive maintenance, or some other suitable maintenance action.

Further, maintenance threshold typically can be fine-tuned or refreshed periodically or continuously. For example, as sensor information <NUM> continues to be received from sensor system <NUM> for platform <NUM>, this additional sensor information can be used to further train counterfactual machine learning model <NUM>. With this additional training, refinements can be made in selecting maintenance threshold <NUM>. In other words, with continuing to receive sensor information <NUM>, a feedback loop can be generated to further train counterfactual machine learning model <NUM> and to refine or reselect maintenance threshold <NUM>.

The selection of maintenance threshold <NUM> for metric <NUM> can be performed for other metrics in set of metrics <NUM> for part <NUM>. Thresholds can be determined for metrics <NUM> for other parts within platform <NUM>.

With reference next to <FIG>, an illustration of metrics is depicted in accordance with an illustrative embodiment. In the illustrative examples, the same reference numeral may be used in more than one figure. This reuse of a reference numeral in different figures represents the same element in the different figures.

The set of metrics <NUM> can take a number of different forms. For example, the set of metrics <NUM> can be selected from at least one of a condition indicator, sensor data, raw sensor data, processed sensor data, or other types of data that can be used to determine platform health.

In this illustrative example, metrics <NUM> can take a number of different forms. As depicted, metrics <NUM> comprises at least one of condition indicator <NUM> or health indicator <NUM>.

Condition indicator <NUM> is a feature whose behavior changes in a predictable way for part <NUM> such as a component or multiple components that deteriorate or operate in different operational modes. The condition indicator can be used to distinguish abnormal operations from normal operations and can be used to predict remaining useful life of a set of components. In this illustrative example, condition indicator <NUM> can be obtained from processing sensor data and can be selected to indicate the presence of an abnormal condition of part <NUM> that can lead to a degradation in performance of part <NUM> such that part <NUM> may no longer operate at a desirable level. This desired level of performance can be based on tolerances set by various sources such as a manufacturer, regulation, regulatory agency, industry standard, or other suitable source that can be used to determine or specify tolerances for acceptable performance for part <NUM>.

For example, condition indicator <NUM> can be a measure of torsional vibrations in a driveshaft in a drivetrain in pulses per revolution. Another condition indicator can be accelerometer readings in inches per second for a hanger bearing in the drive train. In yet another example, condition indicator <NUM> can be accelerometer readings for a driveshaft in a drivetrain. These different types of readings can be used to as condition indicators for the state of a component such as a drivetrain.

As another example, for example, for a fixed axis gearbox, condition indicators be for features using data from sensors such as accelerometers. The condition indicators can be a sideband index (SI), a sideband level factor (SLF), a crest factor (CF), and an energy ratio (ER).

Health indicator <NUM> indicates the health of part <NUM>. Health indicator <NUM> can be based on one or more condition indicators. For example, health indicator <NUM> for part <NUM> in the form of a fixed axis gear box can be based on condition indicators such as the sideband index (SI), the sideband level factor (SLF), the crest factor (CF), and the energy ratio (ER).

Turning next to <FIG>, an illustration of a block diagram for creating a training dataset is depicted in accordance with an illustrative embodiment. In training counterfactual machine learning model <NUM>, platform manager <NUM> uses historical sensor information <NUM> and historical maintenance events <NUM> to generate domain invariant representation <NUM> to form training dataset <NUM>.

Platform manager <NUM> obtains historical metric values <NUM> from historical sensor information <NUM>. In this example, historical metric values <NUM> for set of metrics <NUM> takes the form of time series <NUM>. In other words, historical metric values <NUM> are data points obtained at successive time and can be with equal intervals between data points. Historical metric values <NUM> can be present in historical sensor information <NUM> or can be derived from historical sensor information <NUM>.

In this example, time series <NUM> can contain data points for multiple metrics in set of metrics <NUM>. In this example, although historical metric values <NUM> can be for multiple metrics, counterfactual machine learning model <NUM> predicts future metric values for a single metric.

In this example, platform manager <NUM> can determine whether sufficient data points are is present in time series <NUM>. If platform manager <NUM> determines that sufficient data points <NUM> are absent in time series <NUM> for historical metric values <NUM>, platform manager <NUM> can generate synthetic data <NUM> to add additional data points <NUM> to time series <NUM> for historical metric values <NUM>. For example, gaps in data can be present within time series <NUM>. The addition of additional data points <NUM> in synthetic data <NUM> can provide desired sample rate <NUM> for time series <NUM>.

When sufficient data is present in time series <NUM>, platform manager <NUM> can generate domain invariant representation <NUM> for training dataset <NUM>. In this example, domain invariant representation <NUM> can be generated using matrix <NUM> containing historical metric values <NUM> and vector <NUM> containing historical maintenance events <NUM>.

As depicted, matrix <NUM> contains time series <NUM> of historical metric values <NUM>. For example, matrix <NUM> can be a n x k matrix. With this implementation, n is the number of observations and k is the number of metrics <NUM>. In this example, each row corresponds to a metric in a set of k metrics. The row for a metric contains historical metric values for that metric. In other words, historical metric values <NUM> for a set of metrics <NUM> are stored in matrix <NUM> having in n historical metric values for k metrics.

In this illustrative example, historical metric values <NUM> in matrix <NUM> can be normalized. For example, historical metric values <NUM> can be normalized to be a value between from <NUM> to <NUM>.

In this illustrative example, historical maintenance events <NUM> are stored in vector <NUM>. Vector <NUM> contains maintenance events corresponding to the historical metric values <NUM> in matrix <NUM>. For example, the second entry for a maintenance event in vector <NUM> corresponds to the same time for the second values for historical metric values <NUM> in the rows for the different metrics. In other words, each column in matrix <NUM> corresponds to an entry in vector <NUM>.

In this illustrative example, each entry in vector <NUM> can take a number of different forms. For example, each entry can be a binary value in which a "<NUM>" indicates no maintenance event while a "<NUM>" indicates a maintenance event. As another example, each entry can contain an integer in which a "<NUM>" represents no maintenance event, a "<NUM>" represents a part replacement, and a "<NUM>" represents routine maintenance.

Domain invariant representation <NUM> is generated in an illustrative example to take into account situations where the correlation to metric values and maintenance events may not always correlate as much as desired. For example, although the entries in vector <NUM> for historical maintenance events <NUM> correlate to the matrix entries in the rows in matrix <NUM>, it may be unclear as to exactly when a historical maintenance event occurred with respect to the historic metric values <NUM>. Further, if more than one type of maintenance event can occur, it may be unclear what maintenance event did occur.

Additionally, other reasons may cause a historical metric value to change other than a historical maintenance event. For example, a change in location for a mission parameter can cause a change in a historical metric value.

Thus, historical metric values <NUM> and historical maintenance events <NUM> can be taken as input for creating domain invariant representation <NUM> for use as training dataset <NUM>.

In this illustrative example, domain invariant representation <NUM> can model the input space in a manner that minimizes information loss with respect to historical metric values <NUM> and maximizes information loss with respect to historical maintenance events <NUM>. This type of representation can remove bias <NUM> that can be inherently present in historical maintenance events <NUM>. In this example, the source domains are maintenance events and metric values. The use of these two source domains can be generalized to unseen target domains.

In this illustrative example, platform manager <NUM> can use various currently available domain generalization techniques for generating domain invariant representations of information from multiple sources. For example, domain generalization techniques that can be used to generate domain invariant representation <NUM> to include domain alignment, meta-learning, data augmentation, ensemble learning, and other suitable techniques for domain generalization that can be used to generate domain invariant representation <NUM> using historical maintenance events <NUM> and historical metric values <NUM>. Platform manager <NUM> can then train machine learning model <NUM> using domain invariant representation <NUM>.

Turning next to <FIG>, an illustration of a block diagram for using a counterfactual machine learning model to generate predicted metric values is depicted in accordance with an illustrative embodiment. After training, counterfactual machine learning model <NUM> can be used to predict metric values and maintenance events. These predictions can in turn be used to generate maintenance thresholds <NUM> from which maintenance threshold <NUM> can be selected for metric <NUM> for part <NUM>.

For example, platform manager <NUM> can generate input <NUM>. In this example, input <NUM> comprises input metric values <NUM> in metric vector <NUM> and input maintenance events <NUM> in maintenance vector <NUM>. In this illustrative example, input metric values <NUM> are selected as example of values that can be present in a particular example or scenario. Input maintenance events <NUM> and maintenance vector <NUM> are generated based on input metric values <NUM> and candidate threshold <NUM>. Thus, a maintenance event in maintenance vector <NUM> has value based on the value of the corresponding input metric value in metric vector <NUM>.

For example, input metric values <NUM> can be values for condition indicators and metric vector <NUM> can be as follows: [<NUM>,<NUM>,<NUM>,<NUM>,<NUM>,<NUM>]. In this example, candidate threshold <NUM> can be <NUM>. With this value for candidate threshold <NUM>, maintenance events <NUM> in maintenance vector <NUM> are [<NUM>,<NUM>,<NUM>,<NUM>,<NUM>,<NUM>]. In maintenance vector <NUM>, a "<NUM>" means no maintenance event has occurred while a "<NUM>" indicates a maintenance event such as routine maintenance is present. In this example, "<NUM>" is present in maintenance vector <NUM> when an input metric value in metric vector <NUM> is greater than <NUM>. In this example, correlation is present between condition indicators and maintenance events based on the selected threshold that is to be used.

Platform manager <NUM> sends input <NUM> into counterfactual machine learning model <NUM> which has been trained using domain invariant representation <NUM>. In response to receiving metric vector <NUM> and maintenance vector <NUM>, counterfactual machine learning model <NUM> generates output <NUM>. In this example, output <NUM> comprises predicted metric vector <NUM> containing predicted metric values <NUM> and predicted maintenance vector <NUM> containing predicted maintenance events <NUM>.

For example, metric vector <NUM> is a condition indicator (CI) vector for a condition indicator as follows [<NUM>,<NUM>,<NUM>,<NUM>,<NUM>,<NUM>]. In this example, maintenance vector <NUM> is a maintenance (Mx) vector as follows [<NUM>,<NUM>,<NUM>,<NUM>,<NUM>,<NUM>] for candidate threshold <NUM> being <NUM> in input <NUM>. In response to input <NUM>, predicted metric values <NUM> for predicted metric vector <NUM> and predicted maintenance events <NUM> in predicted maintenance vector <NUM> in output <NUM> can be made.

In this example, the prediction in output <NUM> is a sequence-to-sequence prediction for another sequence of condition indicators values and maintenance events. In this example, output <NUM> of the one step ahead prediction is used in the input of the two step ahead prediction along with the threshold <NUM>. The new values of predicted maintenance vector <NUM> are determined from the new values in predicted metric vector <NUM>. For example, the maintenance event is <NUM> if the value is below <NUM> and <NUM> if the value is <NUM> or above.

Predicted metric values <NUM> for predicted metric vector <NUM> and predicted maintenance events <NUM> in predicted maintenance vector <NUM> in output <NUM> can be the original input data with no predictions. In this example, condition indicator (CI) vector is [<NUM>,<NUM>,<NUM>,<NUM>] and Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>] for zero steps ahead.

At one step ahead, the final entry in each vector is a predicted value. The last entry in the Mx vector is <NUM> since the value in the CI vector is <NUM> < <NUM>. At one step ahead, CI vector is [<NUM>,<NUM>,<NUM>,<NUM>] and Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>]. For two steps ahead, the final two entries in each vector here are predicted values. The last entry in the Mx vector is <NUM> since the CI value is <NUM> < <NUM>. At two steps ahead CI vector is [<NUM>,<NUM>,<NUM>,<NUM>] and Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>].

At three steps ahead: The final three entries in each vector here are predicted values. The last entry in the Mx vector is <NUM> since the value in the CI vector is <NUM> < <NUM>. For three steps ahead, CI vector is [<NUM>,<NUM>,<NUM>,<NUM>] and Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>].

For four steps ahead, all four entries in each vector here are predicted values. The last entry in the Mx vector is <NUM> since the value in the CI vector is <NUM> > <NUM>. At four steps ahead, CI vector is [<NUM>,<NUM>,<NUM>,<NUM>] and Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>]. For five steps ahead, all four entries in each vector are predicted values. The last entry in the Mx vector is <NUM> since the CI value is <NUM> < <NUM>. For give steps ahead, the CI vector is [<NUM>,<NUM>,<NUM>,<NUM>] and the Mx vector is [<NUM>,<NUM>,<NUM>,<NUM>].

This process of generating input <NUM> and obtaining output <NUM> can be performed for each maintenance threshold in maintenance thresholds <NUM>. Output <NUM> for the different maintenance thresholds can then be analyzed to determine which candidate threshold best meets objective <NUM>. That candidate threshold is then selected as maintenance threshold <NUM> for metric <NUM> for part <NUM>.

With reference now to <FIG>, illustration of a block diagram for selecting a threshold for a metric is depicted in accordance with an illustrative embodiment. The generation of predicted metric values <NUM> for predicted metric vector <NUM> and predicted maintenance events <NUM> in predicted maintenance vector <NUM> can be in output <NUM> for different maintenance thresholds in maintenance thresholds <NUM>. The platform manager <NUM> can use output <NUM> to identify maintenance threshold <NUM> from maintenance thresholds <NUM> for metric <NUM> that meets objective <NUM>. In this illustrative example, maintenance threshold <NUM> can best meet objective <NUM> as compared to other maintenance thresholds in maintenance thresholds <NUM>.

Platform manager <NUM> can define objective function <NUM> for objective <NUM> that considers the counterfactual reality in output <NUM> in which a particular maintenance threshold is assigned.

For example, an objective can be to maximize the return time before another maintenance action is needed. With this example, objective function <NUM> can be function F(α) that is defined as the average time it takes for a metric to output a value greater than or equal to its value at the time of maintenance. In this example, in calculating F(α) instances in which the condition indicator rises above the maintenance threshold α is identified by platform manager <NUM>. Platform manager <NUM> also identifies the associated counterfactual prediction in predicted metric values <NUM> in which the metric value rises above the maintenance threshold α. Platform manager <NUM> then averages overall return times by the counterfactual predictions in output <NUM>.

In this example, metric <NUM> can be a condition indicator C selected for threshold evaluation. A maximal value M and a minimal value m for the condition indicator C is identified. The process initializes the maintenance thresholds α and α'.

Then, for the maintenance threshold α ranging from the minimal value m to the maximum value M with a granularity of ε if F(α) > F(α'), set α' <-- α. In this example, ε is the step for increasing α. In this example, the objective function F(α) utilizes the counterfactual predictions in output <NUM> for the condition indicator and associated maintenance events with the mean return time to identify the best maintenance threshold α.

With the selection of maintenance threshold <NUM>, sensor information <NUM> generated by sensor system <NUM> can be used to monitor part <NUM> in platform <NUM>. In particular, metric <NUM> can be monitored to determine whether metric value <NUM> crosses maintenance threshold <NUM>. When metric value <NUM> crosses maintenance threshold <NUM>, then maintenance action <NUM> can be initiated for part <NUM>.

In one illustrative example, one or more solutions are present that overcome a problem with reactionary or scheduled maintenance. As a result, one or more technical solutions can provide a technical effect of selecting maintenance thresholds for parts in a platform that reduces the cost of maintenance and reduces the time that a vehicle may be out of service. With the use of maintenance threshold <NUM> for metric <NUM> for part <NUM> in platform <NUM>, a reactionary maintenance schedule can be avoided in which platform <NUM> is essentially out of service while replacement parts and maintenance operations are requested, ordered, then delivered into the field. Further, the use of maintenance threshold <NUM> for part <NUM> with respect to metric <NUM> can provide more lead time for scheduling performance before and undesired anomaly occurs in part <NUM> that may cause part <NUM> to no longer work within the tolerance for desired performance.

Computer system <NUM> can be configured to perform at least one of the steps, operations, or actions described in the different illustrative examples using software, hardware, firmware, or a combination thereof. As a result, computer system <NUM> operates as a special purpose computer system in which platform manager <NUM> in computer system <NUM> enables selecting maintenance thresholds for parts in a manner that takes into account both historical metric values and historical maintenance events. Further, the illustrative examples also reduce a bias with respect to historical maintenance events to take into account that historical maintenance events may not cause changes in the historical metric values. In particular, platform manager <NUM> transforms computer system <NUM> into a special purpose computer system as compared to currently available general computer systems that do not have platform manager <NUM>.

The illustration of platform maintenance environment <NUM> in the different components in platform maintenance environment <NUM> in <FIG> is not meant to imply physical or architectural limitations to the manner in which an illustrative embodiment may be implemented. Other components in addition to or in place of the ones illustrated may be used. Some components may be unnecessary. Also, the blocks are presented to illustrate some functional components. One or more of these blocks may be combined, divided, or combined and divided into different blocks when implemented in an illustrative embodiment.

For example, although platform manager <NUM> a shown as a separate component outside of platform <NUM>, platform manager <NUM> can be implemented in a computer system in platform <NUM> in some illustrative examples.

In yet another illustrative example, not encompassed by the wording of the claims, machine learning model <NUM> may not take the form of counterfactual machine learning model <NUM>. Machine learning model <NUM> can be implemented using machine learning model architectures that enable predicting a series of events in the future in response to training based on historical information such as historical metric values and historical maintenance.

Further, the use of domain invariant representation <NUM> may not be needed in some illustrative examples when sufficient information about historical maintenance events <NUM>. The information can include when historical maintenance events occurred with a desired level of accuracy, determining whether other factors may cause changes in historical metric values <NUM> other than historical maintenance events, and other suitable commission.

As another example, historical sensor information <NUM> for the set of metrics <NUM> and historical maintenance events <NUM> can be received from a set of platforms in addition to or in place of platform <NUM>. With this example, the set of platforms can be selected to be of the same type or model, the same or similar configuration, use the same part type, or have other similarities that enable training machine learning model <NUM> to have a desired level of accuracy.

Turning now to <FIG>, an illustration of a flowchart of a process for managing maintenance for a vehicle is depicted in accordance with an illustrative embodiment. In this illustrative example, the process illustrated can be used to determine maintenance thresholds for an aircraft such as a rotorcraft. Further, the metrics used in this example are condition indicators.

In this example, input condition indicators and maintenance events <NUM>, data processing <NUM>, and domain invariant representation generator <NUM> represent blocks in which data representation <NUM> of information occurs for use in training a machine learning model. In this illustrative example, input condition indicators and maintenance events <NUM> is an input that comprises condition indicator values as a time series for each vehicle. Additionally, these condition indicators can include maintenance events. Maintenance events can be dates and descriptions of the types of maintenance. For example, the type of maintenance can be a part number for placement, a log entry for opportunistic maintenance, or other type of information. In this illustrative example, various condition indicators can be present input condition indicators and maintenance events <NUM>. The training, however, the machine learning model results in predicting one condition indicator in this example.

When input condition indicator values are received, these condition indicators may not have a fixed sampling rate. Although the condition indicator values for the condition indicators can be represented as a time series, the temporal distance between two adjacent data points the time series may not be fixed. Further, the total number of data points in each time series for condition indicator can also be smaller than desired. For example, only hundreds of data points may be present.

With these conditions, data processing <NUM> can generate synthetic data to expand the time series. The expansion can be made under the assumption that samples are normally distributed at each point in time.

In this illustrative example, data processing <NUM> can calculate a rolling mean and standard deviation and sample from the corresponding normal distribution to fill gaps in the time series a desired sample rate. This desired sample rate can be, for example, <NUM> flight hours for an aircraft. In other words, if an aircraft is actually operating for <NUM> flight hours, the number of data points in the time series corresponding to each condition indicator can be <NUM> with a sampled condition indicator value for each and <NUM> of flight hours.

Further, data processing <NUM> can also transform maintenance data into a vector. Each entry in this vector corresponds to the condition indicator value in the time series for the condition indicators. These time series or multiple condition indicators can be placed into a two-dimensional matrix X. This two-dimensional matrix can be a n x k matrix in which n columns are present four observations and k rows are present for the number of condition indicators in matrix X. With this example, the maintenance vector M can have a length of n. With this example, each entry corresponds to a column in matrix X. The matrix and the vector form treated data <NUM> which is sent to domain invariant representation generator <NUM>. In this example, the condition indicator values in matrix X and the maintenance events in vector M are used as inputs by domain invariant representation generator <NUM> to generate domain invariant representation <NUM>. In this example, domain invariant representation <NUM> models the input space in a manner that reduces information loss with respect to condition indicators while maximizing input loss with respect to maintenance events. This type of modeling in domain invariant representation <NUM> generated by domain invariant representation generator <NUM> reduces a bias that can be inherent in the history of maintenance events in vector M. This bias can come from various sources such as an in accuracy or uncertainty as to when a maintenance event occurred in time. As another example, bias can occur when the change in a condition indicator value in matrix X is caused by another source other than a maintenance event in vector M. For example, and environmental condition, and operating location, or a particular maneuver can cause a change in a condition indicator value.

Maintenance thresholds <NUM> includes maintenance simulation <NUM>, threshold optimization <NUM>, and threshold database <NUM>. These components are used to identify a maintenance threshold for use in determining whether a maintenance action is needed for a part in a vehicle.

As depicted, domain invariant representation <NUM> is sent to maintenance simulation <NUM>. This example, maintenance simulation <NUM> can be performed using a machine learning model such as a neural network. In one example, the neural network can be a recurrent neural network. Domain invariant representation <NUM> is training data to train the machine learning model to predict condition indicator values and maintenance events. In this example, these predictions can be counterfactual predictions when the recurrent neural network is a counterfactual recurrent neural network.

After training, model input <NUM> can be sent to the machine learning model to generate model outputs <NUM>. In this example, model input <NUM> comprises values for condition indicators and maintenance. In this illustrative example, the input can condition indicator matrix X for condition indicator values for one or more condition indicators and a maintenance vector M for maintenance events.

The condition indicator values can be selected for different changes in the performance of part. In this illustrative example, the maintenance events in maintenance vector M can be generated based on a maintenance threshold for a particular condition indicator. In other words, the maintenance threshold is selected, and the maintenance threshold is compared to condition indicator values in condition indicator matrix X for the particular condition indicator of interest. The values in maintenance vector M are selected based on whether the condition indicator values are above the maintenance threshold in this example.

In this depicted example, when the condition indicator value is greater than the maintenance threshold, then a maintenance action needed. In this manner, a simulation of maintenance events that have not actually occurred can be performed using the machine learning model having a counterfactual feature.

In this illustrative example, model input <NUM> can comprise matrices and vectors for a plurality of maintenance thresholds. In one illustrative example, the same condition indicator matrix X can be used with different maintenance vectors M reflecting different thresholds. In another illustrative example, the condition indicator matrices can also vary as the maintenance thresholds vary. As result, model output <NUM> comprises predicted outputs for condition indicator matrix X and maintenance vectors Ms.

As depicted, model output <NUM> is sent to threshold optimization <NUM>. Threshold optimization <NUM> analyzes the predictions in model output <NUM> to identify a threshold that best meets an objective. In one illustrative example, threshold optimization <NUM> can use the potential maintenance values and calculate an objective function over each potential maintenance threshold. The maintenance threshold that maximizes or best meets an objective can be selected as maintenance threshold for use in determining when maintenance actions needed for the part.

In this illustrative example, model output <NUM> from maintenance simulation <NUM> is used to analyze the counterfactual prediction for a particular threshold in model output <NUM>. As depicted, threshold optimization <NUM> can implement a process in pseudocode <NUM> selected maintenance threshold. As depicted, pseudocode <NUM>, a collection of covariant condition indicators for a part. The process then selects a condition indicator C from the collection. The process then finds the maximal value M and the minimum value m for the condition indicator from the predictions in model output <NUM>. The process then initializes a maintenance threshold α and a maintenance threshold α'. In this depicted example, α' is a value of α which maximizes the objective function. In the illustrative example, α' can also be referred to as α_* or α_max to emphasize that this variable corresponds to a maximum value.

Process then evaluates an objective function F(α) with α ranging from minimum value m to maximum value M for the condition indicator C with the granularity of ε, which is used to step through the different values of α using the predictions in model output <NUM>. In this example, if F(α) > F(α'), the process sets α' <-- α. This notation means that current value of α is stored in α'. In other words, the process set α equal to α' at this point in the process but this does not imply α and α'are always the same.

For example, the objective function F(α) can be a return time after maintenance is performed. When maintenance is performed at time t_0, the relevant signal y should decrease. For example, if y(t_0 - <NUM>) = <NUM> and after maintenance is performed, y(t_0) = <NUM>, then the signal y will first return to the original value at the lowest value of t > t_0 such that y(t) >= <NUM>. The return time is then t - t_0. For example, if maintenance is performed at <NUM> flight hours, y(<NUM>) = <NUM> and y(<NUM>) = <NUM>. Eventually y(<NUM>) = <NUM> again. In this example, the return time corresponding to the maintenance event at time <NUM> is <NUM>.

With this example, F(α) is defined as the average time it takes for the condition indicator C to output a value greater than or equal to condition indicator C's value at the time of maintenance. In calculating F(α) in this example, all instances in which the condition indicator C rises above α are identified in the counterfactual prediction in model output <NUM>.

The process averages overall return times given by the counterfactual predictions. In this illustrative example, the objective function can increase the time for another maintenance actions needed.

The identified maintenance threshold is then sent as maintenance threshold α <NUM> for storage in threshold database <NUM>. Threshold database <NUM> stores maintenance thresholds for different condition indicators for parts in one or more vehicles.

Next, real time maintenance recommendation <NUM> is used to determine when maintenance actions are needed. As depicted, real time maintenance recommendation <NUM> comprises real time input detection <NUM>, threshold comparator <NUM>, and maintenance recommendation <NUM>.

In this illustrative example, real time input detection <NUM> detects condition indicator values during the operation of the vehicle in real time. These condition indicator values can be received from the sensor system.

As depicted, condition indicator values <NUM> are sent to threshold comparator <NUM>. In this illustrative example, threshold comparator <NUM> sends query <NUM> to threshold database <NUM> to obtain current maintenance threshold <NUM> for a condition indicator of interest. In this illustrative example, current maintenance threshold <NUM> is compared to condition indicator values <NUM> to determine whether current maintenance threshold <NUM> has been crossed. If current maintenance threshold <NUM> has been crossed, threshold comparator <NUM> issues maintenance recommendation <NUM> for a maintenance action. Maintenance recommendation <NUM> is sent to at least one of a maintenance system, a human operator, the maintenance facility, or other suitable target for initiating a maintenance action.

Additionally, real time input detection <NUM> can also send update <NUM> for use as values for input condition indicators in input condition indicators and maintenance events <NUM>. In this manner, the new condition indicator values for condition indicators can be used for updating or additional training of the machine learning model.

Turning next to <FIG>, an illustration of a flowchart of a process for managing a platform is depicted in accordance with an illustrative embodiment. The process in <FIG> can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one of more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in platform manager <NUM> in computer system <NUM> in <FIG>.

The process begins by generating a domain invariant representation of historical metric values from historical sensor information for a set of metrics and historical maintenance events (operation <NUM>). In operation <NUM>, a bias caused by the historical maintenance events is reduced in the domain invariant representation.

The process trains a counterfactual machine learning model using the domain invariant representation (operation <NUM>). The process determines maintenance thresholds for a metric in the set of metrics for performing maintenance on a part using the counterfactual machine learning model trained with the domain invariant representation (operation <NUM>). The process selects a maintenance threshold from the maintenance thresholds meeting an objective (operation <NUM>). The process terminates thereafter. In operation <NUM>, the maintenance threshold is used to determine a maintenance action for the part.

With reference now to <FIG>, an illustration a flowchart of a process for monitoring a part is depicted in accordance with an illustrative embodiment. The operations in this figure can be used in the operations in process in <FIG>.

The process monitors monitoring the metric for the part in the platform (operation <NUM>). The process initiates a maintenance action for the part in response to metric crossing the maintenance threshold (operation <NUM>). The process terminates thereafter.

Turning to <FIG>, an illustration of a flowchart of a process for generating synthetic data is depicted in accordance with an illustrative embodiment. The operations in this figure can be used in the operations in process in <FIG>.

The process generates synthetic data to add additional data points to a time series for the historical metric values in response to insufficient data points being present in the historical metric values (operation <NUM>). The process terminates thereafter. In operation <NUM>, the additional data points provide a desired sample rate for the time series.

In <FIG>, an illustration of a flowchart of a process for selecting maintenance threshold is depicted in accordance with an illustrative embodiment. The process in this figure is an example of an implementation for operation <NUM> in <FIG>.

The process begins by selecting input metric values and input maintenance events for the maintenance thresholds to form an input (operation <NUM>). The process determines predicted metric values and predicted maintenance events with the counterfactual machine learning model in a computer system using the input metric values and the input maintenance values for the maintenance thresholds (operation <NUM>).

The process selects the maintenance threshold from the maintenance thresholds that best meets the objective (operation <NUM>). The process terminates thereafter. In operation <NUM>, the predicted metric values and predicted maintenance events generated for the different maintenance thresholds are analyzed to determine which maintenance threshold in the maintenance thresholds best meets the objective. In this illustrative example, the objective can take a number of different forms. Objective is selected from a group comprising increased life part, increased time between maintenance, increased maintenance-free operation period, and reducing part failure between maintenance events, and other suitable objectives. An additional objective can be reduced maintenance expense.

With reference now to <FIG>, an illustration a flowchart of a process for generating a domain invariant representation is depicted in accordance with an illustrative embodiment. The process in this figure is an example of an implementation for operation <NUM> in <FIG>.

The process generates the domain invariant representation of the metric values and the historical maintenance events such that information loss with respect to the set of historical metric values is reduced and information loss with respect to the historical maintenance events is increased resulting in reducing a bias caused by the historical maintenance events in the domain invariant representation (operation <NUM>). The process terminates thereafter.

Turning to <FIG>, an illustration of a flowchart of a process for managing a platform is depicted in accordance with an illustrative embodiment. The process in <FIG> can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one of more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in platform manager <NUM> in computer system <NUM> in <FIG>.

The process begins by generating a training dataset comprising historical metric values from historical sensor information for set of metrics and the historical maintenance events (operation <NUM>). The process trains a machine learning model using the training dataset (operation <NUM>).

The process determines maintenance thresholds for a metric in the set of metrics for performing maintenance on the part using the machine learning model trained with the training dataset (operation <NUM>). The process selects a maintenance threshold from the maintenance thresholds meeting an objective (operation <NUM>). The process terminates thereafter. The maintenance threshold is used to determine when a maintenance action is needed for the part.

The flowcharts and block diagrams in the different depicted embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatuses and methods in an illustrative embodiment. In this regard, each block in the flowcharts or block diagrams can represent at least one of a module, a segment, a function, or a portion of an operation or step. For example, one or more of the blocks can be implemented as program code, hardware, or a combination of the program code and hardware. When implemented in hardware, the hardware can, for example, take the form of integrated circuits that are manufactured or configured to perform one or more operations in the flowcharts or block diagrams. When implemented as a combination of program code and hardware, the implementation may take the form of firmware. Each block in the flowcharts or the block diagrams can be implemented using special purpose hardware systems that perform the different operations or combinations of special purpose hardware and program code run by the special purpose hardware.

In some alternative implementations of an illustrative embodiment, the function or functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. Also, other blocks may be added in addition to the illustrated blocks in a flowchart or block diagram.

Turning now to <FIG>, an illustration of a block diagram of a data processing system is depicted in accordance with an illustrative embodiment. Data processing system <NUM> can be used to implement server computer <NUM>, server computer <NUM>, client devices <NUM>, in <FIG>. Data processing system <NUM> can also be used to implement computer system <NUM> in <FIG>. In this illustrative example, data processing system <NUM> includes communications framework <NUM>, which provides communications between processor unit <NUM>, memory <NUM>, persistent storage <NUM>, communications unit <NUM>, input/output (I/O) unit <NUM>, and display <NUM>. In this example, communications framework <NUM> takes the form of a bus system.

Processor unit <NUM> serves to execute instructions for software that can be loaded into memory <NUM>. Processor unit <NUM> includes one or more processors. For example, processor unit <NUM> can be selected from at least one of a multicore processor, a central processing unit (CPU), a graphics processing unit (GPU), a physics processing unit (PPU), a digital signal processor (DSP), a network processor, or some other suitable type of processor. Further, processor unit <NUM> can may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit <NUM> can be a symmetric multi-processor system containing multiple processors of the same type on a single chip.

Memory <NUM> and persistent storage <NUM> are examples of storage devices <NUM>. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, at least one of data, program code in functional form, or other suitable information either on a temporary basis, a permanent basis, or both on a temporary basis and a permanent basis. Storage devices <NUM> may also be referred to as computer-readable storage devices in these illustrative examples. Memory <NUM>, in these examples, can be, for example, a random-access memory or any other suitable volatile or non-volatile storage device. Persistent storage <NUM> can take various forms, depending on the particular implementation.

For example, persistent storage <NUM> may contain one or more components or devices. For example, persistent storage <NUM> can be a hard drive, a solid-state drive (SSD), a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage <NUM> also can be removable. For example, a removable hard drive can be used for persistent storage <NUM>.

Communications unit <NUM>, in these illustrative examples, provides for communications with other data processing systems or devices. In these illustrative examples, communications unit <NUM> is a network interface card.

Input/output unit <NUM> allows for input and output of data with other devices that can be connected to data processing system <NUM>. For example, input/output unit <NUM> can provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, input/output unit <NUM> can send output to a printer. Display <NUM> provides a mechanism to display information to a user.

Instructions for at least one of the operating system, applications, or programs can be located in storage devices <NUM>, which are in communication with processor unit <NUM> through communications framework <NUM>. The processes of the different embodiments can be performed by processor unit <NUM> using computer-implemented instructions, which can be located in a memory, such as memory <NUM>.

These instructions are program instructions and are also referred to as program code, computer usable program code, or computer-readable program code that can be read and executed by a processor in processor unit <NUM>. The program code in the different embodiments can be embodied on different physical or computer-readable storage media, such as memory <NUM> or persistent storage <NUM>.

Program code <NUM> is located in a functional form on computer readable media <NUM> that is selectively removable and can be loaded onto or transferred to data processing system <NUM> for execution by processor unit <NUM>. Program code <NUM> and computer readable media <NUM> form computer program product <NUM> in these illustrative examples. In the illustrative example, computer readable media <NUM> is computer readable storage media <NUM>.

Computer-readable storage media <NUM> is a physical or tangible storage device used to store program code <NUM> rather than a media that propagates or transmits program code <NUM>. Computer readable storage media <NUM>, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Alternatively, program code <NUM> can be transferred to data processing system <NUM> using a computer-readable signal media. The computer-readable signal media are signals and can be, for example, a propagated data signal containing program code <NUM>. For example, the computer-readable signal media can be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals can be transmitted over connections, such as wireless connections, optical fiber cable, coaxial cable, a wire, or any other suitable type of connection.

Further, as used herein, "computer readable media <NUM>" can be singular or plural. For example, program code <NUM> can be located in computer readable media <NUM> in the form of a single storage device or system. In another example, program code <NUM> can be located in computer readable media <NUM> that is distributed in multiple data processing systems. In other words, some instructions in program code <NUM> can be located in one data processing system while other instructions in program code <NUM> can be located in one data processing system. For example, a portion of program code <NUM> can be located in computer readable media <NUM> in a server computer while another portion of program code <NUM> can be located in computer readable media <NUM> located in a set of client computers.

The different components illustrated for data processing system <NUM> are not meant to provide architectural limitations to the manner in which different embodiments can be implemented. In some illustrative examples, one or more of the components may be incorporated in or otherwise form a portion of, another component. For example, memory <NUM>, or portions thereof, can be incorporated in processor unit <NUM> in some illustrative examples. The different illustrative embodiments can be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system <NUM>. Other components shown in <FIG> can be varied from the illustrative examples shown. The different embodiments can be implemented using any hardware device or system capable of running program code <NUM>.

Illustrative embodiments of the disclosure may be described in the context of aircraft manufacturing and service method <NUM> as shown in <FIG> and aircraft <NUM> as shown in <FIG>. Turning first to <FIG>, an illustration of an aircraft manufacturing and service method is depicted in accordance with an illustrative embodiment. During pre-production, aircraft manufacturing and service method <NUM> may include specification and design <NUM> of aircraft <NUM> in <FIG> and material procurement <NUM>.

During production, component and subassembly manufacturing <NUM> and system integration <NUM> of aircraft <NUM> in <FIG> takes place. Thereafter, aircraft <NUM> in <FIG> can go through certification and delivery <NUM> in order to be placed in service <NUM>. While in service <NUM> by a customer, aircraft <NUM> in <FIG> is scheduled for routine maintenance and service <NUM>, which may include modification, reconfiguration, refurbishment, and other maintenance or service.

In the illustrative example, platform manager <NUM> in <FIG> and platform manager <NUM> in <FIG> can operate to manage maintenance for aircraft <NUM> during routine maintenance and service <NUM>. A machine learning model can be used to into account maintenance events in determining these maintenance thresholds for parts in aircraft <NUM>. Counterfactual forecasts can provide predictions for metrics and maintenance to select maintenance thresholds for performing maintenance actions on parts in aircraft <NUM>.

Each of the processes of aircraft manufacturing and service method <NUM> may be performed or carried out by a system integrator, a third party, an operator, or some combination thereof.

With reference now to <FIG>, an illustration of an aircraft is depicted in which an illustrative embodiment may be implemented. In this example, aircraft <NUM> is produced by aircraft manufacturing and service method <NUM> in <FIG> and may include airframe <NUM> with plurality of systems <NUM> and interior <NUM>. Examples of systems <NUM> include one or more of propulsion system <NUM>, electrical system <NUM>, hydraulic system <NUM>, and environmental system <NUM>. Any number of other systems may be included. Although an aerospace example is shown, different illustrative embodiments may be applied to other industries, such as the automotive industry.

Apparatuses and methods embodied herein may be employed during at least one of the stages of aircraft manufacturing and service method <NUM> in <FIG>.

In one illustrative example, components or subassemblies produced in component and subassembly manufacturing <NUM> in <FIG> can be fabricated or manufactured in a manner similar to components or subassemblies produced while aircraft <NUM> is in service <NUM> in <FIG>. As yet another example, one or more apparatus embodiments, method embodiments, or a combination thereof can be utilized during production stages, such as component and subassembly manufacturing <NUM> and system integration <NUM> in <FIG>. One or more apparatus embodiments, method embodiments, or a combination thereof may be utilized while aircraft <NUM> is in service <NUM>, during maintenance and service <NUM> in <FIG>, or both. The use of a number of the different illustrative embodiments may substantially expedite the assembly of aircraft <NUM>, reduce the cost of aircraft <NUM>, or both expedite the assembly of aircraft <NUM> and reduce the cost of aircraft <NUM>.

Thus, the use of maintenance thresholds selected based on predictions of metric values and maintenance events increase the accuracy in determining when maintenance is needed based on these maintenance thresholds. As a result, fleet managers and local maintenance personnel can procure replacement parts ahead of time. With these maintenance thresholds, the allocation of resources for maintenance can be scheduled especially with some locations that have limitations on maintenance resources. With the selection of these maintenance thresholds, a reaction maintenance schedule in which an aircraft or other vehicle is essentially grounded while replacements and repairs are requested, bordered, and then delivered can be avoided. With the use of maintenance thresholds, identifying impending needs for maintenance head of time in a manner that avoids undesired performance can allow for better scheduling amendments. The maintenance can include providing option of relocating of vehicle to a maintenance center having appropriate resources for maintenance as well as providing increased lead times for scheduling personnel in making part requests. In this manner, the use of these maintenance thresholds can reduce the burden performing maintenance in the field and reduce maintenance expenses. Further, with the use of maintenance thresholds, the occurrence of anomalies resulting in undesired part performance can also be reduced.

Claim 1:
A method for managing a platform (<NUM>), the method comprising:
generating (<NUM>), by a computer system (<NUM>), a domain invariant representation (<NUM>, <NUM>, <NUM>) of historical metric values (<NUM>) from historical sensor information (<NUM>, <NUM>) for a set of metrics (<NUM>) and historical maintenance events (<NUM>, <NUM>) for a part (<NUM>), wherein a bias (<NUM>) caused by the historical maintenance events (<NUM>, <NUM>) is reduced in the domain invariant representation (<NUM>, <NUM>, <NUM>);
training (<NUM>), by the computer system (<NUM>), a counterfactual machine learning model (<NUM>) using the domain invariant representation (<NUM>, <NUM>, <NUM>);
determining (<NUM>), by the computer system (<NUM>), maintenance thresholds (<NUM>, <NUM>) for a metric (<NUM>) in the set of metrics (<NUM>) for performing maintenance on the part (<NUM>) using the counterfactual machine learning model (<NUM>) trained with the domain invariant representation (<NUM>, <NUM>, <NUM>); and
selecting (<NUM>), by the computer system (<NUM>), a maintenance threshold (<NUM>) from the maintenance thresholds (<NUM>) meeting an objective (<NUM>), wherein the objective (<NUM>) is selected from a group comprising increased life part, increased time between maintenance, reducing part failure between maintenance events, increased maintenance free operating period, increased mean time between failures, and increased mission success rate if the platform (<NUM>) is an aircraft (<NUM>), wherein the maintenance threshold (<NUM>) is used to determine a maintenance action (<NUM>) for the part (<NUM>).