Training Machine Learning Models with Hardware-in-the-Loop Simulation

JP7629959B2Active Publication Date: 2025-02-14DISNEY ENTERPRISES INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023127584
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-09-01
Filing Date
2023-08-04
Publication Date
2025-02-14
Estimated Expiration
2043-08-04

Smart Images

  • Figure 0007629959000001
    Figure 0007629959000001
  • Figure 0007629959000002
    Figure 0007629959000002
  • Figure 0007629959000003
    Figure 0007629959000003
Patent Text Reader

Abstract

To provide a software simulation system to generate emulated sensor data, and a test control system to generate control system output based on the sensor data.SOLUTION: A method for training a control system model includes: introducing a simulated fault into a software simulation of a physical system; generating emulated sensor data based on the simulated fault; obtaining output data from a test control system provided with the emulated sensor data; tagging the output data with the simulated fault to create training data; and utilizing the training data to train a control model to be used with the control system. The method optionally includes evaluating performance of the control model utilizing additional data and a software simulation system.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is related to U.S. Patent No. 11,010,510, filed April 30, 2019, entitled "SOFT-REAL-TIME HUB PROVIDING DATA TRANSPORT FOR PROCESSOR-IN-LOOP (PIL) SIMULATIONS," and U.S. Patent No. 11,366,945, filed May 3, 2021, entitled "SOFT-REAL-TIME HUB PROVIDING DATA TRANSPORT FOR PROCESSOR-IN-LOOP (PIL) SIMULATIONS," the disclosures of which are hereby incorporated by reference in their entireties for all purposes. [Background technology]

[0002] Control systems are commonly used to control complex mechanical and electromechanical systems. For example, theme park attractions such as roller coasters and rides can be controlled by control systems, including monitoring and controlling the operation of the ride's vehicles, as well as other aspects of the attraction. Various control systems may also be used to assist in the repair and / or maintenance of such systems by identifying components in such systems that require repair or replacement. However, control systems often evaluate the current state of the mechanical or electromechanical system and are unable to identify component malfunctions before they occur or before replacement is required to maintain proper operation of the system. Furthermore, such control systems may be unable to identify the occurrence of rare events within the system (e.g., external physical conditions, rare failures of system components, etc.).

[0003] Control systems including software controllers are often used to control and monitor complex mechanical systems. For example, an amusement park attraction may include a complex ride system controlled by a control system. Such an attraction may also include show systems along the length of the ride system and / or around the path of travel of the ride vehicle, which may be controlled and monitored by the control system to ensure that the show provided by the show system is properly presented. Other types of complex mechanical systems (e.g., automated production and / or manufacturing systems, warehouse systems including autonomous and / or other mechanical components, etc.) may be controlled by similarly complex control systems. Summary of the Invention [Problem to be solved by the invention]

[0004] The present invention has been made to solve the problems in the conventional techniques described above. [Means for solving the problem]

[0005] An example of a method disclosed herein includes introducing a simulated fault into a software simulation of a physical system and generating emulated sensor data based on the simulated fault, the emulated sensor data emulating an output from one or more sensors of the physical system. The method further includes acquiring output data from a test control system provided with the emulated sensor data, the test control system emulating a control system of the physical system, and tagging the output data with the simulated fault to create training data. The method further includes utilizing the training data to train a control system model, the control system model being a machine learning model for use with the control system of the physical system during operation of the physical system.

[0006] Optionally, in some embodiments, the simulated faults are introduced into a software simulation of the physical system using Monte Carlo techniques.

[0007] Optionally, in some embodiments, the physical system includes a plurality of subsystems, each of the plurality of subsystems being controlled by the control system.

[0008] Optionally, in some embodiments, the physical system includes multiple subsystems and the control system controls one of the multiple subsystems.

[0009] Optionally, in some embodiments, the simulated faults replicate real-world conditions of a physical system.

[0010] Optionally, in some embodiments, tagging the output data includes tagging the output data with physical terms implemented in a software simulation of the physical system.

[0011] Optionally, in some embodiments, the method further includes utilizing the control system model in conjunction with a control system of the physical system to identify one or more physical conditions within the physical system.

[0012] Optionally, in some embodiments, the method further comprises evaluating the performance of the control system model using additional data and a software simulation of the physical system.

[0013] One example of a system disclosed herein includes a software simulation system including a software simulation of a physical system configured to generate emulated sensor data based on inputs to the software simulation system, the emulated sensor data emulating outputs from one or more sensors of the physical system, and a test control system emulating a control system of the physical system, the test control system configured to generate control system outputs based on the emulated sensor data.

[0014] Optionally, in some embodiments, the system further includes a control model trained to identify one or more physical conditions in the physical system based on output from one or more sensors of the physical system, the control model being trained using information provided by the test control system in response to the emulated sensor data. Optionally, in some embodiments, the control model is a machine learning model trained using output generated by the test control system. Optionally, in some embodiments, the control model is further trained using data collected from a control system of the physical system during operation of the physical system.

[0015] Optionally, in some embodiments, the software system includes an input / output (I / O) emulation interface, the I / O emulation interface providing the emulated sensor data to the test control system.

[0016] Optionally, in some embodiments, the test control system includes one or more hardware components included in the control system of the physical system.

[0017] An example of a method disclosed herein includes receiving, in a hardware-in-the-loop (HIL) simulation of a physical system, programmatic data inputs including at least one fault to be introduced, the at least one fault to be introduced representing a physical condition in the physical system, the at least one fault to be introduced into the programmatic data inputs using a Monte Carlo technique. The method further includes generating control system outputs via the HIL simulation, the control system outputs corresponding to outputs of a control system that controls the physical system, and generating a data set by tagging the control system outputs with the programmatic data inputs including the at least one fault. The method further includes training a control model using the data set, the control model being trained to identify physical conditions in the physical system based on outputs of the control system that controls the physical system.

[0018] Optionally, in some embodiments, the method further comprises augmenting the dataset with data collected from a control system that controls the physical system in response to operation of the physical system.

[0019] Optionally, in some embodiments, the method further includes utilizing the control model in conjunction with a control system that controls the physical system to identify one or more physical conditions within the physical system.

[0020] Optionally, in some embodiments, the control model is a machine learning model.

[0021] Optionally, in some embodiments, the step of generating a control system output includes generating emulated sensor data based on the at least one fault and obtaining a control system output from a test control system provided with the emulated sensor data.

[0022] Optionally, in some embodiments, the test control system emulates a control system that controls the physical system. [Brief description of the drawings]

[0023] [Figure 1A] FIG. 1 is a block diagram of a system used to train a machine learning model for use in a control system, according to various embodiments of the present disclosure. [Figure 1B] FIG. 1 is a block diagram of a system including a machine learning model used in a control system to control a physical system, in accordance with various embodiments of the present disclosure. [Diagram 2] FIG. 1 is a block diagram of a hardware-in-the-loop simulation and development system according to various embodiments of the present disclosure. [Diagram 3] FIG. 1 is a block diagram of a hardware-in-the-loop simulation according to various embodiments of the present disclosure. [Figure 4] 1 is an example of a computing system that may be used in various embodiments of the present disclosure. [Diagram 5] 1 is a flowchart of a process for training a control system model according to various embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] The present disclosure includes embodiments that improve the performance and accuracy of various control systems (e.g., control systems used to control complex electromechanical systems). For example, machine learning models are used to quickly and accurately identify and / or correct physical conditions in a mechanical system controlled by the control system. Machine learning models may detect wear in components of the mechanical system (e.g., brakes, motors), problems in subsystems of the larger mechanical system (e.g., timing in gates, conveying systems, etc.), external physical conditions (e.g., environmental conditions that cause malfunctions in the mechanical system), and other physical conditions that affect the functionality of the mechanical system. If the control system can correctly identify such physical conditions, the control system can provide feedback to system operators, maintenance personnel, etc. to correct the physical conditions. A control system that utilizes machine learning models can improve the detection of such events, thereby allowing for faster repair and / or replacement of components of the mechanical system, resulting in reduced downtime. For example, physical conditions that are likely to lead to eventual failure can be identified earlier, thereby allowing replacement of system components during scheduled system downtime rather than unscheduled system downtime caused by component failure.

[0025] Such machine learning models are generally trained before being used in a control system. The type of training can affect how effective a given control system is in detecting and identifying physical events in a mechanical system that, if not corrected, may cause downtime, malfunction, or damage to the mechanical system. For example, a machine learning model trained with unsupervised learning will be trained on data fed into the model from the system itself, and therefore will be unable to identify physical events that have not occurred in the physical system in the past. A machine learning model trained with supervised learning techniques may be more capable of identifying various physical events more accurately before adverse outcomes occur. However, supervised learning uses tagged data, which may be difficult to generate for complex mechanical and electromechanical systems, especially for physical conditions that occur infrequently within the system.

[0026] The tagged data used to train the machine learning model may be generated by examining sensor data received at a control system for a system before the system or a component of the system fails. However, collecting such data from the system itself may result in a limited data set. For example, a system may operate for a long period of time without a failure occurring, particularly a rare, unusual, or unlikely failure.

[0027] Introducing certain faults into real mechanical systems can cause significant system downtime, costs, and possibly system damage. For example, a motor that is beginning to malfunction can be introduced into a system by taking the system offline, removing a working motor, and physically connecting the malfunctioning motor. The system will then run with the malfunctioning motor until it fails. The motor may run for many cycles before failing, resulting in extended system downtime. Furthermore, running the system until the motor fails may result in adverse effects on other parts of the system (e.g., some components may operate abnormally to compensate for the failing component). Furthermore, some faults (e.g., collisions between system components) may be impractical or impossible to introduce into the system without causing system damage, excessive costs, etc. Furthermore, when using the system, generating such data may be time consuming since the system must be reset before new faults can be introduced into the system.

[0028] The systems and methods described herein can train machine learning models for use in a control system using software simulations of physical systems, including hardware-in-the-loop (HIL) components. Such systems can be useful for simulating various faults that may be difficult or impossible to detect using data collected from a physical system. For example, motor failures in a physical system may occur infrequently (e.g., a few times a year or less), making it difficult and / or time-consuming to train a model to accurately recognize such motor failures. In contrast, HIL simulations can simulate motor failures on demand, thereby generating multiple data sets that cause motor failures. Thus, models can be trained quickly to recognize such motor failures, and can be trained to recognize motor failures before they occur in the physical system.

[0029] The embodiments described herein can generate more robust training data sets for training machine learning models for use in control systems by using Monte Carlo techniques to introduce faults into software simulations. For example, many components of mechanical and electromechanical systems can behave erratically before failing. For example, mechanically actuated locks in a system can randomly become difficult to lock into place before eventually failing permanently. In general, generating multiple data sets in which such faults (e.g., locks that require multiple attempts to lock) are randomly and diversely introduced in multiple trials results in a model that is more capable of accurately identifying such conditions in a physical system. For example, a model trained on a single data set or multiple non-random data sets can be trained to look for faults at specific locations in the data. A model trained on random data can be better able to recognize faults even when they occur at different locations in the data set. Furthermore, models so trained may be better able to identify rare events that do not occur frequently within a physical system, and tagged Monte Carlo data also enables the import of an enterprise's human knowledge (e.g., the knowledge of operators and maintenance personnel of the physical system) into the trained models.

[0030] The systems and methods described herein can also evaluate a trained control model for use in a control system. For example, a control model can be given additional data (e.g., simulated data, real-world data, and / or a combination of multiple types of data) to see how the model will operate before it is deployed for use in a physical system. For example, a HIL simulation can include elements such as an operator console simulation, which can show outputs that an operator would be able to see during operation of the physical system. Thus, a HIL simulation can be used to determine whether the model's operation is sufficient to complete training and / or deploy the model to a physical system.

[0031] Referring now to the drawings, FIG. 1A illustrates a system 100 used to train a control model 102 for use in a control system. FIG. 1B illustrates a system 105 including a control model 102 for use in a control system 108 that controls a physical system 112. Broadly, the system 100 includes a HIL simulation 106 that may be used to generate a data set 104 used to train the control model 102, which in various embodiments may be a machine learning (ML) model. The trained control model 102 may be used in a system 105 that includes a physical system 112 and a control system 108. The trained control model 102 may be used in or incorporated into the control system 108. In various embodiments, the system 105 may include an operator console 110 that provides additional information about the physical system 112 to an operator of the physical system 112. Such additional information may include physical conditions detected by the control model 102 that alert an operator or maintenance personnel to physical conditions that may be repaired to continue operation of the mechanical system.

[0032] The HIL simulation 106 may primarily include a computing device and a test control system (e.g., hardware) in communication with the computing device. The computing device may be used to run a software simulation of the physical system 112. The computing device may be any type of computing system, such as a desktop computer, a laptop computer, etc. The test control system may be close to the control system 108 used to control the physical system 112. For example, the test control system may include hardware that is the same as or similar to the hardware included in the control system 108. The software simulation of the physical system may generally receive inputs to introduce faults into the simulation of the physical system. In other words, a user may specify several conditions in the software simulation that may simulate physical conditions in the physical system 112. For example, a situation in which a roller is failing in a transport system may be roughly seen by the control system 108 as an interruption in the movement of the transport system. Such interruptions may occur multiple times before the roller eventually fails. Thus, the input of the software simulation may include thousands of trials or iterations of data collected from the simulated transport system, including several introduced faults, simulating interruptions in the transport system's motion. Based on such inputs, the software simulation of the physical system 112 may generate outputs that emulate outputs that would be obtained from sensors of the physical system 112 in response to the fault-causing physical conditions provided as inputs to the software simulation. For example, the sensors of the physical system 112 may generate control signals when there is a loose wheel in the physical system 112. The emulated sensor outputs generated by the software simulation of the physical system 112 may be the same as the control signals that the sensors of the physical system 112 would generate.That is, the test control system can receive the same control signals from sensors in physical system 112 and from a software simulation of physical system 112, such that the test control system behaves the same whether it is receiving control signals from sensors in physical system 112 or emulated sensor data from a software simulation of physical system 112. In some embodiments, the emulated sensor data can be generated in response to inputs that are correlated with a sensor fault, such that the control model is trained to recognize the sensor fault in addition to other physical faults in the system.

[0033] The test control system may include similar or the same hardware as the control system 108 used to control the physical system 112. The test control system may receive emulated sensor data and generate control system outputs in response to the emulated sensor data, generally by communicating with a software control system. Because the test control system includes similar or the same hardware as the control system 108, such control system outputs may be the same or substantially equivalent to outputs that would be generated by the control system 108 in response to the same inputs from the sensors of the physical system 112.

[0034] The HIL simulation 106 may be used to generate data sets 104. Such data sets 104 may be used to train the control model 102 and / or may be stored in various locations to train additional ML models. The data sets 104 may be labeled data generated by the HIL simulation 106. In some examples, such data sets 104 may include data generated by the HIL simulation 106 in response to multiple inputs to the HIL simulation 106. Furthermore, some data sets 104 may include data collected from the physical system 112 in addition to data generated by the HIL simulation 106. For example, a particular physical condition may occur in the physical system 112, and it may be desirable to generate additional data using the HIL simulation 106 in response to that same physical condition, thereby allowing the control model 102 to better identify that physical condition during future operation of the physical system 112.

[0035] In the system 105, the control model 102 may be used in or incorporated into a control system 108 that controls a physical system 112. In some embodiments, the control model 102 may be trained during development of a new physical system 112, whereby once the control model 102 is trained, a new control system for the physical system 112 is developed. In such embodiments, the control system 108 may include memory and / or processing components capable of storing and executing the control model 102 within the control system. In another embodiment, the control model 102 may be used with an existing physical system 112. Depending on the control system used, the control model 102 may be updated in the control system 108 or provided to a computing system in communication with the existing control system 108. Having the control model 102 on a computing system in communication with the control system 108 may allow older control systems 108 to be retrofitted with the control model 102 to improve the operation of the control system 108.

[0036] In various embodiments, the physics system 112 controlled using the control system 108 may be any type of mechanical or electromechanical system, such as an amusement park ride or show system, an assembly line or other automated manufacturing system, a warehouse logistics system, a self-driving or autonomous vehicle, an aircraft or aerospace system, a controlled industrial process (e.g., chemical manufacturing), shipboard or marine navigation, and the like. In various embodiments, the physics system 112 may include multiple components, which may be grouped into subsystems within the larger physics system 112. For example, the lighting system, transport system, sound system, and gate system within an attraction ride system may each be a subsystem within the larger physics system 112. In some embodiments, such subsystems may be controlled by a secondary control system, which may be in communication with a primary control system that controls the physics system 112 overall.

[0037] The physical system 112 and / or the control system 108 may further be connected to or in communication with an operator console 110. The operator console 110 may be used to provide inputs to and receive outputs from the physical system 112 and / or the control system 108. For example, the operator console 110 may include switches, buttons, or other operating elements operable to stop, start, or otherwise manually control (e.g., slow down) the physical system 112. The operator console 110 may further include screens for displaying outputs from the control system 108, including the control model 102, alarm elements, or other output elements. For example, the operator console 110 may include a screen that displays an alert when the control model 102 identifies a physical condition based on sensor data received by the control system 108. For example, the control system 108 may receive sensor data indicating that a motor in the physical system 112 is drawing too much current, i.e., the motor is likely to fail or experience other malfunctions. The operator console 110 may then display information notifying an operator, maintenance person, or other personnel of the physical condition (eg, a problem with a motor in the physical system 112).

[0038] In some embodiments, the operator console 110 may also display other information provided by the control model 102, such as an estimated time to failure of a component (or number of cycles of the physical system 112). Such information can assist the operator and / or maintenance personnel in determining how to correct the physical condition. For example, if the control model 102 can identify a possible failure well before an actual malfunction, the component can be replaced or repaired during the next scheduled maintenance without shutting down the physical system 112 for unscheduled maintenance. In contrast, a predicted malfunction or failure of a component that cannot wait until scheduled maintenance will shut down the physical system 112 for unscheduled maintenance to replace the component before it fails. Replacing or repairing a component before it completely fails can reduce the overall downtime of the physical system 112, because the component is less likely to fail in a way that could affect other components of the physical system 112.

[0039] As shown in FIG. 1A , a feedback and evaluation connection 105 between the control model 102 and the HIL simulation 106 can be used to evaluate the training of the control model 102. For example, such evaluation can be useful to determine whether training of the control model 102 should continue, how the control model 102 is likely to behave under real-world conditions, and / or whether the behavior of the control model 102 is sufficient to be deployed to a physical system. The data used to evaluate the control model 102 can include tagged or untagged data generated by the HIL simulation 106, tagged or untagged real-world data, etc. Use of the real-world data can help determine how the control model 102 is likely to behave under real-world conditions and whether the control model 102 could benefit from additional training in various real-world scenarios. For example, untagged real-world data can include data collected from the physical system 112, including outputs from the control system 108 used by the physical system 112.

[0040] In various embodiments, a simulated operator console of the HIL simulation 106 may be used for such evaluation of the control model 102. For example, the simulated operator console may enable a user to provide inputs to the simulated system (e.g., by starting and stopping the simulated system and / or otherwise adjusting the simulated system) and to view outputs from the control model 102 similar to the outputs that would be displayed on the operator console 110 used with the physical system 112. For example, such outputs may include identification of a physical condition or problem in the system, suggested actions to correct the problem in the system (e.g., taking the system down immediately for maintenance or performing maintenance on a particular component within a specified time frame, etc.). Such outputs may also include an indication that the physical condition cannot be corrected by maintaining the system itself because the physical condition is outside the system (e.g., a physical obstruction causing an operation problem in the system). The control model 102 may be evaluated based on whether useful and / or correct output is provided to a simulated operator console that indicates that the control model 102 is sufficiently trained (either completely or for a particular scenario) and / or that the control model 102 is ready to be deployed for use with the physical system 112. In some embodiments, the feedback and evaluation connections 105 may also be used to further refine and / or train the control model 102 through reinforcement learning, which can reward the model based on its behavior with untagged data.

[0041] 2, the HIL simulation 106 may broadly include a software simulation system 114 and a test control system 116. The HIL simulation 106 may broadly generate control system outputs based on inputs to the HIL simulation 106. Such inputs may include, for example, various faults introduced into the software simulation system 114 that simulates the operation of a physical system. Such control system outputs may be provided to a development system 124 for training a control model 102 (e.g., an ML model), which may be incorporated into or used in combination with a control system that controls the physical system that the software simulation system 114 simulates. The development system 124 may generate a data set for training the control model 102 using data tagging 120 that correlates the inputs 118 provided to the HIL simulation 106 with the control system outputs received from the HIL simulation 106. Such tagged data may be stored in a data store 126 , which may be accessible to the control model 122 for training and refinement of the control model 102 .

[0042] 3 is a detailed block diagram of the HIL simulation 106, which includes a software simulation system 115 executing on a simulation system 114 and a test control system 116. The software simulation system 115 may broadly be a software-based system executing on one or more computing devices (e.g., the simulation system 114) configured to generate emulated sensor data based on inputs to the software simulation system 115. The emulated sensor data may emulate outputs from one or more sensors of a physical system. Such emulated sensor data may be provided to the test control system 116. The test control system 116 may generate control system outputs based on the emulated sensor data, which correspond to outputs of a control system that controls the physical system. For example, the test control system 116 may be designed to mirror or match components of a control system that controls a physical system, such that the control system outputs generated by the test control system 116 in response to emulated sensor data are identical or nearly equivalent to the control system outputs in response to corresponding sensor data from the physical system.

[0043] The simulation system 114 generally includes a software simulation system 115 executing on the simulation system 114. The software simulation system 115 generally includes a system simulation 128 and a simulation interface 130, which may connect to a data interconnect hub 132. Output from the data interconnect hub 132 may be combined with and / or augmented by data and / or output from an input / output (I / O) interface emulation 136 and a timing engine 134, generally, to generate emulated sensor data. The emulated sensor data may be provided to the test control system 116 via network interface cards (NICs) 138a-138f of the simulation system 114, which are connected to the test control system 116.

[0044] The system simulation 128 may be a simulation of a physical system. In some embodiments, the system simulation 128 may be a high-level simulation of a physical system, such as a plant model or other system simulation. In some embodiments, the system simulation 128 may be a detailed simulation of a system, such as a controlled system simulation or system model (e.g., a Simulink vehicle physics model, etc.). Such a detailed simulation may output information about interactions between various subsystems or subcomponents of the physical system (e.g., sensors, doors, brakes, chains, gates, and other system elements or subsystems). The system simulation 128 may further include additional simulation tools, such as a system visualizer (e.g., Unity, Unreal Engine, or other similar tools). The system simulation 128 may be updated over time based on additional information about the physical system, in some embodiments. For example, a high-level simulation may be used for a system under development. As the physical system is further developed, the high-level simulation may be replaced with a more detailed simulation. For example, the software simulation system 115 may generate outputs for training a control model on outputs from a first sensor or group of sensors, and the control model may be further trained on outputs from additional sensors, which are added to the system simulation 128 (e.g., as additional components are added to the system).

[0045] In the case where the physical system includes a group of independent control systems in communication with a primary control system, the system simulation 128 may be a fleet simulator configured to simulate such a group. The system simulation 128, in some embodiments, may include multiple simulations of various components of the physical system, each of which may be individually connected to the data interconnect hub 132. For example, independent models may be used for subsystems of the physical system (e.g., brakes, gates, vehicle doors, transport systems, and other subsystems or subcomponents).

[0046] Software simulation system 115 may further include simulation interface 130. Simulation interface 130 may be used to provide inputs to and monitor outputs from system simulation 128, data interconnect hub 132, and / or other components of software simulation system 115, generally. In some embodiments, simulation interface 130 may include different types of interfaces, such as a simulated operator interface, a simulation interface, and the like. Simulation interface 130 may include one or more graphical user interfaces (GUIs) and / or programmatic interfaces to other components of software simulation system 115. For example, simulation interface 130 may include a simulated operator interface, which may be a GUI used to provide inputs to system simulation 128, such as a GUI for starting and stopping system simulation 128 and providing other operator inputs to system simulation 128. Simulation interface 130 may further include a programmatic interface to provide script inputs to system simulation 128. Other types of interfaces may include GUIs for monitoring system simulation 128, outputs from software simulation system 115, and / or other components of software simulation system 115. In some embodiments, simulation interface 130 may also be a programmatic interface for collecting data (e.g., introduced system faults, emulated sensor data, etc.) from software simulation system 115 and / or components of software simulation system 115. For example, data may be collected regarding faults introduced into system simulation 130 at various times.Such data may be used to tag control outputs from the test control system 116 to create a data set for training the control model 122 .

[0047] System simulation 128 and simulation interface 130 may each provide input to data interconnect hub 132. Data interconnect hub 132 may generally provide deterministic data transport between simulation (e.g., system simulation 128) and I / O emulation (e.g., emulated sensor data generated by software simulation system 115). To provide such data transport, data interconnect hub 132 may store data in memory and transmit data (e.g., to test control system 116 and / or to other components of software simulation system 115) at user-defined intervals. For example, a user may define an interval of 5 milliseconds for data processing, and the data interconnect hub may write data at 5 millisecond intervals.

[0048] The outputs that the timing engine 134 and the I / O interface emulation 136 may generate, when combined with the outputs from the data interconnect hub 132, generate emulated sensor data in response to the inputs to the software simulation system 115. The I / O interface emulation 136 may broadly emulate an I / O interface of a physical system to provide the emulated sensor data to the test control system 116. For example, the I / O interface emulation 136 may emulate various types of I / O network interfaces (e.g., EtherCAT, Allen-Bradley Ethernet / IP, etc.). Such emulation may provide a transparent interface between the software simulation system 115 and the control system 116. That is, the control system 116 cannot distinguish between the emulated outputs generated by the software simulation system 115 and the outputs generated by the physical system.

[0049] Timing engine 134 can enable software simulation system 115 to provide real-time or near real-time emulated output. For example, timing engine 134 may control the interval at which data interconnect hub 132 transmits data to test control system 116. For example, a user may define an interval of 5 milliseconds to control processing and communication overhead while maintaining real-time or near real-time data transport by software simulation system 115.

[0050] 2, inputs 118 may be provided to software simulation system 115. In various embodiments, inputs 118 may be provided to generate simulated failures within software simulation system 115. Such inputs may be provided through subcomponents of software simulation system 115 (e.g., simulation interface 130 and / or system simulation 128). For example, inputs may be provided programmatically to simulation interface 130 (if simulation interface 130 accepts such programmatic data). Programmatic inputs may include a number of data points that are introduced into system simulation 128 over time to mimic incremental conditions that may ultimately cause a malfunction or failure of a component of the physical system that system simulation 128 models. For example, brake wear may be perceived by the control system as a random overpressure on the brakes. The control system may detect such a random overpressure anywhere from 5-75 times before a failure occurs. Thus, the programmatic inputs may include data for 2500 trials that include 5-75 instances of overpressure on the brakes. In various embodiments, such instances may be randomly inserted into the trials using Monte Carlo methods to emulate the randomness found in physical systems.

[0051] In another example, a motor in a system may draw more current than normal before a fault occurs. The control system may recognize such an increase in current draw as a series of overcurrent events. To introduce a simulated fault of random excessive current drawn by the motor, a program running on the software simulation system 115 or another computing system associated with the software simulation system 115 may instruct the software simulation system 115 to generate emulated sensor data reflecting a series of overcurrent events associated with a motor fault. Such emulated sensor data may be provided to the test control system 116. In various examples, providing such programmatic input to the test control system 116 multiple times may generate a more robust data set for training the control model 102.

[0052] The introduction of faults into the trials of the programmatic inputs may be controlled using a Monte Carlo method, whereby faults are seen at different times in each iteration of the programmatic inputs. As a result, the control model 102 may be more confident in identifying such events in the physical system than a similar model trained on a single event (e.g., trained using data collected from the physical system). The programmatic inputs to the software simulation system 115 allow for automation of data generation, which can lead to significant time savings in collecting data from the physical system. Because the generation of the inputs to the software simulation system 115 can lead to significant time savings, more robust data sets can be generated, which can make the control model 102 more accurate and useful. For example, collecting data from a physical system may require the physical system to actually operate, which can take much longer than providing programmatic inputs to the software simulation system 115. Additionally, generating multiple data sets using the physical system may require resetting the physical system to an initial state, which can take much longer than resetting the HIL simulation 106.

[0053] 3, the test control system 116 may emulate a control system used to control a physical system. For example, the test control system 116 may receive emulated sensor data and generate outputs that are the same or substantially similar to outputs that a control system of the physical system receiving the same sensor data would generate. The test control system 116 may include various hardware components used in a control system to control a physical system, and such components may be connected to the NICs 138a-138f of the simulation system 114 in much the same way that components of a control system are connected to components of a physical system. For example, the various components of the test control system 116 may be connected to the NICs 138a-138f of the simulation system 114 by hardwired connections (e.g., physical connections) and / or by network connections (e.g., a real-time I / O network provided by the I / O interface emulation 136, a show network, and / or other internal networks). Such a connection can enable the simulation system 114 to receive data and actions from the test control system 116 that reflect real-world communications that the control system 108 generates to the physical system 112. For example, data packets generated by the control system 108 and received by the physical system 112, the operator console 110, or other components can be the same as data packets generated by the test control system 116 and received by the simulation system 114. Such communications can be used by the simulation system 114 in the same way that the physical system 112 (or components of the physical system 112) receive and respond to outputs from the control system 108, for example, to provide outputs via the simulated operator interface 130 and / or to adjust the system simulation 128 in response to signals from the test control system 116.

[0054] 3, the test control system 116 may include hardware components such as a programmable logic controller (PLC) 140, a switch 142, and generalized predictive control (GPC) units 144 and 146. Each of such hardware components may be configured to receive some data from the simulation system 114 and process the received data. For example, the NICs 138a-138f of the simulation system 114 may be connected to any of the hardware components of the test control system 116. In some embodiments, the PLC 140 and the GPCs 144 and 146 may each receive data from the simulation system 114, process the received data, and provide the processed data to the switch 142. The data provided by the switch 142 may be a control system output from the entire HIL simulation 106. Such control system output may be the same or substantially equivalent to the output provided by a control system controlling a physical system, where the output from the physical system is the same or substantially equivalent to the emulated sensor data provided by the software simulation system 115.

[0055] 2 , the development system 124 may generally be in communication with the HIL simulation 106 and may tag data received from the HIL simulation 106 to generate data sets used in the development of (training and / or evaluation of) the control model 102. In various embodiments, the development system 124 may receive output from the HIL simulation 106 in data tagging 120, which may correlate (e.g., tag) such output data with corresponding faults introduced in the software simulation 115. In some embodiments, such data correlation may occur within the HIL simulation 106, and the data tagging 120 may otherwise format the data received from the HIL simulation 106 before storing it in the data storage 126. For example, the data tagging 120 may aggregate similar data sets (e.g., data sets generated under the same conditions in the system simulation 128) into a single data set used to train the control model 102. Data tagging 120 may further designate such similar data sets for training or evaluation of the control model 102. For example, a tagged data set may be provided to the control model 102 for training, and secondly, an untagged data set may be provided to the control model 102 for evaluation of the accuracy of the control model. Output from the control model 102 may be compared to the input conditions of the second data set, which may also be stored in data storage 126.

[0056] In various embodiments, the datasets may be stored in data storage 126, which may be local or otherwise accessible to development system 124. For example, data storage 126 may be a local data storage, a shared storage drive, a cloud storage location, etc. In various embodiments, data storage 126 may hold multiple datasets, each of which is generated for training control model 102 to identify a different physical condition or set of physical conditions. For example, data storage 126 may include a dataset for training control model 102 to identify brake faults, a dataset for training control model 102 to identify motor faults, and a dataset for identifying problems with actuated locks in the system.

[0057] The data sets stored in data 126 and used to train the control model 102 may be generated using the HIL simulation 106 and / or may be a combination of data generated in the HIL simulation 106 and data collected from the physical system. Using data collected from the physical system may enable the control model 102 to identify complex problems from real-world conditions that may be difficult to programmatically introduce into the HIL simulation 106 or may not be foreseen until the physical system is in operation. For example, operating a ride system with passengers on board may introduce physical conditions into the ride system that are not recognized or anticipated using the system simulation 128, such as objects falling onto the tracks, liquids or other fluids (e.g., water, soda, sunscreen, etc.) carried by passengers spilling onto ride system components, passengers impacting ride system components, etc. Adding datasets generated from such events can enable the control model 102 to identify problems caused by such externally introduced physical conditions, thereby making the control model 102 more useful in diagnosing and correcting physical conditions that may lead to malfunctions in the physical system.

[0058] The control model 102 may be a machine learning model trained using supervised or semi-supervised techniques. For example, the control model 102 may be trained using a tagged dataset generated in the HIL simulation 106. For example, the control model 102 may be trained using feedback from the tagged dataset and may employ regression and classification techniques to identify physical conditions based on input data from the control system or test control system 116. In some examples, the control model 102 may be further trained to not only identify the physical conditions of a physical system that cause a particular sensor output, but also to identify additional information, such as an estimated time until a system component fails or malfunctions (e.g., the number of cycles the physical system may operate before a component fails or otherwise malfunctions).

[0059] 4, an example computing system 200 may be used to implement various embodiments in the examples described herein. For example, in various embodiments, the simulation system 114 and the development system 124 may be implemented by one or more computing systems 200. The present disclosure contemplates any suitable number of computing systems 200. For example, the computing system 200 may be a server, a desktop computing system, a mainframe, a mesh of computing systems, a laptop or notebook computing system, a tablet computing system, an embedded computing system, a system on a chip, a single board computing system, or a combination of two or more of these. The computing system 200 may include one or more computing systems, may be single or distributed, may span multiple locations, may span multiple locations, may span multiple machines, may span multiple data centers, or may be in a cloud, which may include one or more cloud components in one or more networks.

[0060] Computing system 200 includes a bus 210 (e.g., an address bus and a data bus) or other communication mechanism for communicating information that interconnects subsystems and devices such as a processor 208, memory (e.g., RAM), static storage 204 (e.g., ROM), dynamic storage 206 (e.g., magnetic or optical), communication interface 216 (e.g., a modem, an Ethernet card, a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wired network, a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network (such as a Wi-Fi network)), and input / output (I / O) interface 220 (e.g., a keyboard, keypad, mouse, microphone). In particular embodiments, computing system 200 may include one or more of any such components.

[0061] In particular embodiments, processor 208 includes hardware that executes instructions (e.g., constituting a computer program). For example, processor 208 may execute instructions for software simulation system 115. The circuitry of processor 208 includes circuitry that performs various processing functions, such as circuitry that executes particular software to perform particular calculations or tasks. In particular embodiments, I / O interface 220 includes hardware, software, or both that provide one or more interfaces for communication between computing system 200 and one or more I / O devices. Computing system 200 may include one or more of these I / O devices as desired. One or more of these I / O devices can enable communication between a person and computing system 200.

[0062] In particular embodiments, communication interface 216 includes hardware, software, or both that provide one or more interfaces for communications (e.g., packet-based communications, etc.) between computing system 200 and one or more other computer systems or one or more networks. One or more memory buses (each of which may include an address bus and a data bus) may couple processor 208 to memory 202. Bus 210 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) are located between processor 208 and memory 202 that facilitate accesses to memory 202 requested by processor 208. In particular embodiments, bus 210 includes hardware, software, or both that couple components of computing system 200 together.

[0063] According to certain embodiments, computing system 200 performs certain operations by processor 208 executing one or more sequences of one or more instructions contained in memory 202. For example, instructions for software simulation system 115, data tagging 120, and / or control model 122 may be contained in memory 202 and executed by processor 208. Such instructions may be loaded into memory 202 from another computer-readable / usable medium (e.g., static storage 204 or dynamic storage 206). In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions. Thus, certain embodiments are not limited to any particular combination of hardware circuitry and / or software. In various embodiments, the term "logic" refers to any combination of software or hardware used to implement all or a portion of certain embodiments disclosed herein.

[0064] The terms "computer-readable medium" or "computer usable medium" as used herein refer to any medium that participates in providing instructions to processor 208 for execution. Such media may take various forms, such as, but not limited to, non-volatile and volatile media. Non-volatile media include, for example, optical or magnetic disks, such as static storage 204 or dynamic storage 206. Volatile media include dynamic memory, such as memory 202.

[0065] The computing system 200 may send and receive messages, data, and instructions, including programs (e.g., application code), through the communications link 218 and the communications interface 216. The received program code may be executed by the processor 208 upon receipt and / or may be stored in the static storage 204 or the dynamic storage 206, or other storage, for later execution. A database 214 may be used to store data and is accessible to the computing system 200 via the data interface 212. For example, a data set for training the control model 102 may be stored in the database 214. In various embodiments, the communications link 218 may communicate with the development system 124 and / or the simulation system 114.

[0066] FIG. 5 illustrates a process 300 for training a control system model, according to various embodiments of the disclosure. At block 302, a simulated fault is introduced into a software simulation of the system. In various embodiments, the simulated fault may be introduced into the software simulation system 115 as part of a larger data set, and this data may be programmatically provided to the system simulation 128 through the simulation interface 130. For example, a data set including 1000 cycles of the simulated system may include several instances of overcurrent events for a particular motor that lead to the eventual failure of the motor. In some embodiments, the simulated fault may be provided by direct interaction with the system simulation 128 through the simulation interface 130 (i.e., for example, the GUI of the system simulation 128). Such interaction with the simulation interface 130 may, for example, be to change conditions in the simulated physical system in the system simulation 128, such as to insert a malfunctioning problem or component into the simulated physical system, as well as to use the system simulation 128 to generate data in response to changes in physical conditions in the simulated system.

[0067] In some examples, faults may be introduced into the software simulation system 115 by using a Monte Carlo technique to introduce randomness into the data. For example, a malfunctioning component may be random in the way it begins to malfunction, while appearing to operate normally when the malfunction does not occur. For example, a malfunctioning brake system may begin to cause sensor readings that indicate excessive pressure on the brakes at random intervals before eventually failing. In some examples, such excessive pressure may be observed 5-75 times out of 2500 cycles of the physical system prior to brake failure. By randomly inserting excessive pressure readings into the input data using a Monte Carlo randomness technique, the control model 102 is exposed to randomness and is less likely to be trained to look for patterns in which such readings occur prior to failure. Such a Monte Carlo technique may therefore make it more likely that the control model 102 will recognize such malfunctions in the physical system.

[0068] At block 304, the software simulation system 115 generates emulated sensor data based on the simulated faults. Such emulated sensor data may be generated by the data interconnect hub 132 in combination with the timing engine 134 and the I / O interface emulation 136. For example, the data interconnect hub 132 may transmit data at time intervals controlled by the timing engine 134. The data interconnect hub 132 may transmit some data directly to the test control system 116 through a NIC of the simulation system 114 running the software simulation system 115, and other data to the I / O interface emulation 136. The I / O interface emulation 136 may then provide the emulated sensor data to the test control system 116 via one or more NICs of the simulation system 114, by emulating an I / O interface utilized by the test control system 116. Such interface emulation can enable the simulation system 114 to provide emulated sensor data as well as provide a transparent interface between the test control system 116 and the simulation system 114 .

[0069] At block 306, output data is obtained from the test control system 116 provided with the emulated sensor data. In general terms, the test control system 116 may generate outputs based on the emulated sensor data received by various hardware components of the test control system 116. For example, the PLC 140, the GPCs 144 and 146, and the switch 142 may each receive some emulated sensor data from the simulation system 114. Each of these hardware components may process their respective received sensor data. In some embodiments, those processing components (e.g., the PLC 140 and the GPCs 144 and 146) may each provide a respective output to the switch 142, which may include logic to provide the overall output of the test control system 116. Because the test control system 116 may include hardware that is the same or substantially similar to the control system 108 that controls the physical system 112, the outputs generated by the test control system 116 may be the same or substantially similar to the outputs that would be generated by the control system 108 in response to the same inputs from the physical system 112.

[0070] At block 308, the output data is tagged with the simulated faults to create training data. In various embodiments, the output data may be tagged based on the inputs provided to the software simulation system 115 at block 302. Such tagging may occur before or after the development system 124 receives the output data from the test control system 116. For example, the test control system 116 may generate one output data point for each cycle of the inputs that underlie the corresponding emulated sensor data provided to the software simulation system 115. Each such output data point may be tagged with a corresponding condition provided as an input to the software simulation system 115, including one or more faults provided as inputs to the software simulation system 115.

[0071] In some examples, the tagged data may be further processed in the development system 124 and / or stored in a location (e.g., data store 126) accessible to the development system 124. For example, further processing may include correlating the generated data set with other data sets, including data sets generated in the HIL simulation 106 and / or data sets generated by collecting data from the corresponding physical system 112. In some examples, processing may include removing tags from some of the data and storing untagged and tagged data in the data store 126. The untagged data may then be used to validate the control model 102. That is, the untagged data may be provided to the trained control model 102 to evaluate the performance of the control model 102 compared to the tagged data set. Such evaluation may help determine whether it is useful for the control model 102 to be further trained on a particular physical condition or whether the control model 102 is likely to be able to accurately identify the physical condition in the physical system 112.

[0072] At block 310, the training data is used to train the control model 102 for use in the control system 108. For example, the data set may be used to train the control model 102 using a supervised or semi-supervised learning approach, where the control model 102 learns to classify input data using the tagged data. In some embodiments, the data set may be further used to evaluate and / or validate the trained control model 102. Such evaluation may provide feedback to determine whether the control model 102 could be improved with further training with the tagged data set. In some embodiments, the control model 102 may be trained to identify various physical conditions individually and / or in combination with each other. For example, the control model 102 may be trained to recognize brake wear using a first data set or data sets in which a fault corresponding to brake wear is introduced, and then trained to recognize a motor malfunction using a second data set or data sets in which a fault corresponding to a motor malfunction is introduced. The control model 102 may further be trained using a data set or data sets in which faults corresponding to both brake wear and motor malfunctions are introduced, thereby allowing the control model 102 to be used in real-world situations where multiple malfunctions may occur over many cycles of the physical system.

[0073] At optional block 312, the performance of the control model 102 is evaluated using additional data and the software simulation system 115. In various embodiments, such additional data may include additional data sets generated in the HIL simulation 106, data collected from a real-world environment (e.g., from the physical system 112), etc. This evaluation may be performed using a feedback and evaluation connection 105 between the control model 102 and the HIL simulation 106. In various embodiments, such evaluation may utilize a simulated operator interface 130 of the software simulation system 115 to evaluate the performance of the control model 102. For example, the simulated operator interface 130 may generate outputs similar to those generated by the operator console 110 used with the physical system 112. When provided with real-world data, the simulated operator interface 130 may indicate suspect physical conditions in the system, suggested actions to improve the physical conditions, etc. The control model 102 is sufficiently trained (either in general or for a particular scenario) if the output provided in the simulated operator interface 130 is correct and / or useful to an operator operating the physical system 112. For example, the control model 102 may be able to correctly diagnose that a certain component of the system is likely to fail within a certain number of cycles and may suggest system maintenance to replace the component within a certain time frame to prevent failure of the component. It may be useful for the control model 102 to undergo further training if the output provided in the simulated operator interface 130 is erroneous. For example, the data provided may be real-world data generated in response to physical conditions outside the system (e.g., if the physical system 112 is an amusement park attraction, an object dropped by a passenger on the track of the physical system 112 that gets in the way of the physical system 112).The control model 102 may generate erroneous outputs, in which case the control model 102 makes suggestions that such conditions can be corrected by performing maintenance on one or more components of the system. In various embodiments, the additional data provided to the control model 102 in block 312 may be used to further train the control model 102 (e.g., via reinforcement learning). In various embodiments, the method 300 may return from block 312 to block 310 to further train the control model 102 using the training data.

[0074] The trained control model 102 may be used by a control system 108 of the physical system 112 to identify physical conditions within the physical system 112. For example, the control model 102 may be in communication with or integrated into the control system 108 to receive outputs generated by the control system 108. Based on such outputs provided by the control system 108, the control model 102 may provide information regarding the physical conditions within the physical system 112. For example, the control model 102 may identify that a motor within the physical system is beginning to malfunction and is likely to fail based on the outputs from the control system 108. In some examples, the control model 102 may further predict when (e.g., within approximately how many cycles of the physical system 112) the motor is likely to fail. Such information from the control model 102 may be provided to operators, maintenance personnel, and / or other personnel via various interfaces (e.g., operator interface 110). Such alerts and other information provided by the control model may assist operators and maintenance personnel in diagnosing problems within the system and maintaining the physical system 112 in a manner that reduces overall downtime of the physical system 112.

[0075] Thus, a method has been disclosed for training a control model for use in a control system that controls a physical system. The control model can increase the reliability and overall uptime of the physical system by predicting failures before they occur, allowing personnel to make educated decisions regarding system maintenance, etc. To generate training data, HIL simulation using Monte Carlo techniques may be used, whereby the control model is trained on a robust data set that emulates the data the physical system would generate. Thus, a more accurate control model can be generated with fewer inputs from the physical system.

[0076] The description of specific embodiments set forth herein is merely exemplary in nature and in no way is intended to limit the scope of the disclosure or its application or use. In the written detailed description of the embodiments of the system and method of the present invention, reference is made to the accompanying drawings, which form a part of the system and method of the present invention and which are shown by way of specific illustrations of embodiments in which the described system and method may be practiced. These embodiments have been described in sufficient detail to enable one skilled in the art to practice the disclosed system and method, and it will be appreciated that other embodiments may be utilized, and structural and logical changes may be made without departing from the spirit and scope of the present disclosure. Moreover, for purposes of clarity, specific features that would be apparent to those skilled in the art have not been described in detail. This is to avoid obscuring the description of the embodiments of the present disclosure. Therefore, the detailed description set forth should not be interpreted as limiting, and the scope of the present disclosure is defined only by the appended claims.

[0077] From the foregoing, it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention.

[0078] The details shown in this specification are merely for the purpose of illustrative description of the preferred embodiments of the present invention, and are shown to provide what is believed to be the most useful and most easily understood explanation of the principles and conceptual aspects of various embodiments of the present invention. In this regard, structural details of the present invention are not shown in more detail than is necessary for a fundamental understanding of the present invention, and those skilled in the art will understand how several forms of the present invention can be actually implemented by reading this specification in conjunction with the drawings and / or examples.

[0079] As used herein, unless otherwise indicated, the words "a" and "an" are to be construed as meaning "one," "at least one," or "one or more." Unless the context requires otherwise, as used herein, singular terms shall include plural terms and plural terms shall include the singular.

[0080] Unless the context clearly dictates otherwise, throughout this specification and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense (i.e., "including, but not limited to") and not in an exclusive or exhaustive sense. Words using the singular or plural also include the plural and singular, respectively. Additionally, the words "herein," "above," and "below," and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application.

[0081] Of course, it will be appreciated that in accordance with the systems, devices, and methods of the present invention, any of the examples, embodiments, or processes described herein may be combined with one or more other examples, embodiments, and / or processes, or may be separated and / or implemented across multiple independent devices or device portions.

[0082] Finally, the above description is intended to be merely illustrative of the inventive system and should not be construed as limiting the appended claims to any particular embodiment or group of embodiments. Thus, while the inventive system has been described in particular detail above with reference to exemplary embodiments, it will still be understood that various modifications and alternative embodiments may be devised by those skilled in the art without departing from the broad, intended spirit and scope of the inventive system, as set forth in the following claims. Thus, the specification and drawings are to be considered as illustrative and are not intended as limiting the scope of the appended claims.

Claims

1. A method of implementing a method for implementing a software simulation of a physical system, comprising: receiving, by a processing element, input for injecting simulated faults into the software simulation of the physical system, the simulated faults being introduced into programmatic data inputs using Monte Carlo techniques; generating, by the processing element, emulated sensor data based on the received input, the emulated sensor data emulating outputs from one or more sensors of the physical system; acquiring, by the processing element, output data from a test control system that generates output data based on received and emulated sensor data, the test control system emulating a control system of the physical system; tagging, by the processing element, the output data with the simulated faults to create training data; utilizing, by the processing element, the training data to train a control system model to identify one or more physical conditions within the physical system, the control system model being a machine learning model for use in the control system of the physical system during operation of the physical system; evaluating, by the processing element, the training of the control system model using a feedback and evaluation connection between the control system model and a hardware-in-the-loop (HIL) simulation; The method includes:

2. The method described in claim 1, wherein the physical system includes a plurality of subsystems, each of the plurality of subsystems being controlled by the control system.

3. The method of claim 1, wherein the physical system includes a plurality of subsystems, and the control system controls one of the plurality of subsystems.

4. The method of claim 1, wherein the tagging of the output data includes tagging the output data with the one or more physical conditions introduced into the software simulation of the physical system.

5. A software simulation system including a software simulation of a physical system, the software simulation system configured to generate emulated sensor data based on inputs to the software simulation system, the emulated sensor data emulating outputs from one or more sensors of the physical system; and a test control system emulating a control system of the physical system, the test control system configured to generate control system outputs based on the emulated sensor data; a control model that is trained to identify one or more physical conditions in the physical system based on actual outputs from the one or more sensors of the physical system, the control model being trained using the control system outputs provided from the test control system in response to the emulated sensor data; A feedback and evaluation connection between the control model and a Hardware-in-the-Loop (HIL) simulation may be used to evaluate the training of the control model. system.

6. The system described in claim 5, wherein the control model is a machine learning model trained using the output generated by the test control system.

7. The system described in claim 6, wherein the control model is further trained using data collected from the control system of the physical system during operation of the physical system.

8. The system of claim 5, wherein the software simulation system includes an input / output (I / O) emulation interface, the I / O emulation interface providing the emulated sensor data to the test control system.

9. The system of claim 5, wherein the test control system includes one or more hardware components included in the control system of the physical system.

10. A method for implementing a hardware-in-the-loop (HIL) simulation of a physical system performed by a processing element, comprising: receiving programmatic data input including at least one fault to be introduced, the at least one fault to be introduced representing a physical condition in the physical system; generating control system outputs via the HIL simulation, the control system outputs corresponding to outputs of a control system that controls the physical system; generating a data set by tagging the control system outputs with the programmatic data inputs including the at least one introduced fault; training a control model using the data set, wherein the control model is trained to identify the physical conditions in the physical system based on the control system output of the control system that controls the physical system; evaluating, by the processing element, the training of the control model using a feedback and evaluation connection between the control model and the HIL simulation; The method includes: augmenting the data set with data collected from a control system that controls the physical system in response to operation of the physical system. The method of claim 10 further comprising:

12. The method described in claim 10, wherein the control model is a machine learning model.

13. The method of claim 10, wherein the generating of the control system output includes obtaining the control system output from a test control system that generates emulated sensor data based on the at least one introduced fault and generates output data based on the received emulated sensor data.

14. The method of claim 13, wherein the test control system emulates the control system that controls the physical system.

15. The method of claim 10, wherein the at least one introduced fault is introduced into the programmatic data input using a Monte Carlo technique.

Citation Information

Patent Citations

  • Process control system element

    JP2004199656A

  • Controller, design device, control method and program

    JP2015114901A

  • Edge computing device with artificial intelligence model for emulating control logic of a programmable logic controller

    US20220137583A1

  • Predictive maintenance for a device in the food industry by means of a digital twin, and optimized production planning

    US20220269259A1

  • Control device, control method and program storage medium

    WO2019142728A1