Где \(\xi_{k}\) - ошибка модели (случайная величина), \(\eta_{k}\) - ошибка сенсора (случайная величина). Обозначим \(u_{k}=k\cdot sin(k)\) - величина, контролирующая эволюцию системы, известная по построенной физической модели.
Нам известно:

  • cредние значения ошибок равны нулю: \(E\xi_{k}=E\eta_{k}=0\);

  • известны дисперсии случайных величин, которые не зависят от \(k\): \(\sigma_{\xi}^{2}\) и \(\sigma_{\eta}^{2}\)

  • все случайные ошибки независимы друг от друга.

Для описания работы алгоритма возьмем \(k\)-й шаг шаг и предположим, что для него уже найдено \(x_{k}^{opt}\) - значение, отфильтрованное фильтром Калмана, и которое довольно хорошо приближает истинное значение амплитуды. Поскольку заранее известно управление \(u\) из вашеописанной системы уравнений (\ref{sys1}), то можно предположить, что на следующем шаге система изменится согласно этому закону и значение с сенсора будут близки к \(x_{k}^{opt}+u_{k}\).

Идея Калмана: необходимо получить наилучшее приближение к истинному значению амплитуды \(x_{k+1}\). Для этого нужно выбрать ”золотую середину” между показанием неточного сенсора и ожидаемым значением \cite{e1337d}.

Для этого введем Коэффициент Калмана \(K\), который зависит от шага итерации. Показанию сенсора будет соответствовать вес \(K_{k+1}\), а предсказанному значению \(1-K_{k+1}\):

\begin{equation} \label{optim} \label{optim}{x_{k+1}^{opt}=K_{k+1}+y_{k+1}+(1-K_{k+1})\cdot(x_{k}^{opt}+u_{k}){}}\\ \end{equation}

Необходимо выбрать коэффициент Калмана \(K_{k+1}\) таким, чтобы получившееся оптимальное значение амплитуды \(x_{k+1}^{opt}\) было бы наиболее близко к истинному.
В общем случае, для нахождения значения коэффициента Калмана необходимо минимизировать ошибку:

\begin{equation} e_{k+1}=x_{k+1}-x_{k+1}^{opt}\nonumber \\ \end{equation}

Подставляя (\ref{optim}) в данное выражение получаем:

\begin{equation} e_{k+1}=(1-K_{k+1})(e_{k+1}+\xi_{k+1})-K_{k+1}\cdot\eta_{k+1}\nonumber \\ \end{equation}

Для минимизации ошибки будем минимизировать среднее значение от квадрата ошибки:

\begin{equation} E(e^{2}_{k+1})\rightarrow min\nonumber \\ \end{equation}

Выражение выше принимает минимальное значение в том случае, когда производная равна нулю:

\begin{equation} {-2\cdot(1-K_{k+1})\cdot(Ee^{2}_{k}+\sigma_{\xi}^{2})+2\cdot K_{k+1}\cdot\sigma_{\eta}^{2}=0}\nonumber \\ \end{equation}

Раскрываем скобки:

\begin{equation} {-Ee^{2}_{k}–\sigma_{\xi}^{2}+K_{k+1}\cdot Ee^{2}_{k}+K_{k+1}\cdot\sigma_{\xi}+K_{k+1}\cdot\sigma_{\eta}^{2}=0}\nonumber \\ \end{equation}

Коэффициент Калмана примет следующий вид:

\begin{equation} K_{k+1}=\frac{Ee^{2}_{k}+\sigma_{\xi}^{2}}{Ee^{2}_{k}+\sigma_{\xi}^{2}+\sigma_{\eta}^{2}}\\ \nonumber \\ \end{equation}