Unsupervised multi-target motion profile sequence prediction and optimization
A predictive model using sensor data optimizes motion profiles in industrial systems, addressing the limitations of conventional manual design by enhancing performance through unsupervised learning and anomaly detection.
Patent Information
- Application Number
- JP2025504775
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-07-28
- Publication Date
- 2025-08-20
- Estimated Expiration
- 2042-07-28
AI Technical Summary
Conventional motion profile design in industrial systems is subjective, time-consuming, and unreliable, often failing to consider data collected during operation and lacking optimization across multiple targets, leading to suboptimal performance.
A predictive model is trained using sensor data to automatically derive targets and optimize motion profile sequences, incorporating unsupervised learning and anomaly detection to enhance performance across multiple targets.
The solution enables efficient, data-driven optimization of motion profiles, improving industrial system performance by considering multiple targets and reducing reliance on manual design.
Smart Images

Figure 2025527210000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD OF THE INVENTION
[0002] Embodiments described herein relate generally to motion profiles in industrial systems, and more particularly to predicting a target based on a set of motion profiles and / or optimizing a set of motion profiles based on the predicted target. [Background technology]
[0003] 2. Description of Related Art
[0004] Many industries operate position control systems that drive repetitive tasks based on predetermined motion profiles. A motion profile is a specification of one or more prescribed and controlled movements (e.g., portions of a motion or sub-motion, a single motion, a series of motions, etc.) used by a physical asset to perform a task. Each motion profile may move a portion of a physical asset or the physical asset itself to a specified position at a precise velocity or along a predetermined path. A motion profile may be defined by position, velocity, and / or acceleration. Multiple motion profiles may be combined (e.g., in a specific order) into a motion profile train, which is itself a motion profile containing multiple motions.
[0005] Examples of industries that utilize position control systems include, but are not limited to, manufacturing facilities, amusement parks, airports, shipping ports, public facilities, mining sites and facilities, oil and gas sites and facilities, warehouses, transportation facilities, etc. Different industries and systems use different metrics, including key performance indicators (KPIs), to measure success. Such metrics represent goals to be achieved by physical assets. Examples of goals include, but are not limited to, production rate, yield rate, anomaly rate, failure rate, vibration level, energy consumption, noise (e.g., acoustic) level, position accuracy, user experience, etc. In industrial systems that develop and deploy motion profiles, different motion profile sequences may cause physical assets to move differently, consume different resources, consume different amounts of resources, and / or produce different results with respect to one or more goals.
[0006] There are numerous problems with conventional means for target prediction and optimization of motion profile sequences. For example, conventionally, motion profiles are manually designed based on mathematical formulas, domain knowledge of the industrial system, and physical characteristics of the physical asset. The design process is subjective, time-consuming, and unreliable. Furthermore, these conventional means do not consider data collected during operation of the physical asset and feedback from the operation of the physical asset.
[0007] As another example, conventional approaches focus on designing motion profiles at the level of individual movements. They do not consider optimization at the level of a series of motion profiles. For example, U.S. Patent Application Publication No. 2016 / 0252894 describes a method of optimizing each sub-motion profile independently and then combining the optimized sub-motion profiles into a motion profile.
[0008] As another example, conventional approaches generally utilize a single target during motion profile design. However, the use of a single target typically fails to cover all performance aspects of an industrial system. Furthermore, a single target fails to capture correlations between multiple targets. Consideration of such correlations can result in a solution with higher performance.
[0009] As another example, conventional approaches generally rely on the collection of accurate target data to be used in supervised learning. However, for various reasons, accurate target data may not be available. First, targets may not be collected if there is no process to collect them or if collecting them is infeasible (e.g., due to a large amount of data). Second, even if some targets are collected, they may be inaccurate or unreliable if there is no standard process to effectively and efficiently collect them or if the targets are collected manually (e.g., by manually labeling sensor data based on domain knowledge). Third, the collected target data may be incomplete. Incomplete data may be the same as no data, as it may hinder insights, such as identifying the root cause of an anomaly.
[0010] As another example, conventional approaches generally design motion profiles based on target values at the current time, which does not provide an operator or technician with an opportunity to respond or correct if the target values are not optimal. Furthermore, optimization based on target values at the current time may not be optimal over the long term.
[0011] The present disclosure is directed to overcoming one or more of the problems discovered by the inventors. Summary of the Invention [Problem to be solved by the invention]
[0012] A system, method, and non-transitory computer-readable medium are disclosed that predict a target based on a motion profile sequence and available sensor data, and optionally use the predicted target to optimize the motion profile sequence and achieve an optimal value of the target. [Means for solving the problem]
[0013] In an embodiment, a method includes using at least one hardware processor to train a predictive model to predict target values for a motion profile sequence, the method including: receiving a motion profile sequence including a series of motion profiles, each motion profile defining one or more movements relative to a physical asset to perform a task; receiving sensor data associated with the motion profile sequence; generating training data from the motion profile sequence and the sensor data, the training data including a plurality of feature sets, each of the plurality of feature sets including a feature value for each of one or more features derived from at least the motion profile sequence, each of the plurality of feature sets being labeled with a target value for each of a plurality of targets derived from at least the sensor data; and training the predictive model to predict target values for each of the plurality of targets for at least one future time window based on the training data. The method may further include determining an optimal motion profile sequence using the trained predictive model.
[0014] Determining the optimal motion profile sequence may include generating a training data set including a plurality of feature vectors, each feature vector including a motion profile sequence labeled with one or more target values for that motion profile sequence, iteratively building a surrogate model using the training data set until a stopping condition is met, maximizing an acquisition function of the surrogate model to identify a next motion profile sequence, applying the trained predictive model to the one or more feature values derived for the next optimal motion profile sequence to predict at least one target value for the next motion profile sequence, adding a feature vector to the training data set, the added feature vector including the next motion profile sequence labeled with at least one target value predicted for the next motion profile sequence, and after the stopping condition is met, selecting the optimal motion profile sequence based on the predicted at least one target value. The surrogate model may be a Gaussian regression model.
[0015] Each of the plurality of feature sets may be derived from both the motion profile sequence and the sensor data, and determining the optimal motion profile sequence may include obtaining a motion profile sequence that exists within a lookback window; selecting a plurality of potential motion profile sequences that include the existing motion profile sequence as a prefix; applying a training prediction model to the potential motion profile sequence and one or more feature values derived from the real-time sensor data to predict, for each of the plurality of potential motion profile sequences, at least one target value for the potential motion profile sequence; and selecting an optimal motion profile sequence from the potential motion profile sequence based on the predicted at least one target value for the potential motion profile sequence. Selecting the plurality of potential motion profile sequences may include: dividing the set of available motion profile sequences into a first subset and a second subset from a set of available motion profile sequences that includes the motion profile sequence present as a prefix, each of the available motion profile sequences being associated with at least one pre-determined target value, the first subset consisting of motion profile sequences associated with a higher value than the second subset of the at least one pre-determined target value; randomly sampling a first number of potential motion profile sequences from the first subset; and randomly sampling a second number of potential motion profile sequences from the second subset. The method may further include controlling the physical asset to perform the task according to the optimal motion profile sequence.
[0016] Each of the one or more movements may be defined by one or more of a position, a velocity, or an acceleration. The sensor data may include one or both of historical data collected by sensors monitoring the physical asset or synthetic data generated using a simulation of the physical asset.
[0017] Generating training data may include deriving an anomaly feature set based on the sensor data and applying an anomaly scoring model to the anomaly feature set to generate an anomaly score, where the one or more features include the anomaly score. The method may further include using at least one hardware processor to train the anomaly scoring model using unsupervised learning. Generating training data may further include applying an explainable artificial intelligence model to the surrogate anomaly scoring model trained using supervised learning to determine root causes of the anomaly scores, where the one or more features further include the root causes. The anomaly feature set may include feature values for each of a plurality of anomaly features, and the method may include training the surrogate anomaly scoring model using a training dataset including a second plurality of feature sets, where each of the second plurality of feature sets includes a feature value for each of the plurality of anomaly features, and where each of the second plurality of feature sets is labeled with an anomaly score generated by the anomaly scoring model for that feature set. Generating training data may include applying one or more feature selection techniques to a surrogate anomaly scoring model that has been trained using supervised learning to determine a selected Feature Set, where the one or more features further comprise the selected Feature Set. The anomaly Feature Set may include a feature value for each of a plurality of anomaly features, and the method may further include identifying the plurality of anomaly features by generating a plurality of features from the sensor data, applying an autoencoder to the plurality of features to derive encoded features and decoded features, and calculating differences between the plurality of features and the decoded features, where the plurality of anomaly features include one or more of the calculated differences, at least a subset of the plurality of features, or at least a subset of the encoded features.
[0018] The one or more features may include one or more of position accuracy, vibration data, or acoustic data. The multiple targets may include one or more of anomaly scores, position accuracy, vibration data, or acoustic data. The method may include collecting feature values for one or more features within a lookback window of sensor data generated for the physical asset during an operation phase; applying a predictive model to the collected feature values to predict a target value for each of the multiple targets for at least one future time window; and aggregating the predicted target values for the multiple targets for the at least one future time window into an aggregated target value. The at least one future time window may be multiple future time windows, each of the multiple future time windows comprising a different time period. The one or more features may be derived solely from the motion profile sequence.
[0019] It should be understood that any of the features in the above-described methods may be implemented individually or with any subset of the other features in any combination. Accordingly, to the extent that the appended claims set forth specific dependencies between features, the disclosed embodiments are not limited to those specific dependencies. Rather, any of the features described herein may be combined with any other feature described herein, or any combination of features may be implemented without any one or more other features described herein. Furthermore, any of the methods described above or elsewhere herein may be embodied, individually or in any combination, within executable software modules of a processor-based system, such as a server, and / or in executable instructions stored on a non-transitory computer-readable medium. [Brief explanation of the drawings]
[0020] The details of the present invention, both as to its structure and operation, may be gleaned in part by study of the accompanying drawings, in which like reference numerals refer to like parts.
[0021] [Figure 1] FIG. 1 illustrates an example infrastructure in which one or more of the processes described herein may be implemented, according to an embodiment.
[0022] [Figure 2] FIG. 2 illustrates an example processing system in which one or more of the processes described herein may be performed, according to an embodiment.
[0023] [Figure 3] FIG. 3 illustrates an overall architecture for prediction and optimization according to an embodiment.
[0024] [Figure 4] FIG. 4 illustrates an example process for constructing feature data and / or target data from sensor data, according to an embodiment.
[0025] [Figure 5] FIG. 5 illustrates an example of anomaly detection according to an embodiment.
[0026] [Figure 6] FIG. 6 illustrates an overall architecture for using a trained predictive model to predict one or more targets of a motion profile sequence, according to an embodiment.
[0027] [Figure 7] FIG. 7 illustrates a process for offline optimization, according to an embodiment.
[0028] [Figure 8] FIG. 8 illustrates a process for online optimization, according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0029] In embodiments, systems, methods, and non-transitory computer-readable media are disclosed for predicting targets for motion profile sequences and / or optimizing motion profile sequences based on the targets. Both the prediction and optimization may be implemented in offline and / or online modes. After reading this description, it will be apparent to those skilled in the art how to implement the present invention in various alternative embodiments and applications. However, while various embodiments of the present invention are described herein, it should be understood that these embodiments are presented by way of example and illustration only, and not limitation. As such, this detailed description of various embodiments should not be construed as limiting the scope or breadth of the present invention, as set forth in the appended claims.
[0030] 1. System Overview
[0031] Infrastructure
[0032] FIG. 1 illustrates an example infrastructure in which one or more of the disclosed processes may be implemented, according to an embodiment. The infrastructure may include a platform 110 (e.g., one or more servers) that hosts and / or executes one or more of the various functions, processes, methods, and / or software modules described herein. The platform 110 may include dedicated servers, or alternatively, may be implemented in a computational cloud that dynamically and flexibly allocates resources of one or more servers to multiple tenants based on demand. In either case, the servers may be collocated and / or geographically distributed. Furthermore, the platform 110 may include or be communicatively connected to a server application 112 and / or one or more databases 114. Furthermore, the platform 110 may be communicatively connected to one or more user systems 130 via one or more networks 120. Furthermore, the platform 110 may be communicatively connected to one or more physical assets 140 via one or more networks 120.
[0033] Network 120 may include the Internet, and platform 110 may communicate with user systems 130 over the Internet using standard transmission protocols, such as Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), File Transfer Protocol (FTP), FTP Secure (FTPS), Secure Shell FTP (SFTP), or proprietary protocols. While platform 110 is illustrated as connected to various systems over a single set of networks 120, it should be understood that platform 110 may be connected to various systems over a different set of one or more networks. For example, platform 110 may be connected to a subset of user systems 130 and / or physical assets 140 over the Internet, but may be connected to one or more other user systems 130 and / or physical assets 140 over an intranet. Furthermore, while only a few user systems 130 and physical assets 140, one server application 112, and one set of databases 114 are illustrated, it should be understood that the infrastructure may include any number of user systems, physical assets, server applications, and databases.
[0034] User systems 130 may include any type or types of computing devices capable of wired and / or wireless communication, including, but not limited to, desktop computers, laptop computers, tablet computers, smartphones or other mobile phones, servers, gaming consoles, televisions, set-top boxes, electronic kiosks, point-of-sale terminals, etc. However, user systems 130 are generally considered to include personal computers or workstations of agents of entities responsible for operating or otherwise managing physical assets 140. Each user system 130 may include, or be communicatively connected to, a client application 132 and / or one or more local databases 134.
[0035] Physical asset 140 may include any type or types of machinery that has one or more moving components and / or moves as a whole and whose motion can be controlled by a motion profile (e.g., within a sequence of motion profiles). Examples of physical asset 140 include, but are not limited to, semi-autonomous or autonomous vehicles (e.g., automobiles, motorcycles, airplanes, helicopters, construction or mining vehicles, trains, etc.), drones, robots (e.g., robotic components for manufacturing processes, laboratory processes, transportation processes, etc.), engines (e.g., turbine engines), gas compressors, amusement park rides (e.g., roller coasters, tilting machines, Ferris wheels, etc.), etc. A controller or monitoring system for physical asset 140 may communicate with server application 112 on platform 110 to send to platform 110 the motion profile by which physical asset 140 is controlled, and may send sensor data (e.g., in real time or periodically) to platform 110 and receive from server application 112 the motion profile by which physical asset 140 is controlled. Thus, user system 130 may utilize platform 110 to build, configure, and / or execute the predictive and / or optimization models described herein, configure and / or deploy motion profiles by which each physical asset 140 is controlled, and / or otherwise manage physical assets 140.
[0036] A motion profile sequence may include a sequence of one or more motion profiles. Thus, the motion profile sequence itself may be considered a composite motion profile. Each motion profile in the motion profile sequence may define one or more movements for the physical asset 140 to perform a task. For example, a motion profile may provide physical motion information for a sequence of movements and physically indicate how a motor should move during the sequence of movements. A controller (e.g., a servo controller) of the physical asset 140 may use the motion profile to determine what commands (e.g., voltages) to send to the motor. In this case, the two most common types of motion profiles are triangular and trapezoidal, so called because of their shape when plotted as a function of time.
[0037] Platform 110 may include a web server that hosts one or more websites and / or web services. In embodiments in which a website is provided, the website may include a graphical user interface including one or more screens (e.g., web pages) generated, for example, in HyperText Markup Language (HTML) or other language. Platform 110 transmits or provides one or more screens of the graphical user interface in response to a request from user system 130. In some embodiments, these screens may be provided in the form of a wizard, where two or more screens are provided sequentially, and one or more of the sequential screens may depend on the user's or user system's 130's interaction with one or more previous screens. Both requests to and responses from platform 110, including screens of the graphical user interface, may be communicated over network 120, which may include the Internet, using standard transmission protocols (e.g., HTTP, HTTPS, etc.). These screens (e.g., web pages) may include a combination of content and elements, such as text, images, video, animations, references (e.g., hyperlinks), frames, inputs (e.g., text boxes, text areas, check boxes, radio buttons, drop-down menus, buttons, forms, etc.), scripts (e.g., JavaScript), etc., including data stored in or elements derived from one or more databases (e.g., database 114) locally and / or remotely accessible to platform 110. Additionally, platform 110 may respond to other requests from user system 130.
[0038] Platform 110 may include one or more databases 114, be communicatively connected to, or otherwise have access to databases 114. For example, platform 110 may include one or more database servers managing one or more databases 114. Server applications 112 executing on platform 110 and / or client applications 132 executing on user systems 130 may present data (e.g., user data, form data, etc.) stored in databases 114 and / or request access to data stored in databases 114. Any suitable database may be utilized, including, but not limited to, MySQL™, Oracle™, IBM™, Microsoft SQL™, Access™, PostgreSQL™, MongoDB™, etc., including cloud-based databases and proprietary databases. Data may be submitted to platform 110 using, for example, well-known POST requests supported by HTTP, FTP, etc. This data and other requests may be processed by server-side web technologies, such as, for example, servlets or other software modules (eg, included in server application 112), executed by platform 110.
[0039] In embodiments in which web services are provided, platform 110 may receive requests from physical assets 140 and provide responses in Extensible Markup Language (XML), JavaScript Object Notation (JSON), and / or any other suitable or desired format. In such embodiments, platform 110 may provide an application programming interface (API) that defines how user systems 130 and / or physical assets 140 interact with the web services. Accordingly, user systems 130 and / or physical assets 140 may define their respective interfaces and rely on web services to implement or otherwise perform the back-end processes, methods, functions, storage, etc. described herein. For example, in such embodiments, client applications 132 executing on one or more user systems 130 may interact with server application 112 executing on platform 110 to perform one or more or a portion of one or more of the various functions, processes, methods, and / or software modules described herein. In embodiments, client applications 132 may utilize a local database 134 to store data locally on user systems 130.
[0040] A client application 132 may be "thin" if processing is primarily performed on the server side by a server application 112 on platform 110. A basic example of a thin client application 132 is a browser application that simply requests, receives, and serves web pages on a user system 130, while a server application 112 on platform 110 is responsible for generating web pages and managing database functions. Alternatively, a client application may be "thick" if processing is primarily performed on the client side by a user system 130. It should be understood that a client application 132 may perform processing volume for a server application 112 on platform 110 at any point along this spectrum between "thin" and "thick," depending on the design goals of a particular implementation. Regardless, the software described herein, whether wholly resident on platform 110 (e.g., where server application 112 performs all processing) or on user system 130 (e.g., where client application 132 performs all processing), or distributed between platform 110 and user system 130 (e.g., where both server application 112 and client application 132 perform processing), may include one or more executable software modules that include instructions to implement one or more of the processes, methods, or functions described herein.
[0041] 1.2. Processing Device Examples
[0042] 2 is a block diagram illustrating an example of a wired or wireless system 200 that may be used in connection with various embodiments described herein. For example, system 200 may be used as or in conjunction with one or more of the functions, processes, or methods (e.g., storing and / or executing software) described herein, and system 200 may represent a component of platform 110, user system 130, physical asset 140, and / or other processing device described herein. System 200 may be a server or any conventional personal computer, or any other processor-enabled device capable of wired or wireless data communication. Other computer systems and / or architectures may be used, as will be apparent to those skilled in the art.
[0043] Preferably, system 200 includes one or more processors 210. Processor 210 may include a central processing unit (CPU). Additional processors may be provided, such as a graphics processing unit (GPU), auxiliary processors for managing input / output, auxiliary processors for performing floating-point mathematical operations, specialized microprocessors (e.g., digital signal processors) having architectures suitable for high-speed execution of signal processing algorithms, slave processors (e.g., back-end processors) associated with the main processing system, additional microprocessors or controllers for dual- or multi-processor systems, and / or coprocessors. Such auxiliary processors may be separate processors or may be integrated with processor 210. Examples of processors that may be used in system 200 include, but are not limited to, any of the processors available from Intel Corporation of Santa Clara, California (e.g., Pentium™, Core i7™, Xeon™, etc.), any of the processors available from Advanced Micro Devices, Incorporated (AMD) of Santa Clara, California, any of the processors available from Apple Inc. of Cupertino (e.g., A series, M series, etc.), any of the processors available from Samsung Electronics Co., Ltd., of Seoul, Republic of Korea (e.g., Exynos™), any of the processors available from NXP Semiconductors NV of Eindhoven, The Netherlands, etc.
[0044] Preferably, processor 210 is connected to a communications bus 205. Communications bus 205 may include a data channel that facilitates information transfer between storage devices and other peripheral components of system 200. Additionally, communications bus 205 may provide a set of signals used to communicate with processor 210, including a data bus, an address bus, and / or a control bus (not shown). Communications bus 205 may include any standard or non-standard bus architecture, such as, for example, a bus architecture conforming to the Industry Standard Architecture (ISA), the Extended Industry Standard Architecture (EISA), the MicroChannel Architecture (MCA), a Peripheral Component Interconnect (PCI) local bus, the IEEE 488 General Purpose Interface Bus (GPIB), standards promulgated by the Institute of Electrical and Electronics Engineers (IEEE), including IEEE 696 / S-100.
[0045] Preferably, system 200 includes main memory 215 and may further include secondary memory 220. Main memory 215 provides instruction and data storage for programs executing on processor 210, such as, for example, any of the software described herein. The programs stored in memory and executed by processor 210 may be written and / or compiled according to any suitable language, including, but not limited to, C / C++, Java, JavaScript, Perl, Visual Basic, .NET, etc. Main memory 215 is typically semiconductor-based memory, such as, for example, dynamic random access memory (DRAM) and / or static random access memory (SRAM). Other semiconductor-based memory types include, for example, synchronous dynamic random access memory (SDRAM), Rambus dynamic random access memory (RDRAM), ferroelectric random access memory (FRAM), etc., including read-only memory (ROM).
[0046] Secondary memory 220 is a non-transitory computer-readable medium having computer-executable code (e.g., any of the software disclosed herein) and / or other data stored on the non-transitory computer-readable medium. The computer software or data stored in secondary memory 220 is loaded into main memory 215 for execution by processor 210. Secondary memory 220 may include, for example, semiconductor-based memory such as programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory (a block-oriented memory similar to EEPROM).
[0047] Optionally, secondary memory 220 may include internal media 225 and / or removable media 230. Removable media 230 may be read from and / or written to in any known manner. Removable media 230 may be, for example, a magnetic tape drive, a compact disc (CD) drive, a digital versatile disc (DVD) drive, other optical drive, a flash memory drive, etc.
[0048] In alternative embodiments, secondary memory 220 may include other similar means by which computer programs or other data or instructions may be loaded into system 200. Such means may include, for example, communications interface 240 by which software and data may be transferred to system 200 from external storage medium 245. Examples of external storage medium 245 include an external hard disk drive, an external optical drive, an external magneto-optical drive, etc.
[0049] As mentioned above, system 200 may include a communications interface 240. Communications interface 240 may allow software and data to be transferred between system 200 and an external device (e.g., a printer), a network, or other information source. For example, computer software or executable code may be transferred to system 200 from a network server (e.g., platform 110) via communications interface 240. Examples of communications interface 240 include an internal network adapter, a network interface card (NIC), a Personal Computer Memory Card International Association (PCMCIA) network card, a card bus network adapter, a wireless network adapter, a universal serial bus (USB) network adapter, a modem, a wireless data card, a communications port, an infrared interface, an IEEE 1394 FireWire, and any other device capable of interfacing system 200 to a network (e.g., network 120) or other computing devices. Preferably, communication interface 240 implements industry published protocol standards such as the Ethernet IEEE 802 standard, Fibre Channel, Digital Subscriber Line (DSL), Asynchronous Digital Subscriber Line (ADSL), Frame Relay, Asynchronous Transfer Mode (ATM), Integrated Services Digital Network (ISDN), Personal Communications Services (PCS), Transmission Control Protocol / Internet Protocol (TCP / IP), Serial Line Internet Protocol / Point-to-Point Protocol (SLIP / PPP), etc., but may also implement customized or non-standard interface protocols.
[0050] The software and data transferred via communications interface 240 are typically in the form of electrical communications signals 255. These signals 255 may be provided to communications interface 240 via communications channel 250. In embodiments, communications channel 250 may be a wired or wireless network (e.g., network 120), or any of a variety of other communications links. Communications channel 250 carries signals 255 and may be implemented using a variety of wired or wireless communications means, including wire or cable, optical fiber, a conventional telephone line, a cellular phone link, a wireless data communications link, a radio frequency ("RF") link, or an infrared link, to name a few.
[0051] Computer-executable code (e.g., computer programs such as the disclosed software) is stored in main memory 215 and / or secondary memory 220. Computer-executable code may be received via communications interface 240 and stored in main memory 215 and / or secondary memory 220. When executed, such computer programs can cause system 200 to perform various functions of the disclosed embodiments, as described elsewhere herein.
[0052] As used herein, the term "computer-readable medium" refers to any non-transitory computer-readable storage medium used to provide computer-executable code and / or other data to or within system 200. Examples of such media include main memory 215, secondary memory 220 (including internal memory 225 and / or removable media 230), external storage medium 245, and any peripheral devices (including network information servers or other network devices) communicatively connected to communication interface 240. These non-transitory computer-readable media are the means for providing software and / or other data to system 200.
[0053] In embodiments implemented using software, the software may be stored on a computer-readable medium and loaded into system 200 via removable medium 230, I / O interface 235, or communication interface 240. In such embodiments, the software is loaded into system 200 in the form of electrical communication signals 255. Preferably, when executed by processor 210, the software causes processor 210 to perform one or more of the processes and functions described elsewhere herein.
[0054] In an embodiment, I / O interface 235 provides an interface between one or more components of system 200 and one or more input and / or output devices. Examples of input devices include, but are not limited to, sensors, keyboards, touchscreens or other touch-sensitive devices, cameras, biometric detection devices, computer mice, trackballs, pen-based pointing devices, etc. Examples of output devices include, but are not limited to, other processing devices, cathode ray tubes (CRTs), plasma displays, light-emitting diode (LED) displays, liquid crystal displays (LCDs), printers, vacuum fluorescent displays (VFDs), surface-conduction electron emitter displays (SEDs), field-emission displays (FEDs), etc. In some cases, for example, in the case of touch-sensitive displays (e.g., in smartphones, tablets, or other mobile devices), input and output devices may be combined.
[0055] Additionally, system 200 may include optional wireless communication components that facilitate wireless communication over a voice network and / or a data network (e.g., in the case of user system 130). The wireless communication components include antenna system 270, radio system 265, and baseband system 260. In system 200, radio frequency (RF) signals are transmitted and received via wireless communication by antenna system 270 under the control of radio system 265.
[0056] In an embodiment, antenna system 270 may include one or more antennas and one or more multiplexers (not shown) that perform a switching function to provide transmit and receive signal paths for antenna system 270. In the receive path, the received RF signal may be coupled from the multiplexer to a low noise amplifier (not shown) that amplifies the received RF signal and transmits the amplified signal to radio system 265.
[0057] In alternative embodiments, the radio system 265 may include one or more radios configured to communicate over various frequencies. In embodiments, the radio system 265 may combine a demodulator (not shown) and a modulator (not shown) into a single integrated circuit (IC). The demodulator and modulator may be separate components. In the input path, the demodulator removes the RF carrier signal, leaving a baseband received audio signal that is transmitted from the radio system 265 to the baseband system 260.
[0058] If the received signal contains voice information, the baseband system 260 decodes the signal and converts it to an analog signal. The signal is then amplified and transmitted to a speaker. The baseband system 260 also receives analog voice signals from a microphone. These analog voice signals are converted to digital signals and encoded by the baseband system 260. The baseband system 260 then encodes the digital signals for transmission and generates baseband transmit voice signals that are routed to a modulator portion of the radio system 265. The modulator mixes the RF carrier signal with the baseband transmit voice signal to generate an RF transmit signal that can be routed to the antenna system 270 and passed through a power amplifier (not shown). The power amplifier amplifies the RF transmit signal and routes it to the antenna system 270, where it is switched to an antenna port for transmission.
[0059] Further, baseband system 260 is communicatively coupled to processor 210. Processor 210 has access to data storage areas 215 and 220. Processor 210 is preferably configured to execute instructions (i.e., computer programs, such as the disclosed software) that may be stored in main memory 215 or secondary memory 220. Computer programs may be received from baseband processor 260 and stored in main memory 210 or secondary memory 220, or executed upon receipt. Such computer programs, when executed, may cause system 200 to perform various functions of the disclosed embodiments.
[0060] 2. Architecture Overview
[0061] Embodiments of architectures for predicting motion profile sequence goals and / or optimizing motion profile sequences based on the goals are now described in detail. It should be understood that within these architectures, the described processes may be embodied in one or more software modules executed by one or more hardware processors (e.g., processor 210), for example, as a software application (e.g., server application 112, client application 132, and / or a distributed application including both server application 112 and client application 132), executed entirely by a processor of platform 110, entirely by a processor of user system 130, or distributed across platform 110 and user system 130, such that some portions or modules of the software application are executed by platform 110 and other portions or modules of the software application are executed by user system 130. The described processes may be implemented as instructions expressed in source code, object code, and / or machine code. These instructions may be executed directly by hardware processor 210, or alternatively, by a virtual machine operating between the object code and hardware processor 210. Additionally, the disclosed software may be built into or interfaced to one or more existing systems.
[0062] Alternatively, the described processes may be implemented as hardware components (e.g., general-purpose processors, integrated circuits (ICs), application-specific integrated circuits (ASICs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, etc.), a combination of hardware components, or a combination of hardware and software components. To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps are described herein generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention. Furthermore, the grouping of functions within a component, block, module, circuit, or step is for ease of description. Particular functions or steps may be moved from one component, block, module, circuit, or step to another without departing from the invention.
[0063] Furthermore, while the processes described herein are illustrated in a particular arrangement and ordering of sub-processes, each process may be implemented with fewer, more, or different sub-processes and in a different arrangement and / or ordering of the sub-processes. Furthermore, it should be understood that any sub-process that is not dependent on the completion of another sub-process may be performed before, after, or in parallel with that other independent sub-process, even if the sub-processes are described or illustrated in a particular order.
[0064] 2.1. Holistic Forecasting and Optimization
[0065] 3 illustrates an overall architecture 300 for prediction and optimization, according to an embodiment. Architecture 300 may accept as input one or more motion profile sequences 310 and sensor data 320. Architecture 300 may include a process 315 for constructing feature data 342 for training data 340 from motion profile sequences 310, a process 330 for constructing feature data 342 and / or target data 344 for training data 340 from sensor data 320, a process 350 for training a predictive model 360 and predicting values of one or more targets using training data 340, and a process 370 for optimizing the motion profile sequences using trained predictive model 360.
[0066] Each motion profile sequence 310 may include a time series of motion profiles. It should be understood that if a motion profile sequence 310 can share one or more motion profiles with other motion profile sequences 310, a particular motion profile may be general across multiple motion profile sequences. In this case, efficiency may be achieved by defining each motion profile sequence 310 as a series of motion profile identifiers that each identify a specific motion profile. Thus, two different motion profile sequences 310 may reference the same motion profile identifier to incorporate the same motion profile.
[0067] Feature engineering 315 may derive one or more features from each motion profile sequence 310 in the form of a time series. For each time point in the time series, the motion profile (e.g., a motion profile identifier) at that time point and / or one or more characteristics of the motion profile at that time point may be used as a data point in feature data 342. Additionally, for each time point in the time series, one or more statistics about the motion profile sequence 310 may be derived from a lookback window (e.g., including one or more time points within a period preceding the time point) and used as a data point in feature data 342. These statistics may include, for example, the most occurring motion profile within the lookback window, the length of inactivity within the lookback window, the average inactivity between consecutive motion profiles within the lookback window, etc. The length of the lookback window may be determined based on domain knowledge and / or optimized using optimization techniques such as grid search, random search, Bayesian optimization, etc. All feature values derived by feature engineering 315 may be incorporated as data points into feature data 342 of training data 340.
[0068] The sensor data 320 may include a time series of outputs from one or more sensors. The time series of sensor data 320 may be correlated in time with the time series of motion profiles in the corresponding motion profile sequence 310 from which the sensor data 320 was acquired. Thus, each sensor output may be associated with a particular motion profile in the particular motion profile sequence 320, and vice versa. The sensor outputs may be derived from physical sensors and / or virtual sensors. Examples of types of sensors whose outputs may be collected in the sensor data 320 include, but are not limited to, temperature sensors, pressure sensors, vibration sensors, acoustic sensors, motion sensors, optical sensors, light detection and ranging (LIDAR) sensors, infrared (IR) sensors, acceleration sensors, gas sensors, smoke sensors, humidity sensors, level sensors, image sensors, proximity sensors, water quality sensors, chemical sensors, etc. The exact combination of sensors depends on the type of physical asset 140, the task the physical asset 140 performs, the industry in which the physical asset 140 is used, etc. Whether a sensor is a physical sensor or a virtual sensor is not important to the embodiments disclosed herein, and outputs from physical and virtual sensors may be processed in the same manner without the need to distinguish between the two sensors. Thus, embodiments may utilize only physical sensors, only virtual sensors, or any combination of physical and virtual sensors for each physical asset 140.
[0069] In the case of physical sensors, the physical sensors may be installed on the physical asset 140 on which the motion profile train 310 is deployed or may otherwise monitor the physical asset 140. For example, the sensor data 320 may be collected by Internet of Things (IoT) and / or operational technology (OT) sensors physically installed on the physical asset 140 to monitor the health and performance of the physical asset 140 and / or the entire industrial system.
[0070] In the case of virtual sensors, sensor outputs may be calculated from a physics-based model or digital twin of the physical asset 140 (e.g., using the outputs of one or more physical sensors as inputs). Virtual sensors may be used in place of or to supplement physical sensors that cannot capture all metrics necessary to monitor the health of the physical asset 140. For example, certain physical sensors may not be feasible due to hardware and / or environmental physical constraints (e.g., high temperature, pressure, and / or radiation) or may not be able to capture data at a desired or necessary frequency. Physics-based models are software-defined representations of the governing laws of nature that inherently incorporate concepts of time, space, causality, and generalizability. These laws of nature define how physical, chemical, biological, and / or geological processes evolve. Physics-based models may be represented as functions that accept one or more inputs and generate one or more outputs as virtual sensor measurements. The inputs may be derived from physical sensors.
[0071] In embodiments that utilize a combination of physical and virtual sensors to capture the same metric, the output of the physical sensor for the metric represents the observed value, while the output of the virtual sensor for that metric represents the expected value. In these cases, the variance of the difference between the observed and expected values may be calculated and used as a feature to detect anomalies in the operation of the physical asset 140. In other words, the variance may be incorporated as a feature value in the data points of feature data 342.
[0072] By using virtual sensors in conjunction with physical sensors, domain knowledge represented by basic physics-based models can be incorporated into downstream models with a physical sensor data-driven approach. Physics-based models are theoretically self-consistent and empirically successful in making experimental predictions that work well at design time. However, during operation, complex system interactions and situations can cause theoretical physics-based models to fail to capture fundamental mechanisms, resulting in low accuracy and sensitivity. On the other hand, a physical sensor data-driven approach can capture subtle signals and patterns in complex systems, facilitating better insights for decision-making. Thus, the combination of virtual and physical sensors enables more robust models without the higher costs associated with a purely data-driven approach.
[0073] Process 330 for constructing feature and / or target data may utilize one or a combination of techniques to derive values for one or more features and / or one or more targets as part of feature data 342 and / or target data 344 in training data 340. It should be understood that these features and targets are derived for time points within the same lookback window used by feature engineering 315 because these features and targets are correlated with time-series motion profile sequence 310. Examples of targets for which values may be derived by process 330 include, but are not limited to, anomaly data (e.g., anomaly scores, root causes of anomaly scores, etc.), position accuracy data, vibration data, acoustic data, efficiency, throughput, etc. At least some of these targets may be derived automatically using unsupervised learning. Examples of features from which values may be derived in process 330 include, but are not limited to, anomaly data, location accuracy data, vibration data, acoustic data, temperature, pressure, motion sensor output, optical sensor output, LIDAR output, acceleration, gas, smoke, humidity, level, image characteristics, proximity sensor output, water quality, detected chemicals, etc., including the output of any physical or virtual sensor described herein or any physical or virtual sensor applicable to physical asset 140. It should be understood that a feature in one implementation or application may be a target in another implementation or application, and a target in one implementation or application may be a feature in another implementation or application. In other words, whether a particular sensor output or data derived from a particular sensor output is treated as a feature or target in training data 340 may depend on the particular implementation and / or application. Thus, it should be understood that any data described herein as a feature may be used as a target in alternative embodiments, and alternatively, any data described herein as a target may be used as a feature in alternative embodiments.
[0074] Process 350 uses training data 340 to train a predictive model 360 to predict the value of each target, represented by target data 344, over one or more future time windows based on the features, represented by feature data 342, for a given motion profile sequence. In particular, training data 340 may include labeled feature vectors, each of which includes a respective feature, represented by feature data 342, and is labeled with a value for each target, represented by target data 344. The target values to which the feature vectors are labeled represent the ground truth for training.
[0075] The predictive model 360 may be trained and operated in offline mode or online mode. The primary difference between offline mode and online mode is that in online mode, one or more features (e.g., values included in feature data 342) used during training and operation are derived from the sensor data 320. In other words, in online mode, both the feature values embedded in the feature data 342 and the target values embedded in the target data 344 are derived from the sensor data 320. In contrast, in offline mode, only the target values embedded in the target data 344 are derived from the sensor data 320. As a result, in offline mode, the feature data 342 consists of feature values derived solely from the motion profile sequence 310. The reason for this difference is that in offline mode, it is assumed that the sensor data 320 is unavailable during operation of the predictive model 360. Therefore, in offline mode, the predictive model 360 should not be trained using features derived from the sensor data 320.
[0076] In an embodiment, both offline and online versions of predictive model 360 may be trained, in which case the trained predictive model 360 may be operated in offline or online mode, whether or not sensor data is available during operation, depending on user preferences, one or more user or system settings, etc. In alternative embodiments, only the offline version of predictive model 360 may be trained and operated, or only the online version of predictive model 360 may be trained and operated.
[0077] It should be understood that the features represented by feature data 342 of training data 340 are the same features represented in the input data on which trained predictive model 360 operates. Thus, the same process by which feature data 342 is generated from motion profile sequence 310 during training (and, in online mode, from sensor data 320 by process 330) may be used to derive input data from motion profile sequence (and, in online mode, from real-time sensor data) during operation. Furthermore, it should be understood that the targets represented by target data 344 of training data 340 are the same targets represented in the output of trained predictive model 360.
[0078] The trained predictive model 360 may be used by one or more downstream functions. In an embodiment, these downstream functions include an optimization process 370. The optimization process 370 may differ based on whether the predictive model 360 was trained in an offline mode or an online mode. In either case, the optimization process 370 utilizes the trained predictive model 360 to optimize a motion profile sequence, as described elsewhere herein.
[0079] 2.2. Features and Objectives of Construction
[0080] 4 shows an example process 330 for constructing feature data and / or target data from sensor data 320, according to an embodiment. As illustrated, process 330 may include anomaly detection 410, location accuracy calculation 420, vibration data conversion 430, and acoustic data conversion 440. This is merely an example, and it should be understood that process 330 may include more, fewer, or different combinations of detection, calculation, and / or conversion sub-processes. Similarly, the resulting feature data and / or target data may include more, fewer, or different combinations of data.
[0081] As described elsewhere herein, in online mode, process 330 outputs only target data 344, while in offline mode, process 330 outputs both target data 344 and at least a portion of feature data 342. Furthermore, whether data is a feature or a target depends on the particular implementation. Thus, while anomaly data 415, position accuracy data 425, vibration data 435, and / or acoustic data 445 are generally considered to be used as targets represented in target data 344, any combination of these data may alternatively be used as features in feature data 342.
[0082] Anomaly detection 410 may process sensor data 320 and generate an indication of any possible failures or other anomalies in the physical asset 140 or the entire industrial system. The output of anomaly detection 310 is anomaly data 415, which may include an anomaly score for each time point in the time series of sensor data 320. The anomaly score may indicate the likelihood that the motion profile sequence 310 experienced an anomaly at the associated time point. For example, each anomaly score may be a value within a predetermined range (e.g., 0 to 1), with a larger value indicating a higher likelihood of an anomaly. Alternatively, or additionally, anomaly data 415 may include an aggregate anomaly score derived by aggregating anomaly scores across the entire time series. In an embodiment, anomaly detection 410 is implemented using unsupervised learning.
[0083] Location accuracy calculation 420 may process sensor data 320 and calculate location accuracy data 425. In particular, sensor data 320 may include the location of physical asset 140 at each time point in time series of sensor data 320 and a predicted location (e.g., from control signals) of physical asset 140 at each time point in time series of sensor data 320. Differences between the observed and predicted locations at each time point in time series of sensor data 320 may be calculated. These differences may then be aggregated across the entire time series to generate an aggregate location accuracy, which may be included in location accuracy data 425 instead of or in addition to the differences calculated at each time point. The aggregation may include an average, a weighted average, a minimum, a maximum, etc.
[0084] Vibration data transform 430 may process sensor data 320 and calculate vibration data 435. In particular, sensor data 320 may include vibration data of physical asset 140 in the frequency domain. Vibration data transform 430 may convert this vibration data from the frequency domain to the spatial domain using a transform technique such as a Fast Fourier Transform (FFT). Vibration data (e.g., vibration levels) may be transformed for each time point in time series of sensor data 320. This transformed vibration data may then be aggregated across the entire time series to generate aggregate vibration data (e.g., vibration levels), which may be included in vibration data 435 instead of or in addition to the vibration data at each time point. The aggregation may include averaging, weighted averages, minimums, maximums, etc.
[0085] Acoustic data transform 440 may process sensor data 320 and calculate acoustic data 445. In particular, sensor data 320 may include acoustic data (e.g., sound, noise, etc.) of physical asset 140 in the frequency domain. Acoustic data transform 440 may convert this acoustic data from the frequency domain to the spatial domain using a transform technique such as, for example, a Fast Fourier Transform (FFT). Acoustic data (e.g., sound level) may be transformed for each time point in time series of sensor data 320. This transformed acoustic data may then be aggregated across the entire time series to generate aggregated acoustic data (e.g., sound level), which may be included in acoustic data 445 instead of or in addition to the acoustic data at each time point. The aggregation may include averaging, weighted averages, minimums, maximums, etc.
[0086] Additionally, sensor data 320 may include explicitly collected data that can be directly copied into feature and / or target values from sensor data 320. For example, such data may include production or yield rates, user experience scores (e.g., collected from a survey), etc.
[0087] The foregoing should be understood to be non-limiting examples of metrics that may be extracted or otherwise derived from the sensor data 320. More, fewer, or different combinations of one or more metrics may be collected. Regardless, each collected metric may be used as a goal (e.g., in both offline and online modes) or a feature (e.g., in online mode), depending on the particular implementation and / or application. In some cases, a metric may be both a feature and a goal. For example, a metric at a previous time may be used as a feature, and a metric at a future time may be predicted as a goal.
[0088] Anomaly Detection
[0089] 5 illustrates an example of anomaly detection 410, according to an embodiment. The anomaly detection receives sensor data 320 as input and outputs anomaly data 415, which may include anomaly scores 415A, root causes 415B, and selected features 415C. The anomaly data 415 may include feature and / or target values for each individual time point in the time series of sensor data 320, and / or aggregated values of features and / or targets across multiple time points (e.g., the entire time series).
[0090] The feature engineering 510 may convert the sensor data 320 into one or more features 515 in the form of a time series, with the feature's value for each time point in the time series. For example, one or more sensor outputs in the sensor data 320 may be downsampled from higher frequencies to lower frequencies using aggregation techniques such as average, maximum, minimum, etc., and multiple time points may be combined into a single downsampled time point. As another example, one or more features may be derived from the sensor data 320 for each time point in the time series using a moving average, a moving variance, a difference (e.g., first derivative, second derivative, etc.), a 1st percentile, a 99th percentile, etc. As yet another example, for each time point in the time series, statistics may be derived from a lookback window (e.g., sensor outputs and / or derived features at one or more time points in a period preceding that time point), and these statistics may be used as additional features for that time point. The length of this lookback window may be determined based on domain knowledge and / or optimized using optimization techniques such as grid search, random search, Bayesian optimization, etc. One or more, potentially all, features 515 output from feature engineering 515 may be added to a feature set 530.
[0091] An autoencoder 520 may be used to identify additional signals in the features 515. The autoencoder 520 is an unsupervised learning technique that utilizes a neural network architecture to impose a bottleneck on the network. In particular, the input and output layers of the neural network are identical. In other words, the set of features output from the neural network are the same features 515 input to the neural network. The bottleneck is imposed by a hidden layer between the input and output layers, which consists of fewer units than the input and output layers. This bottleneck forces the features 515 to be compressed into a set of encoded features 522 in the hidden layer. Autoencoding works when some structure exists in the data (e.g., correlations between two or more features in the features 515). The neural network learns and exploits this structure, removing redundant information to generate encoded features 522. It should be understood that the number of encoded features 522 is less than the number of features 515 in the original input to the neural network. One or more potential coding features 522 may be added to the feature set 530 .
[0092] The encoded features 522 may be reconstructed into the set of features in the original input to generate decoded features 524 (e.g., the output of the autoencoder 524). It should be understood that the decoded features 524 are generally different from the features 515 because some information is lost in the compression of the autoencoder 520. The decoded features 524 may be considered expected values, while the features 515 may be considered observed values. Differences 526 between the features 515 and the decoded features 524 may be calculated, and one or more, potentially all, of the differences 526 may be added, individually or in aggregate, to the feature set 530 as features. The differences 526 may represent additional information that can be used to detect anomalies.
[0093] The feature set 530 may include the features 515, the encoded features 522, and / or the differences 526, or any subset or combination of the features 515, the encoded features 522, and the differences 526. During training, feature engineering 510 and autoencoder 520 are applied to the sensor data 520 to derive the feature set 530 for training the anomaly detection model 540 and the surrogate anomaly detection model 550. During online mode operation, the feature engineering 510 and autoencoder 520 are applied to the sensor data 520 to derive the feature set 530 as input to the anomaly detection model 540 and the surrogate anomaly detection model 550 to generate predictions for the anomaly score 415A, the root causes 415B, and the selected features 415C. In both cases, the feature engineering 510 and autoencoder 520 may operate in the same manner.
[0094] The anomaly detection model 540 may be trained to generate an anomaly score for each data point in the feature set 530 (e.g., each data point corresponding to a time point in the time series of sensor data 320 or an aggregation of time points in the time series of sensor data 320). Any anomaly detection algorithm may be used for the anomaly detection model 540. However, in embodiments, the anomaly detection model 540 may be trained using unsupervised learning so that target data in the training data does not have to be manually collected or specified. For example, the anomaly detection model 540 may utilize an isolation forest, a local outlier factor, a robust covariance, a one-class support vector machine, and / or similar algorithms. Alternatively, the anomaly detection model 540 may utilize an algorithm trained using supervised learning.
[0095] In embodiments, the anomaly detection model 540 may include an ensemble of models (i.e., multiple models). Each model in the ensemble may utilize a different anomaly detection algorithm. The ensemble may consist of models trained solely using unsupervised learning, models trained solely using supervised learning, or may include both models trained using unsupervised learning and models trained using supervised learning. Regardless, the anomaly scores output by each model in the ensemble may be aggregated into a single anomaly score 415A for the ensemble for each data point. The aggregation may include an average, a weighted average, a minimum, a maximum, etc. The use of an ensemble as the anomaly detection model 540 can eliminate or reduce bias that may result from using only a single model. It should be understood that in operation, the anomaly score 415A output by the anomaly detection model 540 for a given data point indicates the likelihood that the data point represents an anomaly (e.g., with a higher value indicating a higher likelihood).
[0096] The surrogate anomaly detection model 550 may be trained using supervised learning to generate an anomaly score for each data point in the feature set 530. In particular, the training data for the surrogate anomaly detection model 550 may include, for each data point, a feature vector containing feature values for that feature set 530, labeled with the anomaly score 415A predicted by the anomaly detection model 540 for that feature vector. The surrogate anomaly detection model 550 may include a random forest algorithm. Alternatively, the surrogate anomaly detection model 550 may utilize other machine learning algorithms, such as neural networks, gradient descent, support vector machines, or Bayesian methods. Essentially, the surrogate anomaly detection model 550 is trained to predict or approximate the anomaly score 415A output by the anomaly detection model 540 given the same set of feature values. In other words, the surrogate anomaly detection model 550 is a surrogate for the anomaly detection model 540.
[0097] In fact, the particular feature set 530 on which the anomaly detection model 540 is trained need not be the same, but may be the same as the particular feature set 530 on which the surrogate anomaly detection model 550 is trained. For example, the anomaly detection model 540 may be trained on a first feature set 530. The training anomaly detection model 540 may then be applied to the second feature set 530 to generate anomaly scores 415A that are later used to label corresponding data points in the second feature set 530. This labeled second feature set 530 may then be used to train the surrogate anomaly detection model 550.
[0098] During operation, the explainable artificial intelligence (AI) model 560 may analyze the application of the surrogate anomaly detection model 550 to a particular data point in the input feature set 530 to determine the root cause 415B. For example, the input feature set 530 may include a feature vector consisting of a feature value for each feature represented in the feature set 530. The explainable AI model 560 may identify which features represented in the feature vector contribute most to the output of the surrogate anomaly detection model 550 (i.e., the surrogate anomaly score). In particular, the contribution of each feature may be measured by or based on a weight value, and features whose measured contribution exceeds a threshold and / or the number of features with the highest measured contribution may be identified as root causes of the surrogate anomaly score and output as root causes 415B. The explainable AI model 560 may include the ELI5 package in Python™, the Shapely Additive Explanations (SHAP) package in Python™, the Lime package in Python™, and / or any other open source or non-open source package, library, or other algorithm designed to explain the results of the surrogate anomaly detection model 550.
[0099] Model-based feature selection 570 may analyze surrogate anomaly detection model 550 and identify important features using one or more feature selection techniques. Examples of feature selection techniques include, but are not limited to, forward selection, backward elimination, exhaustive, best, genetic, particle swarm optimization, target projection pursuit, scatter search, variable neighborhood search, and / or other algorithms. The output of model-based feature selection 570 is a subset 415C of features represented in feature set 530 that are most important to surrogate anomaly detection model 550. During training, the selected features 415C may be used as features or targets to train predictive model 560, and during operation, the selected features 415C may be used as input to predictive model 560 (e.g., in online mode).
[0100] In summary, for each data point in the sensor data 320, the anomaly detection 410 may output anomaly data 415 including anomaly scores 415A, root causes 415B for those anomaly scores 415A, and / or selected feature 415C values. The anomaly data 415 indicates the likelihood that the motion profile sequence 310 will experience an anomaly (e.g., a fault). During training, each type of anomaly data 415 may be used as a feature or target to train the predictive model 360. During operation, each type of anomaly data 415 used as a feature to train the predictive model 360 may be used as input to the trained predictive model 360. In certain implementations, the root causes 415B and selected features 415C are used as features (e.g., in combination with one or more features derived from the motion profile sequence 310 by feature engineering 315), and the anomaly scores 415A, position accuracy data 425, vibration data 435, and acoustic data 445 are used as targets.
[0101] 2.4. Prediction Model
[0102] The predictive model 360 may include a deep learning neural network, such as a recurrent neural network (RNN). Examples of recurrent neural networks include, but are not limited to, long short-term memory (LSTM) networks, gated recurrent unit (GRU) networks, etc. However, it should be understood that the predictive model 360 may include other types of machine learning models, including other types of neural networks.
[0103] In embodiments, predictive model 360 is trained to predict target values for each of one or more goals for each of one or more future time windows. For example, predictive model 360 may predict target values for each of multiple goals for a single future time window, predict target values for a single target for each of multiple future time windows, or predict target values for each of multiple goals for each of multiple future time windows. In embodiments of predictive model 360 that predict multiple goals and / or targets for each of multiple future time windows, the multiple goals and / or future time windows may be defined based on business requirements or other criteria.
[0104] In an embodiment of predictive model 360 that predicts a target value for each of a plurality of future time windows, training data 340 may include, for each data point, a feature set (e.g., a feature vector) including a feature value for each feature represented in feature data 342, and a target value for each of a plurality of future time windows. In this case, during operation, predictive model 360 predicts a target value for each of a plurality of future time windows given an input feature set including a feature value for each feature represented in feature data 342.
[0105] In an embodiment of predictive model 360 that predicts multiple target values for a future time window, training data 340 may include, for each data point, a feature set including a feature value for each feature represented by feature data 342, and a target value for each target represented by target data 344. In this case, during operation, predictive model 360 predicts a target value for each target represented by target data 344, given an input feature set including a feature value for each feature represented by feature data 342.
[0106] In an embodiment of predictive model 360 that predicts multiple target values for multiple future time windows, training data 340 may include, for each data point, a feature set including a feature value for each feature represented by feature data 342, and a target value for each target represented by target data 344 for each of the multiple future time windows. In this case, during operation, predictive model 360 predicts a target value for each of the targets represented by target data 344 for each of the multiple future time windows, given an input feature set including a feature value for each feature represented by feature data 342.
[0107] Using a single predictive model 360 to simultaneously predict multiple targets and / or multiple future time windows can achieve better performance with a shorter overall training time relative to a predictive model that predicts a single target and / or a single future time window. This is because multiple targets in and / or across a time window are correlated with each other and can share similar parameters or weights in the predictive model 360. For example, if the predicted target values are adjusted to remove noise, each target value predicted in one future time window can benefit from other target values of the same target in other future time windows. Training one predictive model versus training multiple predictive models (e.g., for each target and / or each future time window) not only improves runtime performance, but also significantly reduces training time.
[0108] 2.5. Predictive Model Behavior
[0109] 6 illustrates an overall architecture 600 for using a trained predictive model 360 to predict one or more targets of a motion profile sequence 310, according to an embodiment. During operation, the motion profile sequence 310 to be predicted may be received as input. Typically, only a single motion profile sequence 310 is provided per prediction. Feature data 342 may be derived from the input motion profile sequence 310 using feature engineering 315, as described elsewhere herein. In other words, the same features derived during training are derived from the motion profile sequence 310 during operation.
[0110] In online mode, sensor data 320 may be received as input during operation. It should be understood that the sensor data 320 received during operation does not have the same values as the sensor data 320 used during training, but does have the same values for sensor output as the sensor data 320 used during training. In particular, the sensor data 320 received during operation may include real-time values of sensor output. It should be understood that the terms "real time" or "real-time," as used herein, include simultaneous occurrences of events and occurrences separated in time by normal delays in processing, communication, and the like. Feature data 342 may be derived from the input sensor data 320 using feature building in process 330, as described elsewhere herein. In other words, the same features derived during training are derived from the sensor data 320 during operation.
[0111] It should be understood that the feature data 342 derived during operation will not have the same values as the feature data 342 used during training, but will have feature values for the same feature sets as the feature data 342 used during training. In offline mode, the features are derived entirely from the motion profile sequence 310 (e.g., via feature engineering 315), while in online mode, the features may be derived from both the motion profile sequence 310 and the sensor data 320 (e.g., via feature engineering 315 and feature construction of processing 330).
[0112] The trained predictive model 360 is applied to the feature data 342 to predict an output 610 including a target value for each of one or more targets in each of one or more future time windows. In other words, the feature data 342 is input to the trained predictive model 360, which generates the output 610. As noted above, the output 610 may consist of a target value for a single target in a single future time window, but more preferably includes target values for each of multiple targets in a single future time window, a target value for a single target in each of multiple future time windows, or a target value for each of multiple targets in each of multiple future time windows.
[0113] As a specific example, the forecast target for each of the multiple future time windows may include anomaly data 415 indicating the likelihood of an anomaly, such as an anomaly score 415A. In this case, the forecast target value for each of the multiple future time windows indicates the likelihood that an anomaly (e.g., a failure) will occur within that future time window. For example, for a two-hour future time window representing a window starting from the current time and ending two hours from the current time, the anomaly score 415A for the two-hour future time window indicates the likelihood that the physical asset 140 will experience an anomaly, such as a failure, within that two-hour future time window.
[0114] In particular, in extreme cases, the length of the future time window may be zero. In this case, the predicted target value for a zero-length future time window represents an estimate of the current target value. In other words, for a zero-length future time window, the predicted target value represents a prediction of the current real-time target value for the target associated with the physical asset 140 currently executing the input motion profile sequence 310.
[0115] In embodiments in which the output 610 of the training predictive model 360 includes multiple target values (e.g., for multiple targets and / or multiple future time windows), the target values may be aggregated in an aggregation process 620 into an aggregated target value 630. For example, target values for multiple targets in a single future time window may be aggregated into a single aggregated target value 630 for that future time window. As another example, target values for a single target in multiple future time windows may be aggregated into a single aggregated target value 630 across all future time windows. As yet another example, target values for multiple targets in multiple future time windows may be aggregated into a single aggregated target value 630 across all targets and all future time windows, an aggregated target value 630 across all targets for each of the multiple future time windows, or an aggregated target value 630 for each of the multiple targets across all future time windows.
[0116] The aggregation process 620 may include calculating an average, weighted average, minimum, maximum, etc. of the target values in the output 610. In an embodiment, a weighted average is used with different weights assigned to different targets and / or different future time windows. The weights may be defined based on business requirements or other criteria. Alternatively, the target value for a particular target in a particular future time window may be designated as the primary target value, and the remainder of the target values may be designated as constraints. This may be appropriate for applications where an operator of the physical asset 140 pays more attention to certain targets with specific lead times as key performance indicators.
[0117] 2.6 Optimization
[0118] As described above, the trained predictive model 360 may be used to evaluate the motion profile sequence. In particular, features may be derived from the motion profile sequence 310 (e.g., in both offline and online modes) and / or real-time sensor data 320 (e.g., in online mode), and the trained predictive model 360 may be applied to those features to predict at least one, and preferably multiple, target values. Notably, the predictive ability of the trained predictive model 360 is generally better in online mode than in offline mode because there is more data to infer. In either case, the target values indicate the performance of the motion profile sequence 310. Thus, the trained predictive model 360 may be used as an evaluator when building an optimization model for the motion profile sequence.
[0119] Optimization refers to the problem of determining which sequence of motion profiles provides the optimal target value for each of the objectives being evaluated. In offline mode, optimization may find a sequence of motion profiles that achieves the optimal target value based on features derived from each motion profile sequence. In online mode, optimization may select the next motion profile that achieves the optimal target value within some future time window based on previous motion profile sequences and associated real-time sensor data collected for those motion profiles. In particular, the disclosed optimization solution may find an optimal sequence of motion profiles even if the optimal sequence of motion profiles did not exist in the training data.
[0120] In the following description, for ease of understanding, it is assumed that for a given goal, a higher goal value is more optimal than a lower goal value. However, it should be understood that, depending on how the goal is defined, a lower goal value may instead be more optimal than a higher goal value. For example, a lower value of anomaly score 415A is more optimal than a higher value of anomaly score 415A in the event that a higher value of anomaly score 415A indicates a higher likelihood of an anomaly.
[0121] 2.6.1 Offline Optimization
[0122] 7 illustrates a process 700 for offline optimization, according to an embodiment. The process 700 may be used to select a sequence of motion profiles that achieves an optimal target when real-time sensor data is not available.
[0123] In sub-process 710, a training data set is generated. The training data set may be prepared in an offline mode in the same manner as described elsewhere herein for training data 340. For example, the training data set generated in sub-process 710 may be training data 340 or may be derived from training data 340. In particular, the training data set may include a feature set derived from one of one or more motion profile sequences 310, each of which is labeled with one or more target values, for each of a plurality of data points. In an embodiment, each feature set is labeled with only a single aggregated target value 630, which may be an aggregation of multiple target values (e.g., aggregated by aggregation process 620).
[0124] In embodiments, for motion profile sequences that are the same, the target values for those motion profile sequences may be aggregated when generating the data set. In other words, since the feature sets are the same (because the feature sets are derived only from the motion profile sequences in offline mode), the target values across all identical motion profile sequences may also be aggregated to be the same. In this case, the training data set may consist of only a single data point for each unique motion profile sequence. That single data point includes the feature set derived from that motion profile sequence labeled with the aggregated target values for the feature set. The aggregation may include an average, a weighted average, a minimum, a maximum, etc.
[0125] In sub-process 720, the training data set is used to train a surrogate model within a Bayesian optimization algorithm. The surrogate model represents an approximation function f(x) that fits the "observed" data points in the training data set and quantifies the uncertainty in the "unobserved" region. It should be understood that in this case, x represents the feature value and f(x) represents the target value. By way of example, the surrogate model may be a Gaussian regression model. However, it should be understood that any model that can approximate the function f(x) may be used as the surrogate model, including linear models, tree-based models, Tree Parzen Estimators, or simplified models.
[0126] In sub-process 730, an acquisition function within a Bayesian optimization algorithm is maximized to identify suboptimal motion profile sequences. In particular, the acquisition function analyzes the surrogate model to determine which regions in the approximate function f(x) are worth exploiting and exploring. The acquisition function generates higher values for regions where f(x) is optimal and unobserved regions, and lower values for regions where f(x) is suboptimal and observed regions. By way of example, the acquisition function may be a probability of improvement function, an upper confidence limit function, an expected improvement function, a Bayesian expected loss function, a Thompson sampling function, a hybrid of one or more of these functions, etc.
[0127] The x that maximizes the acquisition function represents a next-best guess. In this case, x represents the characteristics of the motion profile sequence, so the x that maximizes the acquisition function represents a next-best guess for the motion profile sequence (i.e., the motion profile sequence having the characteristics in x). Thus, a next-best motion profile sequence may be identified based on the x that maximizes the acquisition function, for example, by selecting a motion profile sequence having characteristics that match x or that match x more closely than any other available motion profile sequence.
[0128] In sub-process 740, an offline version of training predictive model 360 is applied to the sub-optimal motion profile sequence identified in sub-process 730. In particular, feature data 342 may be derived from the sub-optimal motion profile sequence as described elsewhere herein for the offline mode and provided as input to training predictive model 360 to generate predicted target values 610 and / or aggregate target values 630.
[0129] In sub-process 750, it is determined whether a stopping condition is met. The stopping condition may include, or consist of, the number of iterations of sub-processes 720-740, called an "epoch," reaching a predetermined threshold. Alternatively or additionally, the stopping condition may include other criteria, such as expiration of an execution timer, a predicted target value in sub-process 740 meeting (e.g., exceeding) a predetermined threshold, or a variance or entropy reduction rate meeting a predetermined threshold. If the stopping condition is not met (i.e., "No" in sub-process 750), process 700 proceeds to sub-process 760. Otherwise, if the stopping condition is not met (i.e., "Yes" in sub-process 750), process 700 proceeds to sub-process 770.
[0130] In subprocess 760, the training data set is updated with data points representing the next-best motion profile sequence. In particular, the feature data 342 derived in subprocess 740 is labeled with the target values predicted in subprocess 740 to generate new data points. These new data points, representing new observations, are added to the training data set. The updated training data set is then used to retrain the surrogate model at a new epoch.
[0131] Subprocess 770 outputs an optimal motion profile sequence. Depending on how the stopping condition is defined, the optimal motion profile sequence may be the motion profile sequence identified in the most recent epoch. In this case, subprocess 770 may output the most recently identified motion profile sequence (i.e., the motion profile sequence identified in the last iteration of subprocess 730). Alternatively, subprocess 770 may output the motion profile sequence for which training prediction model 360 predicted the optimal target value (e.g., highest aggregated target value 630) in subprocess 740. In this case, the identifier of each motion profile sequence and the predicted target value for each iteration of subprocess 740 may be stored for each epoch, and subprocess 770 may select the stored motion profile sequence having the optimal (e.g., highest) stored target value.
[0132] As described above, process 700 utilizes Bayesian optimization. However, other optimization techniques may be used instead of Bayesian optimization. For example, alternative optimization techniques include, but are not limited to, grid search (e.g., coarse-grained), random search, etc.
[0133] 2.6.2 Online Optimization
[0134] 8 illustrates a process 800 for online optimization, according to an embodiment. Process 800 may be used to construct a sequence of motion profiles that achieves optimal target values at a future time in real time when real-time sensor data is available. The future time may be the end of a future time window starting from the current time, such that the future time window represents a lead time.
[0135] In subprocess 810, a motion profile sequence within a lookback window is obtained. The lookback window may be defined as the length of the lookback window used to derive features (e.g., by feature engineering 315 and feature / target construction process 330) minus one time unit. The time unit may consist of a single motion profile, a portion of a motion profile, two or more motion profiles, or any other time window representing a time window of movement to be added to the current motion profile sequence. The lookback window may be a multiple of a time unit. For simplicity, it is assumed that the time unit consists of a single motion profile and that the lookback window is a multiple of a time unit such that the lookback window defines a motion profile sequence with an integer number of motion profiles. The motion profile sequence S within the lookback window represents the sequence of motion profiles performed by the physical asset 140 up to the current time.
[0136] In subprocess 820, a set of motion profiles is selected as candidates to be added to motion profile sequence S as the next motion profile to be executed by physical asset 140. A predetermined number N of motion profiles may be sampled as candidates from the set of all potential motion profiles. In an embodiment, the predetermined number N of motion profiles may be selected by first selecting a set X of motion profile sequences that includes motion profile sequence S as a prefix. Then, the predetermined number N of motion profiles may be sampled as candidates from this set X of motion profile sequences. The motion profiles sampled as candidates are the motion profiles that occur immediately after the prefix of motion profile sequence S in each motion profile sequence in set X. For example, if motion profile sequence S consists of motion profile MP1, then motion profile MP2, then motion profile MP3, then a motion profile sequence consisting of MP1, then motion profile MP2, then motion profile MP3, then motion profile MP4, then motion profile MP5 may be selected for set X. In this example, motion profile MP4 represents a candidate for the next motion profile.
[0137] In an embodiment, a set X of motion profile sequences that include motion profile sequence S as a prefix is determined using process 700. For example, process 700 may be used to identify a set of one or more optimal motion profile sequences (i.e., associated with relatively high target values) within a universe of motion profile sequences that have motion profile sequence S as a prefix. In an alternative embodiment, an aggregate target value 630 may be determined for all motion profile sequences that have motion profile sequence S as a prefix. In this case, aggregate target value 630 may be normalized and set X of motion profile sequences may be selected based on probability, or motion profile sequences may be ranked according to aggregate target value 630 and the top-numbered motion profile sequences may be selected for set X.
[0138] In an embodiment, the selection of motion profiles in sub-process 820 may implement exploitation and exploration. For example, a set X of motion profile sequences may be divided into a subset X exploit and subset X explore may be divided into subsets X exploit consists of highly desirable motion profile sequences. Highly desirable motion profile sequences are motion profile sequences for which the target values (e.g., aggregated target values 630) predicted by the trained predictive model 360 are relatively high. In an alternative embodiment, subprocess 820 generates a subset X by adding every possible motion profile to the motion profile sequence S. exploit On the other hand, the subset X explore consists of the remaining motion profile sequences in set X (i.e., the motion profile sequences predicted by the training prediction model 360 with relatively low target values). Set X is divided into subset X exploit or subset X explore Based on the predetermined number of motion profile sequences to be included in the subset X, a threshold value for the target value, etc. exploit and subset X exploreThen, subprocess 820 divides the subset X exploit to a given number N exploit Select (e.g., randomly sample) a series of motion profiles and define a subset X explore to number N explore =NN exploit In an alternative embodiment, Thompson sampling may be used to select a predetermined number N of motion profile sequences from the set X.
[0139] Once a set of N motion profiles has been selected in subprocess 820, the loop formed by subprocesses 830-870 is performed iteratively for each of the N motion profiles. In other words, the loop is performed for N iterations. In subprocess 830, the next motion profile is selected from the set of N motion profiles selected in subprocess 820.
[0140] In subprocess 840, the next motion profile selected in subprocess 830 is added to the current sequence of motion profiles. Feature values are derived for a composite motion profile sequence consisting of the current sequence of motion profiles with the added next motion profile. Feature values for the current sequence of motion profiles may be derived from the current sequence of motion profiles and real-time sensor data, as described elsewhere herein. Feature values for the next motion profile may be derived from the motion profile and historical sensor data and added to the feature values derived for the current sequence of motion profiles to generate feature data 342. Feature values for the next motion profile may be derived by aggregating historical sensor data for the next motion profile into an aggregate feature value for each feature. Aggregation may include average, weighted average, minimum, maximum, etc.
[0141] In subprocess 850, an online version of training predictive model 360 is applied to the feature values derived from the composite motion profile sequence in subprocess 840. In particular, feature data 342 may be input to training predictive model 360 to generate predicted target values 610 and / or aggregate target values 630 for one or more future time windows.
[0142] In subprocess 860, the target values are stored in association with the corresponding future time window. For example, the target values stored in each iteration of subprocess 860 may be the aggregated target values 630 generated by aggregation process 620 for each future time window for each application of predictive model 360. In this case, the target values over N iterations may be stored in a two-dimensional matrix with a first dimension representing all iterations and a second dimension representing all future time windows. It should be understood that each value in the matrix represents an aggregated target value 630 for a unique combination of iteration and future time window.
[0143] In subprocess 870, it is determined whether there is another motion profile to consider. In other words, it is determined whether all of the N motion profiles selected in subprocess 820 have been considered. If there is another motion profile to consider (i.e., "Yes" at subprocess 870), process 800 returns to subprocess 830. Otherwise, if there are no motion profiles left to consider (i.e., "No" at subprocess 870), process 800 proceeds to subprocess 880.
[0144] In subprocess 880, an optimal motion profile to be executed is selected based on the target values recorded across all iterations of subprocess 860. In particular, the next motion profile with the optimal (e.g., highest) recorded target value for a given future time window, or aggregated across all future time windows, may be selected. The optimal motion profile selected in subprocess 880 may be deployed to physical asset 140, such that physical asset 140 moves according to this motion profile while performing the task. In other words, physical asset 140 is controlled to execute the optimal motion profile selected in subprocess 880.
[0145] 3. Example of embodiment
[0146] Embodiments are disclosed for training and operating a predictive model 360. The predictive model 360 may be trained and executed to predict one or more target values for each of one or more future time windows from feature values for a motion profile sequence. The predictive model 360 may be provided in one or both of an offline mode, in which target values are predicted based solely on the motion profile sequence, and an online mode, in which target values are predicted based on both the motion profile sequence and sensor data.
[0147] In an embodiment, only the motion profile sequence and sensor data are used to build predictive model 360. In other words, target values need not be explicitly collected. Rather, target values for one or more targets may be automatically derived from sensor data using one or more techniques (e.g., performed by feature / target building process 330). For example, these techniques may include, but are not limited to, using an unsupervised ensemble anomaly detection model (e.g., anomaly detection model 540) to detect anomalies (e.g., faults) from sensor data, calculating position accuracy from control and observation position data, converting vibration data from the frequency domain to the spatial domain, converting acoustic data from the frequency domain to the spatial domain, deriving production or yield rates from recorded data, setting an upper time limit for optimization (e.g., in the stopping condition of sub-process 750), etc.
[0148] In embodiments, the predictive model 360 may include a deep learning neural network and predict target values for multiple targets simultaneously. This allows correlations between targets to be captured, thereby improving model performance and reducing training time. Targets may be predicted simultaneously for multiple future time windows using a single predictive model 360. This provides a distribution of target values along the future timeline and can inform decision-making in automated and manual prediction and optimization. Target values may be aggregated (e.g., by aggregation process 620) into aggregated target values 630 for each future time window or across all future time windows.
[0149] In an embodiment, predictive model 360 may be used to manually evaluate a design motion profile sequence. Additionally or alternatively, predictive model 360 may be used for offline or online optimization. In offline optimization, predictive model 360 is used to find a motion profile sequence that achieves an optimal target value based on historical data and using optimization techniques such as Bayesian optimization, grid search, or random search. In online optimization, predictive model 360 is used to find a next motion profile that achieves an optimal target value based on real-time data and using an approach that includes both exploitation and exploration.
[0150] The result of the optimization may be an optimal motion profile sequence (e.g., in offline mode) or an optimal next motion profile (e.g., in online mode). In either case, the motion profile sequence or next motion profile may be used to control physical asset 140. For example, the motion profile sequence or next motion profile may be deployed to physical asset 140 by a controller of platform 110 or physical asset 140. Physical asset 140 may execute the deployed motion profile sequence or next motion profile to perform a task or portion of a task.
[0151] As one non-limiting example, a physical asset 140 may be subject to jerk. Jerk refers to the rate of change of acceleration. For triangular and trapezoidal motion profiles, the initial acceleration and final deceleration occur instantaneously, meaning the jerk is theoretically infinite. Jerk can be particularly problematic for systems that require smooth, precise movement, as vibrations caused by jerk can reduce position accuracy and extend settling time. The disclosed optimization can reduce jerk by selecting a motion profile that smooths the beginning and end of acceleration and deceleration phases into an "S" shape. This reduces the rate of change of acceleration and deceleration (i.e., jerk), resulting in smoother movement and more accurate positioning.
[0152] As another non-limiting example, physical asset 140 may be subject to overheating. There may be a trade-off where physical asset 140 operates according to a first motion profile sequence with a higher throughput rate but a higher likelihood of overheating, or a second motion profile sequence with a lower throughput rate but a lower likelihood of overheating. The disclosed optimization can identify the likelihood of overheating failure in a future time window (e.g., as indicated by anomaly score 415A and root cause 415B as targets in the future time window) and adjust the motion profile sequence accordingly between the first and second motion profile sequences to maximize throughput while avoiding overheating. More generally, the disclosed optimization may be used to reduce downtime (e.g., due to breakdowns and other anomalies) and increase the efficiency of physical asset 140.
[0153] The foregoing description of the disclosed embodiments is provided to enable those skilled in the art to make and use the present invention. Various modifications of these embodiments will be readily apparent to those skilled in the art, and the general principles described herein may be applied to other embodiments without departing from the spirit or scope of the present invention. It should therefore be understood that the description and drawings presented herein illustrate presently preferred embodiments of the invention and are therefore representative of the subject matter broadly contemplated by the present invention. Moreover, it should be understood that the scope of the present invention fully encompasses other embodiments that will become apparent to those skilled in the art, and therefore is not limited in scope.
[0154] Combinations described herein, e.g., "at least one of A, B, or C," "one or more of A, B, or C," "at least one of A, B, and C," "one or more of A, B, and C," and "A, B, C, or any combination thereof," include any combination of A, B, and / or C, and may include multiple As, multiple Bs, or multiple Cs. Specific examples include combinations, e.g., "at least one of A, B, or C," "one or more of A, B, or C," "at least one of A, B, and C," "one or more of A, B, and C," and "A, B, C, or any combination thereof," and may include only A, only B, only C, A and B, A and C, B and C, or A and B and C, and any such combination may include one or more members of components A, B, and / or C. For example, a combination of A and B may include one A and many Bs, many A and one B, or many A and many Bs.
Claims
1. 1. A method of training a predictive model for predicting target values for a sequence of motion profiles using at least one hardware processor, comprising: The method comprises: receiving a motion profile sequence including a series of motion profiles, each motion profile defining one or more movements for a physical asset to perform a task; receiving sensor data associated with the sequence of motion profiles; generating training data from the sequence of motion profiles and the sensor data, the training data including a plurality of feature sets, each of the plurality of feature sets including feature values for each of one or more features derived from at least the sequence of motion profiles, and each of the plurality of feature sets being labeled with target values for each of a plurality of targets derived from at least the sensor data; training a predictive model to predict a target value for each of the plurality of targets for at least one future time window based on the training data; A method comprising:
2. The method of claim 1 , further comprising determining an optimal motion profile sequence using the trained predictive model.
3. Determining the optimal motion profile sequence includes: generating a training data set including a plurality of feature vectors, each feature vector including a sequence of motion profiles labeled with one or more target values for the sequence of motion profiles; Iteratively, until a stopping condition is met. constructing a surrogate model using the training dataset; and maximizing an acquisition function of the surrogate model to identify a next sequence of motion profiles; applying the trained predictive model to one or more feature values derived for the next optimal sequence of motion profiles to predict at least one target value for the next sequence of motion profiles; adding a feature vector to the training data set, the added feature vector including the next motion profile sequence labeled with the at least one target value predicted for the next motion profile sequence; selecting the optimal motion profile sequence based on the predicted at least one target value after the stopping condition is met; The method of claim 2 , comprising:
4. The method of claim 3 , wherein the surrogate model is a Gaussian regression model.
5. Each of the plurality of feature sets is derived from both the motion profile sequence and the sensor data, and determining an optimal motion profile sequence includes: Obtaining a sequence of motion profiles that lie within a look-back window; selecting a plurality of potential motion profile sequences that include the existing motion profile sequence as a prefix; for each of the plurality of potential motion profile sequences, applying the trained predictive model to the potential motion profile sequence and one or more feature values derived from real-time sensor data to predict at least one target value for the potential motion profile sequence; selecting the optimal motion profile sequence from the sequence of potential motion profiles based on the predicted at least one target value for the sequence of potential motion profiles; The method of claim 2 , comprising:
6. Selecting a plurality of potential motion profile sequences includes selecting a plurality of potential motion profile sequences from a set of available motion profile sequences that include the existing motion profile sequence as a prefix. dividing the set of available motion profile sequences into a first subset and a second subset, each of the available motion profile sequences being associated with at least one pre-determined target value, the first subset consisting of motion profile sequences associated with higher values of the at least one pre-determined target value than the second subset; randomly sampling a first number of potential motion profile sequences from the first subset; randomly sampling a second number of potential motion profile sequences from the second subset; The method of claim 5 , comprising:
7. The method of claim 5 , further comprising controlling the physical asset to perform the task according to the optimal motion profile sequence.
8. The method of claim 1 , wherein each of the one or more movements is defined by one or more of a position, a velocity, or an acceleration.
9. The method of claim 1 , wherein the sensor data comprises one or both of historical data collected by sensors monitoring the physical asset or synthetic data generated using a simulation of the physical asset.
10. Generating training data involves deriving an anomaly feature set based on the sensor data; and applying an anomaly scoring model to the anomaly feature set to generate an anomaly score; Including, The method of claim 1 , wherein the one or more features include the anomaly score.
11. The method of claim 10 , further comprising using the at least one hardware processor to train the anomaly scoring model using unsupervised learning.
12. 11. The method of claim 10, wherein generating training data further comprises applying an explainable artificial intelligence model to a surrogate anomaly scoring model that has been trained using supervised learning to determine root causes of the anomaly scores, and wherein the one or more features further comprise the root causes.
13. 13. The method of claim 12, wherein the anomaly feature set includes a feature value for each of a plurality of anomaly features, the method further including training the surrogate anomaly scoring model with a training dataset including a second plurality of feature sets, each of the second plurality of feature sets including a feature value for each of the plurality of anomaly features, each of the second plurality of feature sets being labeled with the anomaly score generated by the anomaly scoring model for the feature set.
14. 11. The method of claim 10, wherein generating training data further comprises applying one or more feature selection techniques to a surrogate anomaly scoring model that has been trained using supervised learning to determine a selected Feature Set, the one or more features further comprising the selected Feature Set.
15. The anomaly feature set includes a feature value for each of a plurality of anomaly features, and the method further comprises: generating a plurality of features from the sensor data; applying an autoencoder to the plurality of features to derive encoded and decoded features; calculating a difference between the plurality of features and the decoded features; and further comprising identifying the plurality of abnormal features by The method of claim 10 , wherein the plurality of anomaly features comprises one or more of the calculated difference, at least a subset of the plurality of features, or at least a subset of the encoded features.
16. The method of claim 1 , wherein the one or more characteristics include one or more of position accuracy, vibration data, or acoustic data.
17. The method of claim 1 , wherein the plurality of goals comprises one or more of an anomaly score, a location accuracy, vibration data, or acoustic data.
18. The method comprises: During the operation phase, collecting feature values for the one or more features within a look-back window of sensor data generated for the physical asset; applying the predictive model to the collected feature values to predict the target value for each of the plurality of targets for the at least one future time window; aggregating the predicted target values for the plurality of targets for the at least one future time window into an aggregated target value; The method of claim 1 further comprising:
19. The method of claim 1 , wherein the at least one future time window is a plurality of future time windows, each of the plurality of future time windows comprising a different time period.
20. The method of claim 1 , wherein the one or more features are derived solely from the sequence of motion profiles.
21. at least one hardware processor; When executed by the at least one hardware processor, receiving a motion profile sequence including a series of motion profiles, each motion profile defining one or more movements for the physical asset to perform a task; receiving sensor data associated with the sequence of motion profiles; generating training data from the sequence of motion profiles and the sensor data, the training data including a plurality of feature sets, each of the plurality of feature sets including a feature value for each of one or more features derived from at least the sequence of motion profiles, and each of the plurality of feature sets being labeled with a target value for each of a plurality of targets derived from at least the sensor data; training a predictive model to predict a target value for each of the plurality of targets for at least one future time window based on the training data; and software configured to: A system including:
22. A non-transitory computer-readable medium having stored thereon instructions that, when executed by a processor, cause the processor to: receiving a motion profile sequence including a series of motion profiles, each motion profile defining one or more movements for the physical asset to perform a task; receiving sensor data associated with the sequence of motion profiles; generating training data from the sequence of motion profiles and the sensor data, the training data including a plurality of feature sets, each of the plurality of feature sets including a feature value for each of one or more features derived from at least the sequence of motion profiles, and each of the plurality of feature sets being labeled with a target value for each of a plurality of targets derived from at least the sensor data; training a predictive model to predict a target value for each of the plurality of targets for at least one future time window based on the training data; Non-transitory computer-readable medium.
Citation Information
Patent Citations
Simulation device, simulation method, and simulation program
JP2020060996A
Robot interference determination device, robot interference determination method, robot control device, robot control system, human movement predictor, and human movement prediction method
JP2020097091A
Mechanical learning device, predictor, and control device
JP2020179433A
Parameter adjusting device, inference device, parameter adjusting method, and parameter adjusting program
JP2021144422A
Graph neural networks representing physical systems
US20210049467A1