Ponomarev Dmitriy edited untitled.tex  almost 8 years ago

Commit id: 24b23cd13203b7be4f854f2de03d0d48c482718b

deletions | additions      

       

\section{Алгоритм Калмана} Фильтр Калмана~— эффективный рекурсивный фильтр, который оценивает состояние линейной динамической системы по серии неточных измерений.Назван в честь Рудольфа Калмана. \section{Постановка задачи} Обозначим за $x_t$ величину которую мы считываем с датчика и которую необходимо отфильтровать. Уравнение этой величины:\\ \begin{equation} x_k+1 = x_k + a\cdot s\cdot tdt + \xi_k \end{equation} Где a,s – параметры, $\xi_k$ – случайная величина, внешние влияния на движение.\\ Поскольку у датчика есть погрешность, мы получаем координату с погрешностью $\eta_k$:\\ \begin{equation} z_k = x_k + \eta_k \end{equation} Далее нам нужно найти фильтрованную величину $x^{opt}$. Для этого воспользуемся формулой:\\ \begin{equation} x^{opt}_k = K\cdot z_{k+1} + (1-K)\cdot (x^{opt}_k + u_k) \end{equation} где $K_{k+1}$ - показания сенсора, $1-K_{k+1}$ - предсказанное значение. Необходимо выбрать коэффициент Калмана $K_{k+1}$ таким, чтобы $x^{opt}_{k+1} \approx x_{k+1}$. Для этого минимизируем ошибку:\\ \begin{equation} {e1}e_{k+1} = x_{k+1} - x^{opt}_{k+1} \end{equation}  \section{Код на MATLAB}