.MCAD 304020000 1 88 401 0 .CMD PLOTFORMAT 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 NO-TRACE-STRING 0 2 1 0 1 1 NO-TRACE-STRING 0 3 2 0 1 1 NO-TRACE-STRING 0 4 3 0 1 1 NO-TRACE-STRING 0 1 4 0 1 1 NO-TRACE-STRING 0 2 5 0 1 1 NO-TRACE-STRING 0 3 6 0 1 1 NO-TRACE-STRING 0 4 0 0 1 1 NO-TRACE-STRING 0 1 1 0 1 1 NO-TRACE-STRING 0 2 2 0 1 1 NO-TRACE-STRING 0 3 3 0 1 1 NO-TRACE-STRING 0 4 4 0 1 1 NO-TRACE-STRING 0 1 5 0 1 1 NO-TRACE-STRING 0 2 6 0 1 1 NO-TRACE-STRING 0 3 0 0 1 1 NO-TRACE-STRING 0 4 1 0 1 1 NO-TRACE-STRING 0 1 1 21 15 0 0 3 .CMD FORMAT rd=d ct=10 im=i et=3 zt=15 pr=3 mass length time charge temperature tr=0 vm=0 .CMD SET ORIGIN 0 .CMD SET TOL 0.001000000000000 .CMD SET PRNCOLWIDTH 8 .CMD SET PRNPRECISION 4 .CMD PRINT_SETUP 0.700000 0.500000 0.700000 0.700000 1 .CMD HEADER_FOOTER 1 1 *empty* *empty* *empty* 0 1 http://www.innovatia.com/software/papers/kalman.htm *empty* Page^|P^of^2 .CMD HEADER_FOOTER_FONT fontID=14 family=Arial points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD HEADER_FOOTER_FONT fontID=15 family=Arial points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFAULT_TEXT_PARPROPS 0 0 0 .CMD DEFINE_FONTSTYLE_NAME fontID=0 name=Variables .CMD DEFINE_FONTSTYLE_NAME fontID=1 name=Constants .CMD DEFINE_FONTSTYLE_NAME fontID=2 name=Text .CMD DEFINE_FONTSTYLE_NAME fontID=4 name=User^1 .CMD DEFINE_FONTSTYLE_NAME fontID=5 name=User^2 .CMD DEFINE_FONTSTYLE_NAME fontID=6 name=User^3 .CMD DEFINE_FONTSTYLE_NAME fontID=7 name=User^4 .CMD DEFINE_FONTSTYLE_NAME fontID=8 name=User^5 .CMD DEFINE_FONTSTYLE_NAME fontID=9 name=User^6 .CMD DEFINE_FONTSTYLE_NAME fontID=10 name=User^7 .CMD DEFINE_FONTSTYLE fontID=0 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=1 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=2 family=Arial points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=4 family=Arial points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=5 family=Courier^New points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=6 family=System points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=7 family=Script points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=8 family=Roman points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=9 family=Modern points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD DEFINE_FONTSTYLE fontID=10 family=Times^New^Roman points=10 bold=0 italic=0 underline=0 colrid=-1 .CMD UNITS U=1 .CMD DIMENSIONS_ANALYSIS 0 0 .CMD COLORTAB_ENTRY 0 0 0 .CMD COLORTAB_ENTRY 128 0 0 .CMD COLORTAB_ENTRY 0 128 0 .CMD COLORTAB_ENTRY 128 128 0 .CMD COLORTAB_ENTRY 0 0 128 .CMD COLORTAB_ENTRY 128 0 128 .CMD COLORTAB_ENTRY 0 128 128 .CMD COLORTAB_ENTRY 128 128 128 .CMD COLORTAB_ENTRY 192 192 192 .CMD COLORTAB_ENTRY 255 0 0 .CMD COLORTAB_ENTRY 0 255 0 .CMD COLORTAB_ENTRY 255 255 0 .CMD COLORTAB_ENTRY 0 0 255 .CMD COLORTAB_ENTRY 255 0 255 .CMD COLORTAB_ENTRY 0 255 255 .CMD COLORTAB_ENTRY 255 255 255 .CMD COLORTAB_ENTRY 10 36 106 .CMD COLORTAB_ENTRY 0 84 227 .TXT 2 67 401 0 0 Cg a24.750000,24.750000,72 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Based upon Dan Simon's Mathematica Kalman filtering example calculation.} .TXT 8 -40 388 0 0 Cg a55.000000,55.000000,33 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard {\fs24\b\ul Kalman Filter Example Calculation}} .TXT 6 -24 43 0 0 Cg a71.000000,71.000000,8 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Delta t:} .EQN 0 8 44 0 0 {0:\Dt}NAME:0.5 .TXT 0 20 286 0 0 Cg a49.000000,49.000000,11 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Iterations:} .EQN 0 12 287 0 0 {0:n}NAME:60 .TXT 6 -40 41 0 0 Cg a71.000000,71.000000,19 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Acceleration noise:} .EQN 0 19 40 0 0 {0:a.noise}NAME:0.5 .TXT 7 -19 45 0 0 Cg a71.000000,71.000000,27 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Position Measurement noise:} .EQN 0 25 48 0 0 {0:PM.noise}NAME:10 .TXT 9 -25 28 0 0 Cg a71.000000,71.000000,18 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Transition Matrix:} .EQN 0 17 29 0 0 {0:a}NAME:({2,2}ö1ö{0:\Dt}NAMEö0ö1) .TXT 9 -17 30 0 0 Cg a71.000000,71.000000,19 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Measurement Matrix:} .EQN 0 20 31 0 0 {0:c}NAME:({1,2}ö0ö1) .TXT 8 -20 32 0 0 Cg a71.000000,71.000000,21 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Initial State Vector:} .EQN 0 19 33 0 0 ({0:x}NAME)[(0):({2,1}ö0ö0) .TXT 9 -19 34 0 0 Cg a71.000000,71.000000,23 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Initial State Estimate:} .EQN 0 21 35 0 0 ({0:x.hat}NAME)[(0):({0:x}NAME)[(0) .TXT 9 -21 36 0 0 Cg a71.000000,71.000000,25 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Process noise covariance:} .EQN 0 22 178 0 0 {0:Q}NAME:({0:a.noise}NAME)^(2)*({2,2}ö({0:\Dt}NAME)^(2)ö(({0:\Dt}NAME)^(3))/(2)ö(({0:\Dt}NAME)^(3))/(2)ö(({0:\Dt}NAME)^(4))/(4)) .TXT 10 -22 56 0 0 Cg a71.000000,71.000000,30 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Initial estimation covariance:} .EQN 0 24 57 0 0 ({0:P}NAME)[(0):{0:Q}NAME .TXT 6 -24 58 0 0 Cg a71.000000,71.000000,29 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Measurement error covariance:} .EQN 0 26 59 0 0 {0:R}NAME:({0:PM.noise}NAME)^(2) .TXT 6 -26 92 0 0 Cg a71.000000,71.000000,61 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}{\f1\fcharset2\fnil Symbol;}}\plain\cf1\fs20 \pard Define a matrix of random numbers with mean 0 and {\f1 s} = a{ \dn noise}:} .EQN 0 48 381 0 0 {0:randn.process}NAME:{0:rnorm}NAME({0:n}NAME+1,0,{0:a.noise}NAME) .TXT 6 -48 94 0 0 Cg a71.000000,71.000000,62 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}{\f1\fcharset2\fnil Symbol;}}\plain\cf1\fs20 \pard Define a matrix of random numbers with mean 0 and {\f1 s} = PM{ \dn noise}:} .EQN 0 49 383 0 0 {0:randn.measurement}NAME:{0:rnorm}NAME({0:n}NAME+1,0,{0:PM.noise}NAME) .EQN 1 47 390 0 0 {0:j}NAME:0;{0:n}NAME .TXT 2 -98 147 0 0 C x1,1,0,0 .TXT 7 2 357 0 0 Cg a71.000000,71.000000,21 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Simulate the process:} .EQN 0 21 356 0 0 ({0:x}NAME)[({0:j}NAME+1):{0:a}NAME*({0:x}NAME)[({0:j}NAME)+({0:randn.process}NAME)[({0:j}NAME)*({2,1}ö{0:\Dt}NAMEö(({0:\Dt}NAME)^(2))/(2)) .TXT 7 -21 362 0 0 Cg a71.000000,71.000000,25 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Simulate the measurement:} .EQN 0 25 363 0 0 ({0:z}NAME)[({0:j}NAME):{0:c}NAME*({0:x}NAME)[({0:j}NAME)+({0:randn.measurement}NAME)[({0:j}NAME) .TXT 7 -25 364 0 0 Cg a71.000000,71.000000,33 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Calculate the estimated position:} .EQN 0 27 365 0 0 {0:x.hat}NAME:((((({0:x.hat}NAME)[(0)){72}(({2,1}ö0ö0))){71}((({0:P}NAME)[(0)){72}({0:Q}NAME))){71}(((((((({0:s}NAME)[({0:j}NAME)){72}({0:c}NAME*({0:P}NAME)[({0:j}NAME)*({0:c}NAME){51}+{0:R}NAME)){71}((({0:K}NAME)[({0:j}NAME)){72}(({0:a}NAME*( {0:P}NAME)[({0:j}NAME)*({0:c}NAME){51})*((({0:s}NAME)[({0:j}NAME)))^(-1)))){71}((({0:I}NAME)[({0:j}NAME)){72}(({0:z}NAME)[({0:j}NAME)-{0:c}NAME*({0:a}NAME*({0:x.hat}NAME)[({0:j}NAME))))){71}((({0:P}NAME)[({0:j}NAME+1)){72}({0:a}NAME*({0:P}NAME)[( {0:j}NAME)*({0:a}NAME){51}+{0:Q}NAME-({0:K}NAME)[({0:j}NAME)*{0:c}NAME*({0:P}NAME)[({0:j}NAME)*({0:a}NAME){51}))){71}((({0:x.hat}NAME)[({0:j}NAME+1)){72}({0:a}NAME*({0:x.hat}NAME)[({0:j}NAME)+({0:K}NAME)[({0:j}NAME)*({0:I}NAME)[({0:j}NAME)))){79}(( {0:j}NAME){72}(0;{0:n}NAME)))){71}({0:x.hat}NAME) .TXT 11 -14 366 0 0 Cg a71.000000,71.000000,25 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Covariance of innovation:} .TXT 4 9 367 0 0 Cg a71.000000,71.000000,12 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Gain matrix:} .TXT 4 1 368 0 0 Cg a73.000000,73.000000,11 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Innovation:} .TXT 5 -14 369 0 0 Cg a71.000000,71.000000,31 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Covariance of prediction error:} .TXT 3 7 400 0 0 Cg a71.000000,71.000000,19 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard Estimated position:} .EQN 7 80 391 0 0 ({0:Pos}NAME)[({0:j}NAME):((({0:x}NAME)[({0:j}NAME)))[(0) .EQN 0 12 392 0 0 ({0:Pos.meas}NAME)[({0:j}NAME):((({0:z}NAME)[({0:j}NAME)))[(0) .EQN 0 16 393 0 0 ({0:Pos.hat}NAME)[({0:j}NAME):((({0:x.hat}NAME)[({0:j}NAME)))[(0) .EQN 0 19 394 0 0 ({0:t}NAME)[({0:j}NAME):{0:\Dt}NAME*{0:j}NAME .TXT 1 -143 370 0 0 Cg a71.000000,71.000000,15 {\rtf\ansi \deff0{\colortbl;\red10\green36\blue106;}{\fonttbl{\f0 \fcharset0\fnil Arial;}}\plain\cf1\fs20 \pard State estimate:} .EQN 1 0 376 0 0 &&(_n_u_l_l_&_n_u_l_l_)&({0:Pos}NAME)[({0:j}NAME),({0:Pos.meas}NAME)[({0:j}NAME),({0:Pos.hat}NAME)[({0:j}NAME)@&&(_n_u_l_l_&_n_u_l_l_)&({0:t}NAME)[({0:j}NAME) 0 0 1 1 1 0 0 1 1 Time (seconds) 0 0 1 1 1 0 0 1 1 0 4 3 0 1 1 True Position 0 2 1 0 1 1 Measured Pos 0 1 0 0 1 1 Estimated Pos 0 4 3 0 1 1 NO-TRACE-STRING 0 1 4 0 1 1 NO-TRACE-STRING 0 2 5 0 1 1 NO-TRACE-STRING 0 3 6 0 1 1 NO-TRACE-STRING 0 4 0 0 1 1 NO-TRACE-STRING 0 1 1 0 1 1 NO-TRACE-STRING 0 2 2 0 1 1 NO-TRACE-STRING 0 3 3 0 1 1 NO-TRACE-STRING 0 4 4 0 1 1 NO-TRACE-STRING 0 1 5 0 1 1 NO-TRACE-STRING 0 2 6 0 1 1 NO-TRACE-STRING 0 3 0 0 1 1 NO-TRACE-STRING 0 4 1 0 1 1 NO-TRACE-STRING 1 0 2 67 38 10 0 2 Kalman Filter Performance