Root cause analysis for machines in manufacturing network
By using dynamic time warping to correlate events across machines in a manufacturing network, the method addresses the inflexibility of conventional root cause analysis approaches, enabling efficient identification of root causes and prioritization of maintenance.
Patent Information
- Application Number
- PCT/US2024/038459
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-21
- Filing Date
- 2024-07-18
- Publication Date
- 2025-01-30
AI Technical Summary
Conventional approaches to root cause analysis in manufacturing networks are inflexible and require detailed configuration models, making them cumbersome for facilities with many interconnected machines.
The method employs dynamic time warping to estimate matching time intervals between machines in a manufacturing network, allowing for the identification of a root cause by correlating waiting events at one machine with stopped events at another.
This approach enables flexible and efficient root cause analysis by abstracting configuration details, allowing for effective prioritization of maintenance activities across various manufacturing facilities.
Smart Images

Figure US2024038459_30012025_PF_FP_ABST
Abstract
Description
ROOT CAUSE ANALYSIS FOR MACHINES IN MANUFACTURING NETWORK FIELD OF THE DISCLOSURE
[0001] The present disclosure relates generally to monitoring and maintenance of interconnected machines, such as in manufacturing networks. More specifically, the present disclosure relates to root cause analysis for machines in a manufacturing network. BACKGROUND OF THE DISCLOSURE
[0002] Machines used in certain scenarios and applications interact with other machines. In a manufacturing network, for example, different machines may perform different functions at different stages of the manufacturing process. A given machine in the manufacturing network may receive products and / or signals from one or more other machines and / or supply products and / or signals to one or more other machines. In such a scenario, the operation of one machine may impact the operation of one, several, or, ultimately, all other machines. Thus, when considering why a given machine has stopped producing its output, the operation of other machines may need to be considered to identify the root cause of the issue at the given machine. SUMMARY
[0003] According to an exemplary embodiment, a method for managing a manufacturing network includes obtaining first status information over a time period for a first machine of the manufacturing network. The first status information comprises a first waiting event. The method also includes obtaining second status information over the time period for a second machine of the manufacturing network. The second status information comprises one or more stopped events. A dynamic time warping operation is performed to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine. Each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path, and the method includes determining whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine. Based on determining that the matching timeinterval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine, the method includes indicating the second machine as a root cause of the first waiting event of the first machine.
[0004] According to another exemplary embodiment, a system to manage a manufacturing network includes memory to store an acyclic graph representing the manufacturing network and a processor. The processor obtains first status information over a time period for a first machine of the manufacturing network. The first status information comprises a first waiting event. The processor also obtains second status information over the time period for a second machine of the manufacturing network. The second status information comprises one or more stopped events. A dynamic time warping operation is performed to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine. Each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path. A determination is made whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond at least one of the one or more stopped events at the second machine. The second machine is indicated as a root cause of the first waiting event of the first machine based on determining that the matching time interval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine.
[0005] According to yet another exemplary embodiment, a non-transitory computer- readable medium stores instructions which, when processed by one or more processors, cause the one or more processors to implement a method of managing a manufacturing network. The method includes obtaining first status information over a time period for a first machine of the manufacturing network. The first status information comprises a first waiting event. The method also includes obtaining second status information over the time period for a second machine of the manufacturing network. The second status information comprises one or more stopped events. A dynamic time warping operation is performed to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine. Each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path. A determination is made of whether amatching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine. Based on determining that the matching time interval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine, the second machine is indicated as a root cause of the first waiting event of the first machine.
[0006] It is noted that techniques for implementing root cause analysis for machines in a manufacturing network having various different features are disclosed herein and these features may be combined in various different configurations, including configurations not specifically illustrated or discussed. Although several different combinations of such features are described herein, a person having ordinary skill in the art will realize that further such combinations not explicitly described herein are also possible and enabled by the present disclosure and are within the scope of the present application. Additionally, although various techniques are disclosed herein for attaining the disclosed features, a person having ordinary skill in the art will realize that some modifications to the disclosed techniques may be possible and within the scope of the disclosed techniques. It is also to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Various aspects, techniques, and embodiments of the present technology disclosed herein are described below with reference to the accompanying drawings. It should be appreciated that the figures are not necessarily drawn to scale. Items appearing in multiple figures may be indicated by the same reference numeral. For purposes of clarity, not every component may be labeled in every figure. Features of the present technology will become more apparent, and techniques for how to attain the features of the present technology, will be better understood by reference to the following detailed description considered in conjunction with the accompanying drawings, wherein:
[0008] FIG. 1 is a block diagram of aspects of an exemplary manufacturing network according to one or more embodiments.
[0009] FIG.2 is a graphical representation of the exemplary manufacturing network shown in FIG.1.
[0010] FIG.3 illustrates an exemplary time series of status information for an exemplary machine.
[0011] FIG.4 is a process flow of an exemplary method of performing aspects of root cause analysis according to one or more embodiments.
[0012] FIG.5 is a process flow of an exemplary method of performing additional aspects of root cause analysis according to one or more embodiments.
[0013] FIG.6A illustrates Euclidean matching between two time series signals.
[0014] FIG.6B illustrates an exemplary time warping between two time series signals according to one or more embodiments.
[0015] FIG.7 illustrates an exemplary time registration path representing a time warping process according to one or more embodiments.
[0016] FIG.8 is a process flow of an exemplary method of performing discrete time warping.
[0017] FIG.9 illustrates exemplary time series status information for two exemplary machines to illustrate the correspondence indicated by dynamic time warping.
[0018] FIG.10 is a block diagram detailing aspects of the controller that performs root cause analysis according to exemplary embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0019] Provided herein are exemplary implementations of root cause analysis for machines in a manufacturing network. The techniques can be used to determine, for example, a root cause for a pause and / or a stoppage in the operation of a given machine in the manufacturing network. The root cause may be due to, for example, an error, pause and / or stoppage of another machine that is upstream in the manufacturing network.
[0020] Some conventional approaches to determining a root cause of a pause or stoppage in the operation of a given machine have involved modelling the full network. However, in order to effectively analyze the network, such a model must typically account for various configuration details, such as the length and / or speed of one or more conveyer belts between every pair of connected machines. Thus, such an approach can be onerous in a facility with a large number of inter-connected machines. In addition, by being configuration-specific, such conventional approaches typically require not only establishing a different model for each facility with a different configuration, but also require updating anestablished model each time the network in the facility is modified (e.g., a machine is added, a conveyer belt length or speed is changed, etc.).
[0021] The inventors have recognized and appreciated the need to perform root cause analysis in a manner that is more flexible than conventional approaches. The inventors have appreciated that time series information of the machines can be used to perform root cause analysis in a flexible manner. The time series can include information on the occurrence of events at a particular machine in the manufacturing network over time, such as machine stoppages, pauses, etc. The inventors have developed techniques to determine a time registration path between two different time series (e.g., time series information of two different machines). The time registration path can match a given time interval within one of the time series (e.g., a portion of the time series at a first time) with a corresponding time interval within the other time series (e.g., a portion of the other time series at a second time that may be different than the first time). The time registration path can facilitate determining whether an event at the given time interval (e.g., of a first machine) has a matching event at the corresponding time interval (e.g., of a second machine).
[0022] Using the time registration path, it can be determined, for example, if a pause at a given time interval at a given machine matches a stoppage at a corresponding time interval at another machine. In this way, the root cause of the pause at the given machine may be determined. Such root cause analysis may facilitate prioritizing maintenance and repair activities that maximize the impact on the overall network. Determining the time registration path as described herein can allow for abstraction of the configuration details of a network, while still providing for root cause analysis. For example, the specific length of a conveyer belt between two machines of a manufacturing network need not be known in order to determine the time registration path between the two machines. Thus, by determining a time registration path between connected machines, the network details (e.g., length of a conveyer belt between a pair of machines) need not be considered as part of the root cause analysis. In particular, the root cause analysis described herein can be performed simply based on time series information of the machines and information about which machines are connected to which other machines. Thus, the root cause analysis described herein can be more flexibility deployed and / or adapted in various manufacturing facilities with different arrangements of machines compared to conventional approaches.
[0023] Following below are more detailed descriptions of various concepts related to, and embodiments of, techniques described above. It should be appreciated that variousaspects described herein may be implemented in any of numerous ways. Examples of specific implementations are provided herein for illustrative purposes only. In addition, the various aspects described in the embodiments below may be used alone or in any combination and are not limited to the combinations explicitly described herein. In particular, the term “manufacturing” should be interpreted broadly to include not only making, assembling, or creating items, but also inspecting, processing, sorting, and / or packaging items. Generally, the time warping process detailed herein can be used to facilitate a determination of a correspondence between any type(s) of event(s), such as those that take place at different places, nodes, and / or related components.
[0024] FIG.1 is a block diagram of a manufacturing system 100 according to one or more embodiments. The manufacturing system 100 includes a manufacturing network 105. The exemplary manufacturing network 105 shown in FIG.1 includes machines 110-1 through 110-8 (generally referred to as machine 110) interconnected by conveyer belts 120a through 120g (generally referred to as conveyer belt 120). For example, machines 110-1 and 110-2 are connected by conveyer belt 120a, and machines 110-7 and 110-8 are connected by conveyer belt 120g. The relative differences in length among the conveyer belts 120 are intended to convey that different conveyer belts 120 connecting different pairs of machines 100 may be of different lengths and / or may operate at different speeds. The exemplary illustration in FIG.1 is not intended to limit the numbers or arrangements of machines 110 that make up a manufacturing network 105. The manufacturing system 100 also includes a controller 130 that may perform the root cause analysis detailed herein. The controller 130 is further discussed with reference to FIG.9.
[0025] Generally, at each machine 100 of a manufacturing network 105, one or more components are input and one or more processes are implemented to produce one or more outputs. In addition, conveyer belts 120 typically convey one or more components and / or intermediate products in only one direction, as indicated by the arrows in FIG.1. The components or intermediate products supplied via conveyer belt 120 may be held in pucks. The conveyer belts 120 that flow in the opposite direction to those shown in FIG.1 and that return empty pucks for reuse are not shown for simplicity. In a more complete illustration, components and / or intermediate products flow in only one direction, as shown, and empty pucks flow in only the opposite direction (not shown). In some embodiments, manufacturing network 105 and the machines therein may be used to produce, assemble, process, inspect,and / or package medical devices. Examples of medical devices include, but are not limited to, drug-delivery devices such as pre-filled syringes, autoinjectors, and / or inhalers.
[0026] Based on the product that is ultimately output by the manufacturing network 105 (e.g., pharmaceutical, consumer electronics, food), the inputs to the machines 100 and the processes implemented at the machines 100 may vary. While one or more of the machines 100 may provide an output that is taken out of the manufacturing stream as a product, other machines 100 provide components or intermediate products that are used at downstream machines 100. In the exemplary manufacturing network 105, machine 110-1 outputs a product based on components and intermediate products produced throughout the manufacturing network 105 by upstream machines 110-2 through 110-8.
[0027] Machine 110-1 is supplied by machine 110-2, via conveyer belt 120a. Machine 110-2 is supplied by machine 110-3, via conveyer belt 120b, and by machine 110-4, via conveyer belt 120c. Machine 110-3 is provided with an external input, while machine 110-4 is supplied by three other machines 110. Specifically, as shown, machine 110-4 is supplied by machine 110-5, via conveyer belt 120d, by machine 110-6, via conveyer belt 120e, and by machine 110-7, via conveyer belt 120f. Machine 110-4 may additionally be provided with an external input (not shown), as indicated for machines 110-5, 110-6, 110-3, and 110-8. Machine 110-7 is supplied by machine 110-8, via conveyer belt 120g, and may additionally be supplied with an external input (not shown), as indicated for machine 110-8.
[0028] A given machine 110 may be in one of several states during operation of the manufacturing system 100. Exemplary states include operational, waiting, and stopped. Each machine includes one or more sensors denoted 112-1 through 112-8 (collectively, sensors 112) that detects and transmits to controller 130 status information regarding the machine to which the sensor(s) is / are attached. An operational state refers to normal operation of the machine 110 during which the machine 110 is executing a process (e.g., receives expected input, implements expected processing, and provides expected output). A waiting state indicates that the machine 110 is waiting in order to proceed with processing, either because an upstream machine is no longer providing the waiting machine with sufficient input for the waiting machine to continue processing, or because a downstream machine is not clearing away or processing the waiting machine’s output fast enough. The reference to upstream and downstream applies to the flow (shown in FIG.1) of components and intermediate products, rather than to the flow of empty pucks. For example, if machine 110-2 stops temporarily (e.g., goes from an operational to a stopped state before returning toan operational state), then the temporary lack of output by machine 110-2 may result in a gap on the conveyer belt 120a and a waiting state at the machine 110-1 corresponding with the gap.
[0029] A stopped state at a machine 110 implies an issue with a machine 110 itself, rather than with its supply of input or with the downstream processing of its output. For example, machine 110-2 may enter a stopped state due to a mechanical or electrical problem. Such mechanical or electrical problems may be indicated by one or more alarm conditions. A single machine may experience multiple types of mechanical or electrical problems, each associated with a distinct type of alarm. Furthermore, a stopped state at a machine 110 may be caused by one or more distinct types of alarms. A machine 110 that enters a stopped state may result in a waiting state at a downstream machine 110. For example, if machine 110-2 enters a stopped state and temporarily stops producing an intermediate product, this may cause downstream machine 110-1 to temporarily enter a waiting state. Based on the fact that stopped machine 110-2 would stop returning empty pucks to machine 110-3, the stopped state of machine 110-2 may also cause machine 110-3 (an upstream machine in terms of the flow of components) to temporarily enter a waiting state.
[0030] A waiting state is not limited to resulting from an upstream issue alone, even when only the flow of components is considered. For example, if machine 110-1 enters a stopped state, ultimately, conveyer belt 120a will be unable to hold any more of the output of machine 110-2 that has been unused by stopped machine 110-1. In this case, an alarm may be initiated that causes machine 110-2 (and possibly other upstream machines 100) to enter a waiting state. A waiting status or a period during which a machine status is waiting may be referred to as a waiting event, and a stopped status or a period during which a machine status is stopped may be referred to as a stopped event. One or more embodiments of the root cause analysis detailed herein relate to identifying the root cause of waiting events at one or more machines 110 within the manufacturing network 105. For example, identifying the root cause of a waiting event at a given machine 110 may comprise identifying a specific stopped event at another machine 110 within manufacturing network 105, which led to the waiting event at the given machine 110.
[0031] FIG.2 is a graphical representation 200 of the exemplary manufacturing network 105 shown in FIG.1 in the form of a directed acyclic graph. As can be seen through a comparison of FIGS.1 and 2, the machines 110-1 through 110-8 of the exemplary manufacturing network 105 are each included as a node in the graphical representation 200.However, the conveyer belts 120a through 120g are abstracted to the edges that interconnect the machines 110 (e.g., and thus simply indicate which machines 110 are connected with which other machines 110). The interconnections indicated by the graphical representation 200 (e.g., machines 110-3 and 110-4 are directly connected to machine 110-2, but machine 110-6 is not) are all that is needed (in conjunction with time series data of the machines 110-1 through 110-8) to apply the root cause analysis according to one or more embodiments to any manufacturing network 105. Further details regarding the length, speed, and / or capacity of conveyer belts 120 connecting machines 110-1 through 110-8 are, in some embodiments, not necessary for the root cause analysis discussed herein.
[0032] FIG.3 illustrates an exemplary time series of waiting status information 300 for an exemplary machine 110. Time is indicated along an axis 310 and time intervals 315 at which status is obtained for the exemplary machine 110 are indicated on the axis 310. Status value 325 is indicated on the axis 320 and, as shown, may have a value between 0 and 1. A waiting status has a status value of 1, while an operational status has a status value of 0. When the exemplary machine 110 transitions very quickly between an operational status and a waiting status within a single time interval, the time series information may exhibit transient peaks with values between 0 and 1. For instance, it an exemplary machine 110 is in the waiting status for X% of a time interval, the status value 325 may be X% between 0 and 1 for that time interval. Thus, the time series of status information 300 is made up of status values 325 at time intervals 315 within a time period. For example, the time period of status information 300 may be on the order of days. While FIG.3 shows an exemplary time series of waiting status information 300 for an exemplary machine 110, stopped status information for the same machine may be obtained and depicted using similar time series information and using a similar format as shown in FIG.3.
[0033] Generally, the root cause analysis described herein can analyze time series information of the machines 110 in the manufacturing network 105. In particular, the time series information of two machines 110 can be analyzed in order to determine whether there is a correspondence between the events of one machine 110 and the events of another machine 110 (e.g., using dynamic time warping, as described herein). The process can start by analyzing one machine 110 that is, for example, downstream from another machine 110 to determine whether there is a correspondence between events at the two machines 110. The techniques can be further iterated (e.g., moving to machines 110 further upstream) to additional machines 110 in the network. This can provide for determining events that affectmultiple machines 110 and / or to identify a root cause that may be one or more machines 110 upstream from the machine 110 under analysis. Accordingly, the techniques can be used to iteratively analyze how various machine(s) 110 in the manufacturing network 105 affect other machine(s) 110 in the manufacturing network 105.
[0034] FIG.4 is a process flow of an exemplary method 400 of performing aspects of root cause analysis according to one or more embodiments. The method 400 of FIG.4 can be executed by any computing device, such as that described in conjunction with FIG.10. At 410 and 420, the computing device obtains first status information 300 over a time period for a first machine 110 and obtains second status information over the same or an overlapping time period for a second machine 110, respectively. Referring to the graphical representation 200 in FIG.2, the machine 110-1 may be designated as the first machine 110 and the machine 110-2 may be designated as the second machine 110, for example. The status information for each machine 110 may comprise both waiting status information for the machine and stopped status information for the same machine, both in the form of time-series information as depicted in FIG.3.
[0035] At 430, the computing device performs dynamic time warping to obtain a time registration path. An example of performing dynamic time warping is detailed with reference to FIG.8. FIG.7 shows an example of a time registration path 710. The time registration path 710 indicates a correspondence between time intervals indicating status information (e.g., stopped or waiting events) for the first machine 110 and matching time intervals indicating status information (e.g., stopped or waiting events) for the second machine 110. The time warping accounts for the fact that a given stopped or waiting event at a given machine 110 at a given time interval will likely not cause a waiting event at another machine 110 to occur at the exact same given time interval. Instead, it is likely to cause a waiting event to occur at the other machine 110 at a different time interval. The different time interval may depend on the length of the conveyer belt 120 between the two machines 110, time taken for consequences of the given event to reach the second machine 110, and / or other factors. In other words, it takes time for a stopped or waiting event at a first machine 110 to propagate through the manufacturing network 105 and cause waiting events at a second machine 110. The time registration path 710 estimates how much time this propagation is expected to take between the specified first machine 110 and the second machine 110.
[0036] At 440, the computing device selects a waiting event at the first machine 110. Selecting a waiting event at the first machine 110 can include selecting, noting, or otherwisestoring the time interval associated with the waiting event within the status information for the first machine 110. At 450, the computing device checks whether there is a matching stopped event at the second machine 110. This check can involve (a) using the time registration path 710 to find the matching time interval at the second machine 110 that matches the time interval associated with the selected waiting event at the first machine 110 and (b) determining if the status value within the status information for the second machine 110 indicates a stopped event at the matching time interval. If it does not, then the computing device can execute the processes of FIG.5.
[0037] If the check (at 450) indicates that the waiting event at the first machine 110 matches a stopped event at the second machine 110 according to the time registration path 710 (found at 430), then the second machine 110 (or the matched stopped event at the second machine 110) is declared as a root cause of the waiting event at the first machine 110 at 460. Thus, in the example noted above, with machines 110-1 and 110-2 designated as the first machine 110 and the second machine 110, respectively, the machine 110-2 can be declared as the root cause of the waiting event at the machine 110-1. As FIG.4 indicates, regardless of the outcome of the check at 450, at 470, a check is done of whether there is another waiting event within the time series of status information 300 for the first machine 110. If there is, the processes are repeated starting at 440 by selecting the next waiting event at the first machine 110. If there are no more waiting events in the time series of status information for the first machine 110, then the method 400 may be repeated starting at 410 with another machine 110 designated as the first machine 110 or, when all the machines of interest have been examined, the root cause analysis may be ended.
[0038] FIG.5 is a process flow of an exemplary method 500 of performing additional aspects of root cause analysis according to one or more embodiments. The method 500 of FIG.5 can be executed by any computing device, such as that described in conjunction with FIG.10. As indicated in FIG.4, the processes shown in FIG.5 are performed when it is determined at step 450 that there is not a matching stopped event at the second machine 110. In particular, as described above, the process of FIG.5 is performed when the matching time interval in the time series status information for the second machine 110 (which matches, according to the time registration path 710 determined at 430, a time interval in the time series status information for the first machine 110 during which a waiting event occurred) does not correspond with a stopped event. In this case, at 510, the computing device checks whether the matching time interval in the time series information for the second machine 110corresponds with a waiting event. If it does not, then it can mean that the waiting event at the first machine 110 selected at step 440 (e.g., machine 110-1 in the example) is not connected with the second machine 110 (e.g., machine 110-2 in the example). Thus, a new second machine 110 is selected prior to repeating the processes shown in FIG.4.
[0039] On the other hand, if the waiting event at the first machine 110 corresponds with a waiting event at the second machine 110 (according to the check at 510), it may mean that both the first machine 110 and the second machine 110 are affected by another machine 110 (e.g., another machine 110 that is the root cause of the waiting events at both the first machine 110 and the second machine 110). Referring again to the exemplary graphical representation 200 in FIG.2 and the exemplary first machine 110-1 and second machine 110- 2 discussed with reference to FIG.4, a positive result for the check at 510 can mean that the waiting event at machine 110-1 has a matching waiting event at machine 110-2.
[0040] To verify this possibility (that the waiting events at machines 110-1 and 110-2 are matching or related events), at 530, the method 400 of FIG.4 can be repeated with the second machine 110 designated as the new first machine 110 (at 410) and with another machine 110 designated as the new second machine 110. Continuing the exemplary scenario referencing the exemplary graphical representation 200 shown in FIG.2, machine 110-2 may be designated as the new first machine 110 (at 410) and machine 110-4 may be designated as the new second machine 110 (at 420). Then the dynamic time warping (at 430), selection of the waiting event at machine 110-2 that corresponds with the waiting event at 110-1 (at 440), and the check at 450 may be performed. If the method 400 reaches 460, then the new second machine 110 (machine 110-4 in the example) may not only be declared the root cause of the waiting event at the new first machine 110 (machine 110-2), but, at 540, the new second machine 110 (machine 110-4) may also be declared the root cause of the waiting event at the initial first machine 110 (machine 110-1).
[0041] There is no limit to the number of machines 110 that may be checked with the methods 400 and 500 shown in FIGS.4 and 5, respectively, to find the root cause of a given waiting event (e.g., to the number of iterations of methods 400 and 500). That is, if machine 110-4 were not declared the root cause (at 460 and 540), but a waiting event were found to correspond to the waiting event at machine 110-2 that corresponds with the waiting event at machine 110-1, then methods 400 and 500 could be repeated. In the next iteration, machine 110-4 can be designated as the new first machine 110 and machine 110-7, for example, may be designated as the new second machine 110.
[0042] Ultimately, the iterative processing of methods 400 and 500 may indicate, for example, that the waiting event at machine 110-1 corresponds with the waiting event at machine 110-2, which in turn corresponds with the waiting event at machine 110-4, which corresponds with the waiting event at machine 110-7, which has a root cause at machine 110- 8 (or at a corresponding stopped event at machine 110-8). In this case, machine 110-8 can be declared the root cause of all the waiting events at machines 110-1, 110-2, 110-4, and 110-7. The various iterations can require finding a time registration path 710 (at 430) between the time series of status information of machines 110-1 and 110-2, followed by one between machines 110-2 and 110-4, then between machines 110-4 and 110-7, and finally between machines 110-7 and 110-8.
[0043] As described herein, the techniques can include performing dynamic time warping in order to match events across machines 110. Dynamic time warping can provide for matching events that may not be matched via other techniques, such as Euclidian matching. FIG.6A illustrates Euclidean matching between two time series signals 600a, 600b. As shown, Euclidean matching between the two exemplary time series signals 600a 600b results in connecting points of the two time series signals 600a, 600b that are at the same time interval. Thus, the Euclidean matching lines are strictly vertical in that they match a time interval in time series signal 600a with another time interval in time series 600b that occurs at the exact same time. Two points 610a, 620a in the time series signal 600a are indicated along with their corresponding points 610b, 620b in the time series signal 600b, according to Euclidean matching. Point 610a is a peak in the time series signal 600a but does not match with a peak in the time series signal 600b. Similarly, point 620a is a trough in the time series signal 600a but does not match with a trough in the time series signal 600b. FIG. 6A illustrates that a Euclidean matching between time series of status information 300 obtained from two different machines 110 would be ineffective in finding events at the two different machines 110 that happen at different times but are causally linked with each other.
[0044] FIG.6B illustrates time warping between two time series signals 600a and 600b according to one or more embodiments. As shown, and unlike the Euclidean matching lines of FIG.6A, the time warping lines are not strictly vertical and are not parallel with each other. Points 610a and 620a are again indicated in the time series signal 600a. Dynamic time warping nonlinearly and monotonically warps the time axes of the two time series signals 600a, 600b to minimize the Euclidean distance between matched timepoints between the two signals 600, such that peaks in signal 600a are preferably matched with peaks in signal 600band troughs in signal 600a are preferably matched with troughs in signal 600b. The non- parallel time warping lines indicate that event correspondence may not mean a fixed time lag between the two time series signals 600a and 600b.
[0045] Through the use of dynamic time warping, manual specification or modification of parameters such as travel time between machines 100 (e.g., based on length of a conveyer belt 120) is not necessary, making the approach flexible and able to be easily used at any number of facilities. As noted, based on time warping, the peak point 610a matches a peak point 610b in the time series signal 600b. Similarly, trough point 620a matches a trough point 620b in the time series signal 600b. That is, related events in the two different time series signals 600a and 600b are matched despite their non-uniform temporal mismatch. Another representation of the time warping lines is the time registration path 710, discussed with reference to FIG.7.
[0046] FIG.7 illustrates an exemplary time registration path 710 obtained from a time warping process according to one or more embodiments. The time intervals 315a associated with one time series signal (e.g., time series status information 300 associated with the first machine 110) are shown along one axis 701. The status value 325 at each time interval 315a may be indicated as x(i) using i as an index to the time intervals 315a associated with machine 110x. For example, x(i) may represent the status values 325 of machine 110-1 as machine 110x. The time intervals 315b associated with another time series signal (e.g., time series status information 300 associated with the second machine 110) are shown along another axis 702. The status value 325 at each time interval 315b may be indicated as y(j) using j as an index to the time intervals 315b associated with machine 110y. For example, y(j) may represent the status values 325 of machine 110-2 as machine 110y.
[0047] The time registration path 710 can indicate i and j pairs that best correspond to each other. The time registration path 710 can be determined as a minimum-cost path through a cost matrix referred to as DTW, which may be defined by the following function:[FN.1] Where, in FN.1, x[i] is the status value 325 at each time interval 315a i, y[j] is the status value 325 at each time interval 315b j, and DTW[i,j] is the minimum cost or minimum distance between x[i] and y[j]. The processes used to obtain the time registration path 710 arefurther discussed with reference to FIG.8. The min function in FN.1 ensures that the Euclidean distance between the time series status information 300 for the two machines 110 is minimized, as discussed with reference to FIG.6B. It should be appreciated that FN.1 provides just one example of how to compute the cost matrix DTW. An alternate approach may consider, for example, the arrangement of the machines 110 according to the graphical representation 200. According to the approach, the cost matrix DTW can be computed using the following alternate function:[FN.2] In FN.2, α and β are weights that may be predefined or specified in real-time. As noted with reference to FN.1, x[i] is the status value 325 at each time interval 315a i, y[j] is the status value 325 at each time interval 315b j, and DTW[i,j] is the minimum cost or minimum distance between x[i] and y[j].
[0048] Assuming a configuration in which machine 110x is upstream of machine 110y, the value of ^^^^^^^^→ ^^^^is greater than 0 when the conveyer belt 120 that allows machine 110x to supply machine 110y is starved (e.g., is carrying fewer than a predefined threshold number of components) and 0 otherwise. The value of ^^^^^^^^→ ^^^^is greater than 0 when the conveyer belt 120 that allows machine 110y to supply machine 110x with empty pucks is blocked and 0 otherwise. Because each time interval 315 i or j may correspond to a span of time (e.g., 30 seconds) and the values of ^^^^^^^^→ ^^^^and ^^^^^^^^→ ^^^^are an average over that span, the values may be between 0 and 1 rather than only 0 or 1. Both ^^^^^^^^→ ^^^^and ^^^^^^^^→ ^^^^may be greater than 0. This is because the conveyer belt 120 that facilitates machine 110x to supply machine 110y with components or intermediate products may be starved (e.g., due to machine 110x being stopped) and the conveyer belt 120 that facilitates machine 110y to supply machine 110x with empty pucks may be blocked (e.g., due to the same stoppage of machine 110x).
[0049] Two sets of dashed lines711a and 711b are shown in FIG.7 for explanatory purposes. As one of the dashed lines 711a indicates, a time interval 315a of 4 corresponds with a time interval 315b of 2.9 according to the time registration path 710. This means that the status value 325 of machine 110x (e.g., machine 110-1) at time interval 4 matches the status value 325 of machine 110y (e.g., machine 110-2) at time interval 2.9. For example,based on the exemplary graphical representation 200 of FIG.2, if the status value 325 of machine 110-1 at a time interval 315a of 4 is a waiting status and the status value 325 of machine 110-2 at the matching time interval 315b of 2.9 is a stopping status (as checked at 450), machine 110-2 could be declared as the root cause of the waiting event at time interval 4 at machine 110-1 (at 460). Similarly, if there were another waiting event at a time interval 315a of 6 at machine 110-1, the status value 310b of machine 110-2 would be checked at the matching time interval 315b of 5.4 at 450, according to dashed line 711b.
[0050] FIG.8 is a process flow of an exemplary method 800 of performing dynamic time warping to obtain the time registration path 710. At 810, obtaining time series status information x[1:M] and y[1:N] refers to obtaining N status values 325 for a first machine and M status values 325 for another machine (note that M may equal N in some embodiments). As previously noted, the status values may be indexed as x[i] and y[j]. At 820, the cost matrix DTW is initialized, as shown in FIG.8. Specifically, DTW[0,0] is set to 0 while values in the column DTW[i,0] and in the row DTW[0,j] are set to infinity. Filling in the remainder of the cost matrix DTW, at 830, involves optimizing the objective function shown in FN.1 or FN.2, for example. That is, DTW[1:M,0] may be determined, followed by DTW[0:M,1], up to DTW[0:M,N]. Obtaining the time registration path 710, at 840, refers to obtaining the least-cost path from DTW[0,0] to DTW[M,N]. That is, beginning at DTW[M,N] and working toward DTW[0,0], each next step in the path (i.e., value of the time registration path 710) is determined as the minimum of DTW[i-1,j-1], DTW[i-1,j], or DTW[i,j-1]. For example, in FIG.8, dashed ovals are used to indicate the options for the first step in the path (i.e., value of the time registration path 710 at i=M and j=N). As shown, the value is taken as the minimum among DTW[M-1,N-1], DTW[M-1,N], and DTW[M,N-1]. The last value will be 0 at DTW[0,0]. The path that the time registration path takes through the DTW cost matrix would then become the time registration path 710, as shown in FIG.7.
[0051] FIG.9 illustrates exemplary time series status information 300x, 300y for exemplary machines 110x, 110y, respectively, to illustrate the correspondence indicated by dynamic time warping. A set of stopped events is indicated within the time series status information 300y associated with machine 110y and a set of waiting events is indicated within the time series status information 300x associated with machine 110x. The dynamic time warping arrows between the stopped events within the time series status information 300y and the waiting events within the time series status information 300x illustrate the correspondence that may be gleaned from the dynamic time warping process. As noted withreference to FIG.6B, the arrows indicating the dynamic time warping matches in FIG.9 are not vertical (i.e., not simply aligning the two timelines) and are not parallel (i.e., not based on a fixed time lag between the two timelines).
[0052] FIG.10 is a block diagram detailing aspects of the controller 130 that performs root cause analysis according to exemplary one or more embodiments. The controller 130 may include one or more processors 1010 that implement the processes shown in FIGS.4 and 5, for example. Instructions processed by the one or more processors 1010 to implement the methods 400, 500 may be stored in non-transitory computer-readable media such as non-volatile storage 1020, for example. Memory 1030 may store time series status information 300 from various machines 110 and other data. A display 1040 may illustrate the time registration path 710 between two machines 110 or the correspondence between events, as illustrated in FIG.9, for example.
[0053] Techniques operating according to the principles described herein may be implemented in any suitable manner. The processing and decision blocks of the flow charts above represent steps and acts that may be included in algorithms that carry out these various processes. Algorithms derived from these processes may be implemented as software integrated with and directing the operation of one or more single- or multi-purpose processors, may be implemented as functionally-equivalent circuits such as a Digital Signal Processing (DSP) circuit or an Application-Specific Integrated Circuit (ASIC), or may be implemented in any other suitable manner. It should be appreciated that the flow charts included herein do not depict the syntax or operation of any particular circuit or of any particular programming language or type of programming language. Rather, the flow charts illustrate the functional information one skilled in the art may use to fabricate circuits or to implement computer software algorithms to perform the processing of a particular apparatus carrying out the types of techniques described herein. It should also be appreciated that, unless otherwise indicated herein, the particular sequence of steps and / or acts described in each flow chart is merely illustrative of the algorithms that may be implemented and can be varied in implementations and embodiments of the principles described herein.
[0054] Accordingly, in some embodiments, the techniques described herein may be embodied in computer-executable instructions implemented as software, including as application software, system software, firmware, middleware, embedded code, or any other suitable type of computer code. Such computer-executable instructions may be written using any of a number of suitable programming languages and / or programming or scripting tools,and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
[0055] When techniques described herein are embodied as computer-executable instructions, these computer-executable instructions may be implemented in any suitable manner, including as a number of functional facilities, each providing one or more operations to complete execution of algorithms operating according to these techniques. A “functional facility,” however instantiated, is a structural component of a computer system that, when integrated with and executed by one or more computers, causes the one or more computers to perform a specific operational role. A functional facility may be a portion of or an entire software element. For example, a functional facility may be implemented as a function of a process, or as a discrete process, or as any other suitable unit of processing. If techniques described herein are implemented as multiple functional facilities, each functional facility may be implemented in its own way; all need not be implemented the same way. Additionally, these functional facilities may be executed in parallel and / or serially, as appropriate, and may pass information between one another using a shared memory on the computer(s) on which they are executing, using a message passing protocol, or in any other suitable way.
[0056] Generally, functional facilities include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the functional facilities may be combined or distributed as desired in the systems in which they operate. In some implementations, one or more functional facilities carrying out techniques herein may together form a complete software package. These functional facilities may, in alternative embodiments, be adapted to interact with other, unrelated functional facilities and / or processes, to implement a software program application.
[0057] Some exemplary functional facilities have been described herein for carrying out one or more tasks. It should be appreciated, though, that the functional facilities and division of tasks described is merely illustrative of the type of functional facilities that may implement the exemplary techniques described herein, and that embodiments are not limited to being implemented in any specific number, division, or type of functional facilities. In some implementations, all functionality may be implemented in a single functional facility. It should also be appreciated that, in some implementations, some of the functional facilitiesdescribed herein may be implemented together with or separately from others (i.e., as a single unit or separate units), or some of these functional facilities may not be implemented.
[0058] Computer-executable instructions implementing the techniques described herein (when implemented as one or more functional facilities or in any other manner) may, in some embodiments, be encoded on one or more computer-readable media to provide functionality to the media. Computer-readable media include magnetic media such as a hard disk drive, optical media such as a Compact Disk (CD) or a Digital Versatile Disk (DVD), a persistent or non-persistent solid-state memory (e.g., Flash memory, Magnetic RAM, etc.), or any other suitable storage media. Such a computer-readable medium may be implemented in any suitable manner. As used herein, “computer-readable media” (also called “computer- readable storage media”) refers to tangible storage media. Tangible storage media are non- transitory and have at least one physical, structural component. In a “computer-readable medium,” as used herein, at least one physical, structural component has at least one physical property that may be altered in some way during a process of creating the medium with embedded information, a process of recording information thereon, or any other process of encoding the medium with information. For example, a magnetization state of a portion of a physical structure of a computer-readable medium may be altered during a recording process.
[0059] Further, some techniques described above comprise acts of storing information (e.g., data and / or instructions) in certain ways for use by these techniques. In some implementations of these techniques—such as implementations where the techniques are implemented as computer-executable instructions—the information may be encoded on a computer-readable storage media. Where specific structures are described herein as advantageous formats in which to store this information, these structures may be used to impart a physical organization of the information when encoded on the storage medium. These advantageous structures may then provide functionality to the storage medium by affecting operations of one or more processors interacting with the information; for example, by increasing the efficiency of computer operations performed by the processor(s).
[0060] In some, but not all, implementations in which the techniques may be embodied as computer-executable instructions, these instructions may be executed on one or more suitable computing device(s) operating in any suitable computer system, or one or more computing devices (or one or more processors of one or more computing devices) may be programmed to execute the computer-executable instructions. A computing device or processor may be programmed to execute instructions when the instructions are stored in amanner accessible to the computing device or processor, such as in a data store (e.g., an on- chip cache or instruction register, a computer-readable storage medium accessible via a bus, a computer-readable storage medium accessible via one or more networks and accessible by the device / processor, etc.). Functional facilities comprising these computer-executable instructions may be integrated with and direct the operation of a single multi-purpose programmable digital computing device, a coordinated system of two or more multi-purpose computing device sharing processing power and jointly carrying out the techniques described herein, a single computing device or coordinated system of computing device (co-located or geographically distributed) dedicated to executing the techniques described herein, one or more Field-Programmable Gate Arrays (FPGAs) for carrying out the techniques described herein, or any other suitable system.
[0061] A computing device may comprise at least one processor, a network adapter, and computer-readable storage media. A computing device may be, for example, a desktop or laptop personal computer, a personal digital assistant (PDA), a smart mobile phone, a server, or any other suitable computing device. A network adapter may be any suitable hardware and / or software to enable the computing device to communicate wired and / or wirelessly with any other suitable computing device over any suitable computing network. The computing network may include wireless access points, switches, routers, gateways, and / or other networking equipment as well as any suitable wired and / or wireless communication medium or media for exchanging data between two or more computers, including the Internet. Computer-readable media may be adapted to store data to be processed and / or instructions to be executed by processor. The processor enables processing of data and execution of instructions. The data and instructions may be stored on the computer-readable storage media.
[0062] A computing device may additionally have one or more components and peripherals, including input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computing device may receive input information through speech recognition or in other audible format.
[0063] Embodiments have been described where the techniques are implemented in circuitry and / or computer-executable instructions. It should be appreciated that some embodiments may be in the form of a method, of which at least one example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
[0064] Various aspects of the embodiments described above may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
[0065] Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
[0066] Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
[0067] The word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any embodiment, implementation, process, feature, etc. described herein as exemplary should therefore be understood to be an illustrative example and should not be understood to be a preferred or advantageous example unless otherwise indicated.
[0068] To clarify the use of and to hereby provide notice to the public, the phrases “at least one of , , ... and <N>” or “at least one of , , ... <N>, or combinations thereof” or “, , ... and / or <N>” are defined by the Applicant in the broadest sense, superseding any other implied definitions hereinbefore or hereinafter unless expressly asserted by the Applicant to the contrary, to mean one or more elements selected from the group comprising A, B, ... and N. In other words, the phrases mean any combination of oneor more of the elements A, B, ... or N including any one element alone or the one element in combination with one or more of the other elements which may also include, in combination, additional elements not listed.
[0069] While various embodiments have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible. Accordingly, the embodiments described herein are examples, not the only possible embodiments and implementations. Furthermore, the advantages described above are not necessarily the only advantages, and it is not necessarily expected that all of the described advantages will be achieved with every embodiment.
[0070] Various aspects are described in this disclosure, which include, but are not limited to, the following aspects:
[0071] 1. A method for managing a manufacturing network, the method comprising: obtaining first status information over a time period for a first machine of the manufacturing network, wherein the first status information comprises a first waiting event; obtaining second status information over the time period for a second machine of the manufacturing network, wherein the second status information comprises one or more stopped events; performing a dynamic time warping operation to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine, wherein: each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path; determining whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine; and based on determining that the matching time interval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine, indicating the second machine as a root cause of the first waiting event of the first machine.
[0072] 2. The method according to aspect 1, further comprising, based on determining that the matching time interval among the second set of time intervals does not correspond to at least one of the one or more stopped events at the second machine: determining whether the matching time interval among the second set of time intervals that matches the time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to a second waiting event at the second machine.
[0073] 3. The method according to aspect 2, further comprising, based on determining that the matching time interval among the second set of time intervals does not correspond to the second waiting event at the second machine, indicating that the second machine is unrelated to the first waiting event of the first machine.
[0074] 4. The method according to aspect 2, further comprising, based on determining that the matching time interval among the second set of time intervals does correspond to the second waiting event at the second machine, identifying a cause of the second waiting event at the second machine as the root cause of the first waiting event at the first machine.
[0075] 5. The method according to aspect 4, wherein the identifying the cause of the second waiting event comprises: obtaining third status information over the time period for a third machine of the manufacturing network, wherein the third status information comprises one or more stopped events at the third machine; performing a dynamic time warping operation to estimate, for the second set of time intervals within the time period associated with the second machine, a matching third set of time intervals associated with the third machine, wherein: each time interval among the second set of time intervals has a matching time interval among the third set of time intervals indicated by a second time registration path.
[0076] 6. The method according to aspect 5, wherein the identifying the cause of the second waiting event further comprises: determining whether a matching time interval among the third set of time intervals that matches a time interval among the second set of time intervals corresponding to the second waiting event at the second machine does or does not correspond to at least one of the one or more stopped events at the third machine.
[0077] 7. The method according to aspect 6, further comprising indicating the third machine as the cause of the second waiting event at the second machine and as the root cause of the first waiting event at the first machine based on determining that the matching time interval among the third set of time intervals does correspond to at least one of the one or more stopped events at the third machine.
[0078] 8. The method according to aspect 1, wherein the second machine is upstream of first machine in the manufacturing network.
[0079] 9. A system to manage a manufacturing network, the system comprising: memory configured to store computer-executable instructions; and a processor configured to execute the computer-executable instructions to: obtain first status information over a time period for a first machine of the manufacturing network, wherein the first status informationcomprises a first waiting event; obtain second status information over the time period for a second machine of the manufacturing network, wherein the second status information comprises one or more stopped events; perform a dynamic time warping operation to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine, wherein: each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path; determine whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine; and indicate the second machine as a root cause of the first waiting event of the first machine based on determining that the matching time interval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine.
[0080] 10. The system according to aspect 9, wherein, based on determining that the matching time interval among the second set of time intervals does not correspond to at least one of the one or more stopped events at the second machine, the processor is configured to: determine whether the matching time interval among the second set of time intervals that matches the time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to a second waiting event at the second machine.
[0081] 11. The system according to aspect 10, wherein, based on determining that the matching time interval among the second set of time intervals does not correspond to the second waiting event at the second machine, the processor is configured to: indicate that the second machine is unrelated to the first waiting event of the first machine.
[0082] 12. The system according to aspect 10, wherein, based on determining that the matching time interval among the second set of time intervals does correspond to the second waiting event at the second machine, the processor is configured to: identify a cause of the second waiting event at the second machine as the root cause of the first waiting event at the first machine.
[0083] 13. The system according to aspect 12, wherein the processor is configured to identify the cause of the second waiting event by obtaining third status information over the time period for a third machine of the manufacturing network, wherein the third statusinformation comprises one or more stopped events at the third machine; performing a dynamic time warping operation to estimate, for the second set of time intervals within the time period associated with the second machine, a matching third set of time intervals associated with the third machine, wherein: each time interval among the second set of time intervals has a matching time interval among the third set of time intervals indicated by a second time registration path.
[0084] 14. The system according to aspect 13, wherein the processor is further configured to: identify the cause of the second waiting event by determining whether a matching time interval among the third set of time intervals that matches a time interval among the second set of time intervals corresponding to the second waiting event at the second machine does or does not correspond to at least one of the one or more stopped events at the third machine.
[0085] 15. The system according to aspect 14, wherein the processor is further configured to: indicate the third machine as the cause of the second waiting event at the second machine and as the root cause of the first waiting event at the first machine based on determining that the matching time interval among the third set of time intervals does correspond to at least one of the one or more stopped events at the third machine.
[0086] 16. A non-transitory computer-readable medium storing instructions which, when processed by one or more processors, cause the one or more processors to implement a method of managing a manufacturing network, the method comprising: obtaining first status information over a time period for a first machine of the manufacturing network, wherein the first status information comprises a first waiting event; obtaining second status information over the time period for a second machine of the manufacturing network, wherein the second status information comprises one or more stopped events; performing a dynamic time warping operation to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine, wherein: each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path; determining whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine; and based on determining that the matching time interval among the second set of time intervals does correspond to at least oneof the one or more stopped events at the second machine, indicating the second machine as a root cause of the first waiting event of the first machine.
[0087] 17. The non-transitory computer-readable medium according to aspect 16, the method further comprising, based on determining that the matching time interval among the second set of time intervals does not correspond to at least one of the one or more stopped events at the second machine: determining whether the matching time interval among the second set of time intervals that matches the time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to a second waiting event at the second machine.
[0088] 18. The non-transitory computer-readable medium according to aspect 17, the method further comprising, based on determining that the matching time interval among the second set of time intervals does not correspond to the second waiting event at the second machine: indicating that the second machine is unrelated to the first waiting event of the first machine.
[0089] 19. The non-transitory computer-readable medium according to aspect 17, the method further comprising, based on determining that the matching time interval among the second set of time intervals does correspond to the second waiting event at the second machine: identifying a cause of the second waiting event at the second machine as the root cause of the first waiting event at the first machine.
[0090] 20. The non-transitory computer-readable medium according to aspect 19, wherein the identifying the cause of the second waiting event comprises: obtaining third status information over the time period for a third machine of the manufacturing network, wherein the third status information comprises one or more stopped events at the third machine; performing a dynamic time warping operation to estimate, for the second set of time intervals within the time period associated with the second machine, a matching third set of time intervals associated with the third machine, wherein: each time interval among the second set of time intervals has a matching time interval among the third set of time intervals indicated by a second time registration path; determining whether a matching time interval among the third set of time intervals that matches a time interval among the second set of time intervals corresponding to the second waiting event at the second machine does or does not correspond to at least one of the one or more stopped events at the third machine; and indicating the third machine as the cause of the second waiting event at the second machine and as the root cause of the first waiting event at the first machine based on determining thatthe matching time interval among the third set of time intervals does correspond to at least one of the one or more stopped events at the third machine.
Claims
CLAIMS We claim:
1. A system for manufacturing products or components of products, the system comprising: a plurality of machines in a manufacturing network for manufacturing products or components of products, wherein each machine is configured with one or more sensors for detecting whether said machine is in an operational state, a waiting state, or a stopped state; memory storing computer-executable instructions; and a processor configured to execute the computer-executable instructions to: obtain first status information recorded by the one or more sensors for a first machine of the manufacturing network over a time period, wherein the first status information comprises a first waiting event; obtain second status information recorded by the one or more sensors for a second machine of the manufacturing network over the time period, wherein the second status information comprises one or more stopped events; perform a dynamic time warping operation to estimate, for a first set of time intervals within the time period associated with the first machine, a matching second set of time intervals associated with the second machine, wherein: each time interval among the first set of time intervals has a matching time interval among the second set of time intervals indicated by a first time registration path; determine whether a matching time interval among the second set of time intervals that matches a time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to at least one of the one or more stopped events at the second machine; and indicate the second machine as a root cause of the first waiting event of the first machine based on determining that the matching time interval among the second set of time intervals does correspond to at least one of the one or more stopped events at the second machine.
2. The system according to claim 1, wherein, based on determining that the matching time interval among the second set of time intervals does not correspond to at least one of the one or more stopped events at the second machine, the processor is configured to: determine whether the matching time interval among the second set of time intervals that matches the time interval among the first set of time intervals corresponding to the first waiting event at the first machine does or does not correspond to a second waiting event at the second machine.
3. The system according to claim 2, wherein, based on determining that the matching time interval among the second set of time intervals does not correspond to the second waiting event at the second machine, the processor is configured to: indicate that the second machine is unrelated to the first waiting event of the first machine.
4. The system according to claim 2, wherein, based on determining that the matching time interval among the second set of time intervals does correspond to the second waiting event at the second machine, the processor is configured to: identify a cause of the second waiting event at the second machine as the root cause of the first waiting event at the first machine.
5. The system according to claim 4, wherein the processor is configured to identify the cause of the second waiting event by obtaining third status information recorded by the one or more sensors for for a third machine of the manufacturing network over the time period, wherein the third status information comprises one or more stopped events at the third machine; performing a dynamic time warping operation to estimate, for the second set of time intervals within the time period associated with the second machine, a matching third set of time intervals associated with the third machine, wherein: each time interval among the second set of time intervals has a matching time interval among the third set of time intervals indicated by a second time registration path.
6. The system according to claim 5, wherein the processor is further configured to: identify the cause of the second waiting event by determining whether a matching time interval among the third set of time intervals that matches a time interval among the second set of time intervals corresponding to the second waiting event at the second machine does or does not correspond to at least one of the one or more stopped events at the third machine.
7. The system according to claim 6, wherein the processor is further configured to: indicate the third machine as the cause of the second waiting event at the second machine and as the root cause of the first waiting event at the first machine based on determining that the matching time interval among the third set of time intervals does correspond to at least one of the one or more stopped events at the third machine.
8. The system according to any one of claims 1-7, wherein performing the dynamic time warping operation comprises populating a cost matrix DTW based on the first status information for the first machine and the second status information for the second machine, wherein the first status information may be expressed as a discrete time-series signal x[i], wherein i is any integer between 0 and M, and the second status information may be expressed as another discrete time-series signal y[j], wherein j is any integer between 0 and N, and where the cost matrix DTW has dimensions M x N.
9. The system according to claim 8, wherein DTW[i,j] is calculated based on a difference between x[i] and y[j] and the minimum of (i) DTW[i-1,j], (ii) DTW[i,j-1], and (iii) DTW[i-1,j-1], wherein DTW[0,0] is set to 0 while values in the column DTW[i,0] and in the row DTW[0,j] are set to infinity.
10. The system according to claim 8, wherein DTW[i,j] is calculated based on the absolute value of x[i]-y[j] and at least one of (i) a term based on a status of a conveyor belt running from the first machine to the second machine at time interval i, and (ii) a term based on a status of a conveyor belt running from the second machine to the first machine at time interval j.
11. The system according to any one of claims 8-9, wherein the first time registration path is obtained by starting at DTW[M,N] and determining each next step in the first time registration path based on the minimum of DTW[i-1,j-1], DTW[i-1,j], and DTW[i,j- 1], until the first time registration path reaches DTW[0,0].
12. The system according to any one of claims 1-11, wherein the products are medical devices.
Citation Information
Patent Citations
Computer system and method for monitoring key performance indicators (KPIs) online using time series pattern model
US10921759B2
Controlling technical equipment through quality indicators using parameterized batch- run monitoring
US20220035810A1
Machine fault modelling
US20220414505A1