System control based on time-series data analysis
A controller for controlling an operation of a system is disclosed. The controller receives an input signal indicative of the operation of the system and rotates a test signal multiple times with different circular shifts to produce different rotations of the test signal forming a matrix data structure with the input signal. The input signal and the test signal are time-series data having values monotonically measured over time. The controller is further configured to apply a sliding three-dimensional (3D) window method to the matrix data structure to produce statistics of the input signal with respect to the rotations of the test signal. The sliding 3D window method iteratively moves window over the matrix data structure to compute a value of the statistics for a segment of the matrix data structure within the window. Furthermore, the controller controls the operation of the system according to the statistics of the input signal.
Latest Mitsubishi Electric Research Laboratories, Inc. Patents:
- Systems and methods for image transformation using distance field procedures
- System and method for parking an autonomous ego-vehicle in a dynamic environment of a parking area
- SYSTEMS AND METHODS FOR CONTROLLING AN UNDERACTUATED MECHANICAL SYSTEM WITH MULTIPLE DEGREES OF FREEDOM
- SYSTEM AND METHOD FOR CONTROLLING A MECHANICAL SYSTEM WITH MULTIPLE DEGREES OF FREEDOM
- Coherent optical sensor with sparse illumination
The present disclosure relates generally to system control, and more particularly to an apparatus for controlling an operation of a system based on time-series data analysis.
BACKGROUNDModern computer systems collect large amount of information from various physical systems and/or machines. Maintaining such physical systems (hereinafter, systems) in good working order is an important task associated with their operation, and how and when maintenance is performed has a very significant effect on economic aspect of their operation. One maintenance strategy is to repair a system only after it fails (also known as corrective maintenance). This strategy is not optimal, because repairs of an entire failed system may be costlier than replacing a single part before the system breaks, and also system failure may result in wasted materials, unacceptable product quality, and might even endanger the personnel operating the system. In situations when the corrective maintenance is not a viable or economic option, a different strategy is used—regular maintenance of the system at fixed intervals, for example one year. Examples of such safety critical systems are elevators and cars; generally, their maintenance is done once per year, and corresponding certificates are issued. Such strategy is commonly known as preventive maintenance.
Although the preventive maintenance addresses safety issues that are associated with the system maintenance, there are many cases when it is not economically optimal. For example, in the preventive maintenance, a length of a maintenance cycle is often arbitrary (e.g., one year or one month), and according to convenience of inspection authorities and logistics of an inspection process (e.g. issuing inspection stickers for cars), than with the actual need of the systems. Further, a single maintenance cycle may not be optimal for all systems in a group, where some of the systems are new, and may require maintenance not very often, whereas older systems may require maintenance much more often. In this situation, a time-based preventive maintenance strategy is used. The time-based preventive maintenance is also referred to as predictive maintenance.
The predictive maintenance strategy allows use of sensors to measure system parameters. As instrumentation of system operations increases, large amounts of data are being collected from the sensors that monitor the operations of the systems. The data from some sensors may also be generated at a relatively high frequency, which further results in large amount of data. The data from the sensors associated with systems may be analyzed to determine a state of the system. For example, in some cases, a data stream from a sensor associated with the system may be analyzed to determine whether the system is not performing as expected, referred to as equipment failure. However, the predictive maintenance strategy is time-consuming and demands for training data. For instance, when adapting the predictive maintenance to actual environment, the predictive maintenance demands for an amount of training data to analyze the data streams from the sensors and further takes long time to gain high-accuracy learning model. For example, in a case of a group of systems comprising older systems and new systems, the training data for all the systems in the group needs to be collected and further a model for each system in the group needs to be designed and trained. Furthermore, the predictive maintenance strategy prevents quick adaptations, as models for different systems need to be designed differently.
Accordingly, there is a need for an efficient apparatus for controlling the operation of system in an optimal and feasible manner.
SUMMARYIt is objective of some embodiments to provide a controller to produce statistics for time-series data indicative of an operation of a system. It is also objective of some embodiments to control the operation of the system, according the produced statistics of the time-series data.
Some embodiments are based on recognition that an input signal needs to be compared with a test signal for controlling the operation of the system. As used herein, the system may include, but are not limited to, an HVAC (Heating, Ventilating, and Air-Conditioning) system, a robotic assembly, an elevator door system, a vehicle, and a motor. Examples of the operation of the system may include, but are not limited to, operating the HVAC system according to specific parameters, operating a robot arm according to a specific task, and opening/closing elevator doors. In some embodiments, the test signal and the input signal may be the time-series data indicative of the operation of the system. In some other embodiments, the test signal and the input signal may be two different signals, where the test signal is indicative of a normal operation of the system and the input signal is indicative of a real-time operation of the system. As used herein, the time-series data is a sequence of values measured and/or determined sequentially in time.
Some embodiments are based on realization that producing the statistics of the input signal with respect to different rotations of the test signal is similar to comparing the input signal with respect to the test signal. To this end, it is objective of some embodiments to rotate the test signal multiple times with different circular shifts to produce different rotations of the test signal. In some embodiments, the test signal is rotated with a circular shift by moving a final entry of the test signal to a first position while shifting all other entries to the next position. In some other embodiments, the test signal is rotated with a circular shift by moving a first entry of the test signal to a final position while shifting all other entries to a previous position. A value of the circular shift determines a number of samples of the test signal forming an entry. It is also objective of some embodiments to form a matrix data structure using at least the different rotations of the test signal and the input signal.
Some embodiments are based on realization that the statistics of the input signal with respect to different rotations of the test signal is produced by applying a sliding three-dimensional (3D) window method to the matrix data structure. The ‘sliding’ part of the sliding three-dimensional (3D) window method may refer to that the sliding three-dimensional (3D) window method in which a window is iteratively moved over the matrix data structure to determine the statistics of the input signal. The ‘three-dimensional (3D) window’ part of the sliding three-dimensional (3D) window method may refer to that the sliding three-dimensional (3D) window method determining the statistics for the input signal within the window with respect to all other segments (may be different rotations of the test signal or may be complete test signal) defined within the same window.
Accordingly, the sliding 3D window method iteratively moves the window over the matrix data structure to determine a value of the statistics for a segment of the input signal in the matrix data structure within the window. Further, the sliding three-dimensional (3D) window method is used to determine the statistics for a segment of the input signal with respect to different rotations of the test signal or the complete test signal using a single window. Therefore, the sliding three-dimensional (3D) window method disclosed herein determines the statistics of the input signal in a feasible manner in comparison to currently available sliding methods that use multiple windows to compare a segment of the input signal with the test signal. For instance, when the test signal and the input signal are same, the currently available sliding methods compares a segment of input signal defined within the window with multiple other segments of the input signal defined within other multiple windows. However, in case of the sliding three-dimensional (3D) window method, the segment of the input signal defined within the window is compared with multiple other segments of the input signal defined within the same window.
To determine a current value of the statistics of the input signal for the window at a current location, the sliding 3D window method computes statistical observations of a current segment of the input signal within the window at the current location with respect to current segments of each of the rotations of the test signal within the window at the current location. It is objective of some embodiments to uses at least some corresponding statistical observations determined for the window at a previous location, while computing the statistical observations of a current segment of the input signal within the window at the current location. To this end, the computation to be performed for producing the statistics of the input signal may be reduced. Accordingly, the statistics of the input signal may be determined in a more optimal and/or efficient manner.
Some embodiments are based on realization that the statistical observations for current segment of the input signal may include valid statistical observations and invalid statistical observation. The valid statistical observation may include a difference between values of the current segment of the input signal with values of each valid test signal segment. The difference between values of the current segment of the input signal with values of each valid test signal segment defines an unnormalized Euclidean distance. The invalid statistical observation may include a difference between values of the current segment of the input signal with values of each invalid test signal segment. As used herein, the invalid test signal segments may correspond to current segments of the rotations of the test signal defined with the window that violate the monotonicity of time indices defined in the test signal. The valid test signal segments may correspond to current segments of the rotations of the test signal defined with the window that do not violate the monotonicity of time indices defined in the test signal.
It is objective of some embodiments to compute the current value of the statistics of the input signal for the window at the current location from the statistical observations for the current segment of the input signal by excluding the invalid statistical observations computed with respect to the current segments of the rotations of the test signal violating monotonicity of the test signal. For instance, the current value may be at least one of a maximum or minimum of the valid statistical observation.
Further, in some embodiments, in the sliding 3D window method, the window is moved from the current location over the matrix data structure to a next location after determining the current value of the statistics of the input signal. Some embodiments determine a value of a shift for moving the window in the sliding 3D window method. In some embodiments, the value of the shift for moving the window in the sliding 3D window method is equal to a difference between neighboring values of the circular shifts for rotating the test signal. In this way, in the sliding 3D window method, the window iteratively moves over the matrix data structure to produce the statistics of the input signal.
Some embodiments are based on understanding that the statistics of the input signal are determined by a subroutine that computes maximum values of the window applied by the sliding three-dimensional window for the given time-series data (e.g. the input signal) and the given window size m. To this end, some embodiments apply a brute-force approach that is configured to search a maximum value for each and every window of the window size in, leading to a time complexity in an order of O(m (n−m+1))=O(mn), which is dependent on the window size m. Since the time complexity of the brute-force approach is dependent on the window size m, time required to compute the statistics (using the brute-force approach) would proportionally increase with respect to the window size m. To this end, it is objective of some embodiments to compute statistics of the input signal using at least one of a double-ended queue method or a segment tree method such that the time complexity is independent of the window size m and allows to compute the statistics of the input signal in less amount time, in comparison to the brute-force approach.
Some embodiments are based on understanding that an accurate window size m of the window is not known to capture ‘true essence’ of the input signal or to capture ‘true essence’ of the input signal with respect to the test signal. To this end, it is objective of some embodiments to apply the sliding three-dimensional (3D) window method to produce multidimensional statistics of the input signal by applying multiple windows of different window sizes at each location in the input signal of the matrix data structure. In some embodiments, while computing a first dimension of the current value of the statistics of the input signal for the window at the current location, the sliding 3D window method reuses at least some statistical observations determined for an overlapping window of a different size than the size of the window at the current location. Further, this flexibility of applying multiple windows of different window sizes allows the produced multidimensional statistics of the input signal to control the operation of the system in different applications.
Some embodiments are based on realization that the operation of the system is controlled in the optimal and feasible manner using the statistics (or the multidimensional statistics) of the input signal that is produced in the optimal and feasible manner. To this end, some embodiments stop the operation of the system or determine control commands for an actuator of the system upon detecting an anomaly in the statistics of the input signal. Some other embodiments determine constraints of the operation of the system based on the statistics of the input signal and determine control commands for actuators of the system subject to the determined constraints. Some yet other embodiments determine the statistics of the input signal at the end of an operational cycle of the system to adjust the operation of the system for the next operational cycle.
According to an embodiment, a controller for controlling an operation of a system is provided. The controller controls the operation of the system based on comparison of an input signal with a test signal, wherein the input signal and the test signal are time-series data having values monotonically measured over time, comprising: at least one processor; and memory having instructions stored thereon that, when executed by the at least one processor, cause the controller to: receive the input signal indicative of the operation of the system; rotate the test signal multiple times with different circular shifts to produce different rotations of the test signal forming a matrix data structure with the input signal; apply a sliding three-dimensional (3D) window method to the matrix data structure to produce statistics of the input signal with respect to the rotations of the test signal, wherein the sliding 3D window method iteratively moves a window over the matrix data structure to compute a value of the statistics for a segment of the matrix data structure within the window, wherein, to compute a current value of the statistics of the input signal for the window at a current location, the sliding 3D window method is configured to: compute statistical observations of a current segment of the input signal within the window at the current location with respect to current segments of each of the rotations of the test signal within the window at the current location using at least some corresponding statistical observations determined for the window at a previous location; determine the current value of the statistics of the input signal from the statistical observations of the current segment of the input signal excluding invalid statistical observations determined with respect to current segments of the rotations of the test signal violating monotonicity of the time-series data; and move the window from the current location over the matrix data structure to a next location; and control the operation of the system according to the statistics of the input signal.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, to one skilled in the art that the present disclosure may be practiced without these specific details. In other instances, apparatuses and methods are shown in block diagram form only in order to avoid obscuring the present disclosure.
As used in this specification and claims, the terms “for example,” “for instance,” and “such as,” and the verbs “comprising,” “having,” “including,” and their other verb forms, when used in conjunction with a listing of one or more components or other items, are each to be construed as open ended, meaning that that the listing is not to be considered as excluding other, additional components or items. The term “based on” means at least partially based on. Further, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. Any heading utilized within this description is for convenience only and has no legal or limiting effect.
The input signal 104 may be mathematically represented as Y=[y0, y1, . . . , yn−1], where ‘n’ indicates a length of the input signal 104 and Y[l]=yl∈ is a value sampled at a time instance l (or at location l), l=0,1,n−1. For instance, when the length of the input signal 104 is ten (e.g. n=10), the input signal 104 may be represented as Y=[y0, y1, . . . , y9]. The test signal 106 and the input signal 104 may be of the same length n. The test signal 106 may be mathematically represented as X=[x0, x1, . . . , xn−1]. For instance, when the length of the test signal 106 is ten, the test signal 106 may be represented as X=[x0, x1, . . . , x9]. According to some embodiments, the controller 100, for comparing the input signal 104 with the test signal 106, forms a matrix data structure by producing different rotated versions of the test signal 106. For instance, the controller 100 is configured to produce the different rotated versions of the test signal 106, as explained in the detailed description of the
Further, in some embodiments, the circular shift used to rotate the test signal 106 may be a left circular shift. When the circular shift corresponds to the left circular shift, the controller 100 produces a first rotated test signal of the different rotated versions 108 by moving a first entry 106a (e.g. a value x0) of the test signal 106 to a final position 108n while shifting all other entries to a previous location, as illustrated in
For example, when the circular shift is the function that follows the natural number sequence and corresponds to the left circular shift, the controller 100 produces the n−1 number of rotated test signals, which are mathematically represented as X(i)=[xi+1, xi+2, . . . , xn−1, x0, x1m, . . . , xi], where i=0,1, . . . , n−2. Notably, xi portion of the input and/or test signal can include one or multiple samples of the signal.
In this way, the controller 100 rotates the test signal 106 multiple times with different circular shifts to produce the different rotated versions 108 of the test signal 106. Further, the controller 100 is configured to form the matrix data structure using the different rotated versions 108 of the test signal 106, as explained in the detailed description of
In some other embodiments, the test signal 106 may be a copy of the input signal 104. For example, the test signal 106 is equal to the input signal 104 (i.e. X=Y). For instance, the test signal 106 and the input signal 104 may be the real-time operation of the system 102. To this end, the controller 100 is configured to form, using the different rotated versions 108 of the test signal 106, a matrix data structure 110′ with the test signal 106. For instance, the controller 100 forms the matrix data structure 110′ that comprises a number of columns ‘a’ (for instance, a=n) and a number of rows ‘b’, where a first row in the matrix data structure 110′ is the test signal 106 and remaining b−1 rows are the different rotated versions 108 of the test signal 106.
In such a manner, the controller 100 may form the matrix data structure 110′ with the test signal 106 using the different rotated versions 108 of the test signal 106, when the test signal 106 is the copy of the input signal 104. Some embodiments are based on realization that statistics of the input signal 104 with respect to the test signal 106 and the different rotated versions 108 of the test signal 106 within the matrix data structure 110 is produced such that the produced statistics represents a comparison between the input signal 104 and the test signal 106. To that end, it is objective of some embodiments to apply a sliding three-dimensional (3D) window method to the matrix data structure 110 in order to produce the statistics of the input signal 104. For instance, the controller 100 is further configured to apply the sliding three-dimensional (3D) window method to the matrix data structure 110 (or the matrix data structure 110′) to produce the statistics of the input signal 104 (or the test signal 106) with respect to the different rotated versions 108 (i.e. the rotated test signals), as explained in the detailed description of
In this disclosure, the 3D part of the name of the sliding three-dimensional (3D) window method refers to the ability of the window to simultaneously cover the two dimensional input signal and rotations of the test signal along the third dimension of the window. The name is used for clarity purpose and not as the limitation.
As used herein, the current location may correspond to a time instance in the input signal 104 of the matrix data structure 110 for which the window 112 is applied. As used herein, the next location may correspond to any subsequent location to the current location. The ‘sliding’ part of the sliding three-dimensional (3D) window method may refer to that the sliding three-dimensional (3D) window method iteratively moves the window 112 over the matrix data structure 110 to determine the statistics of the input signal 104. The ‘three-dimensional (3D) window’ part of the sliding three-dimensional (3D) window method may refer to that the sliding three-dimensional (3D) window method determines the statistics for the time-series data (e.g. the input signal 104) within a window with respect to all other segments (e.g. the entire test signal 106) defined within the same window (e.g. the window 112). Accordingly, the sliding three-dimensional (3D) window method enables to determine the statistics for a segment of the input signal 104 with respect to the test signal 106 (i.e. the entire test signal) using a single window (i.e. the window 112).
As used herein, the statistics of the input signal 104 may correspond to ‘matrix profile’ of the input signal 104. The ‘matrix profile’ may also be time-series data. Further, the ‘matrix profile’ may be mathematically represented as Z=[z0, z1, . . . , zn−m], where Z[j]=zj is the value of the statistics of the input signal 104 determined at location j (or jth segment of the input signal 104), j=0, 1, . . . , n−m. The jth segment of the input signal 104 may be mathematically represented as Yj, . . . , j+m−1≡[yj, yj+1, . . . , yj+m−1].
Here for purpose of explanation, the window 112 of window size m=4 is considered. However, the window size may be any configurable size within or equal to length of the input signal 104. For instance, the window size of the window 112 may be mathematically defined as 1≤m≤n. Here for purpose of explanation, the window 112 starting at the location 114 (e.g. at an initial value y0) of the input signal 104 for determining the value (e.g. z0) of the statistics of the input signal 104 is considered. However, the window 112 may randomly start at any value (e.g. y0, y1, . . . , yn−m) of the input signal 104 for determining the corresponding values (e.g. z0, z1, . . . , zn−m) of the statistics of the input signal 104, respectively. For instance, the controller 100 determines the value (e.g. z0) of the statistics of the input signal 104 at the location 114 by applying the sliding three-dimensional (3D) window method, as explained in the detailed description of
To this end, in some embodiments, at step 120, the controller 100 applies the sliding three-dimensional (3D) window method to compute statistical observations (also referred to as local statistics) for a current segment (e.g. the segment 116) of the input signal 104 within the window 112 at a current location (e.g. the location 114) with respect to current segments of the test signal 106 within the window 112 at the current location. For instance, the current segments of the test signal 106 within the window 112 at the current location includes a current test signal segment (e.g. a segment comprising a time-series values of x0, x1, x2, and x3) defined by the window 112 and the different rotated versions 108 of the test signal 106 defined within the window 112. In other words, the controller 100 is configured to compute the statistical observations of the current segment of the input signal 104 within the window 112 at the current location with respect to all other segments within the window 112 at the current location. According to an embodiment, the statistical observations of the current segment of the input signal 104 at the current location include a difference between values of the current segment of the input signal 104 with values of each current segment of the test signal 106 defined within the window 112. In other words, the statistical observations of the current segment of the input signal 104 at the current location may include element-wise differences between the current segment of the input signal 104 and each current segment of the test signal 106 defined within the window 112. For instance, the statistical observations of the segment 116 of the input signal 104 within the window 112 at the location 114 with respect to the current test signal segment (e.g. x0, x1, x2, x3) defined within the window 112 may be mathematically computed as {|y0−x0|, |y1−x1|, |y2−x2|, |y3−x3|}. In this way, the controller 100 is configured to compute the absolute difference between the values of the current segment (e.g. the segment 116) of the input signal 104 with the values of each current segment of the test signal 106 defined within the window 112 for computing the statistical observations of the current segment of the input signal 104.
To this end, the statistical observations of the current segment of the input signal 104 may include valid statistical observations and invalid statistical observations. The valid statistical observations for the window 112 at the current location include a difference between the values of the current segment of the input signal 104 with the values of each current segment of the test signal 106 with monotonic time indices. In other words, the valid statistical observations for the window 112 at the current location include a difference between the values of the current segment of the input signal 104 with the values of each valid test signal segment defined within the window 112. The invalid statistical observations for the window 112 at the current location include a difference between the values of the current segment of the input signal 104 with the values of each invalid test signal segment defined within the window 112.
In some other embodiments, the controller 100 applies the sliding three-dimensional (3D) window method to compute the valid statistical observations for the current segment (e.g. the segment 116) of the input signal 104 within the window 112 at the current location (e.g. the location 114) with respect to the valid test signal segments defined within the window 112 at the current location by excluding the invalid test signal segments defined within the window 112 at the current location, since the test signal 106 is the time-series data and has monotonic time dependency.
At step 122, the controller 100 applies the sliding three-dimensional (3D) window method to determine a current value (e.g. the value z0) of the statistics of the input signal 104 from the statistical observations of the current segment (e.g. the segment 116) of the input signal 104. According to an embodiment, the controller 100 is configured to determine the current value of the statistics of the input signal 104 from the statistical observations of the current segment (e.g. the segment 116) of the input signal 104 excluding the invalid statistical observations determined with respect to the current segments of the test signal 106 violating the monotonicity of the test signal 106. In other words, the controller 100 is configured to determine the current value of the statistics of the input signal 104 from the valid statistical observations of the current segment (e.g. the segment 116) of the input signal 104. For instance, the current value of the statistics of the input signal 104 may be mathematically determined as
The notation d(Yj, . . . , j+m−1, Xj′, . . . , j′+m−1) may be computed from the valid statistical observations of the current segment (e.g. the segment 116) of the input signal 104. For instance, the notation d(Yj, . . . , j+m−1, Xj′, . . . , j′+m−1) may be mathematically computed as
The notation d(.,.) defines an unnormalized Euclidean distance (represented as lp (1≤p≤∞)). To this end, the statistics of the input signal 104 at location j is a distance between the jth subsequence of the input signal 104 and nearest-neighboring sequences in the test signal 106. In other words, the controller 100 computes the distance between the current segment (e.g. the segment 116) of the input signal 104 and each of the valid test signal segments defined within the window 112 for determining the current value of the statistics of the input signal 104 at the location j. For instance, the controller 100, for determining the current value (e.g. the value zj) of the statistics of the input signal 104 at location j, computes element-wise distances between the segment Yj, . . . , j+m−1 and the valid test signal segments comprising Xj, . . . , j+m−1 and Xj′, . . . , j′+m−1(i), i∈{i|i∈, 0≤i≤n−2}\{i|i∈, n−m−j−1≤i≤n−j−1}, and determines a minimum among the computed distances. The statistics of the input signal 104 may be also referred to as global statistics of the input signal 104.
At step 124, the controller 100 applies the sliding three-dimensional (3D) window method to move the window 112 from the current location (e.g. the location 114) over the matrix data structure 110 to a next location. According to an embodiment, the controller 100 is configured to determine a value of a shift for moving the window 112 from the current location (e.g. the location 114) to the next location in the matrix data structure 110. In some embodiments, the value for moving the window 112 from the current location (e.g. the location 114) to the next location in the matrix data structure 110 may be equal to the difference in the circular shifts values between any two neighboring rotated test signals in the different rotated versions 108 of the test signal 106. In some other embodiments, the value for moving the window 112 from the current location (e.g. the location 114) to the next location in the matrix data structure 110 may be a predefined value.
Further, the controller 100 is configured to move the window 112 from the current location (e.g. the location 114) to a next location in the matrix data structure 110 based on the determined value of the shift. For instance, once the window 112 is moved to the next location in the matrix data structure 110, the window 112 at the next location is as illustrated in
Some embodiments are based on realization that the invalid test signal segments for the window 112 at one location in the matrix data structure 110 is different from the window 112 at another location in the matrix data structure 110. For example, the invalid segments 118 for the window 112 at location 114 include the rotated test signals X(6), X(7), and X(8); and invalid segments 132 for the window 112 at location 126 include the rotated test signals X(5), X(6), and X(7). So, to use at least some corresponding statistical observations determined for the window 112 at the pervious location, some embodiments compute, at step 120, the statistical observations that include both the valid statistical observations and the invalid statistical observations.
Further, at step 122, the controller 100 applies the sliding three-dimensional (3D) window method to determine the current value (e.g. the value z1) of the statistics of the input signal 104 from the statistical observations of the current segment of the input signal 104 excluding the invalid statistical observations determined with respect to the current segments of the test signal 106 violating the monotonicity of the test signal 106. For the window 112 at location 126, the invalid test signal segments 132 may include the rotated test signals X(5), X(6), and X(7) defined within the window 112, because the rotated test signals X(5), X(6), and X(7) defined within the window 112 violate the monotonicity of the time indices defined in the test signal 106.
At step 124, the controller 100 applies the sliding three-dimensional (3D) window method to move the window 112 from the current location (e.g. the location 126) to the next location in the matrix data structure 110 as explained above in the detailed description of
In this way, the controller 100 applies the sliding three-dimensional (3D) window method to iteratively move the window 112 from the current location (e.g. the location 126) to the next location over the matrix data structure 110 to produce the statistics of the input signal 104 until a termination condition. In some embodiments, the termination condition may be a condition where the window 112 is at a location having a value of yn−m of the input signal 104 (e.g. a location 132). In some other embodiments, the termination condition may be a condition where a window (e.g. a window of window size m=1) is at a location having a value of yn−1 of the input signal 104. For the window 112 at the location 132, invalid test signal segments 136 may include the rotated test signals X(0), X(1), and X(2) defined within the window 112, because the rotated test signals X(0), X(1), and X(2) defined within the window 112 violate the monotonicity of the time indices defined in the test signal 106. For the window 112 at the location 132, the controller 100 computes the current value (e.g. the value zn−m) of the statistics of the input signal 104 similarly as explained for the case where the window 112 at the location 126. To this end, the controller 100 produces the statistics (e.g. Z=[z0, z1, . . . , zn−m]) of the input signal 104 with respect to the test signal 106. Thus produced statistics of the input signal 104 may be a time-series signal having the values of the statistics of the input signal 104.
Further, the controller 100 is configured to control the operation of the system 102 according to the statistics of the input signal 104. For instance, the controller 100 may compare the statistics of the input signal 104 with a threshold value; and determine an anomaly in the operation of the system 102, if the statistics of the input signal is greater than the threshold value.
Here for purpose of explanation, in
To this end, the statistics of the test signal 106 at location j is a distance between the jth subsequence of the test signal 106 and its nearest-neighboring sequence in the test signal 106. In other words, the controller 100 applies the sliding 3D window method such that the sliding 3D window method determines the statistics of the test signal 106 (i.e. the input signal 104) with respect to itself by comparing different segments of the test signal 106 with other segments of the test signal 106.
Here for the purpose of explanation, in
As illustrated in
In some other embodiments, the time-series data 301 may be a multidimensional signal having the values (e.g. x0, x1, . . . , xn−1) measured from operations of different actuators of the system 102. For instance, the time-series data 301 may have values x0, x1, . . . , xn−1 that comprises a value 301a and a value 303a, a value 301b and a value 303b, . . . , a value 301n and a value 303n, respectively. The values 301a, 301b, . . . , and 301n may be values of the signal 301 sampled at time instance t0, t1, . . . , tn−1, respectively. The values 303a, 303b, . . . , and 303n may be values of the signal 303 sampled at time instance t0, t1, . . . , tn−1, respectively. The signals 301 and 303 may be signals collected from the operations of the different actuator of the system 102. In an embodiment, the controller 100 determines the value of the statistics of the time-series data 301 for each location (having multiple values) in the time-series data 301. In this embodiment, mapping between the multiple values in the time-series data 301 and the value of the statistics is many-to-one mapping. In another embodiment, the controller 100 determines the multiple different values of the statistics (i.e. the multidimensional statistics) of the time-series data 301 for each location (having multiple values) in the time-series data 301. In this embodiment, mapping between the multiple values in the time-series data 301 and the multiple different values of the statistics is many-to-many mapping.
The algorithm 1 is executed on the controller 100 to execute a plurality of operations. Based on the execution of the the Algorithm 1, the controller 100 receives time-series data (X), a window size (m), and an argument (‘option’). Algorithm 1 considers that the input signal and the test signal are equal to the time-series data (X). The argument ‘option’ is used to select at least one of the double-ended queue method (“deque”) or the segment tree method (“segtree”). Further, the controller 100 determines a length (n) of the time-series data (hereinafter, the time-series data is referred to as the input signal (X)), and initializes an array of length n−m+1 for computing the statistics of the input signal. The controller 100 computes element-wise distances (“eleDist”) between the input signal and the different rotated versions of the input signal. Further, an algorithm for computing the element-wise distances is as illustrated in
Referring to
Referring to
Referring to
Referring to 4A, the Algorithm 1 configures the controller 100 to compute the current value (i.e. MP[j]=zj) of the statistics of the input signal provided the current value (MP[j]) is always up-till-now minimum lp distance for the window applied at location j. The Algorithm 1 also configures the controller 100 to compute the current value of the statistics for the segment of the input signal with respect to each of rotated versions defined within the window and that do not violate the monotonicity of the time indices of the input signal. Accordingly, the Algorithm 1 configures the controller 100 to return the MP[j] for the window located at location j.
In this way, the controller 100 is configured to determine the statistics of the input signal using at least one of the double-ended queue method or the segment tree method. Based on experimentation, the time complexity is determined as order of O(n2), when the double-ended queue method is applied. Based on experimentation, the time complexity is determined as order of O(n2 log n), when the segment tree method is applied. In both the cases, the time complexity is independent of the window size m. Accordingly, the controller 100 that uses at least one of the sliding three-dimensional window method or the segment tree method computes the statistics of the input signal in less amount of time, in comparison to a controller that uses the brute-force approach for computing the statistics of the input signal. Further, the controller 100 is configured to use the computed statistics of the input signal to control the operation of the system 102. For instance, the controller 100 uses the computed statistics of the input signal to control the operation of the system 102 as explained in the detailed description of
The controller 100 is further configured to compare the statistics of the input signal 502 with at least one threshold value 504 to detect an anomaly in the statistics of the input signal 502. In some embodiments, the at least one threshold value 504 may be a temperature value (or statistics of the temperature value) that is indicative of normal operating temperature of the system 102. To this end, the controller 100 determines whether the statistics of the input signal 502 is greater than the threshold value to detect the anomaly in the statistics of the input signal 502. In some other embodiments, the at least one threshold value 504 may be a range of values indicating a normal operating temperature range of the system 102. To this end, the controller 100 checks whether the statistics of the input signal 502 is within the range of values to detect the anomaly in the statistics of the input signal 502. Furthermore, in some embodiments, the controller 100 may be configured to determine a control signal 506 for an actuator 508 to bring the motor to the normal operating temperature, in response to detecting the anomaly in the statistics of the input signal 502. For example, the controller 100 may generate a control signal to initiate an external cooling system (e.g., a fan) associated with the motor to bring the motor to the normal operating temperature. In some other embodiments, the controller 100 may be configured to determine the control signal 506 to stop the operation of the motor, in response to detecting the anomaly in the statistics of the input signal 502. To that end, the motor may stop the operation of the motor or operate with the normal operating temperature, when the anomaly is detected.
The vehicle may also include an engine 604, which may be controlled by the controller 100 or by other components of the vehicle. Additionally, the vehicle may be equipped with a transceiver 612 for enabling communication capabilities of the controller 100 through wired or wireless communication channels. The vehicle may also include one or more sensors 610 to sense motion quantities and internal status of the vehicle. Examples of the sensors 610 include global positioning system (GPS), accelerometers, inertial measurement units, gyroscopes, shaft rotational sensors, torque sensors, deflection sensors, pressure sensor, and flow sensors. The one or more sensors 610 may be associated with different actuators of the vehicle. For instance, the actuators of the vehicle may include a steering wheel 606 associated with the steering system 600, a brake 608 associated with the braking system 602, and the like. The one or more sensors 610 may measure at least one of a physical variable of the steering system 600, a physical variable of the braking system 602, or a combination thereof, as time-series data. For instance, the physical variable of the steering system 600 may be a steering angle associated with the steering wheel 606 and the like. For instance, the physical variable of the braking system 602 may be a brake torque associated with the brake 608 and the like. The physical variable of the steering system 600 may be used to control rotation of the vehicle and the physical variable of the braking system 602 may be used to control acceleration of the vehicle, while the vehicle is under motion.
According to an embodiment, the controller 100 is configured to receive the time series data an input signal (e.g. the input signal 104). When the time series data corresponds to at least one of the physical variable of the steering system 600 or the physical variable of the braking system 602, the input signal is single dimension signal (e.g. a Univariate Time Series (UTS) signal). When the time series data corresponds to a combination of the physical variable of the steering system 600 and the physical variable of the braking system 602, the input signal is the multidimensional signal (e.g. a Multivariate Time Series (MTS) signal). Further, the controller 100 is configured to produce the statistics of the input signal as explained in the detailed description of
Furthermore, the controller 100 is configured to compare the statistics of the input signal with statistics of raw data. For instance, the statistics of the raw data may include statistics for normal operation of the steering system 600 and the braking system 602 in lane maintenance application or the like. Furthermore, the controller 100 is configured to determine constraints (e.g. steering angle constraints, acceleration constraints, and the like) for lane maintenance or like, based on the comparison between the statistics of the input signal and the statistics of the raw data. Furthermore, the controller 100 is configured to determine control commands (e.g. the steering angle, the brake torque, and the like) for the actuators (e.g. the steering wheel 606, the brake 608, and the like) of the vehicle subjected to the determined constraints. Upon receiving the control commands from the controller 100, the actuators of the vehicle ensure maintaining a lane on a roadway.
The HVAC system is arranged to condition a room 700. The room 700 is occupied by occupants 702, 704, 706 and 708. Arrows 710 represent air supplied by the HVAC system to condition the room 700. The controller 100 is configured to receive an input signal (e.g. the input signal 104) for a first time period (also referred to as a first operation cycle). For instance, the input signal is indicative of an operational parameter of the HVAC system for the first time period (say, twenty four hours). Example of the operational parameters may include a position of an expansion valve of the HVAC system, a speed of a compressor of the HVAC system, a speed of an indoor fan of the HVAC system, a speed of an outdoor fan of the HVAC system, and the like. The controller 100 is configured to produce statistics for the input signal received from the HVAC system as explained in the detailed description of
Furthermore, the controller 100 is configured to determine an anomaly in the statistics of the input signal by comparing the statistics of the input signal with the statistics of the multidimensional time series data. In this example, the anomaly in the statistics of the input signal may be variations in the operational parameter that lead to a deviation from the optimal power consumption. The controller 100 is further configured to control, based on the determined anomaly, the system 102 for a second time period (also referred to as a second operation cycle) of say next twenty four hours such that the system 102 operates at the optimal power consumption in the second time period. For controlling the system 102 to operate at the optimal power consumption, the controller 100 may determine a time instance or duration of time for which the anomaly is determined in the first time period; and control the operational parameters at the determined time instance and duration of time in the second time period. In this way, the controller 100 is configured to determine the statistics of the input signal for one period of time and adjust the operation of the system 102 for another period of time.
According to some embodiments, the controller 100 may include a predictive model, which is configured to relate the produced statistics of the input signal to an expected time of failure of the system 102 (also referred to as Remaining Useful Life (RUL)). According to an embodiment, the predictive model may be a pre-trained machine learning model. Further, in some embodiments, the predictive model may be configured to output a first notification, based on the expected time of the failure of the system 102. The first notification may include a first message indicating to fix the system 102 or a second message indicating to allow the system 102 to run. Based on the first notification, the controller 101 may be configured to stop or allow the system 102 to operate.
In some other embodiments, the predictive model may be configured to output a second notification, based on the expected time of the failure of the system 102. For instance, the second notification may include a message indicating to limit the speed of the motor. Based on the second notification, the controller 101 may be configured to determine constraints (e.g. speed constraints) to limit the speed of the motor. In this way, the controller 100 is configured to control the system 102.
An overall block diagram of the controller 100 is shown and explained in
The controller 100 includes a processor 904 configured to execute stored instructions, as well as a memory 906 that stores instructions that are executable by the processor 904. The processor 904 may be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory 906 may include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems. The processor 904 is connected through the bus 912 to one or more input and output devices. Further, the controller 100 includes a storage device 908 adapted to store different modules storing executable instructions for the processor 904. The storage device 908 may be implemented using a hard drive, an optical drive, a thumb drive, an array of drives, or any combinations thereof.
The storage device 908 is configured to store a system operation control module 910. The system operation control module 910 may correspond to the algorithm (Algorithm 1) explained in the detailed description of
Additionally, the controller 100 may include an output interface 918. In some implementations, the controller 100 is further configured to submit, via the output interface 918, the control commands to the actuators of the system 102. In some other implementations, the controller 100 is configured to submit, to the actuators of the system 102, the control commands subject to constraints of the operations of the system 102, via the output interface 918. In yet some other implementations, the controller 100 is configured to submit, to the system 102, control signals to stop the operation of the system 102, via the output interface 918.
The above description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the above description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. Contemplated are various changes that may be made in the function and arrangement of elements without departing from the spirit and scope of the subject matter disclosed as set forth in the appended claims.
Specific details are given in the above description to provide a thorough understanding of the embodiments. However, understood by one of ordinary skill in the art may be that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the subject matter disclosed may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. Further, like reference numbers and designations in the various drawings indicated like elements.
Also, individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed, but may have additional steps not discussed or included in a figure. Furthermore, not all operations in any particularly described process may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the function's termination may correspond to a return of the function to the calling function or the main function.
Furthermore, embodiments of the subject matter disclosed may be implemented, at least in part, either manually or automatically. Manual or automatic implementations may be executed, or at least assisted, through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium. A processor(s) may perform the necessary tasks.
Various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software 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. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
Embodiments of the present disclosure may be embodied as a method, of which an 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 concurrently, even though shown as sequential acts in illustrative embodiments. Although the present disclosure has been described with reference to certain preferred embodiments, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the present disclosure. Therefore, it is the aspect of the append claims to cover all such variations and modifications as come within the true spirit and scope of the present disclosure.
Claims
1. A controller for controlling an operation of a system based on comparison of an input signal with a test signal, wherein the input signal and the test signal are time-series data having values monotonically measured over time, comprising: at least one processor; and memory having instructions stored thereon that, when executed by the at least one processor, cause the controller to:
- receive the input signal indicative of the operation of the system;
- rotate the test signal multiple times with different circular shifts to produce different rotations of the test signal forming a matrix data structure with the input signal;
- apply a sliding three-dimensional (3D) window method to the matrix data structure to produce statistics of the input signal with respect to the rotations of the test signal, wherein the sliding 3D window method iteratively moves a window over the matrix data structure to compute a value of the statistics for a segment of the matrix data structure within the window, wherein, to compute a current value of the statistics of the input signal for the window at a current location, the sliding 3D window method is configured to: compute statistical observations of a current segment of the input signal within the window at the current location with respect to current segments of each of the rotations of the test signal within the window at the current location using at least some corresponding statistical observations determined for the window at a previous location; determine the current value of the statistics of the input signal from the statistical observations of the current segment of the input signal excluding statistical observations determined with respect to current segments of the rotations of the test signal that violate monotonicity of the time-series data; and move the window from the current location over the matrix data structure to a next location; and
- detect an anomaly in the statistics of the input signal and control the operation of the system based on the detected anomaly.
2. The controller of claim 1, wherein the sliding 3D window method computes multidimensional statistics of the input signal with different dimensions determined for windows of different sizes, wherein for computing a first dimension of the current value of the statistics of the input signal for the window at the current location, the sliding 3D window method reuses at least some statistical observations determined for an overlapping window of a different size than the size of the window at the current location.
3. The controller of claim 1, wherein the test signal is a copy of the input signal, such that the sliding 3D window method determines the statistics of the input signal with respect to itself by comparing different segments of the input signal with other segments of the input signal.
4. The controller of claim 1, wherein the test signal is different from the input signal to represent a normal operation of the system.
5. The controller of claim 1, wherein the test signal is multidimensional and includes multiple different sequences of series data collected from operations of different actuators of the system.
6. The controller of claim 1, wherein statistical observations considered for the window in the current location include a difference between values of the current segment of the input signal with values of each current segment of the rotations of the test signal with monotonic time indices, and wherein the current value of the statistics of the input signal is the maximum or the minimum of the considered statistical observations.
7. The controller of claim 6, wherein the difference defines an unnormalized Euclidean distance.
8. The controller of claim 1, wherein the controller rotates the test signal with a circular shift by moving a final entry of the test signal to a first position while shifting all other entries to the next position, or by moving a first entry of the test signal to a final position while shifting all other entries to a previous position, wherein a value of the circular shift determines a number of samples of the test signal forming an entry.
9. The controller of claim 1, wherein a value of a shift for moving the window in the sliding 3D window method equals a difference between neighboring values of the circular shifts for rotating the test signal.
10. The controller of claim 1, wherein the sliding 3D window method determines the statistics of the input signal using a double-ended queue method.
11. The controller of claim 1, wherein the sliding 3D window method determines the statistics of the input signal using a segment tree method.
12. The controller of claim 1, wherein the processor is configured to stop the operation of the system upon detecting the anomaly in the statistics of the input signal.
13. The controller of claim 1, wherein the processor is configured to determine control commands for an actuator of the system based on the statistics of the input signal.
14. The controller of claim 1, wherein the processor is configured to determine constraints of the operation of the system based on the statistics of the input signal and determine control commands for actuators of the system subject to the determined constraints.
15. The controller of claim 1, wherein the processor is configured to determine the statistics of the input signal at the end of an operational cycle of the system to adjust the operation of the system for the next operational cycle.
16. A method for controlling an operation of a system based on comparison of an input signal with a test signal, wherein the input signal and the test signal are time-series data having values monotonically measured over time, wherein the processor is coupled with stored instructions implementing the method, wherein the instructions, when executed by the processor carry out steps of the method, comprising:
- receiving the input signal indicative of the operation of the system;
- rotate the test signal multiple times with different circular shifts to produce different rotations of the test signal forming a matrix data structure with the input signal;
- applying a sliding three-dimensional (3D) window method to the matrix data structure to produce statistics of the input signal with respect to the rotations of the test signal, wherein the sliding 3D window method iteratively moves a window over the matrix data structure to compute a value of the statistics for a segment of the matrix data structure within the window, wherein, to compute a current value of the statistics of the input signal for the window at a current location, the sliding 3D window method comprises: computing statistical observations of a current segment of the input signal within the window at the current location with respect to current segments of each of the rotations of the test signal within the window at the current location using at least some corresponding statistical observations determined for the window at a previous location; determining the current value of the statistics of the input signal from the statistical observations of the current segment of the input signal excluding statistical observations determined with respect to current segments of the rotations of the test signal that violate monotonicity of the time-series data; and moving the window from the current location over the matrix data structure to a next location; and
- detecting an anomaly in the statistics of the input signal and controlling the operation of the system based on the detected anomaly.
17. A non-transitory computer readable storage medium embodied thereon a program executable by a processor for performing a method for controlling an operation of a system based on comparison of an input signal with a test signal, wherein the input signal and the test signal are time-series data having values monotonically measured over time, the method comprising:
- receiving the input signal indicative of the operation of the system;
- rotate the test signal multiple times with different circular shifts to produce different rotations of the test signal forming a matrix data structure with the input signal;
- applying a sliding three-dimensional (3D) window method to the matrix data structure to produce statistics of the input signal with respect to the rotations of the test signal, wherein the sliding 3D window method iteratively moves a window over the matrix data structure to compute a value of the statistics for a segment of the matrix data structure within the window, wherein, to compute a current value of the statistics of the input signal for the window at a current location, the sliding 3D window method comprises: computing statistical observations of a current segment of the input signal within the window at the current location with respect to current segments of each of the rotations of the test signal within the window at the current location using at least some corresponding statistical observations determined for the window at a previous location; determining the current value of the statistics of the input signal from the statistical observations of the current segment of the input signal excluding statistical observations determined with respect to current segments of the rotations of the test signal that violate monotonicity of the time-series data; and moving the window from the current location over the matrix data structure to a next location; and
- detecting an anomaly in the statistics of the input signal and controlling the operation of the system based on the detected anomaly.
9256224 | February 9, 2016 | Herzog |
10558207 | February 11, 2020 | McGuirk |
11215535 | January 4, 2022 | Huang |
20140279795 | September 18, 2014 | Shibuya |
20190187986 | June 20, 2019 | Tran |
20200143292 | May 7, 2020 | Huang |
20200250584 | August 6, 2020 | Wei |
20200301405 | September 24, 2020 | Zhang |
- Zenisek et al, “Machine learning based concept drift detection for predictive maintenance”, 2019, Computers & Industrial Engineering 137 (2019) 106031 (Year: 2019).
- Tahan et al, “Performance-based health monitoring, diagnostics and prognostics for condition-based maintenance of gas turbines: A review”, 2017, Applied Energy 198 (2017) 122-144 (Year: 2017).
- Li et al, “A novel diagnostic and prognostic framework for incipient fault detection and remaining service life prediction with application to industrial rotating machines”, 2019, Applied Soft Computing Journal 82 (2019) 105564 (Year: 2019).
Type: Grant
Filed: Mar 7, 2021
Date of Patent: Mar 7, 2023
Patent Publication Number: 20220283577
Assignee: Mitsubishi Electric Research Laboratories, Inc. (Cambridge, MA)
Inventors: Jing Zhang (Weymouth, MA), Daniel Nikovski (Brookline, MA)
Primary Examiner: Stephanie E Bloss
Application Number: 17/194,288
International Classification: G05B 23/02 (20060101);