Stepan Salov edited section_addcontentsline_toc_section_x__.tex  almost 8 years ago

Commit id: 4dd94c7d2738f1baae7e7c99f9ce8265f8c286f2

deletions | additions      

       

\section*{Алгоритм Калмана}  \addcontentsline{toc}{section}{Алгоритм Калмана}  Идея Калмана состоит в том, чтобы получить наилучшее приближение к истинной координате $x(t+1)$,мы $x_{t+1}$,мы  должны выбрать золотую середину между показанием $z(t+1)$ $z_{t+1}$  неточного сенсора и $x^{opt}_{t}+a\cdot t+2.1$ — нашим предсказанием того, что мы ожидали от него увидеть. Показанию сенсора мы дадим вес $K$, а на предсказанное значение останется вес $(1-K)$\cite{doe:website}: \begin{equation}\label{xopt}  x^{opt}_{t+1}=K_{t+1}\cdot z(t+1)+(1-K_{t+1})\cdot z_{t+1}+(1-K_{t+1})\cdot  (x^{opt}_{t}+a\cdot t+2.1) \end{equation}  где $K_{t+1}$ - коэффициент Калмана, зависящий от шага итерации. \\  Мы должны выбрать $K_{t+1}$ таким, чтобы получившееся оптимальное значение координаты $x^{opt}_{t+1}$ было бы наиболее близкое к истиной координате $x(t+1)$. $x_{t+1}$.  В общем случае, чтобы найти точное значение коэффициента Калмана $K_{t+1}$ , нужно просто минимизировать ошибку:  \begin{equation}\label{et}  e(t+1)=x(t+1)-x^{opt}_{t+1} e_{t+1}=x_{t+1}-x^{opt}_{t+1}  \end{equation}  Подставляем в уравнение (\ref{xopt}) выражение (\ref{et}) и упрощаем:  $$  e(t+1)=x(t+1)–K_{t+1}\cdot z(t+1)-(1-K_{t+1})\cdot e_{t+1}=x_{t+1}–K_{t+1}\cdot z_{t+1}-(1-K_{t+1})\cdot  (x^{opt}_{t}+a\cdot t+2.1)=\\=x(t+1)-K_{t+1}\cdot (x(t+1)+N_{t+1})-(1-K_{t+1})\cdot t+2.1)=\\=x_{t+1}-K_{t+1}\cdot (x_{t+1}+N_{t+1})-(1-K_{t+1})\cdot  (x^{opt}_{t}+a\cdot t+2.1)=\\=x(t+1)\cdot t+2.1)=\\=x_{t+1}\cdot  (1-K_{t+1})-K_{t+1}\cdot (x(t+1)+N_{t+1})-(1-K_{t+1})\cdot (x_{t+1}+N_{t+1})-(1-K_{t+1})\cdot  (x^{opt}_{t}+a\cdot t+2.1)=\\=(1-K_{t+1})\cdot (x(t+1)–x^{opt}_{t}–a\cdot (x_{t+1}–x^{opt}_{t}–a\cdot  t–2.1)–K_{t+1}\cdot N_{t+1}=\\=(1-K_{t+1})\cdot (x(t)+a\cdot (x_{t}+a\cdot  t+2.1+E_{t}–x^{opt}_{t}–a\cdot t–2.1)–K_{t+1}\cdot N_{t+1}=\\=(1-K_{t+1})\cdot (x(t)–x^{opt}_{t}+E_{t})–K_{t+1}\cdot (x_{t}–x^{opt}_{t}+E_{t})–K_{t+1}\cdot  N_{t+1}=\\=(1-K_{t+1})\cdot (e(t)+E_{t})–K_{t+1}\cdot (e_{t}+E_{t})–K_{t+1}\cdot  N_{t+1}$$ Таким образом, получаем:  $$  e(t+1)=(1-K_{t+1})\cdot (e(t)+E_{t})–K_{t+1}\cdot e_{t+1}=(1-K_{t+1})\cdot (e_{t}+E_{t})–K_{t+1}\cdot  N_{t+1} $$  Мы будем минимизировать среднее значение от квадрата ошибки:  $E(e^{2}(t+1))\longrightarrow\min$ $E(e^{2}_{t+1})\longrightarrow\min$  Т.к. все входящие в $e(t+1)$) $e_{t+1}$)  случайные величины независимые и средние значения ошибок сенсора и модели равны нулю: $E[E_{t}]=E[N_{t+1}]=0$, и все перекрестные значения равны нулю: $E[E_{t}\cdot N_{t+1}]=E[e(t)\cdot E_{t}]=E[e(t)\cdot N_{t+1}]=E[e_{t}\cdot E_{t}]=E[e_{t}\cdot  N_{t+1}]=0$, то получаем: \begin{equation}\label{Ee}  E(e^{2}(t+1))=(1-K_{t+1})^{2}\cdot (E(e^{2}(t))+D(E_{t}))+K^{2}_{t+1}\cdot E(e^{2}_{t+1})=(1-K_{t+1})^{2}\cdot (E(e^{2}_{t})+D(E_{t}))+K^{2}_{t+1}\cdot  D(N_{t}) \end{equation}  Где $D(E_{t})$ и $D(N_{t+1})$-дисперсии случайных величин $E_{t}$ и $N_{t+1}$.  Найдем минимальное значение для выражения (\ref{Ee}) (т.е. найдем производную):  $$  -2\cdot (1-K_{t+1})\cdot (E(e^{2}(t))+D(E_{t}))+2\cdot (E(e^{2}_{t})+D(E_{t}))+2\cdot  K_{t+1}\cdot D(N_{t})=0\\ -E(e^{2}(t))–D(E_{t})+K_{t+1}\cdot E(e^{2}(t))+K_{t+1}\cdot -E(e^{2}_{t})–D(E_{t})+K_{t+1}\cdot E(e^{2}_{t})+K_{t+1}\cdot  D(E_{t})+K_{t+1}\cdot D(N_{t})=0\\ K_{t+1}=\frac{E(e^{2}(t))+D(E_{t})}{E(e^{2}(t))+D(E_{t})+D(N_{t})} K_{t+1}=\frac{E(e^{2}_{t})+D(E_{t})}{E(e^{2}_{t})+D(E_{t})+D(N_{t})}  $$  Таким образом, получаем такое $K_{t+1}$, что выражение $E(e^{2}(t+1))$ $E(e^{2}_{t+1})$  будет минимальным: $$  K_{t+1}=\frac{E(e^{2}(t))+D(E_{t})}{E(e^{2}(t))+D(E_{t})+D(N_{t})} K_{t+1}=\frac{E(e^{2}_{t})+D(E_{t})}{E(e^{2}_{t})+D(E_{t})+D(N_{t})}  $$  Заметим, что мы не знаем закон распределения случайных величин, но нам известны их дисперсии: $\delta^{2}_{E}$ и $\delta^{2}_{N}$. Заметим, что дисперсии не зависят от t, потому что законы распределения не зависят от него.  Подставляем в выражение для среднеквадратичной ошибки $E(e^{2}(t+1))$ $E(e^{2}_{t+1})$  минимизирующее ее значение коэффициента Калмана $K_{t+1}$\cite{Ramazan} и получаем: $$  E(e^{2}(t+1))=(1-\frac{E(e^{2}(t))+\delta^{2}_{E}}{E(e^{2}(t))+\delta^{2}_{E}+\delta^{2}_{N}})^{2}\cdot (E(e^{2}(t))+\delta^{2}_{E})+(\frac{E(e^{2}(t))+\delta^{2}_{E}}{E(e^{2}(t))+\delta^{2}_{E}+\delta^{2}_{N}})^{2}\cdot E(e^{2}_{t+1})=(1-\frac{E(e^{2}_{t})+\delta^{2}_{E}}{E(e^{2}_{t})+\delta^{2}_{E}+\delta^{2}_{N}})^{2}\cdot (E(e^{2}_{t})+\delta^{2}_{E})+(\frac{E(e^{2}_{t})+\delta^{2}_{E}}{E(e^{2}_{t})+\delta^{2}_{E}+\delta^{2}_{N}})^{2}\cdot  \delta^{2}_{N} $$  Пусть: $E(e^{2}(t))=a; $E(e^{2}_{t})=a;  \delta^{2}_{E}=b; \delta^{2}_{N}=c;$ Тогда:  $$  E(e^{2}(t+1))=(1-\frac{a+b}{a+b+c})^{2}\cdot E(e^{2}_{t+1})=(1-\frac{a+b}{a+b+c})^{2}\cdot  (a+b)+(\frac{a+b}{a+b+c})^{2}\cdot c=\frac{c^{2}\cdot (a+b)}{(a+b+c)^{2}}+\frac{c\cdot (a+b)^{2}}{(a+b+c)^{2}}=\\=\frac{c\cdot (a+b)\cdot (c+a+b)}{(a+b+c)^{2}}=\frac{c\cdot (a+b)}{a+b+c}=\frac{\delta^{2}_{N}\cdot (E(e^{2}(t))+\delta^{2}_{E})}{E(e^{2}(t))+\delta^{2}_{E}+\delta^{2}_{N}} (E(e^{2}_{t})+\delta^{2}_{E})}{E(e^{2}_{t})+\delta^{2}_{E}+\delta^{2}_{N}}  $$  Таким образом, получаем:  $$  E(e^{2}(t+1))=\frac{\delta^{2}_{N}\cdot (E(e^{2}(t))+\delta^{2}_{E})}{E(e^{2}(t))+\delta^{2}_{E}+\delta^{2}_{N}} E(e^{2}_{t+1})=\frac{\delta^{2}_{N}\cdot (E(e^{2}_{t})+\delta^{2}_{E})}{E(e^{2}_{t})+\delta^{2}_{E}+\delta^{2}_{N}}  - среднее\ значение\ квадрата\ ошибки $$  Таким образом, мы получили формулу для вычисления коэффициента Калмана.