The present invention relates to a technique for detecting an abnormality in fluctuations in data such as a sensor value of a control system at a plant, building, factory, or the like, a stock price, or sales.
In a power generation plant such as a thermal power power plant, a hydroelectric power plant, and nuclear power plant, a chemical plant, a steel plant, a water and sewage plant, and so on, a control system for controlling the plant process has been employed. In facilities such as a building, a factory, and the like, a control system for air conditioning, electricity, lighting, water supply and drainage, and so on has been employed. In such a control system, various types of time-series data obtained over time by a sensor attached to a device are accumulated.
Likewise, in an information system concerning economy and business administration, time-series data are accumulated where a value such as a stock price or sales is recorded over time.
An abnormality and the like in the state of the plant, facilities, business, and the like are detected by analyzing a change in value of such time-series data. Particularly, an abnormality and the like are detected by obtaining the vibration count of vertical vibration of the value of the time-series data.
Where the time-series data is a signal such as electricity, it is known that the vibration count of the vertical vibration of the value of the time-series data can be obtained by a scheme employing Fourier transform.
Patent Literature 1 describes a method of detecting the vertical vibration from the vertical deviation of time-series data from the average value.
Patent Literature 1: JP 2007-264720
With the scheme employing Fourier transform, it is sometimes difficult to obtain the vibration count of time-series data such as temperature, pressure, or the like which changes slowly, time-series data such as a stock price which is difficult to express by lapping frequencies determined by a physical law, and so on.
With the method described in Patent Literature 1, the vertical vibration cannot be detected if the vertical deviation width from the average value is not uniform (for example, the average value is deviated downward due to the presence of a very low value) and if the average value does not converge (for example, while the value vibrates vertically, the average value continues to decrease).
It is an objective of the present invention to enable detection of a change in a value such as the vertical vibration of the value of time-series data more accurately, so that an abnormality and the like can be detected accurately.
A time-series data processing device according to the present invention includes:
a leg extraction unit to take as input time-series data being a sequence of values sequentially obtained over time, and to extract, as an extension leg, subsequence data which is segmented from the time-series data and in which a value at a terminal point is higher or lower than a value at a start point; and
an appearance pattern identification unit to identify, from the extension leg extracted by the leg extraction unit, a suite of extension legs where an extension rising leg in which a value at a terminal point is higher than a value at a start point, and an extension falling leg in which a value at a terminal point is lower than a value at a start point, appear in an order of a reference pattern.
A time-series data processing device according to the present invention extracts an extension leg from time-series data and identifies the appearance patterns of an extension rising leg and extension falling leg from the extracted extension leg. This enables detection of a change in time-series data accurately, so that an abnormality and the like can be detected accurately.
The time-series data processing device 10 takes as input time-series data being a sequence of values obtained by sequential observation over time, detects vertical vibration of the values of the time-series data, and outputs vibration sequence data indicating the detected vertical vibration.
The time-series data processing device 10 is provided with a period data generation unit 11, a leg extraction unit 12, a leg storage unit 13, and an appearance pattern identification unit 14.
When a new value of the time-series data arrives, the period data generation unit 11 segments subsequence data of a past predetermined period (to be referred to as time window hereinafter) which precedes the arrival time point.
The leg extraction unit 12 takes as input the subsequence data segmented from the time-series data by the period data generation unit 11 and extracts subsequence data which is segmented from the subsequence data and whose value is higher or lower at the terminal point than at the start point, as an extension leg.
The leg storage unit 13 is a storage device which stores the extension leg extracted by the leg extraction unit 12, as a leg list.
The appearance pattern identification unit 14 generates the vibration sequence data by identifying, from the extension leg stored in the leg storage unit 13, an appearance pattern in which an extension rising leg whose value increases over time and an extension falling leg whose value decreases over time appear alternately over time. The appearance pattern identification unit 14 outputs the vibration sequence data.
The time-series data is a real-value order list f[a:b]={f(a), f(a+1), . . . , f(b−1), f(b)} where f is the name of a data item, f(i) is the value of the data item fat a time point i, and a and b are integers satisfying a≦b. Note that b−a+1 will be called the length of time-series data f[a:b].
The subsequence data of the time-series data f[a:b] is a real-value order list f[L:M]={f(L), f(L+1), . . . , f(M)} where L and M are integers satisfying a≦L≦M≦b. Note that M−L+1 will be called the length of the subsequence data f[L:M].
Referring to
The legs include a rising leg and a falling leg.
The rising leg is subsequence data f[L:M] satisfying f(L)≦f(i)≦f(i+1)≦f(M) for every i that satisfies L<i<M. Likewise, the falling leg is subsequence data f[L:M] satisfying f(L)≦f(i)≧f(i+1)≧f(M) for every i that satisfies L<i<M.
An extension leg is obtained by extended leg definition. The extension leg includes an extension rising leg obtained by extended rising leg definition and an extension falling leg obtained by extended falling leg definition.
The extension rising leg is subsequence data f[L:M] satisfying f(L)≦f(i)≦f(M) for every i that satisfies L≦i≦M. Unlike the rising leg, the extension rising leg does not necessarily satisfy f(i)≦f(i+1). Likewise, the extension falling leg is subsequence data f[L:M] satisfying f(L)≧f(i)≧f(M) for every i that satisfies L≦i≦M. Unlike the falling leg, the extension falling leg does not necessarily satisfy f(i)≧f(i+1).
In
The difference (MaxL≦i≦Mf(i)−minL≦i≦Mf(i)) between the maximum value and minimum value of the values of the data item fin the leg will be called an amplitude of the leg. For example, in
A left maximum and right maximum are defined for the extension rising leg and extension falling leg.
A left-maximum extension rising leg f[L:M] is an extension rising leg not satisfying f(L−1)≦f(L). Namely, the left-maximum extension rising leg f[L:M] satisfies f(L−1)>f(L). A right-maximum extension rising leg f[L:M] is an extension rising leg not satisfying f(M)≦f(M+1). Namely, the right-maximum extension rising leg f[L:M] satisfies f(M)>f(M+1).
Likewise, a left-maximum extension falling leg f[L:M] is an extension falling leg satisfying f(L−1)<f(L). A right-maximum extension falling leg f[L:M] is an extension falling leg satisfying f(M)<f(M+1).
In
Referring to
As indicated in (b) and (c), the leg extraction unit 12 extracts the left-maximum, right-maximum extension rising leg and the left-maximum, right-maximum extension falling leg and stores them in the leg storage unit 13 as the leg lists.
When an amplitude A (rising threshold and falling threshold) is given, an order list f[L1:M1], f[L2:M2], . . . , f[Ln:Mn] of an extension leg in which an extension rising leg and extension falling leg each having an amplitude A or more will be called a vibration path. A length n of the order list of the vibration path is defined as the vibration count of the vibration path where L1<M1≦M2, . . . , <Ln≦Mn is satisfied.
Not a simple leg but an extension leg is used in the vibration path in order to disregard a fluctuation having a smaller width than the given amplitude.
When time-series data f[L:M], a time window W, and the amplitude A are given, for each i satisfying L≦i≦M−W+1, in subsequence data f[i:i+W−1], a set of vibration counts of vibration paths each having an amplitude A or more with which the vibration count becomes the maximum will be called vibration sequence data g[L:M−W+1]. Namely, the vibration sequence data represents the vibration count of each time window.
Referring to
Referring to
In (c), extension legs each having an amplitude A or more are chosen to come more to the left (with a higher priority to a leg having an earlier start point) to constitute the vibration path. In this manner, a vibration path constituted of extension legs chosen with a higher priority to an extension leg having an earlier terminal point will be called a terminal time point leftmost vibration path. The terminal time point leftmost vibration path has the maximum vibration count.
More precisely, f[L1:M1], f[L2:M2], . . . f[Li:Mi], . . . , f[Ln:Mn] is assumed as a vibration path P in which an extension rising leg and an extension falling leg each having an amplitude A or more appear alternately. When individual f[Li:Mi] satisfy Mi-1≦Li, have an amplitude A or more, and are chosen such that Mi corresponds to the earliest time point among f[Li:M1], the vibration path P is a terminal time point leftmost vibration path.
How the vibration count of the terminal time point leftmost vibration path becomes the maximum will be described.
The top of a vibration path is either an extension rising leg or a falling extension leg. A case will be described where the extension leg at the top of a path with which the vibration count becomes the maximum is an extension rising leg. The same explanation applies to a case where the extension leg at the top is a falling extension leg.
First, a terminal time point leftmost vibration path which starts with an extension rising leg is expressed as f[L1:M1], f[L2:M2], . . . , f[Ln:Mn]. Assume that a vibration path P′(f[L1′:M1′], f[L2′:M2′], . . . , f[Ln′:Mn′] having an amplitude A exists which starts with an extension rising leg f[L1′:M1′] at a time point L1′ being located after (on the right side of) L1 and with which the vibration count becomes the maximum. Then, a vibration path in which the extension rising leg f[L1′:M1′] is replaced with an extension rising leg f[L1:M1] also forms a vibration path having an amplitude A. The vibration count of the vibration path after replacement is the same as that of the vibration path P′. This teaches that vibration paths that start with f[L1:M1] include one with which the vibration count becomes the maximum.
Likewise, assume that a vibration path P″(f[L:M], [L2″:M2″], [L3:M3], . . . , f[Ln″:Mn″]) having an amplitude A exists which starts with an extension leg f[L1:M1], [L2″:M2″] at a time point L2″ being located after L2 and with which the vibration count becomes the maximum. Then, a vibration path in which the extension rising leg [L2″:M2″] is replaced with an extension rising leg [L2:M2] also forms a vibration path having an amplitude A. The vibration count of the vibration path after replacement is the same as that of the vibration path P″. This teaches that vibration paths that start with f[L1:M1], f[L2:M2] include a vibration path with which the vibration count becomes the maximum.
Since n is finite and Li is larger than Li-1 if this procedure is executed recursively, the procedure stops within n steps. This therefore teaches that the terminal time point leftmost vibration path is a vibration path having an amplitude A with which the wave count becomes the maximum.
In
As an example of non-uniform vertical displacement widths from the average,
As an example of a non-converging average value,
Note that time-series data f(1:i−1), a time window W, and an amplitude A are given as input.
(S1: Subsequence Data Generation Process)
When a new value of the time-series data arrives, the period data generation unit 11 segments subsequence data of the past time window W which precedes the arrival time point.
With the new arrival time point being defined as i, subsequence data f(i−W+1:i) of from a time point i−W+1 to a time point i is segmented. For example, where the time window W is 20-minute long, when the value of 10 o'clock 20 minutes arrives, subsequence data f(10 o'clock 1 minute:10 o'clock 20 minutes) of from 10 o'clock 1 minute to 10 o'clock 20 minutes is segmented.
(S2: Right-Maximization Process)
The leg extraction unit 12 takes as input a value f(i) and a leg list LL which is stored in the leg storage unit 13 and updates the leg list LL such that each extension leg in the leg list LL satisfies the right-maximum properties.
In
The leg extraction unit 12 extracts extension rising legs Lj=f(L:M) from the leg list LL sequentially and executes the process of line 02 to line 11 as follows for each extracted extension rising leg Lj (line 01).
First, the leg extraction unit 12 checks whether or not the value f(i) is lower than the minimum value of the extension rising leg Lj (line 02). If true in line 02, the extension rising leg Lj will not extend rightward whatever the value of the time-series data that may arrive in the future. Thus, the leg extraction unit 12 adds an extension disable flag to the extension rising leg Lj (line 03). Then, an if sentence starting at line 02 ends (line 04).
Then, the leg extraction unit 12 checks whether or not no extension disable flag is added to the extension rising leg Lj and whether or not the value f(i) is higher than the maximum value of the extension rising leg Lj (line 05). If true in Line 05, the leg extraction unit 12 checks whether or not M being the terminal point of the extension rising leg Lj is a time point preceding by one the time point i of the new arrival (line 06). If true in line 06, the extension rising leg Lj is no longer right-maximum. Thus, the leg extraction unit 12 deletes the extension rising leg Lj from the leg list LL, and instead registers f(L:i) in which the terminal point is extended to a time point i, with the leg list LL (line 07). If false in line 06 (line 08), the extension rising leg Lj is right-maximum. Thus, while leaving the extension rising leg Lj in the leg list LL, the leg extraction unit 12 registers f(L:i) with the leg list LL independently of the extension rising leg Lj (line 09). Then, if sentences starting at line 05 and 06 end (lines 10 to 11).
When the process of line 02 to line 11 for every extension rising leg Lj registered with the leg list LL ends, a for sentence starting at line 01 ends (line 12).
Subsequently, the leg extraction unit 12 executes a process for the extension falling leg (lines 13 to 15). As described above, the process for the extension falling leg is almost the same as the process for the extension rising leg, and its detailed description will accordingly be omitted. In the process for the extension falling leg, “f(i)<minL≦i≦Mf(i)” in line 02 in the process for the extension rising leg may be changed to “f(i)>maxL≦i≦Mf(i)”, and “f(i)>maxL≦i≦Mf(i)” in line 05 may be changed to “f(i)<minL≦i≦Mf(i)”.
(S3: New Leg Registration Process)
The leg extraction unit 12 takes as input the value f(i) and the leg list LL which is stored in the leg storage unit 13, and registers a new extension leg with the leg list LL.
In
The leg extraction unit 12 checks whether or not the terminal point M of every extension leg of the leg list LL is time point i−2 or less (line 16). If true in line 16, the leg extraction unit 12 checks whether or not f(i)>f(i−1) or f(i)<f(i−1) is satisfied (line 17). If true in line 17, where f(i)>f(i−1) is satisfied, the leg extraction unit 12 registers f(i−1:i) with the leg list LL as an extension rising leg; where f(i)<f(i−1) is satisfied, the leg extraction unit 12 registers f(i−1:i) with the leg list LL as a falling extension leg (line 18). Then, if sentences starting at line 16 and line 17 end (line 19 to 20).
(S4: Left-Maximization Process)
The leg extraction unit 12 takes as input the value f(i), time window W, amplitude A, and leg list LL, and updates the leg list LL such that the amplitude of each leg in the leg list LL is A or more and satisfies the left-maximum properties.
The leg extraction unit 12 extracts extension rising legs Lj=f(L:M) from the leg list LL sequentially and executes the process of line 02 to line 11 as follows for each extracted extension rising leg Lj (line 01).
The leg extraction unit 12 checks whether or not the start point L of the extension rising leg Lj is i−W (line 02). If true in line 02, the start point of the extension rising leg Lj falls outside the processing target range. Hence, the leg extraction unit 12 deletes the extension rising leg Lj (line 03).
Subsequently, the leg extraction unit 12 checks whether or not the amplitude of an extension rising leg f(L+1:M) formed by shifting the start point L of the extension rising leg Lj to the next time point is smaller than the given amplitude A (line 04).
If true in line 04, the leg extraction unit 12 checks whether or not an extension disable flag has been added to the extension rising leg Lj (line 05). If true in line 05, the extension rising leg f(L+1:M) formed by shifting the start point L of the extension rising leg Lj to the next time point may have an amplitude A or more afterward. Hence, the leg extraction unit 12 registers the extension rising leg f(L+1:M) with the leg list LL (line 06). Then, an if sentence starting at line 05 ends (line 07).
If false in line 04 (line 08), the leg extraction unit 12 checks whether or not f(L+1)<f(L+2) is satisfied (line 09). If true in line 09, the left-maximum properties are satisfied provided that the time point of L+1 is the start point. Thus, the leg extraction unit 12 registers the extension rising leg f(L+1:M) with the leg list LL (line 10). On the other hand, if false in line 09, the leg extraction unit 12 searches for the earliest (leftmost) k that satisfies L+1<k and f(k−1)>f(k), thereby searching for a start point k that satisfies the left-maximum properties (line 12). The leg extraction unit 12 registers f(k:M) with the leg list LL independently of the extension rising leg Lj (line 13). Then, if sentences starting with line 02, line 4, and line 09 end (lines 14 to 16). When the process of line 02 to line 16 for every extension rising leg Lj registered with the leg list LL ends, a for sentence starting at line 01 ends (line 17).
Subsequently, the leg extraction unit 12 executes a process for an extension falling leg (lines 18 to 20). As described above, the process for the extension falling leg is almost the same as the process for the extension rising leg, and its detailed description will accordingly be omitted. In the process for the extension falling leg, “f(L+1)<f(L+2)” in line 09 in the process for the extension rising leg may be changed to “f(L+1)>f(L+2)”, and “f(k−1)>f(k)” in line 12 may be changed to “f(k−1)<f(k)”.
(S5: Vibration Path Identification Process)
The appearance pattern identification unit 14 chooses an extension rising leg having an amplitude A or more and an extension falling leg having an amplitude A or more, alternately from among the legs registered with the leg list LL, with a higher priority to a leg having an earlier terminal point. As a result, a terminal time point leftmost vibration path can be obtained. The appearance pattern identification unit 14 outputs a vibration count g(i) of the obtained terminal time point leftmost vibration path.
When the value of the time-series data newly arrives, the process is returned to S1, and the same process is repeated.
For example, assume that in S1, the value for 10 o'clock 20 minutes arrives and subsequence data f(10 o'clock 1 minute:10 o'clock 20 minutes) of from 10 o'clock 1 minute to 10 o'clock 20 minutes is segmented, and that the process of S2 to S4 is executed. Then, when the value for 10 o'clock 21 minutes arrives, the process is returned to S1 again. Subsequence data f(10 o'clock 2 minutes:10 o'clock 21 minutes) of from 10 o'clock 2 minutes to 10 o'clock 21 minutes is segmented, and the process of S2 to S4 is executed.
The process of S1 to S5 is repeated for each i of i=W, . . . , N, and vibration sequence data g[1:N−W+1] being a set of vibration counts g(i) is generated.
As described above, the time-series data processing device 10 according to Embodiment 1 extracts extension legs from the time-series data, and identifies an appearance pattern in which an extension rising leg and an extension falling leg appear alternately over time, from the extracted extension legs. As a result, the vertical vibration of the values of time-series data whose vibration count is difficult to obtain by Fourier transform or the like can be detected accurately. Therefore, an abnormality and the like can be detected accurately.
With a simple sine function, a value as the result of dividing by 4 a vibration count obtained by the time-series data processing device 10 corresponds to a vibration count (frequency) obtained by Fourier transform. It should be noted that with Fourier transform, a function that relates the amplitude to the vibration count for each time window is obtained, while with the time-series data processing device 10, a function that inversely relates the vibration count to the amplitude is obtained.
Vertical vibration can also be detected when the vertical displacement widths from the average value are not uniform or when the average value does not converge, which cases being difficult to deal with in accordance with the method described in Patent Literature 1.
In the process illustrated in
The vibration path having the maximum vibration count can be identified by only identifying the terminal time point leftmost vibration path. Therefore, the process concerning extension leg extraction is carried out efficiently.
In the above description, the extension rising leg is defined based on the maximum value and the minimum value. Alternatively, it may be possible to define the extension rising leg as having “such a value at that time point whose difference from the maximum value of up to that time point is smaller than a predetermined value k (first reference value)”. It may also be possible to define the extension rising leg as having “such a value at that time point whose difference from the minimum value of up to that time point is larger than a predetermined value (first reference value)”.
For example, when defining the extension rising leg f[L:M] as having “such a value at that time point whose difference from the maximum value of up to that time point is smaller than the predetermined value k”, the extension rising leg f[L:M] is defined as satisfying (maxL≦j≦if(j)−k)≦f(i) for every i that satisfies L≦i≦M.
Note that a case where the predetermined value k is 0 corresponds to the leg and a case where k is infinite corresponds to the extension rising leg described above. Namely, the predetermined value k designates the size of the leg that is moving downward in the rising leg. That is, the predetermined value k designates the degree of distance from the monotone increasing function. If the extension rising leg is defined more strongly in terms of the monotonic increasing properties, the process for obtaining the vibration count can be accelerated.
The extension falling leg can be defined in the same manner.
For example, when defining the extension falling leg f[L:M] as having “such a value at that time point whose difference from the minimum value of up to that time point is smaller than the predetermined value k (second reference value)”, the extension falling leg f[L:M] is defined as satisfying (minL≦j≦if(j)+k)≧f(i) for every i that satisfies L≦i≦M.
In the above description, the appearance pattern identification unit 14 identifies an appearance pattern in which an extension rising leg and an extension falling leg appear alternately over time. The appearance pattern identification unit 14 can also identify other appearance patterns of the extension leg such as one in which three extension rising legs appear consecutively.
For example, the appearance pattern identification unit 14 defines the extension leg appearance pattern as a reference pattern in a regular expression or the like using the automata theory being a known technique in computer science. Then, an extension leg appearance pattern coinciding with the defined reference pattern may be detected.
The time-series data processing device 10 is a computer. The individual elements of the time-series data processing device 10 can be implemented by programs.
The time-series data processing device 10 has a hardware configuration in which a computation device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input/output device 905 are connected to a bus.
The computation device 901 is a CPU (Central Processing Unit) which executes the programs. The external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device. The main storage device 903 is, for example, a RAM (Random Access Memory). The communication device 904 is, for example, a communication board. The input/output device 905 is, for example, a mouse, a keyboard, or a display device.
The programs are usually stored in the external storage device 902. The programs as loaded in the main storage device 903 are sequentially read and executed by the computation device 901.
The programs are those that implement the functions explained as the period data generation unit 11, the leg extraction unit 12, and the appearance pattern identification unit 14.
Furthermore, the external storage device 902 also stores an operating system (OS). At least part of the OS is loaded to the main storage device 903. The computation device 901, while executing the OS, executes the programs.
In the description of Embodiment 1, the leg list, the time-series data, the subsequence data, the vibration sequence data, and so on are stored, in the form of files, in the main storage device 903.
The configuration of
10: time-series data processing device; 11: period data generation unit; 12: leg extraction unit; 13: leg storage unit; 14: appearance pattern identification unit
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2014/062594 | 5/12/2014 | WO | 00 |