This application is based upon and claims the benefit of priority from the prior Japanese Patent Applications No. 2007-144695, filed on May 31, 2007; the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a data recording apparatus and a data recording method, and a computer readable medium.
2. Related Art
Advances of sensors and networks have made it possible to collect a huge amount of data but it is not realistic to record all of such data. For example, when devices are remotely monitored for proper operation, communication costs for centrally collecting all data significantly increases as the number of devices increases. Also, it is often difficult to provide mass-data storages in devices because of limits of power consumption, weight, and size. Therefore, there is a need for a technique that reduces the amount of data to collect in order to keep communication traffic within certain limits or to effectively use storage areas having limited capacities.
There have been proposed methods, including a method in which data is collected at shorter sampling intervals just before and after a device sends a fault signal (U.S. Pat. No. 6,947,797) and a method in which data is recorded on the basis of predetermined criteria such as a variation rate of a sensor signal in a day that is equal to or more than 20%(U.S. 2004/0010374A1). However, with these methods, it is obviously impossible to cause a device to send a fault signal or to set criteria beforehand unless the monitoring device has prior knowledge of behavior exhibited by devices when they are malfunctioning.
A technique has been proposed in which a time-series signal is sampled at a sampling rate that is lowered to the minimum extent necessary to approximate the time-series signal by piecewise linear approximation (U.S. Pat. No. 7,076,402). However, this technique has a poor capability of approximating signals such as oscillating waveforms that cannot be approximated by collinear approximation.
According to an aspect of the present invention, there is provided with a data recording apparatus comprising:
According to an aspect of the present invention, there is provided with a data recording apparatus comprising:
According to an aspect of the present invention, there is provided with a data recording apparatus, comprising:
According to an aspect of the present invention, there is provided with a data recording method comprising:
According to an aspect of the present invention, there is provided with a data recording method comprising:
According to an aspect of the present invention, there is provided with a data recording method, comprising:
The data reduction apparatus is characterized in that a base line is provided beforehand and intersection points (or intersection times) of time-series data observed by a sensor and the base line are recorded.
An observed data recording unit (an observed data storage) 11 in
A base line storage 12 stores a base line used for determining intersection with observed time-series data.
An intersection determining unit 13 determines whether a line segment that connects observed values at adjacent times of observed time-series data intersects the base line.
An intersection calculating unit 14, if the intersection determining unit 13 determines that the line segment intersects the base line, calculates an intersection point (or intersection time) of the line segment and the base line and the sign of the slope (slope information) at the intersection point. Instead of the sign of the slope, the slope (an increase or decrease) at the intersection may be calculated as the slope information. The slope can be calculated by the following equation:
where (x1, t1) and (x2, t2) are observed values at adjacent times.
A database (intersection data storage) 15 records an intersection point (or intersection time) and slope information calculated by the intersection calculating unit 14.
The set of the intersection determining unit 13 and the intersection calculating unit 14 described above represents an intersection processing unit, for example. The data reduction apparatus in
At S11, initialization is performed. The first observed value and time are substituted for an observed value x1 at the previous time and the previous time t1 and the next observed value and time are substituted for a variable x2 representing an observed value at the current time and the current time t2. An onLine flag (online flag) is reset. Then, determination is made as to whether the two points (x1, t1) and (x2, t2) are on a base line. If both are on the base line, the process proceeds to S12; if only (x1, t1) is on the base line, the process proceeds to S13; if only (x2, t2) is on the base line, the process proceeds to S22; and if neither of them is on the base line, the process proceeds to S24.
At S12, the online flag is set. The online flag indicates whether or not an observed value at the current time (here, (x2, t2)) is on the base line (x=at+b). When the online flag is set, it indicates that the observed value is on the base line; when the online flag is cleared, it indicates that the observed value is not on the base line.
At S13, (x1, t1) and slope information are recorded in the database 15. The slope information is calculated by sign(x2−x1). When x<0, sign(x) is −1 (negative); when x=0, sign(x) is 0; and when x>0, sign(x) is 1 (positive). After being recorded in the database 15, (x2, t2) is substituted for (x1, t1).
At S14, the next observed value is read and substituted for (x2, t2).
If (x2, t2) is not on the base line and (determination at S15 is NO) and the online flag is not set ((x1, t1) is not on the base line) (determination at S16 is NO), then determination is made as to whether the line segment connecting (x2, t2) and (x1, t1) intersects the base line (S24).
Determination is made as to whether (at1+b−x1) (at2+b−x2)<0 is satisfied (S31) when the base line is x=at+b. If satisfied, it is determined that the line segment intersects the base line (S32); otherwise, it is determined that the line segment does not intersect the base line (S33). The result of the determination (whether it intersects or not) is returned (S34).
If the result of the determination is “Intersects”, the intersection point of the line segment and the base line is calculated, and the obtained calculated intersection point and slope information “sign(x2−x1)” are recorded in the database 15 (S25).
The value of “x” at the intersection point can be calculated from the intersection time and the base line. After the intersection point and slope information are recorded in the database 15 or the result of the determination is “Not intersect”, (x2, t2) is substituted for (x1, t1) (S23) and the process proceeds to S20.
At S20, determination is made as to whether there is additional observed data (S20). If there is additional observed data (determination at S20 is NO), the process returns to S14, where the next observed value is read and substituted for (x2, t2).
If it is determined at S15 that (x2, t2 ) is on the base line (determination at S15 is YES) and the online flag is set ((x1, t1) is on the base line) (determination at S21 is YES), then (x2, t2) is substituted for (x1, t2) without performing anything (S23). This represents a process for omitting recording of intermediate values as part of a process in which, if successive observed values are on the base line, recording of the value or values (intermediate values) between the first and last observed values on the base line is omitted and only the first and last observed values are recorded. The process will be described specifically with reference to
If (x2, t2) is on the base line (determination at S15 is YES) but the online flag is not set ((x1, t1) is not on the base line) (determination at S21 is NO), then (x2, t2) and slope information “sign(x2−x1)” are recorded in the database 15. This represents a process for recoding observed value (x2, t2) located on the base line (for example a process for recording P2 in
If (x2, t2) is not on the base line (determination at S15 is NO) and the online flag is set ((x1, t1) is on the base line) (determination at S16 is YES), then the database 15 is checked to see whether (x1, t1) has been already registered in the database 15 (S17). If it has not yet been registered (YES), (x1, t1) and slope information “sign(x2−x1)” are registered (S18a). This represents a process in which the last observed value (which is (x1, t1)) is recorded when successive observed values are on the base line (the process for recording P6 in
On the other hand, if (x1, t1) has already been registered (determination at S17 is NO) and slope information at (x1, t1) differs from slope information obtained from sign(x2−x1), the slope information at (x1, t1) is replaced with 0 (S18b). This represents a process in which the slope of an observed value on the base line is replaced with 0 when the observed value comes from a direction (for example from below the base line) is positioned on the base line and returns in the same direction, like P13 in
If there is not additional observed data at S20 (determination at S20 is YES) and the online flag is set (determination at S26 is YES), (x2, t2) is registered in the database 15 (S27) and then the process will end. If the online flag is not set (determination at S26 is NO), the process will immediately end.
As has been described above, according to the present embodiment, when a line segment that connects observed values at adjacent times intersects a base line, the intersection point of the line segment and the base line (or intersection times) is calculated and the calculated intersection point (or intersection time) is recorded. By transmitting data on the intersection points (or intersection times) thus recorded is transmitted to the analysis center apparatus, traffic on the network between the data recording apparatus and a analysis center apparatus, for example, can be reduced as compared with a case where observed data is transmitted in a conventional manner. Furthermore, only intersection points (or intersection times), which have a small amount of data, need to be stored, storage consumption can be reduced. In addition, even observed time-series data that exhibits a waveform signal can be restored with a high degree of accuracy as will be illustrated by a seventh embodiment described later. The effects of the present embodiment are also exerted in other embodiments which will be described later.
The base line determining unit 16 determines whether a base line is appropriate or not when a predetermined criterion is met, for example when a predetermined time interval has elapsed or a predetermined number of observed values is reached. If the base line determining unit 16 determines that a base line is inappropriate, the base line determining unit decides to calculate a new base line. For example, if the error between data x(t) observed at the current time and “at+b” calculated on the base line is greater than or equal to a constant multiple of the standard deviation of residual errors calculated by base line calculation processing, which will be described later (|x(t)−(at+b)|>kσ, where k is a predetermined constant), the base line determining unit 16 determines that the base line is inappropriate. Alternatively, the base line determining unit 16 may determine that a base line is inappropriate and decide to calculate a new base line whenever a predetermined time interval has expired or a predetermined number of observed values is reached.
The base line calculating unit 17 calculates a new base line when the base line determining unit 16 determines that a base line is inappropriate. The base line may be a straight line parallel to a time axis that matches the mean value of observed data, for example (which is equivalent to fixing a=0 in x=at+b). Alternatively, the base line may be a straight line x=at+b in general position that is not parallel to a time axis. If a straight line in general position is used, the factor “b” may be chosen such that end points of old and new line segments are connected with each other. For example, suppose that a line segment before change is x=a1t+b1 and is changed to x=at+b at time t0. Because the two straight lines will be connected when values of the straight lines at t=t0 are made identical, the new straight line is set to x=at+(b1+a1t0−at0) and parameter “a” is estimated by the least-square method. If intersection times are recorded in the database 15, the base line calculating unit 17 records a history of base line changes and change times inside the base line calculating unit 17 or in the database 15 so that which intersection time is associated with which baseline can be identified.
The process is basically the same as that in the first embodiment (
Determination is made at S101 as to whether a base line is appropriate. If not (NO), a new base line is calculated.
Observed values in the period from the current time to time N−1 are extracted from observed data (S121) and factors “a” and “b” in x=at+b and a residual error σ2 are estimated by the least-square method (S122). The estimated x=at+b is registered as a base line (S123).
The base line is used to perform the same process as that in the first embodiment and each time it is determined that there is additional observed data (determination at S20 is NO), determination is made as to whether the same base line has been used to record data in a predetermined time period or more (S103). If the time period over which the same base line has been used does not longer than or equal to the predetermined time period (determination at S103 is NO), it is determined that the base line does not need to be reevaluated and the process returns to S14, where the next observed value is read. On the other hand, if the same base line has been used during the predetermined time period or more (determination at S103 is YES), the process returns to S101, where determination is made as to whether the base line is appropriate.
As has been described above, according to the present embodiment, whether a base line is appropriate or not is determined as needed and, if the base line is inappropriate, the base line is changed. Accordingly, the accuracy of restoration of sensor data can be improved.
An observed data recording unit (an observed data storage) 31 chronologically records observed values obtained by a sensor that observes a device.
A base line/auxiliary line storage 32 stores a base line and two auxiliary lines parallel to the base line. The two auxiliary lines are an upper auxiliary line and a lower auxiliary line. The region above the upper auxiliary line is assumed as the upper non-base region, the area below the lower auxiliary line is assumed as lower non-base region, and the region between the upper and lower auxiliary lines is assumed as the base region.
An intersection determining unit 33 determines whether a line segment that connects observed values at adjacent times intersects the base region. In particular, the intersection determining unit 33 determines whether the line segment intersects the upper or lower auxiliary line (that is, an observed value enters or exits the base region). If the line intersects the upper or lower auxiliary line, the intersection determining unit 33 determines that the line intersects the base region.
An intersection calculating unit 34 calculates the intersection point of the line segment and the base region (an observed value immediately after entering the base region or an observed value immediately before exiting the base region) and the sign of the slope (slope information) at the intersection point if the intersection determining unit 13 determined that the line segment intersects the base region. Instead of the sign of the slope, the slope (an increase or decrease) may be calculated.
A database 35 records the intersection point and slope information calculated by the intersection calculating unit 14.
The set of the intersection determining unit 33 and the intersection calculating unit 34 represents an intersection processing unit, for example. The data reduction apparatus in
When an observed value enters or exits the base region between the two auxiliary lines, it is determined that an intersection with the base region has occurred (the line segment is considered to intersect the base line) in the present embodiment. This can significantly reduce the amount of data to be stored when a small oscillation occurs in a neighborhood of the base line. That is, the amount of date to be stored increases when a small oscillation occurs in a neighborhood of the base line in the first embodiment because all data about points of intersection with the base line are recorded as shown in the upper part of
In this process, an observed value immediately after entering the base region and slope information and an observed value immediately before exiting the base region and slope information are recorded. When a line segment passes through the base region from the upper non-base region to the lower non-base region or in the direction opposite to this, the intersection point (or intersection time) of the line segment and the base line and slope information are recorded. This process will be described below in detail.
Initialization is performed at S201. The first observed value that entered the base region (including the auxiliary lines) is represented by (Tc, Xc). However, if the observed value passes through the base region, the intersection with the base line is represented by (Tc, Xc). The sign of the slope information of (Tc, Xc) is made the same as the sign of the slope between (Tc, Xc) and the previous observed value. If the observed value is initially in the base region, the slope information is 0. (Tc, Xc) and the slope information are recorded in the database 35. Then, (Tc, Xc) is substituted for (T1, X1) and 0 is substituted for “Flag”. “Flag” takes one of three values, 1, 0, and −1, where 1 indicates that the observed value is in the upper non-base region, 0 indicates that the observed value is in the base region, and −1 indicates that the observed value is in the lower non-base region.
After completion of the initialization, an observed value at the next time is input in (T2, X2) at S202. Then, determination is made as to whether “Flag” is 0 (S203).
If “Flag” is 0 (determination at S203 is YES) and the line segment between (T1, X1) and (T2, X2) intersects neither of the upper and lower auxiliary lines (determinations at S204 and S206 are NO), nothing is done. That is, because the change between (T1, X1) and (T2, X2) is a change within the base region, they are not recorded in the database 35. If there is additional observed data (determination at S221 is NO), then (T2, X2) is input in (T1, X1) (S222), then the process returns to S202, where the next observed value is read.
If “Flag” is 0 (determination at S203 is YES) and the line segment between (T1, X1) and (T2, X2) intersects the upper auxiliary line (determination at S204 is YES), 1 is assigned to “Flag” (because (T2, X2) is in the upper non-base region). On the other hand, if “Flag” is 0 (determination at S203 is YES) and the line segment between (T1, X1) and (T2, X2) intersects the lower non-base region (determination at S206 is YES), −1 is assigned to “Flag” (because (T2, X2) is in the lower non-base region). After 1 or −1 is assigned to “Flag”, and if (T1, X1) has not yet been recorded (determination at S208 is NO), then (T1, X1) and slope information sign(x2−x1) are recorded in the database 35 (S209). If (T1, X1) has already been recorded (determination at S208 is YES) and the slope information for the recorded (T1, X1) and sign(x2−x1) are different, then the slope information for the recorded (T1, X1) is replaced with 0. This replacement corresponds to processing in which, if an observed value enters the base region from a certain direction (for example from the lower non-base region) and returns to the same direction (to the lower non-base region) without passing through to the upper non-base region, the slope of the observed value, immediately before the value returns, is set to 0. If there is additional observed data (determination at S221 is NO), then (T2, X2) is input in (T1, X1) (S222), and then the process returns to S202, where the next observed value is read.
If “Flag” is not 0 (determination at S203 is NO), that is, if “Flag” is 1 or −1, then determination is made as to whether (T2, X2) is in the base region (S211).
If (T2, X2) is in the base region (determination at S211 is YES), then (T2, X2) is an observed value that has just entered the base region and therefore (T2, X2) and slope information are recorded in the database 35. The slope information is set as “− Flag”. That is, when an observed value enters the base region from the upper non-base region, the slope information is set to −1; when an observed value enters the base region from the lower non-base region, the slope information is set to 1. Of course, the slope information may be calculated as sign(x2−x1). Then, 0 is assigned to “Flag” (S213). If there is additional observed data (determination at S221 is NO), (T2, X2) is input in (T1, X1) (S222), and then process returns to S202, where the next observed value is read.
If (T2, X2) is not in the base region (determination at S211 is NO), the next step depends on whether “Flag” is 1 or −1.
When “Flag” is 1 (determination at S214 is YES), examination is performed to determine whether the line segment between (T1, X1) and (T2, X2) intersects the lower auxiliary line (S215). If the line segment intersects (YES), that is, the line segment passes through from the upper non-base region to the lower non-base region, −1 is assigned to “Flag” (S216), the intersection point of the line segment and the base line is calculated as (Tc, Xc) and recorded in the database 35 (S217). If the line segment does not intersect the lower non-base region (determination at S215 is NO), that is, (T2, X2) remains in the upper non-base region, nothing is done (“Flag” is kept 1). Then, if there is additional observed data (determination at S221 is NO), (T2, X2) is input in (T1, X1) (S222), then the process returns to S202, where the next observed value is read.
When “Flag” is −1 (determination at S214 is NO), examination is performed to determine whether the line segment between (T1, X1) and (T2, X2) intersects the upper auxiliary line (S218). If it intersects (YES), that is, the line segment passes through from the lower non-base region to the upper non-base region, 1 is assigned to “Flag” (S219) and the intersection point of the line segment and the base line is calculated as (Tc, Xc) and recorded in the database 35 (S220). If the line segment does not intersect the upper auxiliary line (determination at S218 is NO), that is, (T2, X2) remains in the lower non-base region, nothing is done (“Flag” is kept −1). If there is additional observed data (determination at S221 is NO), (T2, X2) is input in (T1, X1) (S222), and the process returns to S202, where the next observed value is read.
A fourth embodiment is characterized in that multiple base lines are provided in the first to third embodiments. While in the first embodiment a single base line is provided and intersection points with the single base line are obtained as shown in the upper part of
A predetermined number (N) of pieces of observed data are collected and multiple base lines are determined on the basis of a straight line x=at+b obtained from the pieces of data by the least-square method.
For example, if two base lines are to be provided, the standard deviation “σ” of residual errors of N pieces of data with respect to the straight line x=at+b may be used and two base lines
x=at+b+/−σ
may be used.
If three base lines are to be provided,
x=at+b
may be used in addition to the two base lines given above.
If 2m+1 base lines are to be provided,
x=at+b, x=at+b+/−kσ
(where k=1, 2, . . . , m) may be used.
Alternatively, base lines may be chosen on the basis of the number of intersection points for N pieces of data. The multiple base lines do not need to be parallel to each other.
A fifth embodiment is characterized in that if observed data is high-dimensional data obtained from multiple sensors in any of the first to fourth embodiments, intersection points with a base plane are recorded.
The fifth embodiment will be described below with respect to the second embodiment extended to have two sensors.
The data reduction apparatus includes an observed data recording unit (an observed data storage) 41 chronologically recording observed values observed by sensors 1 and 2 that observe devices, a base plane storage 42 storing a base plane, a intersection determining unit 43 that determines whether a line segment that connects observed values at adjacent times in observed time-series data intersects the base plane, an intersection calculating unit 44 that calculates an intersection point of the line segment and the base plane, a database 45 for recording the intersection point and slope information calculated by the intersection calculating unit 44, a base plane determining unit 46 that determines on the basis of the observed data whether the base plane is appropriate, and a base plane calculating unit 47 that, if the base plane determining unit 46 determines that the base plane is inappropriate, calculates a new base plane.
The set of the intersection determining unit 43 and the intersection calculating unit 44 represents an intersection processing unit, for example. The data reduction apparatus shown in
The data reduction apparatus will be described below in further detail.
Information recorded in the database 45 will be described first.
It has been described that intersection times alone may be recorded in a database instead of intersection points in the first, second, and fourth embodiments. In the fifth embodiment, if only time “T” at which an intersection has occurred were recorded, information that can be restored from “T” and the base plane would be a line, rather than a point, of intersection of a “plane that is perpendicular to an axis “t” and whose intercept with axis “t” is “T” and the base plane, rather than a point. Accordingly, if there are two sensors, not only intersection times but also values from the sensors 1 and 2 at the intersection times need to be recorded. That is, intersection points need to be recorded. The black dots () plotted represent points of intersection with the base plane. These points (value from sensor 1, value from sensor 2, time) are recorded.
How the base plane calculating unit 47 calculates a base plane will be described below.
Suppose there are N pieces of observed data. That is, there are i sets of (ti, x1(ti), x2(ti)), where i=1 to N. A plane B that has the smallest square error of the distances to these pieces of data can be obtained by the least-square method. Because there is only one point of observed data at an identical time in the three-dimensional plane, plane B can be expressed as
b
0
+t+b
1
x
1
+b
2
x
2=0
where “x1” represents a value from sensor 1, “x2” represents a value from sensor 2, and “t” represents time, and “b0”, “b1”, and “b2” are factors. A plane that is orthogonal to plane B may be chosen as the base plane. The normal vector of plane B is orthogonal to plane B. To determine the base plane, two independent vectors parallel to the base plane and one point in a space through which the base plane passes may be given. The base plane may be chosen that passes through the mean value of observed data.
Another vector for defining the base plane can be obtained using the slope of a straight line H resulting from collinear approximation of observed data. A straight line in the three-dimensional space formed by the two sensors and time axis can be expressed as
Vector (a1, a2, a3) is parallel to the straight line. The equation given above is rewritten as
From observed data, a1/a2 and a1/a3 can be obtained by using the least-square method.
The direction of the vector parallel to the straight line can be determined because the ratio among a1, a2, and a3 can be determined from a1:a2:a3=1:a2/a1:a3/a1. By making the length of the vector to be 1, the vector can be uniquely determined. The unit vector parallel to the straight line thus obtained from observed data is expressed as Q=(q1, q2, q3).
Thus, the unit normal vector of plane B
and the vector q parallel to the straight line and the mean value
can be used to describe point “x” on the base plane with two parameters s1 and s2 as
x={circumflex over (x)}+s
1
p+s
2
q [Formula 8]
This can be rewritten without the parameters as
(p2q3−p3q2)(t−
Determination made by the base plane determining unit 45 as to whether a base plane is appropriate will be described next.
The method described with respect to the second embodiment can be used. An error can be calculated by using plane B on which the base plane is based. The value obtained by substituting observed values into the left-hand side of the equation of plane B “b0+t+b1x1+b2x2” is the error between the observed values and plane B.
The process performed by the data reduction apparatus in
In a seventh embodiment, one mode of a method for restoration from data recorded in any of the embodiments will be described. The method will be described with respect to data (points of intersection (or intersection times) with one or more base lines and slope information (slopes or signs)) stored in the first or fourth embodiment by way of example. It will be apparent that restoration from data stored in other embodiment is also possible using the same concept. While slope information is used for restoration in the present embodiment, restoration from intersection points alone (or intersection times and the base line alone) without using slope information is also possible, although more or less restoration precision is sacrificed. The embodiment will be described below in detail.
A restoration method will be described below with respect to a case where the slopes at intersection points are known, a case where only the signs (directions) at intersection points are known, a case where a single base line is provided, and a case where multiple base lines are provided.
Peak points are assumed on the perpendicular bisector of adjacent intersection points and the method of
Because a straight line passing through an intersection point can be drawn if the slope at the intersection point is known, the intersection point may be set as a peak. Then, a curve can be drawn by using the method of
If intersection points A1 to A5 on base line A, intersection points B1 to B4 on base line B, and intersection points C1 and C2 on base line C are arranged in order along time axis, it follows that A1, B1, C1, C2, B2, A2, A3, A4, A5, B3, and B4. It can be seen that when two intersection points appear in succession on the same base line, there is a peak between them, except for a point of contact having a slope of 0. In the example shown, there are five peaks in total in C1-C2, A2-A3, A3-A4, A4-A5, and B3-B4.
A peak point may be calculated as follows for example: (i) the peak point is determined from the slopes at intersection points before and after the peak point (for example, if the slopes at C1 and C2 in
In the example in
In the example in
Once the peak points required for drawing a spline curve have been calculated in this way, the spline curve is draw in such a manner that the curve passes through the intersections (A1, B1 to B7, and C1 to C6) and does not lie off line segments (for example P-C1 and P-C2) before and after the calculated peak points (P, P1, and P2), as shown in
A procedure for restoring a graph using a spline curve from data reduced will be described below.
Suppose a database as shown in
At S501, initialization (initial end point processing) is performed. More specifically, a virtual time t0 earlier than the initial time t1 is provided and it is assumed that the intersection point at time t0 is the same as the intersection point at time t1, which is set as s1. The intersection points at times t1 and t2 are read from an intersection point database, which are set as s2 and s3.
Determination is made as to whether there can be a peak between s2 and s3. Specifically, if “I2=I3 and d2×d3<0” or “I2=I3 and d2=0 and d3≠0” or “I2=I3 and d3=0 and d2≠0” is met, it is determined that there can be a peak. If there can be a peak (YES), a peak point calculation routine shown in the process flow in
If there cannot be a peak (determination at S502 is NO), a spline curve that passes though the three points, s1, s2, and s3 is drawn.
Then, s2 is substituted for s1, s3 is substituted for s2, and a new intersection point is read, which is set as s3 (S504).
When s3 is read at S504, that is, when there is data in the intersection database that is yet to be read (determination at S505 is NO), the process returns to S502; otherwise (determination at S505 is YES), the process will end.
Determination is made as to whether the slopes of s2 and s3, neither of which is equal to 0, are stored (S601). If stored, the intersection point P of a straight line passing through s2 and a straight line passing through s3 is calculated from the slopes. If not stored, the intersection point s4 at the time next to s3 is read and determination is made as to whether the intersection point can be obtained from the straight line that connects s1 and s2 and the straight line that connects s3 and s4 (S604). If the intersection point can be obtained, the intersection point is set as P; otherwise, the intersection point of the straight line passing through the past peak point nearest to t2 and s2 and the straight line that bisects s2 and s3 and is parallel to the vertical axis is set as P (S603).
Determination is made as to whether or not the intersection point P is contradictory to a base line (see
Number | Date | Country | Kind |
---|---|---|---|
2007-144695 | May 2007 | JP | national |