Method for reading data from inertial sensors
Patent Information
- Application Number
- DE102019100507
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2019-01-10
- Publication Date
- 2025-09-25
- Estimated Expiration
- 2039-01-10
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[0001] The present invention relates to a method for reading data from sensors, in particular from inertial sensors, and sensors suitable for carrying out the method.
[0002] Inertial sensors (Inertial Measurement Units, IMU) such as yaw rate sensors or acceleration sensors, partial increments are measured with an internal data path clock of frequency f a accumulated. This means that a sequence of measurement data is generated in such a way that at intervals of the period 1 / f a of the internal data path clock, changes in the measured data are generated or recorded. This change occurs step by step or incrementally at data read-in times determined by the read-in frequency or the data path clock f a are specified.
[0003] For example, in angular rate sensors, the partial angle increments belonging to the respective data path clock are continuously accumulated, while in accelerometers, the partial velocity increments belonging to the respective data path clock are accumulated.
[0004] With each query cycle of a readout frequency f s The current status of this accumulator is read and then reset to 0 for the next integration interval. The status of the read accumulator represents the total increment in the respective query cycle or the read measurement data.
[0005] A user of such sensors, such as an inertial navigation system, expects the readout measurement data, i.e., the total increment in the respective query cycle, to exactly correspond to the integration of the generated measurement data change over the query cycle. However, the readout data is generated by accumulation over an integer number of data path cycles that is different from the query cycle. Therefore, the data read out at a readout time generally does not fully represent the actual movement that occurred up to that time.
[0006] In addition, if an integer number of data path clocks should exactly correspond to the query clock, an exact synchronization of both clocks would have to be ensured, because otherwise the smallest frequency deviations would lead to beat effects in the number of accumulations.
[0007] A possible solution to the problem described above is described in DE 10 2013 020 954 A1, which is to be considered as part of the present application for reference purposes.
[0008] However, this patent requires knowledge of the readout frequency f s of the query clock on the sensor side (master operation). This is the case, for example, with an IMU that generates the query clock for its sensors itself. In general, the frequency f s However, the query clock is not known to a sensor, but is specified externally by an external system (slave operation). In this case, the method described in DE 10 2013 020 954 A1 is not applicable.
[0009] The present invention addresses the problem of making methods available for sensors operating in slave mode that allow data read at a given time to be adapted to the actual movement that has occurred up to that time. This problem is solved by the subject matter of the independent claims.
[0010] DE 10 2013 103 274 A1 represents remote prior art. Therein, a digital signal processing device for determining a rotation angle by means of a periodic input signal is disclosed, comprising a low-pass filter for low-pass filtering the periodic input signal, a phase angle determiner for detecting a digital phase angle value based on the low-pass filtered input signal, a signal counter for detecting a digital period count value, and an output register for outputting the rotation angle based on the digital phase angle value and the digital period count value.
[0011] A method for reading data from inertial sensors may, for example, comprise: determining a temporal sequence of measurement data by means of a sensor, wherein the temporal sequence of measurement data is generated by stepwise changes in the measurement data at reading times determined by a reading frequency f a and a time interval of a period 1 / f a the reading frequency; reading output data from the sensor at reading times determined by a reading frequency f s and a time interval of a period 1 / f s the readout frequency, where the readout frequency f s smaller than the reading frequency f a and the period of the readout frequency is 1 / f s generally not a multiple of the period of the reading frequency 1 / f a is; Determining the ratio N between the reading frequency f aand the readout frequency f s from the temporal sequence of the number of read-in times between two adjacent read-out times by means of a low-pass filter of the sensor. In this case, the output data to be read out at the read-out times are determined in the sensor by extrapolating elements of the temporal sequence of measured data generated before the respective read-out times based on the ratio N between the read-in frequency f a and the readout frequency f s generated.
[0012] The starting point of the method is therefore the situation in which data is generated at a read-in frequency but read out at a different, lower read-out frequency. The sensor generating the data, especially an inertial sensor such as a gyroscope or acceleration sensor, only has knowledge of the read-in frequency but no knowledge of the read-out frequency. This is determined by external devices that access the sensor.
[0013] However, the sensor is capable of counting the data path cycles that lie between two readout cycles (here and in the following, the term "between" times a and b includes time b, but not time a). For each readout interval of period length 1 / f s The sensor can therefore determine the number of reading times. From the sequence of these “numbers of reading times”, the ratio N of the reading frequency fa and readout frequency f s be closed because the number of read-in times oscillates around the value N of this ratio.
[0014] Knowledge of the reading frequency f a and the ratio N is equivalent to knowing the two frequencies f a and f s . The sensor is therefore able to detect the signal despite not knowing the readout frequency f s to derive all the information required to extrapolate the measurement data available up to the last read-in time before a read-out time to the read-out time.
[0015] This makes it possible that, even in slave mode, the data read out at a given time can be adapted to the actual movement that has occurred up to that time.
[0016] The present invention will be described below by way of example with reference to the accompanying figures. However, the present invention is not defined by this exemplary description, but solely by the subject matter of the patent claims. It shows: Fig. 1 a schematic diagram illustrating the integral and differential error criteria; Fig. 2 a schematic flow diagram of a method for data generation and output; Fig. 3 a simulation of an estimation of the ratio of input frequency and output frequency using a low-pass filter; Fig. 4 a schematic representation of a control loop for controlling the ratio of read-in frequency and read-out frequency; Fig. 5 a typical non-linear characteristic curve which has the ratio of input frequency and output frequency as input; and Fig.6 a schematic representation of a system with a sensor.
[0017] To illustrate and better understand the present invention, the case described in DE 10 2013 020 954 will be discussed again, in which an inertial sensor is assigned both the reading frequency f a as well as the readout frequency f s are known. Following this, the present invention will be discussed, in which a sensor does not specify the readout frequency itself and therefore does not know it.
[0018] First, a simple example will be used to illustrate the problems that arise when data from the inertial sensor (or from another sensor that functions in an equivalent way, such as a temperature sensor or pressure sensor) is read in and out at different frequencies.
[0019] In the example, a constant, step-by-step change of the measured data is assumed in each data path clock cycle. The data path clock or the input frequency is assumed to be f a = 3.4 kHz, the query clock or readout frequency f s = 800 Hz. A query clock therefore consists of N = f a / f s = 4.25 data path clock cycles. Because accumulation is only possible over a whole number of data path clock cycles, the data changes accumulated in 4 data path clock cycles are recorded three times and the data changes accumulated in 5 clock cycles are recorded once at the readout times. This pattern repeats periodically, as shown in the Fig. 1 shown.
[0020] In general, the relationship N = f a / f s that it can also be written as the sum of a natural number n and a completely reduced fraction: N=fa / fs=n+p / q, with n,p,q natural numbers and p <q.
[0021] The change from n to (n+1) read-in times between two read-out times occurs with a period of q read-out cycles. This results in (qp) times n read-in times and p times (n+1). The number of changes is maximized.
[0022] The errors caused by the difference between input frequency and readout frequency can be divided into integral errors and differential errors.
[0023] The so-called integral error criterion assesses how well the partial increments or measurement data changes accumulated at the input times prior to the individual readout times are captured in the total increments or output data output at the respective readout times. This criterion, particularly important in navigation systems, is met with the above method, since each partial increment is eventually included in the total increment.
[0024] The so-called differential error criterion, on the other hand, assesses how well a total increment corresponds to the integration over the sampling rate, i.e., how well the measurement data output at the readout times can reflect the actual movements present at the respective reading times. This criterion is only inadequately met due to the approximation of a sampling rate by an integer number of accumulations. The constant change in the number of accumulations is interpreted in the higher-level system as additional measurement noise.
[0025] Ideally, the information contained in the total increments or readout data over time should be adjusted in such a way that the data output at the readout times both improves the differential error criterion and fulfills the integral criterion.
[0026] This can be achieved by extrapolating the measurement data already accumulated before the various readout times with the data path clock, if both the readout frequency f a and the readout frequency f s are known. Two possible examples of such an extrapolation are discussed below. In the first example, the extrapolation is based on the data accumulated up to the current readout time and the data accumulated up to the previous readout time (no delay). In the second case, an additional, earlier data accumulation is also taken into account, which delays the data output by one readout clock cycle (with delay). Example I: Without delay
[0027] In this case, the output data is generated according to the following formula, k numbers the readout times, ie k increases after each period 1 / f a the readout clock by one: ν(k)=v1(k)⋅t1r(k)t1(k)+ν0(k)⋅tA−t1r(k)t0(k)−νr(k)=v1(k)⋅fa⋅t1r(k)n1(k)+ν0(k)⋅N−fa⋅t1r(k)n0(k)−νr(k), where tA=1 / fs;t0(k)=n0(k) / fa;t1(k)=n1(k) / fa;N=fa / fs;
[0028] Initial conditions: n0(0)=n1(0)=N; t1r(0)=v1(0)=vr(0)=0;
[0029] State transitions: n1(k+1)=n0(k);v1(k+1)=v0(k).
[0030] The iteration of the quantities v r (k) and t r1 (k) is based on the following distinction: Case 1: for N > f a ·t 1r (k) + n0(k): vr(k+1)=v0(k) / n0(k)⋅(N−fa⋅t1r(k)−n0(k)); andt1r(k+1)=0. Case 2: for N ≤ f a ·t 1r (k) + n0(k): vr(k+1)=0; andt1r(k+1)=1 / fa⋅(n0(k)+fa⋅t1r(k)−N).
[0031] This corresponds to: • v(k) the output data that is read out at the k-th readout time • n0(k) is the number of read-in times between the (k-1)-th read-out time and the k-th read-out time and t0(k) is the corresponding time interval • n1(k) is the number of read-in times between the (k-2)th read-out time and the (k-1)th read-out time and t1(k) is the corresponding time interval • v0(k) is the sum of step-wise changes in the movement data that occurred at the reading times between the (k-1)th reading time and the kth reading time • v1(k) is the sum of step-wise changes in the movement data that occurred at the reading times between the (k-2)th reading time and the (k-1)th reading time • t 1r a time interval • v r a remainder term. Example II: With delay
[0032] In this example, the formula to be used for the output data differs in two cases: Case 1: N > f a ·(t 2r (k) + t 1r (k)): ν(k)=ν2(k)⋅t2r(k)t2(k)+ν1(k)⋅t1r(k)t1(k)+ν0(k)⋅tA−t1r(k)−t2r(k)t0(k)=ν2(k)⋅fa⋅t2r(k)n2(k)+ν1(k) ⋅fa⋅t1r(k)n1(k)+ν0(k)⋅N−fa⋅(t1r(k)+t2r(k))n0(k). t1r(k+1)=1 / fa(n0(k)−N+fa⋅(t2r(k)+t1r(k))). t2r(k+1)=0; Case 2: N ≤ f a ·(t 2r (k) + t 1r (k)): ν(k)=ν2(k)⋅t2r(k)t2(k)+ν1(k)⋅tA−t2r(k)t1(k)=ν2(k)⋅fa⋅t2r(k)n2(k)+ν1(k)⋅N−fa⋅t2r(k)n1(k). t1r(k+1)=n0(k) / fa; t2r(k+1)=t2r(k)+t1r(k)−N / fa. where tA=1 / fs; t0(k)=n0(k) / fa; t1(k)=n1(k) / fa; t2(k)=n2(k) / fa; N=fa / fs;
[0033] Initial conditions: n0(0)=n1(0)=n2(0)=N;t1r(0)=1 / fs;t2r(0)=0;v1(0)=v2(0)=0;
[0034] State transitions: n1(k+1)=n0(k);n2(k+1)=n1(k);v1(k+1)=v0(k);v2(k+1)=v1(k).
[0035] Symbols common to both Examples I and II retain their meaning as described in Example I. The following applies analogously to the newly added symbols in Example II: • n2(k) is the number of read-in times between the (k-3)th read-out time and the (k-2)th read-out time and t2(k) is the corresponding time interval • v2(k) is the sum of step-wise changes in the movement data that occurred at the reading times between the (k-3)th reading time and the (k-2)th reading time; • t 2r a time interval.
[0036] In both examples I and II, the preservation of the integral error criterion is guaranteed when using the above formula, since all read data is taken into account during the data output. This can be seen in example I by considering the size νerror(k)=∑i=0k(ν0(i)−ν(i)) and in Example II by considering the size νerror(k)=∑i=0k(ν0(i)−ν(i+1)) which represents the accumulated difference between the filter input and filter output of the inertial sensor. To meet the integral error criterion, no drift of the value v may occur, even over arbitrarily long periods of time. error in a positive or negative direction; rather, it must always move around a constant component. That this is the case for the above formula can easily be demonstrated by appropriate simulations.
[0037] Furthermore, it is also easy to demonstrate through simulation that the output data very quickly adjusts to a value that also satisfies the differential error criterion. For example, assuming N=4.25 and a constant change in the movement data of 1, then for n0(k)=4: v0(k)=4, and for n0(k)=5: v0(k)=5. Furthermore, according to the considerations above, n0(4i+1)=n0(4i+2)=n0(4i+3)=4; n0(4i+4)=5 (i from the natural numbers including zero). Using the above formula, one finds that v(k) quickly adjusts to 4.25, meaning that the differential error criterion is satisfied. Similar results can also be simulated for more complex examples.
[0038] From the above examples it is obvious that for the extrapolation of the measurement data changes or increments read in with the data path clock, the reading frequency f a and the readout frequency f sor the ratio N of these two quantities must be known. This applies not only to the examples explicitly discussed above, but generally, since without knowledge of the temporal position of the readout times, it is not possible to generate the output data by extrapolating to these readout times from the read-in data.
[0039] The present invention therefore addresses the problem of how the ratio N can be determined in order to meet both error criteria even in slave mode. Although the following description of the invention refers to the data extrapolation examples explained above, the invention is also applicable to any other extrapolation method based on the ratio N of the input frequency and the output frequency.
[0040] A schematic flow diagram for a method for reading data from an inertial sensor is shown in the Fig.2. Although the following discussion focuses on inertial sensors, it is understood that the method is also applicable to any other type of sensor that outputs stepwise data values representing changes in a specific measured quantity.
[0041] In S100, a temporal sequence of numerical measured values is determined. The successive sequence elements differ by certain numerical values, i.e. the measured values change step by step or incrementally. The individual changes can therefore also be referred to as partial increments. This is typically the case with measured values recorded by inertial sensors; these then represent, for example, angle increments or speed increments. However, it is also conceivable to operate other sensors in this way, e.g. temperature or pressure sensors, which only determine the change in their measured variable but not an absolute value. Determining the sequence of measured values necessarily also entails determining the individual changes, i.e. the partial increments.
[0042] As already explained above, the partial increments are measured with a data path clock or a read frequency f a This means that after each period 1 / fa the reading frequency a reading time is reached at which the data sequence is updated, ie a partial increment is generated.
[0043] The measurement data should ultimately be read out at a frequency f s The readout frequency f s is not known to the sensor that generates the measured values or partial increments. Rather, the readout frequency f s by an external device, such as the processor of a navigation platform. As described above, the readout frequency f s smaller than the reading frequency f a And the two frequencies are generally not multiples of each other. This means that the input and output times usually coincide.
[0044] To determine the readout frequency f sTo determine this, a temporal sequence of the number of occurrences of read-in times between two read-out times is determined at S110. Thus, for each read-out cycle, the number of partial increments formed during the read-out cycle is determined. Read-in times occurring simultaneously with the end of the read-out cycle are allocated to the ending read-out cycle.
[0045] The number of reading times can be easily determined by the sensor, e.g. by a counter that is reset to zero with each reading time.
[0046] As explained above, the number of reading times fluctuates around the value N of the ratio of reading frequency f a and readout frequency f s . This number can therefore be used as input for a low-pass filter to determine an estimate for the ratio N.
[0047] In the simplest case, the low-pass filter consists of calculating an average over a given set of sample times. For example, the arithmetic mean can always be determined over the last K sample times, where K is a natural number, e.g., 5, 10, 50, 100, 500, 1000, or more.
[0048] Preferably, however, the low-pass filter should provide the most accurate estimate of the ratio N as quickly as possible. Furthermore, the filter result should be as constant as possible in the steady state, i.e., have the lowest possible residual ripple.
[0049] To achieve this, it is advantageous to use a filter algorithm whose time constant is initially small, thus leading to a rapid convergence to the final resulting estimate for N at the beginning of the filtering. However, to prevent "overdriving" of the estimation, i.e., to keep the filtering result as constant as possible, the time constant is successively increased up to a predetermined maximum value.
[0050] In principle, various possibilities for implementing such a low-pass filter are conceivable. One of them will be explained in more detail below using an example.
[0051] For this purpose, the estimated value N(k) for the ratio N of the reading frequency f a and readout frequency f s in a sequence of readout cycles numbered k, the following value is used: N(k)=(1−2−q(k))⋅N(k+1)+2−q(k)⋅n(k). Here, n(k) represents the number of read-in times occurring in the k-th read-out cycle, and q(k) is a natural number that increases with increasing k. N(0)=n(0) is chosen as the initial condition.
[0052] The corresponding z-transfer function G f (z) of such a low-pass filter is: Gf(z)=2−q⋅zz−(1−2−q), q∈ℕ
[0053] The filter step size or the period of the readout clock t A= 1 / f s The normalized time constant τ of this first-order low-pass filter is: τtA=1ln(1−2−q)
[0054] Assuming a settling time of 3·τ and using the approximation In(1-x)≈-x, this filter is stable after about 3 / 2 -q Beats have settled in.
[0055] The filtering can now be started with a small q, e.g. with q=1. After waiting for the settling time (e.g. 3 / 2 -1= 6 cycles), the time constant is increased and again it is waited until the filtering has settled. For example, by setting q=2 the settling time is approximately doubled. In this rhythm, the time constant and the corresponding settling time are increased step by step until a desired final value q MAX is reached, e.g. q MAX 8, 10 or more.
[0056] The Fig. Figure 3 shows the beginning of the transient response of the filter described above for a sequence of data path clocks of N=4,4,4,5,4,4,4,5,4,4,4,5,... in the first 300 clocks. As can be seen, the value N(k) rapidly converges to N=4.25. However, changing q prevents large fluctuations around this value.
[0057] The estimate obtained in this way for the ratio of reading frequency f a and readout frequency f scan then be used at S120 to extrapolate the read-in measurement data or partial increments to the readout times. At S130, the extrapolated output data are read out at the readout frequency f s queried and read by an external device.
[0058] The direct use of this estimate N for the ratio of reading frequency f a and readout frequency f s However, in the algorithms of Example I or Example II, this is problematic. It is quite possible that the estimate for N determined by the low-pass filtering does not exactly match the actual frequency ratio, which is denoted by N REF In particular, a persistently too low estimate N< N REFis problematic, as the following considerations demonstrate: The tables below show the number of "Case 1" cases for an n0(k) sequence of: n0 = 4, 4, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, etc., assuming an estimate of N=4.2, which is too small compared to NREF=4.25 (Table 1 for Example I, Table 2 for Example II). As already explained above, a "Case 1" case occurs in Example I when N > f a ·t 1r (k) + n0(k), in Example II, if N > f a ·(t 2r (k) + t 1r (k)). Table 1: Calculation of "Case 1" cases for Example I k n0(k) f a t 1r (k) + n0(k) t 1r (k + 1) 0 4 0 + 4 < 4.2 → Case 1 0 1 4 0 +4 < 4.2 → Case 1 0 2 4 0 +4 < 4.2 → Case 1 0 3 5 0 + 5 ≥ 4.2 → Case 2 5 + 0 - 4.2 = 0.8 4 4 0.8 + 4 ≥ 4.2 → Case 2 4 + 0.8 - 4.2 = 0.6 5 4 0.6 + 4 ≥ 4.2 → Case 2 4 + 0.6 - 4.2 = 0.4 6 4 0.4 + 4 ≥ 4.2 → Case 2 4 + 0.4 - 4.2 = 0.2 7 5 0.2 + 5 ≥ 4.2 → Case 2 5 + 0.2 - 4.2 = 1.0 8 4 1.0 + 4 ≥ 4.2 → Case 2 4 + 1.0 - 4.2 = 0.8 9 4 0.8 + 4 ≥ 4.2 → Case 2 4 + 0.8 - 4.2 = 0.6 10 4 0.6 + 4 ≥ 4.2 → Case 2 4 + 0.6 - 4.2 = 0.4 11 5 0.4 + 5 ≥ 4.2 → Case 2 5 + 0.4 - 4.2 = 1.2 Table 2: Calculation of "Case 1" cases for Example II k n0(k) t 2r (k) + t 1r (k) t 2r (k + 1) t 1r (k + 1) 0 4 0 + 4.2 ≥ 4.2 → Case 2 4.2 + 0 - 4.2 = 0 4 1 4 0 + 4 < 4.2 → Case 1 0 4 - (4.2 - 0 - 4) = 3.8 2 4 0 + 3.8 < 4.2 → Case 1 0 4 - (4.2 - 0 - 3.8) = 3.6 3 5 0 + 3.6 < 4.2 → Case 1 0 5 - (4.2 - 0 - 3.6) = 4.4 4 4 0 + 4.4 ≥ 4.2 → Case 2 4.4 + 0 - 4.2 = 0.2 4 5 4 0.2 + 4 ≥ 4.2 → Case 2 4 + 0.2 - 4.2 = 0 4 6 4 0 + 4 < 4.2 → Case 1 0 4 - (4.2 - 0 - 4) = 3.8 7 5 0 + 3.8 < 4.2 → Case 1 0 5 - (4.2 - 0 - 3.8) = 4.6 8 4 0 + 4.6 ≥ 4.2 → Case 2 4.6 + 0 - 4.2 = 0.4 4 9 4 0.4 + 4 ≥ 4.2 → Case 2 4 + 0.4 - 4.2 = 0.2 4 10 4 0.2 + 4 ≥ 4.2 → Case 2 4 + 0.2 - 4.2 = 0 4 11 5 0 +4 < 4.2 → Case 1 0 5 - (4.2-0-4) = 4.8 12 4 0 + 4.8 ≥ 4.2 → Case 2 4.8 + 0 - 4.2 = 0.6 4 13 4 0.6 + 4 ≥ 4.2 → Case 2 4 + 0.6 - 4.2 = 0.4 4 14 4 0.4 + 4 ≥ 4.2 → Case 2 4 + 0.4 - 4.2 = 0.2 4 15 5 0.2 + 4 ≥ 4.2 → Case 2 4 + 0.2 - 4.2 = 0 5 16 4 0 + 5 ≥ 4.2 → Case 2 5 + 0 - 4.2 = 0.8 4 17 4 0.8 + 4 ≥ 4.2 → Case 2 4 + 0.8 - 4.2 = 0.6 4 18 4 0.6 + 4 ≥ 4.2 → Case 2 4 + 0.6 - 4.2 = 0.4 4 19 5 0.4 + 4 ≥ 4.2 → Case 2 4 + 0.4 - 4.2 = 0.2 5 20 4 0.2 + 5 ≥ 4.2 → Case 2 5 + 0.2 - 4.2 = 1.0 4 21 4 1.0 + 4 ≥ 4.2 → Case 2 4 + 1.0 - 4.2 = 0.8 4 22 4 0.8 + 4 ≥ 4.2 → Case 2 4 + 0.8 - 4.2 = 0.6 4 23 5 0.6 + 4 ≥ 4.2 → Case 2 4 + 0.6 - 4.2 = 0.4 5
[0059] As can be seen in the tables, when N < N REF After some time, no "Case 1" cases appear at all, but only "Case 2" cases. As a result, the remaining unprocessed portion t in Example I grows 1r (k+1) and in Example II the remaining portion t not yet processed 2r(k+1) tends to increase due to the lack of "case 1" cases to be cleaned up. Without corrective intervention, this effect leads to a divergence of the filter result v(k).
[0060] To avoid the divergence problem described above, the estimated value N generated by low-pass filtering can be adjusted to the unknown, correct N REF The control should keep the value of N used for extrapolation as close as possible to N REF Then, at S120, the value of N obtained in the control system is used for extrapolation.
[0061] An example of a corresponding control loop is shown in the Fig. 4. The input for the control loop is an assumed reference value for the ratio N, for example the estimated value N(k) provided by the low-pass filtering discussed above.
[0062] The stationary model of the controlled system can be described by a step function or non-linear characteristic curve, as used, for example, in Fig. 5 is shown.
[0063] This characteristic curve describes the dependence of the number of “Case 1” cases introduced in Examples I and II above in K time steps k i+1 to k 1+K (i, K natural numbers) of the assumed frequency ratio N. The characteristic curve thus describes the number of occurring “Case 1” cases per unit of time as a function of the frequency ratio N.
[0064] The appearance of this characteristic curve depends on the absolute position of N REF in the interval [N REF ] to [N REF ]+1 ([x]=integer part of x). The characteristic curve in Fig. 5 is therefore only an example. However, it is characteristic of all curves that for N <N REF no “Case 1” cases occur at all and these then occur in the interval of N REF to [N REF]+1 until only “Case 1” cases occur. This jump in the characteristic curve at N=N REF is therefore used as a criterion for regulating from N to N REF exploited as follows: If the characteristic curve returns the value 0 for the number of “Case 1” cases per time unit, then N is too small (N < N REF ). In this case, the controller is supplied with a value -y (y>0), which, after the negation occurring in the control loop, leads to an increase in the estimated value N(k) by a correction value ΔN. The N corrected by ΔN thus becomes closer to N REF introduced.
[0065] However, if the characteristic curve returns a value greater than 0 for the number of “Case 1” cases per time unit, then N is too large (N > N REF ). In this case, a value +y is fed to the controller, which, after the negation occurring in the control loop, leads to a reduction of the estimated value N(k) by a correction value ΔN. The N corrected by ΔN is thus closer to NREF introduced.
[0066] The characteristic curve does not necessarily have to be calculated or generated. The essential feature of the characteristic curve is the step-like behavior at N=N REF . For N <N REF the characteristic curve is 0. From N>N REF it rises abruptly to the maximum value. Depending on the nature of the incoming numerical sequence n0(k), the characteristic curve can reach the maximum value either in a single jump or in several partial jumps. Whether the maximum value is reached in a single jump or in several partial jumps is not important. The decisive property of the characteristic curve is the jump or partial jump at N=N REF This central property is exploited for control purposes.
[0067] For this purpose, the characteristic curve does not necessarily have to be generated, as it is a mathematical description of the behavior of the controlled system (system model). The number of "Case 1" cases per time unit can be measured, for example, using a counter. From this, the controller can directly derive how it should adjust N to N REF should introduce.
[0068] Due to the fact that at N=N REF Since a "Case 1" case must occur in every case, it is sufficient to monitor the occurrence of these cases. The controller can use the value +y at the first occurrence. If, after a "Case 1" case, no "Case 1" cases occur in a time window before K time steps for the evaluation of the sequence n0(k), the controller returns to the value -y.
[0069] The controller itself is preferably controlled via an I or PI element (parameter a in Fig. 4 equal to zero or not equal to zero).
[0070] A value of N=N REF is not achieved permanently, but, as is usual for such non-linear control loops, a continuous oscillation around N=N REF The amplitude of this continuous oscillation can be adjusted by the magnitude of y. The dynamic component of the system model, which also exists in the described systems, was neglected in the above description. Only the nonlinear characteristic curve in the steady state was considered. The dynamic component can be considered when selecting the controller parameters.
[0071] The use of a control loop in which the stationary system model is given by a non-linear characteristic curve or step function in N, which at N=N REF jumps, thus allows the ratio N used for the extrapolation of the read data and estimated by the low-pass filter to be compared to the true ratio of the read frequency f aand readout frequency f s which can avoid the divergence problem described above.
[0072] It is therefore possible to use a combination of a low-pass filter described above to find a first estimate of N, a control loop to regulate this estimate N to the reference value N REF , as well as a filter for extrapolating the read-in measurement data, without knowledge of the read-out frequency f s To provide measurement data at each readout time that meets both the differential and integral error criteria. Furthermore, all necessary parameters can be derived from the measurement data provided by the appropriately equipped sensor.
[0073] The Fig. 6 shows a schematic representation of a system 100 for implementing the method described above.
[0074] The system 100 comprises a sensor 200, e.g. an inertial sensor, for determining a temporal sequence of measurement data, e.g. movement data, with the reading frequency f a The measurement data is recorded by a sensor device 210, such as a gyro sensor or an acceleration sensor. From there, the measurement data is passed via a low-pass filter 220 and optionally via a control loop 230 to a filter 240, which performs the extrapolation of the read-in data described above. Low-pass filter 220, control loop 230, and filter 240 can be implemented as hardware or software and can be implemented either as a single component (e.g., a single processor) or as separate units.
[0075] The system 100 also has an evaluation unit 300 which outputs the measurement data extrapolated in the filter 240 as output data with the readout frequency f squeries and further processes, e.g. to provide a navigation solution.
[0076] With such a sensor 200 and such an evaluation unit 300, the advantages described above can be achieved. Output data can be generated that closely approximates the state of the measured system at the time of readout, even though the readout times and the data acquisition times are different. Thus, the output data fulfills both the integral and differential error criteria.
Claims
[1] A method for reading data from sensors (200), comprising: Determining a temporal sequence of measurement data by means of a sensor (200), wherein the temporal sequence of measurement data is generated by step-wise changes of the measurement data at reading times which are determined by a reading frequency f a and a time interval of a period 1 / f a the reading frequency: Reading output data from the sensor (200) at reading times determined by a reading frequency f s and a time interval of a period 1 / f a the readout frequency, where the readout frequency f s smaller than the reading frequency f a is; Determine the ratio N between the reading frequency f a and the readout frequency f sfrom the temporal sequence of the numbers of read-in times between two adjacent read-out times by means of a low-pass filter (220) of the sensor (200); wherein in the sensor (200), the output data to be read out at the readout times are determined by extrapolating elements of the temporal sequence of measurement data generated before the respective readout times based on the ratio N between the readout frequency f a and the readout frequency f s be generated. [2] Method according to claim 1, wherein the period of the readout frequency is 1 / f a not a multiple of the period of the reading frequency 1 / f a is. [3] Method according to one of the preceding claims, wherein the ratio N is determined by averaging the numbers of read-in times between two adjacent read-out times. [4] Method according to one of the preceding claims, wherein the ratio N is determined by a filter algorithm with a variable time constant; and the time constant increases over time when determining the ratio N. [5] Method according to one of the preceding claims, wherein the ratio N in the time step k after the start of the determination of the ratio N is given by: N(k)=(1−2−q(k))⋅N(k−1)+2−q(k)⋅n(k), with n(k) being the number of read-in times occurring in time step k, q(k) being a natural number and N(0)=n(0); each time step k is the length of a period of the readout frequency 1 / f a has; and q(k) increases with increasing k. [6] Method according to one of the preceding claims, wherein the output data is generated according to one of the following formulas: Case I: ν(k)=ν1(k)⋅fa⋅t1r(k)n1(k)+ν0(k)⋅N−fa⋅t1r(k)n0(k)−νr(k), where Initial conditions: n0(0)=n1(0)=N; t1r(0)=v1(0)=vr(0)=0; State transitions: n1(k+1)=n0(k); v1(k+1)=v0(k); for N > f a ·t 1r (k) + n0(k): vr(k+1)=v0(k) / n0(k)⋅(N-fa⋅t1r(k)−n0(k)); andt1r(k+1)=0; for N ≤ f a ·t 1r (k) + n0(k): vr(k+1)=v0; andt1r(k+1)=1 / fa⋅(n0(k)+fa⋅t1r(k)−N); Case II: for N > f a ·(t 2r (k) + t 1r (k)): ν(k)=ν2(k)⋅fa⋅t2r(k)n2(k)+ν1(k)⋅fa⋅t1r(k)n1(k)+ν0(k)⋅N−fa(t1r(k)+t2r(k))n0(k), where: Initial conditions: n0(0)=n1(0)=n2(0)=fa⋅t1r(0)=N; t2r(0)=v1(0)=v2(0)=0; State transitions: n1(k+1)=n0(k); n2(k+1)=n1(k); v1(k+1)=v0(k); v2(k+1)=v1(k); t1r(k+1)=1 / fa(n0(k)−N+fa⋅(t2r(k)+t1r(k))); t2r(k+1)=0; for N ≤ f a ·(t 2r (k) + t 1r(k)): ν(k)=ν2(k)⋅fa⋅t2r(k)n2(k)+ν1(k)⋅N−fa⋅t2r(k)n1(k), where: Initial conditions: n0(0)=n1(0)=n2(0)=fa⋅t1r=N; t2r(0)=v1(0)=v2(0)=0; State transitions: n1(k+1)=n0(k); n2(k+1)=n1(k); v1(k+1)=v0(k); v2(k+1)=v1(k); t1r(k+1)=n0(k) / fa; t1r(k+1)=t2r(k)+t1r(k)−N / fa; with v(k) is the output data read out at the k-th readout time; n0(k) is the number of read-in times between the (k-1)th read-out time and the kth read-out time; n1(k) is the number of read-in times between the (k-2)th read-out time and the (k-1)th read-out time; n2(k) is the number of read-in times between the (k-3)th read-out time and the (k-2)th read-out time; v0(k) is the sum of stepwise changes in the measured data that occurred at the read-in times between the (k-1)th read-out time and the kth read-out time; v1(k) is the sum of stepwise changes in the measured data that occurred at the read-in times between the (k-2)th read-out time and the (k-1)th read-out time; v2(k) is the sum of stepwise changes in the measured data that occurred at the read-in times between the (k-3)th read-out time and the (k-2)th read-out time; t 1r and t 2r time intervals; and v r a remainder term. [7] Method according to one of the preceding claims, wherein for the extrapolation of the elements of the temporal sequence of measurement data generated before the respective readout times, the ratio N in the sensor (200) determined by means of the low-pass filter is adjusted in a control loop (230) to the actual ratio N REF of reading frequency f a and readout frequency f s is regulated; and the respective result of the regulation on the actual ratio N REF used for extrapolation. [8] Method according to claim 7, wherein the control is an I or a PI control; the control is based on a step function in N, which at a value of N=N REF jumps from zero to a value greater than zero; and in the control, a specified positive value y is fed back negatively if the step function is greater than zero when the actual value of N is present, and the negative specified value -y is fed back negatively if the step function is equal to or less than zero when the actual value of N is present. [9] Method according to claim 8 when referring back to claim 6, wherein in case I the step function is determined by the number of occurrences of the case N > f a ·t 1r (k) + n0(k) in K time steps k i+1 to k i+K , with i and K natural numbers, and in case II the step function is determined by the number of occurrences of the case N > f a ·(t 2r (k) + t 1r (k)) in K time steps k i+1 to k i+K , with i and K natural numbers. [10] Sensor (200) for measuring measurement data, comprising: a sensor device (210) which is suitable for determining a temporal sequence of measurement data, wherein the temporal sequence of measurement data is generated by step-wise changes in the measurement data at reading times which are determined by a reading frequency f a and a time interval of a period 1 / f a the reading frequency; a filter (240) adapted to output data at readout times determined by a readout frequency f upon request from an external device s and a time interval of a period 1 / f a the readout frequency, where the readout frequency f s smaller than the reading frequency f a is; a low-pass filter (220) for determining the ratio N between the input frequency f a and the readout frequency f sfrom the temporal sequence of the numbers of read-in times between two adjacent read-out times; where in the filter (240) the output data to be output at the readout times are determined by extrapolating elements of the temporal sequence of measurement data generated before the respective readout times based on the ratio N between the read-in frequency f a and the readout frequency f s be generated. [11] Inertial navigation system, comprising an inertial sensor according to claim 10; and an evaluation unit (300) which is suitable for reading the output data at the readout frequency f s and calculate a navigation solution from it.
Citation Information
Patent Citations
Digital signal processing unit for an angle finder
DE102013103274A1