Real-Time Estimation of Temperature Time Derivative in Inertial Measurement Unit by Finite-Impulse-Response Exponential Regression on Updates
Abstract
:1. Introduction
2. Background Models and Algorithms
2.1. Thermal Behavior
- Exponentially decaying functions are good for describing thermal processes in inertial navigation units of navigation grade;
- In post-processing, we have a means of obtaining a rather accurate reference for the time derivative of the measured temperature (which still may not account for local short-term temperature variations), by exponential approximation;
- Applying an ordinary moving-average numerical differentiator to the temperature sensor readings produces a derivative estimate far from the desired one.
2.2. Real-Time Estimation Issues
- The patterns of temperature variations inside the IMU change considerably with time, and therefore infinite-impulse-response filters should be avoided, as they tend to keep track of the whole measuring history;
- However, no considerably long temperature measuring history may be entirely stored in the IMU to feed into any conventional finite-impulse-response digital filter with its window long enough to catch slow thermal processes;
- Sudden jumps in the temperature time derivative estimate, when fed into the error compensation algorithm for inertial sensors, exert additional noise in their calibrated output. As integrated in further processing, it may then considerably bias the navigation solution over time. Therefore, such jumps are commonly believed to be undesirable;
- Quantization errors of measuring slow changing temperature appear to have no properties that are any close to those of Gaussian white noise.
2.3. Reference Approximation
2.4. Recurrent Least Squares Using Kalman Filter Update
2.5. Cancelling Prior Updates
3. Real-Time Filtering
- Initialization;
- Detecting the new measurements and applying them, if any;
- Checking for the expired measurements and retracting them from estimates, if found;
- Amending the model time bias , if needed;
- Updating the current estimate for temperature and its time derivative;
3.1. Initialization
3.2. Updating Coefficient Estimates
3.3. Retracting Expired Measurements
- It falls behind the current time t by more than : ;
- The measurement next to the one under consideration, i.e., , stays behind the newest measurement used for updating (see Section 3.2) by or more: , with standing for the time tag of the newest measurement;
- A number of measurements of at least twice the state vector component count will remain used for estimation: .
3.4. Amending Model Time Bias
3.5. Updating Temperature and its Time Derivative
3.6. Real-Time Filtering Algorithm at a Glance
Listing 1. Initialization part. |
define x = n×1 zero matrix // current estimates for model coefficients define S = n×n identity matrix // upper-triangular square root of covariance define Z = N×2 zero matrix // measurement buffer, 2-nd column for time tags |
= /4 // a priori standard deviation of single measurement = // initial temperature sensor reading S = 106·S // initial covariance square root for i = 1..2·n increasing // go through fake initial measurements Z = // store measurement value in buffer Z = t − (2·n+1−i)·60[seconds] // store time tag (x, S) = kalman_update(x, S, Z, h(Z), , n) // update estimates end for i i = 1 // oldest measurement index in buffer i = 2·n // newest measurement index in buffer t = Z // model time bias |
Listing 2. Main cycle portion |
... // IMU sensor acquisition = // next reading from temperature sensor if −>/2 | −> // temperature sensor has updated, or model deviates i = i + 1 if i>N then i = 1 end // buffer rollover Z = (+)/2 // store middle value as measurement Z = t // store time tag (x, S) = kalman_update(x, S, Z, h(Z), , n) // update estimates end if |−| |
j = i // store oldest measurement index, check for expired or buffer overrun while ((t−Z>T) & (Z−ZT) & (mod(i−i,N)⩾2·n)) | mod(i−i,N)=1 (x, S) = kalman_pullback(x, S, Z, h(Z), , n) // retract oldest one i = i + 1 if i>N then i = 1 end // buffer rollover end while |
if ji // oldest measurement changed (x, S) = amend_t0(Z, Z, x, S, T) // amend t in estimates t = Z // new model time bias end if j |
= h(t)·x // temperature estimate = x // time derivative estimate = // temperature standard deviation estimate = // time derivative standard deviation estimate = // store previous measurement ... // proceed with IMU inertial sensor error compensation & navigation |
4. Results
4.1. Real-Time FIR Filter Compared to Conventional Kalman Filtering
4.2. Using a Plain Linear Model Function
- The linear function tends to over-estimate its own prediction accuracy;
- The linear function introduces larger phase delays (i.e., latency of the estimate).
4.3. Modifying Time Parameters
5. Conclusions
- Measurement quantization under slowly changing temperature;
- Wide time domain of thermal processes;
- No white noise properties in measurement errors;
- Real-time recurrent operation.
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Abbreviations
IMU | inertial measurement unit |
FIR | finite impulse response |
RFBR | Russian foundation for basic research |
Appendix A. Cholesky Upper-Triangular Factorization Algorithm chol
function S = chol(P, n) define S = n×n zero matrix for j = n..1 decreasing s = 0 for k = j+1..n increasing s = s + S end for k |
s = P− s if s < 0 exception: P is not positive semi-definite else S = end if s |
if S ≠ 0 for i = j-1..1 decreasing s = 0 for k = j+1..n increasing s = s + SS end for k S = (P− s)/S end for i end if S end for j end function chol |
Appendix B. Amending the Model Time Bias amend_t0
function (x, S) = amend_t0(t, t, x, S, T) define C = 3×3 identity matrix t = (t − t)/T C = t C = e x = C·x S = chol(C·S·S·C, 3) end function amend_t0 |
Appendix C. Upper-Triangular Square-Root Kalman Filter Update Step kalman_update
- Current estimate of a state vector of size n;
- Its covariance upper-triangular square root matrix ;
- New measurement z;
- Its standard deviation a priori estimate ;
- Row matrix h that relates the new measurement to the state vector, so that
function (x, S) = kalman_update(x, S, z, h, , n) define K = n×1 zero column S = S d = f = Sh for j = 1..n increasing d = d + f b = c = f/ for i = 1..j increasing e = K K = K + Sf S = Sb − e·c end for i d = d end for j |
K = K/d S = S x = x + K(z - h·x) end function kalman_update |
Appendix D. Upper-Triangular Square-Root Kalman Filter Pullback Step kalman_pullback
- Current estimate of a state vector of size n;
- Its covariance upper-triangular square root matrix ;
- Older measurement z to be pulled back from the estimate;
- Its standard deviation a priori estimate ;
- Row matrix h that relates the old measurement to the state vector, so that
function (x, S) = kalman_pullback(x, S, z, h, , n) define K = n×1 zero column S = S d = f = Sh for j = 1..n increasing d = d − f if d 0 exception: not enough measurements remain into estimation else b = c = f/ for i = 1..j increasing e = K K = K + Sf S = Sb − e·c end for i d = d end for j |
K = K/d S = S x = x − K(z - h·x) end function kalman_pullback |
References
- Meshkovsky, I.K.; Miroshnichenko, G.; Rupasov, A.; Strigalev, V.E.; Sharkov, I. Influence of thermal effect on performances of the fiber optic gyroscope. In Proceedings of the 21st Saint Petersburg International Conference on Integrated Navigation Systems, Saint Petersburg, Russia, 26–28 May 2014; pp. 245–253. [Google Scholar]
- Kozlov, A.V.; Tarygin, I.E.; Golovan, A.A. Calibration of inertial measurement unit on a low-grade turntable: Estimation of temperature time derivative coefficients. In Proceedings of the 23d Saint Petersburg International Conference on Integrated Navigation Systems, Saint Petersburg, Russia, 30 May–1 June 2016; pp. 76–80. [Google Scholar]
- Kalman, R.E. A New Approach to Linear Filtering and Prediction Problems. J. Basic Eng. 1960, 82, 35. [Google Scholar] [CrossRef] [Green Version]
- Li, X.; Ou, X.; Li, Z.; Wei, H.; Zhou, W.; Duan, Z. On-Line Temperature Estimation for Noisy Thermal Sensors Using a Smoothing Filter-Based Kalman Predictor. Sensors 2018, 18, 433. [Google Scholar] [CrossRef] [Green Version]
- Tarygin, I.E. Calibration of Inertial Sensors in the Case of Varying Temperature. Moscow Univ. Mech. Bull. 2019, 74, 24–28. [Google Scholar] [CrossRef]
- Woodbury, M.A. Inverting modified matrices. In Memorandum Report 42; Statistical Research Group: Princeton, NJ, USA, 1950. [Google Scholar]
- Potter, J.E. New statistical formulas. Space Guidance Anal. Memo 1963, 40, 1309–1314. [Google Scholar]
Variable | Meaning | Remarks |
---|---|---|
t | current time | at each epoch |
current temperature sensor reading | at each epoch | |
quantization step | 0.05 °C for sample data sets | |
minimum approximation window length | 5 and 3 min for sample data sets | |
model time constant | 3 and 2 min for sample data sets | |
n | model order | currently 3 |
maximum number of measurements allowed to store in memory buffer | 90 is enough for sample data sets, though multifold more recommended to reserve, if possible |
Variable | Meaning | Remarks |
---|---|---|
current temperature estimate | at each epoch | |
current temperature time derivative estimate | at each epoch | |
estimate for temperature standard deviation | at each epoch | |
estimate for temperature time derivative standard deviation | at each epoch |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Kozlov, A.; Tarygin, I. Real-Time Estimation of Temperature Time Derivative in Inertial Measurement Unit by Finite-Impulse-Response Exponential Regression on Updates. Sensors 2020, 20, 1299. https://doi.org/10.3390/s20051299
Kozlov A, Tarygin I. Real-Time Estimation of Temperature Time Derivative in Inertial Measurement Unit by Finite-Impulse-Response Exponential Regression on Updates. Sensors. 2020; 20(5):1299. https://doi.org/10.3390/s20051299
Chicago/Turabian StyleKozlov, Alexander, and Ilya Tarygin. 2020. "Real-Time Estimation of Temperature Time Derivative in Inertial Measurement Unit by Finite-Impulse-Response Exponential Regression on Updates" Sensors 20, no. 5: 1299. https://doi.org/10.3390/s20051299
APA StyleKozlov, A., & Tarygin, I. (2020). Real-Time Estimation of Temperature Time Derivative in Inertial Measurement Unit by Finite-Impulse-Response Exponential Regression on Updates. Sensors, 20(5), 1299. https://doi.org/10.3390/s20051299