System control based on time-series data analysis
11599104 · 2023-03-07
Assignee
Inventors
Cpc classification
G05B23/0283
PHYSICS
G05B23/0248
PHYSICS
G05B23/024
PHYSICS
G05B23/0221
PHYSICS
G05B23/0294
PHYSICS
G05B23/0256
PHYSICS
International classification
Abstract
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.
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.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
DETAILED DESCRIPTION
(20) 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.
(21) 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.
(22)
(23) The input signal 104 may be mathematically represented as Y=[y.sub.0, y.sub.1, . . . , y.sub.n−1], where ‘n’ indicates a length of the input signal 104 and Y[l]=y.sub.l∈ 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=[y.sub.0, y.sub.1, . . . , y.sub.9]. 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=[x.sub.0, x.sub.1, . . . , x.sub.n−1]. For instance, when the length of the test signal 106 is ten, the test signal 106 may be represented as X=[x.sub.0, x.sub.1, . . . , x.sub.9]. 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
(24)
(25) 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 x.sub.0) of the test signal 106 to a final position 108n while shifting all other entries to a previous location, as illustrated in
(26) 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.sup.(i)=[x.sub.i+1, x.sub.i+2, . . . , x.sub.n−1, x.sub.0, x.sub.1m, . . . , x.sub.i], where i=0,1, . . . , n−2. Notably, x.sub.i portion of the input and/or test signal can include one or multiple samples of the signal.
(27) 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
(28)
(29) 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.
(30) 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
(31) 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.
(32)
(33) 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).
(34) 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=[z.sub.0, z.sub.1, . . . , z.sub.n−m], where Z[j]=z.sub.j is the value of the statistics of the input signal 104 determined at location j (or j.sup.th segment of the input signal 104), j=0, 1, . . . , n−m. The j.sup.th segment of the input signal 104 may be mathematically represented as Y.sub.j, . . . , j+m−1≡[y.sub.j, y.sub.j+1, . . . , y.sub.j+m−1].
(35) 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 y.sub.0) of the input signal 104 for determining the value (e.g. z.sub.0) of the statistics of the input signal 104 is considered. However, the window 112 may randomly start at any value (e.g. y.sub.0, y.sub.1, . . . , y.sub.n−m) of the input signal 104 for determining the corresponding values (e.g. z.sub.0, z.sub.1, . . . , z.sub.n−m) of the statistics of the input signal 104, respectively. For instance, the controller 100 determines the value (e.g. z.sub.0) 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
(36)
(37) 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 x.sub.0, x.sub.1, x.sub.2, and x.sub.3) 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. x.sub.0, x.sub.1, x.sub.2, x.sub.3) defined within the window 112 may be mathematically computed as {|y.sub.0−x.sub.0|, |y.sub.1−x.sub.1|, |y.sub.2−x.sub.2|, |y.sub.3−x.sub.3|}. 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.
(38) 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.
(39) 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.
(40) At step 122, the controller 100 applies the sliding three-dimensional (3D) window method to determine a current value (e.g. the value z.sub.0) 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
(41)
The notation d(Y.sub.j, . . . , j+m−1, X.sub.j′, . . . , 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(Y.sub.j, . . . , j+m−1, X.sub.j′, . . . , j′+m−1) may be mathematically computed as
(42)
The notation d(.,.) defines an unnormalized Euclidean distance (represented as l.sub.p (1≤p≤∞)). To this end, the statistics of the input signal 104 at location j is a distance between the j.sup.th 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 z.sub.j) of the statistics of the input signal 104 at location j, computes element-wise distances between the segment Y.sub.j, . . . , j+m−1 and the valid test signal segments comprising X.sub.j, . . . , j+m−1 and X.sub.j′, . . . , j′+m−1.sup.(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.
(43) 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.
(44) 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
(45)
(46) 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.sup.(6), X.sup.(7), and X.sup.(8); and invalid segments 132 for the window 112 at location 126 include the rotated test signals X.sup.(5), X.sup.(6), and X.sup.(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.
(47) Further, at step 122, the controller 100 applies the sliding three-dimensional (3D) window method to determine the current value (e.g. the value z.sub.1) 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.sup.(5), X.sup.(6), and X.sup.(7) defined within the window 112, because the rotated test signals X.sup.(5), X.sup.(6), and X.sup.(7) defined within the window 112 violate the monotonicity of the time indices defined in the test signal 106.
(48) 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
(49) 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 y.sub.n−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 y.sub.n−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.sup.(0), X.sup.(1), and X.sup.(2) defined within the window 112, because the rotated test signals X.sup.(0), X.sup.(1), and X.sup.(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 z.sub.n−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=[z.sub.0, z.sub.1, . . . , z.sub.n−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.
(50) 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.
(51) Here for purpose of explanation, in
(52)
To this end, the statistics of the test signal 106 at location j is a distance between the j.sup.th 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.
(53) Here for the purpose of explanation, in
(54)
(55) As illustrated in
(56)
(57) In some other embodiments, the time-series data 301 may be a multidimensional signal having the values (e.g. x.sub.0, x.sub.1, . . . , x.sub.n−1) measured from operations of different actuators of the system 102. For instance, the time-series data 301 may have values x.sub.0, x.sub.1, . . . , x.sub.n−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 t.sub.0, t.sub.1, . . . , t.sub.n−1, respectively. The values 303a, 303b, . . . , and 303n may be values of the signal 303 sampled at time instance t.sub.0, t.sub.1, . . . , t.sub.n−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.
(58)
(59) 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
(60)
(61) Referring to
(62)
(63) Referring to
(64)
(65) Referring to
(66)
(67)
(68) Referring to 4A, the Algorithm 1 configures the controller 100 to compute the current value (i.e. MP[j]=z.sub.j) of the statistics of the input signal provided the current value (MP[j]) is always up-till-now minimum l.sub.p 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.
(69) 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(n.sup.2), when the double-ended queue method is applied. Based on experimentation, the time complexity is determined as order of O(n.sup.2 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
(70)
(71) 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.
(72)
(73) 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.
(74) 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
(75) 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.
(76)
(77) 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
(78) 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.
(79)
(80) 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.
(81) 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.
(82) An overall block diagram of the controller 100 is shown and explained in
(83)
(84) 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.
(85) 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
(86) 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.
(87) 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.
(88) 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.
(89) 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.
(90) 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.
(91) 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.
(92) 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.