Principles of Radar Tracking Utilizing the Kalman Filter
Radars Aren’t Perfect Radars give noisy data. Radars give noisy data. We need more accurate data. Position Velocity Kalman Filter
Why Kalman? Invented by Rudolf Kalman Simple Low Memory Requirement Invented by Rudolf Kalman Simple Low Memory Requirement Fast Versatile
The Different Cases Case 1: 1 Dimensional Cartesian Case 1: 1 Dimensional Cartesian Case 2: 2 Dimensional Cartesian Case 3: 2 Dimensional Polar Case 4: Polar with 2 Radars Case 5: Polar with maneuvering target
You like Linear Algebra? Then you’ll like Kalman Filters Designed to track targets in a linear motion Series of equations: Algorithm Measurement Simple Right? Predict Update
I take a look at my… The Variable Matrices Initial Conditions Initial Conditions Initial Prediction Initial State Covariance Matrix The Variable Matrices x(k) – State Vector Q – Driving Noise Covariance H – Observation Model Φ – State Transition Model P – State Covariance y(k) - Measurement
Prediction Equations x(k+1|k) = Φx(k|k) P(k+1|k) = ΦP(k|k)ΦT + Q
Yet Two More Variables K - Kalman Gain Matrix R – Measurement Noise
Update Equations K(k) = P(k|k-1)HT[HP(k|k-1)HT + R]-1 K(k) = P(k|k-1)HT[HP(k|k-1)HT + R]-1 x(k|k) = x(k|k-1) + K(k)[y(k) – Hx(k|k-1)] P(k|k) = [I – K(k)H]P(k|k-1)
Program Layout Visual Basic .NET console application Classes Data Visual Basic .NET console application Classes Data Operations Inheritance Bicycle Properties: Color Gear Size Methods: setGear() pedal() brake() steer()
Datum Holds two pieces of information: time (Double) coords (Matrix) Holds two pieces of information: time (Double) coords (Matrix) Datum Properties: time coords
The KFilter Class MatLib library 2D arrays of doubles predict(time) MatLib library 2D arrays of doubles predict(time) update(y) reset(initial, P)
File I/O FileReader PolarFileReader PolarMultiReader CommaWriter FileReader hasNext() nextDatum() PolarFileReader PolarMultiReader CommaWriter WriteLine() Close()
Other Functions Initialization Functions: Nsig() initialize() makeP() Initialization Functions: initialize() makeP() makeQ() makeR() Hmat() PhiMat() Nsig()
Putting It All Together Initialize Read data Predict Calculate R Update Write Output Check for more data Finish
Case 1 Results
Case 2 Results
Case 3 Results
Case 4 Results
Case 5 Results
Performance Improvement
Conclusion Improved predictions over time Adaptable Improved predictions over time Adaptable Successful project!
Team Project 6 Mr. Heuer, Joe Kelly, Ankur Bakshi, Vikram Modi, Karl Strohmaier, Luke Anderson, David Kim, Kareem Elnahal, Alex Shnayder, Adam Pantel, Andrew “Tony” Weintraub, Alex Sood, and Joe Park Thank You!