Introducción al concepto de filtro de Kalman (filtro de Kalman) y derivación detallada de la fórmula

filtro Kalman

El filtro de Kalman es un filtro recursivo de alta eficiencia ( filtro autorregresivo ) que puede estimar el estado de un sistema dinámico a partir de una serie de mediciones incompletas y ruidosas . El filtrado de Kalman considerará la distribución conjunta en cada momento según el valor de cada medida en diferentes momentos, y luego generará una estimación de la variable desconocida, por lo que será más preciso que el método de estimación basado en una sola medida. El filtrado de Kalman recibe su nombre de Rudolf Kalman, uno de los principales contribuyentes .

El algoritmo del filtro de Kalman es un procedimiento de dos pasos. En el paso de estimación, el filtro de Kalman produce una estimación sobre el estado actual, que también incluye la incertidumbre. Simplemente observe la siguiente medición (que debe contener algún grado de error, incluido el ruido aleatorio). Las estimaciones se actualizan a través de un promedio ponderado y las mediciones con mayor certeza se ponderan más. El algoritmo es iterativo y se puede ejecutar en un sistema de control en tiempo real , requiriendo solo las mediciones de entrada actuales, los valores calculados en el pasado y su matriz de incertidumbre, y no se requiere ninguna otra información pasada.

Aplicaciones

Un ejemplo típico de filtrado de Kalman es predecir las coordenadas y la velocidad de la posición del objeto a partir de un conjunto limitado de secuencias ruidosas de observaciones de la posición del objeto ( posiblemente sesgadas ) . Se puede encontrar en muchas aplicaciones de ingeniería (como radar , visión artificial ). Al mismo tiempo, el filtrado de Kalman también es un tema importante en la teoría de control y la ingeniería de sistemas de control.

Por ejemplo, con el radar, la gente está interesada en su capacidad para rastrear objetivos. Pero los valores medidos de la posición, la velocidad y la aceleración del objetivo suelen ser ruidosos en cualquier momento. El filtrado de Kalman utiliza la información dinámica del objetivo para tratar de eliminar la influencia del ruido y obtener una buena estimación de la posición del objetivo . Esta estimación puede ser una estimación de la posición de destino actual (filtrado), una estimación de posiciones futuras (predicción) o una estimación de posiciones pasadas (interpolación o suavizado).

Modelo de sistema dinámico básico

El filtrado de Kalman se basa en álgebra lineal y modelos ocultos de Markov (modelo oculto de Markov). Su sistema dinámico básico se puede representar mediante una cadena de Markov construida sobre un operador lineal perturbado por el ruido gaussiano (es decir, ruido distribuido normalmente) . El estado del sistema se puede representar mediante un vector cuyos elementos son números reales . Con cada aumento del tiempo discreto , este operador lineal actuará sobre el estado actual para generar un nuevo estado, y también introducirá algo de ruido y, al mismo tiempo, también se incorporará cierta información de control del controlador conocida del sistema. Al mismo tiempo, otro operador lineal, corrompido por el ruido, produce la salida visible de estos estados ocultos.

Para utilizar el filtro de Kalman para estimar el estado interno del proceso observado a partir de una serie de datos de observación ruidosos, el proceso debe modelarse bajo el marco del filtro de Kalman. Es decir, para cada paso k , defina la matriz F k F_kFk, H k H_kHk, Q k Q_kqk, R k R_kRk, a veces también es necesario definir B k B_kBk,como sigue.

El modelo de filtro de Kalman asume k + 1 k+1k+El estado real en el momento 1 es dekkEl estado en el tiempo k evoluciona y se ajusta a la ecuación de estado:
xk = F kxk − 1 + B kuk + wk x_{k}=F_kx_{k-1}+B_{k}u_{k}+w_{k}Xk=FkXk - 1+Bktuk+wk
en

  • F k F_kFkestá actuando sobre xk − 1 x_{k-1}Xk - 1El modelo de transición de estado (matriz o vector) en .
  • B k B_kBkestá actuando sobre el controlador vector uk u_ktukEl modelo de control de entrada en .
  • semana semanawkes el ruido del proceso, y se supone que su media es cero, y la matriz de covarianza es Q k Q_kqkdistribución normal multivariante.

​wk ∼ N ( 0 , Q k ) w_k{\sim} N(0,Q_k)wk N ( 0 ,qk)

donde cov { w ( k ) } = Q ( k ) cov\{w(k)\}=Q(k)co v { w ( k )}=Q ( k ) representa la matriz de covarianza.

​ En el tiempo k, para bienes inmuebles xk x_kXkUna medida de zk z_kzkSatisfaga la siguiente fórmula, es decir, la ecuación de observación :
zk = H kxk + vk z_k=H_kx_k+v_kzk=HkXk+vk
donde H k H_kHkes el modelo de observación, que asigna el espacio de estado real al espacio de observación, vk v_kvkes el ruido de observación, su media es cero, y la matriz de covarianza es R k R_kRkY obedecer la distribución normal.
vk ∼ norte ( 0 , R k ) v_k{\sim}N(0,R_k)vk N ( 0 ,Rk)
dondecov { v ( k ) } = R ( k ) cov\{v(k)\}=R(k)co v { v ( k )}=R ( k ) representa la matriz de covarianza.

​ Estado inicial y ruido en cada momento { x 0 , w 1 , … , wk , v 1 , … , vk } \{x_0,w_1,…,w_k,v_1,…,v_k\}{ x0,w1,,wk,v1,,vk} se consideranindependientesentre sí.

lógica algorítmica

El filtrado de Kalman es una estimación recursiva , es decir, el valor estimado del estado actual se puede calcular siempre que se conozca el valor estimado del estado en el momento anterior y el valor observado del estado actual, por lo que no es necesario registrar información histórica de observaciones o estimaciones. El filtro de Kalman se diferencia de la mayoría de los filtros en que es un filtro de dominio de tiempo puro . No es necesario diseñarlo en el dominio de frecuencia y luego convertirlo al dominio de tiempo como de dominio de frecuenciay otroslos filtros de paso bajo

El filtrado de Kalman se divide principalmente en dos partes: predicción y actualización Necesita construir la ecuación de estado y la ecuación de observación del sistema, y ​​se conoce el estado inicial del sistema. En la fase de predicción, el filtro utiliza estimaciones del estado anterior para hacer una estimación del estado actual. En la fase de actualización, el filtro optimiza la predicción obtenida en la fase de predicción con observaciones del estado actual para obtener una nueva estimación más precisa.

El estado del filtro de Kalman está representado por las siguientes dos variables:

  • X ^ k ∣ k = E ( X k ∣ Y 1 , Y 2 , … , Y k ) \hat{X}_{k|k}=E(X_k|Y_1,Y_2,…,Y_k) X^k k=mi ( XkY1,Y2,,Yk) representa la estimación del estado en el tiempo k.
  • X ^ k ∣ k − 1 = E ( X k − 1 ∣ Y 1 , Y 2 , … , Y k − 1 ) \hat{X}_{k|k-1}=E(X_{k-1}|Y_1,Y_2,…,Y_{k-1}) X^k k 1=mi ( Xk - 1Y1,Y2,,Yk - 1) representa la predicción del estado en el tiempo k+1 dado el estado de los k momentos pasados.
  • PAGS ^ k ∣ k \sombrero{P}_{k|k}PAG^k k, la matriz de covarianza del error de estimación posterior, que mide la precisión del valor estimado.

Entonces el proceso de predicción y actualización (Predicción-Corrección) es el siguiente:
X ^ k − 1 ∣ k − 1 → P rediction X ^ k ∣ k − 1 → C corrección X ^ k ∣ k \hat{X}_{ k-1 |k-1}\xrightarrow{Predicción}\hat{X}_{k|k-1}\xrightarrow{Corrección}\hat{X}_{k|k}X^k 1∣ k 1PREDICCIÓN _ _ _ _ _ _ _ _ X^k k 1C orrección _ _ _ _ X^k k

1. Predecir X ^ k − 1 ∣ k − 1 ⇒ X ^ k ∣ k − 1 \hat{X}_{k-1|k-1}\Rightarrow\hat{X}_{k|k-1}X^k 1∣ k 1X^k k 1

En el paso de predicción, el estado en el momento actual se predice en función del estado y la cantidad de control en el momento anterior. Este valor predicho es una estimación porque no tiene en cuenta los valores observados en el momento actual. La matriz de covarianza de error del valor predicho se calcula a partir de la matriz de covarianza de error y la matriz de covarianza de ruido del sistema en el momento anterior.
{ X ^ k ∣ k − 1 = F kx ^ k − 1 + segundo kuk PAGS k ∣ k − 1 = F k PAGS k − 1 ∣ k − 1 F k T + Q k \begin{casos} \hat{x }_{k|k-1}=F_{k}\hat{x}_{k-1}+B_ku_{k}\\ \\ P_{k|k-1}=F_{k}P_{k -1|k-1}F_k^T+Q_k \end{casos} X^k k 1=FkX^k - 1+BktukPAGk k 1=FkPAGk 1∣ k 1FkT+qk

2. 更新X ^ n ∣ n − 1 ⇒ X ^ n ∣ n \hat{X}_{n|n-1}\Rightarrow\hat{X}_{n|n}X^norte norte 1X^norte norte

En el paso de actualización, el valor estimado del estado en el momento actual se calcula de acuerdo con el valor observado y el valor pronosticado en el momento actual. Esta estimación es una estimación más precisa porque ya tiene en cuenta las observaciones en el momento actual. La matriz de covarianza de error de la estimación de estado se calcula a partir de la matriz de covarianza de error, la matriz de covarianza de ruido de observación y la ganancia de Kalman calculada en el paso de predicción.
{ K k = PAGS k ∣ k - 1 H k T ( H k PAGS k ∣ k - 1 H k T + R k ) - 1 X ^ k ∣ k = X ^ k ∣ k - 1 + K k ( zk - H kx ^ k ∣ k − 1 ) PAGS k ∣ k = ( yo − K k H k ) PAGS k ∣ k − 1 \begin{cases} K_{k}=P_{k|k-1}H^T_{ k}{(H_{k}P_{k|k-1}H^T_{k}+R_{k})^{-1}}\\ \\ \hat{x}_{k|k}= \hat{x}_{k|k-1}+K_{k}(z_k-H_{k}\hat{x}_{k|k-1})\\ \\ P_{k|k}= (I-K_{k}H_{k})P_{k|k-1} \end{casos} kk=PAGk k 1HkT( HkPAGk k 1HkT+Rk)1X^k k=X^k k 1+kk( zkHkX^k k 1)PAGk k=( yokkHk) pagk k 1
Las cinco fórmulas anteriores son las fórmulas básicas del filtrado de Kalman. La forma más concisa y fácil de entender del paso de actualización es calcular primero las siguientes tres cantidades:
{ y ^ k = zk − H kx ^ k ∣ k − 1 (medida residual) S k = H k P k ∣ k H k T + R k (covarianza residual de medición) K k = P k ∣ k − 1 H k TS k − 1 (ganancia óptima de Kalman) \begin{casos} \hat{y}_{k}=z_{k } -H_k\hat{x}_{k|k-1}\quad(medida residual)\\ \\ S_{k}=H_{k}P_{k|k}H^T_{k}+R_{ k}\quad(covarianza residual de medición)\\ \\ K_{k}=P_{k|k-1}H^T_{k}{S_{k}^{-1}}\quad(ganancia de Kalman óptima) \end{casos} y^k=zkHkX^k k 1( medida residual )Sk=HkPAGk kHkT+Rk( Covarianza residual de medida )kk=PAGk k 1HkTSk 1( Ganancia óptima de Kalman )
Estos se utilizan luego para actualizar las variables de filtro:
{ x ^ k ∣ k = x ^ k ∣ k − 1 + K ky ^ k (estimación de estado actualizada) P k ∣ k = ( I − K k H k ) P k ∣ k − 1 (estimación de covarianza actualizada) \begin{cases} \hat{x}_{k|k}=\hat{x}_{k|k-1}+K_{k}\hat{y }_{ k}\quad(estimación de estado actualizada)\\ \\ P_{k|k}=(I-K_{k}H_{k})P_{k|k-1}\quad(estimación de varianza de asociación actualizada) \end {casos} X^k k=X^k k 1+kky^k( estimación actualizada del estado )PAGk k=( yokkHk) pagk k 1( estimación de covarianza actualizada )
Usa la fórmula anterior para calcular P k ∣ k P_{k|k}PAGk kVálido solo en la ganancia óptima de Kalman. Para otras ganancias, la fórmula es más complicada, consulte la derivación .

3. Proceso de filtrado de Kalman

inserte la descripción de la imagen aquí

Derivación de fórmula

1. Definición de símbolo

Indique la ecuación
xk = F kxk − 1 + B kuk + wk x_{k}=F_kx_{k-1}+B_{k}u_{k}+w_{k}Xk=FkXk - 1+Bktuk+wk
Entre ellos uk u_ktukes la señal de entrada, xk − 1 x_{k-1}Xk - 1es la variable de estado, wk w_kwkIndica el ruido del proceso. donde cov { w ( k ) } = Q ( k ) cov\{w(k)\}=Q(k)co v { w ( k )}=Q ( k )

Ecuación de observación
zk = H kxk + vk z_k=H_kx_k+v_kzk=HkXk+vk
donde zk z_kzkes la variable observada, wk w_kwkrepresenta el ruido de observación. donde cpv { w ( k ) } = R ( k ) cpv\{w(k)\}=R(k)c pag v { w ( k )}=R ( k )

Estado error de estimación
x ~ k ∣ k − 1 = xk − x ^ k ∣ k − 1 \tilde{x}_{k|k-1}=x_k-\hat{x}_{k|k-1}X~k k 1=XkX^k k 1
donde x ~ k ∣ k − 1 \tilde{x}_{k|k-1}X~k k 1Indica que el estimado k − 1 k-1k1 momento paraxk x_kXkestimar. En el tiempo k-1, cualquier valor en el tiempo k solo se puede estimar (prediciendo valores futuros) .

Estado de la ecuación de estimación
x ^ k ∣ k − 1 = F kx ^ k − 1 + B kuk \hat{x}_{k|k-1}=F_k\hat{x}_{k-1}+B_{k }Reino Unido}X^k k 1=FkX^k - 1+Bktuk
Error de estimación de la observación
e ~ k = zk − z ^ k ∣ k − 1 \tilde{e}_{k}=z_{k}-\hat{z}_{k|k-1}mi~k=zkz^k k 1
Ecuación de estimación de observación
z ^ k ∣ k − 1 = H kx ^ k ∣ k − 1 \hat{z}_{k|k-1}=H_k\hat{x}_{k|k-1}z^k k 1=HkX^k k 1
Con base en las fórmulas anteriores, se pueden definir dos matrices de covarianza de error importantes:

Matriz de covarianza del error de estado
P k ∣ k − 1 = cov { x ~ k ∣ k − 1 } P_{k|k-1}=cov\{\tilde{x}_{k|k-1}\}PAGk k 1=co v { X~k k 1}

Matriz de covarianza del error de observación
SK = cov { e ~ k } S_{K}=cov\{\tilde{e}_{k}\}Sk=co v { mi~k}
El propósito del filtrado de Kalman es obtener unaexpresión de estimación iterativa que pueda corregirse continuamente en función de los errores, y su forma específica debe ser la siguiente:
x ^ k ∣ k = x ^ k ∣ k − 1 + K ke ~ k \ sombrero{x}_ {k|k}=\sombrero{x}_{k|k-1}+K_k\tilde{e}_kX^k k=X^k k 1+kkmi~k
Es decir, el valor previsto se corrige en función del error. Aquí K k K_kkkEs la ganancia de Kalman. Por lo tanto, necesitamos derivar una expresión iterativa para las variables utilizadas y encontrar la ganancia de Kalman.

2. Derivación

Derivación de la matriz de covarianza del error

Matriz de covarianza de error de estado :

PAGS k ∣ k − 1 = cov { xk − x ^ k ∣ k − 1 } = cov { F kxk − 1 + segundo kuk + wk − F kx ^ k − 1 − segundo kuk } = cov { F k ( xk − 1 − X ^ k − 1 ) + semana } = cov { F k ( xk − 1 − X ^ k − 1 ) } + cov { semana } = F kcov { xk − 1 − X ^ k − 1 } F k T + Q k = F k PAGS k ∣ k F k T + Q k \begin{align}P_{k|k-1}&=cov\{x_k-\hat{x}_{k|k-1}\ }\\ &=cov\{F_kx_{k-1}+B_ku_k+w_k-F_k\hat{x}_{k-1}-B_{k}u_{k}\}\\ &=cov\{F_k (x_{k-1}-\sombrero{x}_{k-1})+w_k\}\\ &=cov\{F_k(x_{k-1}-\sombrero{x}_{k-1 })\}+cov\{w_k\}\\ &=F_kcov\{x_{k-1}-\hat{x}_{k-1}\}F^T_k+Q_k\\ &=F_kP_{k |k}F^T_k+Q_k \end{alinear}PAGk k 1=co v { xkX^k k 1}=co v { FkXk - 1+Bktuk+wkFkX^k - 1Bktuk}=co v { Fk( Xk - 1X^k - 1)+wk}=co v { Fk( Xk - 1X^k - 1)}+co v { wk}=Fkco v { xk - 1X^k - 1} FkT+qk=FkPAGk kFkT+qk
Aquí obtenemos P k ∣ k P_{k|k}PAGk ka PAGS k ∣ k − 1 PAGS_{k|k-1}PAGk k 1Una forma recursiva de P k ∣ k P_{k|k}PAGk kLa forma de notación es para la conveniencia de la derivación posterior, es decir, para obtener
P k − 1 ∣ k − 1 → P k ∣ k − 1 → P k ∣ k \begin{align} P_{k-1|k-1 }\ flecha derecha P_{k|k-1}\flecha derecha P_{k|k} \end{align}PAGk 1∣ k 1PAGk k 1PAGk k
De manera similar, se puede obtener la forma recursiva de la matriz de covarianza del error de observación
: S k = H k P k ∣ k − 1 H k T + R k \begin{align} S_{k}=H_kP_{k|k-1} H ^T_k+R_k \end{alinear}Sk=HkPAGk k 1HkT+Rk
Se puede encontrar que S k S_kSky Sk − 1 S_{k-1}Sk - 1No hay conexión directa, por lo que S k S_k no esSkEscrito como S k ∣ k − 1 S_{k|k-1}Sk k 1forma.

Por lo tanto, todavía falta P k ∣ k − 1 → P k ∣ k P_{k|k-1}\rightarrow P_{k|k}PAGk k 1PAGk krecursivo

Derivación de la matriz de covarianza posterior

Por definición, la covarianza del error P k ∣ k P_{k|k}PAGk kLa definición de es la siguiente, simplemente sustituya la definición anterior para deducir y simplificar línea por línea.
PAGS k ∣ k = cov { x ~ k ∣ k } = cov { xk − x ^ k ∣ k } = cov { xk − ( x ^ k ∣ k − 1 + K ke ~ k ) } = cov { xk − ( X ^ k ∣ k − 1 + K k ( zk − z ^ k ∣ k − 1 ) ) } = cov { xk − ( X ^ k ∣ k − 1 + K k ( zk − H kx ^ k ∣ k − 1 ) ) } = cov { xk − ( x ^ k ∣ k − 1 + K k ( H kxk + vk − H kx ^ k ∣ k − 1 ) ) } = cov { ( xk − x ^ k ∣ k − 1 ) − K k H k ( xk − X ^ k ∣ k − 1 ) − K kvk } = cov { ( yo − K k H k ) ( xk − x ^ k ∣ k − 1 ) − K kvk } = cov { ( yo − K k H k ) ( xk − X ^ k ∣ k − 1 ) } + cov { K kvk } = ( yo − K k H k ) cov { ( xk − X ^ k ∣ k − 1 ) } ( yo - K k H k ) T + K kcov { vk } K k T = ( yo - K k H k ) PAGS k ∣ k - 1 ( yo - K k H k ) T + K k R k K k T \begin {alinear} P_{k|k}&=cov\{\tilde{x}_{k|k}\} \\&=cov\{x_k-\hat{x}_{k|k}\} \ \&=cov\{x_k-(\hat{x}_{k|k-1}+K_k\tilde{e}_k)\}\\&=cov\{x_k-(\hat{x}_{k|k-1}+K_k(z_{k}-\hat{z}_{k|k-1}))\} \\ &=cov\{x_k-(\hat{x}_{k|k-1}+K_k(z_{k}-H_k\hat{x}_{k|k-1}))\} \\& =cov\{x_k-(\hat{x}_{k|k-1}+K_k(H_kx_k+v_k-H_k\hat{x}_{k|k-1}))\} \\&=cov \{(x_k-\hat{x}_{k|k-1})-K_kH_k(x_k-\hat{x}_{k|k-1})-K_kv_k\} \\&=cov\{( I-K_kH_k)(x_k-\hat{x}_{k|k-1})-K_kv_k\} \\&=cov\{(I-K_kH_k)(x_k-\hat{x}_{k|k -1})\}+cov\{K_kv_k\} \\&=(I-K_kH_k)cov\{(x_k-\hat{x}_{k|k-1})\}(I-K_kH_k)^ T+K_kcov\{v_k\}K_k^T \\&=(I-K_kH_k)P_{k|k-1}(I-K_kH_k)^T+K_kR_kK_k^T \end{align}\\&=cov\{(I-K_kH_k)(x_k-\hat{x}_{k|k-1})\}+cov\{K_kv_k\} \\&=(I-K_kH_k)cov\{ (x_k-\hat{x}_{k|k-1})\}(I-K_kH_k)^T+K_kcov\{v_k\}K_k^T \\&=(I-K_kH_k)P_{k|k -1}(I-K_kH_k)^T+K_kR_kK_k^T \end{alinear}\\&=cov\{(I-K_kH_k)(x_k-\hat{x}_{k|k-1})\}+cov\{K_kv_k\} \\&=(I-K_kH_k)cov\{ (x_k-\hat{x}_{k|k-1})\}(I-K_kH_k)^T+K_kcov\{v_k\}K_k^T \\&=(I-K_kH_k)P_{k|k -1}(I-K_kH_k)^T+K_kR_kK_k^T \end{alinear}PAGk k=co v { X~k k}=co v { xkX^k k}=co v { xk(X^k k 1+kkmi~k)}=co v { xk(X^k k 1+kk( zkz^k k 1))}=co v { xk(X^k k 1+kk( zkHkX^k k 1))}=co v { xk(X^k k 1+kk( HkXk+vkHkX^k k 1))}=co v {( xkX^k k 1)kkHk( XkX^k k 1)kkvk}=co v {( yokkHk) ( XkX^k k 1)kkvk}=co v {( yokkHk) ( XkX^k k 1)}+co v { Kkvk}=( yokkHk) co v {( xkX^k k 1)} ( yokkHk)T+kkcov { v _ k} kkT=( yokkHk) pagk k 1( yokkHk)T+kkRkkkT
Entre ellos, el error de medida vk v_kvkIrrelevante para otros elementos, por lo que puede plantearse por separado. Esta fórmula para cualquier ganancia de Kalman K k K_kkkAmbos valen, si K k K_kkkes la ganancia de Kalman óptima, entonces se puede simplificar aún más.

Derivación de la ganancia de Kalman óptima

El filtro de Kalman es un estimador del error cuadrático medio mínimo, y la estimación del error de estado posterior es xk − x ^ k ∣ k x_k-\hat{x}_{k|k}XkX^k k

Minimice el valor esperado E de la magnitud al cuadrado de este vector [ ∣ X k − x ^ k ∣ k ∣ 2 ] E[|X_k-\hat{x}_{k|k}|^2]mi [ XkX^k k2 ], lo que equivale a minimizar la matriz de covarianza estimada posteriorP k ∣ k P_{k|k}PAGk krastro. Expanda y compense los términos en la ecuación anterior:
P k ∣ k = P k ∣ k − 1 − K k H k P k ∣ k − 1 − P k ∣ k − 1 H k TK k T + K k H k P k ∣ k - 1 H k TK k T + K k R k K k T = PAGS k ∣ k - 1 - K k H k PAGS k ∣ k - 1 - PAGS k ∣ k - 1 H k TK k T + K k ( H k PAGS k ∣ k - 1 H k T + R k ) K k T = PAGS k ∣ k - 1 - K k H k PAGS k ∣ k - 1 - PAGS k ∣ k - 1 H k TK k T + K k S k K k T \begin{align} P_{k|k}&=P_{k|k-1}-K_kH_kP_{k|k-1}-P_{k|k-1}H^ T_kK ^T_k+K_kH_kP_{k|k-1}H^T_kK^T_k+K_kR_kK^T_k \\&=P_{k|k-1}-K_kH_kP_{k|k-1}-P_{k|k-1 } H^T_kK^T_k+K_k(H_kP_{k|k-1}H^T_k+R_k)K^T_k \\&=P_{k|k-1}-K_kH_kP_{k|k-1}-P_{ k |k-1}H^T_kK^T_k+K_kS_kK^T_k \end{alinear}PAGk k=PAGk k 1kkHkPAGk k 1PAGk k 1HkTkkT+kkHkPAGk k 1HkTkkT+kkRkkkT=PAGk k 1kkHkPAGk k 1PAGk k 1HkTkkT+kk( HkPAGk k 1HkT+Rk) kkT=PAGk k 1kkHkPAGk k 1PAGk k 1HkTkkT+kkSkkkT
Cuando la matriz derivada es 0, obtenga P k ∣ k P_{k|k}PAGk kEl valor mínimo de la traza:
dtr ( P k ∣ k ) d K k = − 2 ( H k P k ∣ k − 1 ) T + 2 K k S k = 0 \begin{align} \frac{\ mathrm{ d}tr(P_{k|k})}{\mathrm{d}K_k}=-2(H_kP_{k|k-1})^T+2K_kS_k=0 \end{align}dk _kd t r ( Pk k)=2 ( HkPAGk k 1)T+2K _kSk=0
Aquí se debe usar una fórmula de uso común, como sigue: [Referencia 1] [Referencia 2] [Referencia 3]
dtr ( BAC ) d A = BTCT \begin{align} \frac{\mathrm{d}tr(BAC) } {\mathrm{d}A}=B^TC^T \end{align}d Ad t r ( BA C ) _=BTC _T
Entonces la ganancia de Kalman se puede resolver:
K k = P k ∣ k − 1 H k TS k − 1 \begin{align} K_k=P_{k|k-1}H^T_kS^{-1}_k \end{ alinear}kk=PAGk k 1HkTSk 1
Esta ganancia se denomina ganancia de Kalman óptima y, cuando se utiliza, da como resultado el error cuadrático medio mínimo.

Simplificación de la fórmula de covarianza de error posterior

Multiplique S k K k T S_kK^T_k en ambos lados de la fórmula de ganancia óptima de KalmanSkkkT得到
K k S k K k T = PAGS k ∣ k − 1 H k TK k T \begin{align} K_kS_kK^T_k=P_{k|k-1}H^T_kK^T_k \end{align}kkSkkkT=PAGk k 1HkTkkT
De acuerdo con la fórmula de expansión de la covarianza del error posterior, existe
P k ∣ k = P k ∣ k − 1 − K k H k P k ∣ k − 1 − P k ∣ k − 1 H k TK k T + K k S k K k T = PAGS k ∣ k − 1 − K k H k PAGS k ∣ k − 1 \begin{align} P_{k|k}&=P_{k|k-1}-K_kH_kP_{k|k-1 } -P_{k|k-1}H^T_kK^T_k+K_kS_kK^T_k \\&=P_{k|k-1}-K_kH_kP_{k|k-1} \end{align}PAGk k=PAGk k 1kkHkPAGk k 1PAGk k 1HkTkkT+kkSkkkT=PAGk k 1kkHkPAGk k 1
En la práctica, esta fórmula se usa a menudo debido a su cálculo simple, pero debe tenerse en cuenta que esta fórmula solo es válida cuando se usa la ganancia de Kalman óptima. Si la precisión aritmética es siempre tan baja que la estabilidad numérica es un problema, o si se usan deliberadamente ganancias de Kalman subóptimas, entonces no se puede usar esta simplificación; se debe usar la fórmula de covarianza del error a posteriori derivada anteriormente.

referencias

Una introducción al filtro de Kalman

Probablemente el filtro de Kalman más claramente explicado

【EKF】Principio de filtro de Kalman

Enciclopedia Wiki Filtro Kalman

La derivación de fórmula más completa del filtro de Kalman

El rastro de la matriz y la prueba de propiedades relacionadas

Rastro - Wikipedia

[Aprendizaje automático] Resumen y explicación detallada: la traza de la matriz y la derivación de la traza a la matriz

Supongo que te gusta

Origin blog.csdn.net/qq_37214693/article/details/130927283
Recomendado
Clasificación