Table Of ContentFundamentals of Kalman Filtering—A Practical Approach, Second Edition
Fundamentals of Kalman Filtering: A Practical Approach, Second Edition
by Paul Zarchan
AIAA © 2005
Fundamentals of Kalman Filtering—A
Practical Approach, Second Edition
Paul Zarchan
MIT Lincoln Laboratory
Lexington Massachusetts
Howard Musoff
Charles Stark Draper Laboratory, Inc.
Cambridge Massachusetts
Volume 208
PROGRESS IN ASTRONAUTICS AND AERONAUTICS
Paul Zarchan, Editor-in-Chief
MIT Lincoln Laboratory Lexington, Massachusetts Published by the
American Institute of Aeronautics and Astronautics, Inc.
1801 Alexander Bell Drive, Reston, Virginia 20191-4344
© 2005 American Institute of Aeronautics and Astronautics, Inc.
All rights reserved. Reproduction or translation of any part of this work
beyond that permitted by Sections 107 and 108 of the U.S. Copyright
Law without the permission of the copyright owner is unlawful. The
code following this statement indicates the copyright owner's consent
that copies of articles in this volume may be made for personal or
internal use, on condition that the copier pay the per-copy fee ($2.00)
plus the per-page fee ($0.50) through the Copyright Clearance
Center, Inc., 222 Rosewood Drive, Danvers, Massachusetts 01923.
This consent does not extend to other kinds of copying, for which
permission requests should be addressed to the publisher. Users
should employ the following code when reporting copying from the
volume to the Copyright Clearance Center: 1-56347-694-0/00 $2.50 +
.50
Data and information appearing in this book are for informational
purposes only. AIAA is not responsible for any injury or damage
resulting from use or reliance, nor does AIAA warrant that use or
reliance will be free from privately owned rights.
reliance will be free from privately owned rights.
1-56347-455-7
To
Maxine, Adina, Ari, and Ronit
P.Z.
Wally, Sandy, Jay, Stephanie, Charlie, Scott, Cindy, Danielle, and
Adam
H.M.
Progress in Astronautics and Aeronautics Editor-in-Chief
Paul Zarchan
MIT Lincoln Laboratory Editorial Board
David A. Bearden
The Aerospace Corporation
John D. Binder
viaSolutions
Steven A. Brandt
U.S. Air Force Academy
Fred R. DeJarnette
North Carolina State University
Philip D. Hattis
Charles Stark Draper Laboratory
Abdollah Khodadoust
The Boeing Company
Richard C. Lind
University of Florida
Richard M. Lloyd
Raytheon Electronics Company
Frank K. Lu
University of Texas at Arlington
Ahmed K. Noor
NASA Langley Research Center
Albert C. Piccirillo
Institute for Defense Analyses
Ben T. Zinn
Georgia Institute of Technology
Peter H. Zipfel
Air Force Research Laboratory
Acknowledgments
Special thanks go to Norman Josephy, Professor of Mathematical
Sciences at Bentley College, whose kind and constructive review of
the first several chapters provided us with useful feedback and
influenced other parts of the text. Informative conversations with
Charles Stark Draper Laboratory, Inc., technical staff members
Matthew Bottkol and Darold Riegsecker on important issues
concerning extended Kalman filtering influenced several of the
examples used. Without the superb technical environment of C.S.
Draper Labs, the idea for such a text would not have been possible.
We would also like to thank Rodger Williams of AIAA for helping us
move this project forward as rapidly as possible.
TeamUnknown Release
Preface
Fundamentals of Kalman Filtering: A Practical Approach, Second Edition
by Paul Zarchan
AIAA © 2005
Preface
The second edition has two new chapters and an additional appendix.
Chapter 15 presents another type of filter known as the fading-
memory filter. The fading-memory filter is recursive, its structure is
identical to that of a polynomial Kalman filter, and the gains are
computed from a very simple algorithm. This chapter shows that for
some radar tracking applications the fading-memory filter can yield
similar performance to a Kalman filter at far less computational cost.
Chapter 16 presents various simplified techniques for improving
Kalman-filter performance. The new chapter includes a practical
method for preprocessing measurement data when there are too
many measurements for the filter to utilize in a given amount of time.
Two practical methods for making the Kalman filter adaptive are also
presented in this chapter. Numerous examples and computer source
code listings are included to make the new material as accessible as
possible. Finally, a new appendix has been added, which serves as a
central location and summary for the text's most important concepts
and formulas.
It has been very gratifying for us to learn that many people working
with or having to learn about Kalman filtering have found
Fundamentals of Kalman Filtering: A Practical Approach useful. The
material that has been added to the text is based on questions and
feedback from the readers. On a personal note, my friend, colleague,
and coauthor, Dr. Howard Musoff died suddenly last April. He was
proud of this text and its impact on readers. It was his hope, as well as
mine, that this second edition, with its new chapters and appendix will
be of value not only to new readers, but will also be worthwhile to
those who have already read the first edition.
Paul Zarchan
September 2004
TeamUnknown Release
Introduction
Fundamentals of Kalman Filtering: A Practical Approach, Second Edition
by Paul Zarchan
AIAA © 2005
Introduction
It has been four decades since Kalman introduced his systematic
approach to linear filtering based on the method of least-squares
(Kalman, R. E., "A New Approach to Linear Filtering and Prediction
Problems," Journal of Basic Engineering, Vol. 82, No. 1, March 1960,
pp. 35–46). Although his original journal article was difficult to read
and understand, the results of the paper were applied immediately in
many different fields by individuals with a variety of backgrounds
because the filtering algorithm actually worked and was easy to
implement on a digital computer. People were able to apply Kalman
filtering without necessarily understanding or caring about the
intricacies of its derivation. Because of the ease of implementation of
the original recursive digital Kalman filter, engineers and scientists
were able to find out immediately that this new filtering technique was
often much better than existing filtering techniques in terms of
performance. Both performance improvements and ease of
implementation rather than analytical elegance made the Kalman filter
popular in the world of applications. However, the Kalman filter was
usually much more computationally expensive than existing filtering
techniques, which was an issue in many cases for the primitive
computers that were available at that time. In addition to improved
performance, this new filtering technique also provided a systematic
approach to many problems, which was also an improvement over
some of the ad hoc schemes of the day. Today, because of the
popularity and proliferation of Kalman filtering, many individuals either
do not know (or care) about any other filtering techniques. Some
actually believe that no filtering took place before 1960.
With the possible exception of the fast Fourier transform, Kalman
filtering is probably the most important algorithmic technique ever
devised. Papers on the subject have been filling numerous journals
for decades. However, Kalman filtering is one of those rare topics that
is not only popular in academic journals but also has a history of being
rich in practical applications. Kalman filtering has been used in
applications that include providing estimates for navigating the Apollo
spacecraft, predicting short-term stock market fluctuations, and
spacecraft, predicting short-term stock market fluctuations, and
estimating user location with relatively inexpensive hand-held global
positioning system (GPS) receivers.
The purpose of this text is not to make additional theoretical
contributions in the world of Kalman filtering but is simply to show the
reader how actually to build Kalman filters by example. It is the
authors' belief that the best way of learning is by doing. Unlike other
texts on Kalman filtering, which devote most of their time to
derivations of the filter and the theoretical background in
understanding the derivations, this text does not even bother to derive
the filter. After all, the filter has been in use for 40 years and being an
expert at derivations usually has nothing to do with getting a filter to
work. Instead the Kalmanfiltering equations are simply explained, and
the text devotes its time to applying Kalman filtering to actual
problems.
Numerous simplified, but nontrivial, real-world examples are
presented in detail, showing the many ways in which Kalman filters
can be designed. Sometimes mistakes are introduced intentionally to
the initial designs to show the interested reader what happens when
the filter is not working properly. Rarely in real life is a Kalman filter
working after the first try. In fact, it usually takes many tries just to get
the filter to fail (i.e., even getting the code to compile and give
ridiculous answers is a challenge)! Therefore, we intentionally take the
reader through part of that realistic iteration process. It is hoped that
readers with varied learning styles will find the text's practical
approach to Kalman filtering to be both useful and refreshing.
The text also spends a great deal of time in setting up a problem
before the Kalman filter is actually formulated or designed. This is
done to give the reader an intuitive feel for the problem being
addressed. The time spent understanding the problem will always be
important in later determining if the Kalman filter is performing as
expected and if the resultant answers make sense.
Often the hardest part in Kalman filtering is the subject that no one
talks about—setting up the problem. This is analogous to the quote
from the recent engineering graduate who, upon arriving in industry,
Description:This text is a practical guide to building Kalman filters and shows how the filtering equations can be applied to real-life problems. Numerous examples are presented in detail, showing the many ways in which Kalman filters can be designed. Computer code written in FORTRAN, MATLAB[registered], and Tr