이 Kalman 필터 원리를 읽은 후 나는 놀랐습니다!

나는 인터넷에서 Kalman 필터링과 관련된 많은 블로그와 논문을 읽었는데, 그들은 이론에 대해서만 이야기하고 지각 지식이 부족하거나 지각 지식이 있고 이론적 유도가 부족합니다. 두 가지를 모두 고려한 사람은 거의 없었는데 해외 블로그 글을 보고 정말 놀랐습니다.작가님의 꼼꼼한 정신에 감탄하며 여러분과 공유하고자 번역했습니다.

칼만 필터링이 할 수 있는 일이 놀랍기 때문에 칼만 필터링이라고 말해야 합니다! 놀랍게도 그것에 대해 많이 아는 소프트웨어 엔지니어와 과학자는 거의 없습니다. 칼만 필터링은 불확실성 속에서 정보를 융합할 수 있는 동시에 정확한 정보를 추출하는 능력은 믿을 수 없을 것 같습니다.

칼만 필터란?

불확실한 정보가 있는 모든 동적 시스템에서 Kalman 필터링을 사용하여 시스템의 다음 단계에 대한 교육적인 예측을 할 수 있습니다.

지속적으로 변화하는 시스템에서 Kalman 필터링을 사용하는 것이 이상적이며 적은 양의 메모리를 점유하는 장점이 있으며(이전 상태 양을 제외하고는 다른 이력 데이터를 보관할 필요가 없음) 매우 빠릅니다. 실시간 문제 및 임베디드 시스템에 매우 적합합니다.

Kalman 필터를 구현하기 위해 Google에서 찾은 대부분의 수학 공식이 약간 난해하게 보이는 것은 좋지 않은 상황입니다. 사실 칼만필터링은 잘 보시면 아주 간단하고 이해하기 쉬우니 아래에서 예쁜 그림과 색상으로 명쾌하게 설명드리도록 하겠습니다 기본적인 확률과 행렬지식만 조금 이해하시면 됩니다.

Kalman 필터링으로 무엇을 할 수 있습니까?

장난감 예제 사용: 당신은 숲에서 뛰어다닐 수 있는 작은 로봇을 개발하고 로봇은 탐색하기 위해 자신의 위치를 ​​정확히 알아야 합니다.

로봇에 상태가 있다고 말할 수 있습니다.

, 위치와 속도를 나타냄:

상태는 시스템의 기본 속성에 대한 숫자의 묶음일 뿐이며 다른 모든 것이 될 수 있습니다. 이 예제 위치 및 속도에서는 용기에 담긴 액체의 총량, 자동차 엔진의 온도, 터치패드에서 사용자 손가락의 위치 좌표 또는 추적해야 하는 신호가 될 수도 있습니다.

로봇은 GPS를 가지고 있고, 정확도는 10미터 내외로 나쁘지는 않지만 10미터 이내까지 정확하게 위치를 알아야 합니다. 숲에는 계곡과 절벽이 많아 로봇이 잘못 밟으면 절벽에서 떨어질 수 있어 GPS만으로는 부족하다.

아마도 우리는 로봇이 어떻게 움직이는지 알고 있을 것입니다. 예를 들어, 로봇은 모터에 보내지는 명령을 알고 있고, 사람의 개입 없이 한 방향으로 움직이면 다음 상태에서 로봇이 다음 상태로 움직일 가능성이 있습니다. 같은 방향. 물론 로봇은 자신의 움직임에 대해 아무것도 모릅니다. 바람에 날리거나, 바퀴가 코스를 약간 벗어나거나, 고르지 않은 지면에 부딪힐 수 있습니다. 따라서 바퀴가 회전한 거리는 로봇이 실제로 이동한 거리를 정확하게 나타내지 않으며 예측이 완벽하지 않습니다. GPS 센서는 상태에 대해 알려주고 우리의 예측은 로봇이 어떻게 움직일지 알려줍니다. 하지만 우리가 사용할 수 있는 모든 정보를 사용한다면 그 자체로 어떤 추정보다 더 나은 결과를 얻을 수 있을까요?

칼만 필터링이 문제를 보는 방법

아래에서는 위치와 속도의 두 가지 상태에 대한 간단한 예를 들어 계속 설명합니다.

우리는 실제 위치와 속도를 알지 못하며 가능한 올바른 조합이 많이 있지만 일부는 다른 것보다 더 가능성이 높습니다.

칼만 필터링은 두 변수(이 예에서는 위치와 속도)가 무작위이고 가우시안 분포를 따른다고 가정합니다. 각 변수에는 무작위 분포의 중심(가장 가능성이 높은 상태)을 나타내는 평균 μ와 분산이 있습니다.

, 불확실성을 나타냅니다.

.

위 다이어그램에서 위치와 속도는 상관관계가 없습니다. 즉, 한 변수의 상태가 다른 변수의 가능한 값을 예측할 수 없습니다. 다음 예는 더 흥미롭습니다. 위치와 속도는 관련이 있으며 특정 위치를 관찰할 확률은 현재 속도에 따라 달라집니다.

.

예를 들어 이전 위치를 기반으로 새 위치를 추정할 수 있습니다. 속도가 너무 빠르면 아주 멀리 이동했을 수 있습니다. 천천히 움직이면 거리가 그리 멀지 않습니다. 이 관계를 추적하는 것은 더 많은 정보를 제공하기 때문에 매우 중요합니다: 측정된 값 중 하나는 다른 변수의 가능한 값을 알려줍니다. 데이터에서 더 많은 정보를 추출하십시오!

이 상관 관계는 공분산 행렬, 즉 행렬의 각 요소로 표현됩니다.

i번째와 j번째 상태 변수 사이의 상관관계를 나타냅니다. (공분산행렬이 대칭행렬이라 짐작하셨겠지만 i와 j는 임의로 바꿀 수 있습니다.) 공분산 행렬이 일반적으로 사용됩니다.

표현하기 위해 그 요소는 다음과 같이 표현됩니다.

행렬을 사용하여 문제 설명

가우시안 분포를 기반으로 상태 변수를 구축하므로 시간 k에서 두 가지 정보가 필요합니다.

.

(즉, 일반적으로 μ로 표현되는 다른 곳에서 사용되는 평균값) 및 공분산 행렬

.

(1)

(물론 여기서는 위치와 속도만 사용합니다. 사실 이 상태는 표현하려는 모든 정보를 나타내는 여러 변수를 포함할 수 있습니다.) 다음으로 현재 상태(순간 k-1)를 기반으로 다음 상태(순간 k)를 예측해야 합니다. 우리는 다음 상태에 대한 모든 예측 중 어느 것이 "참"인지 알지 못하지만 예측 함수는 신경 쓰지 않습니다. 모든 가능성을 예측하고 새로운 가우시안 분포를 제공합니다.

우리는 매트릭스를 사용할 수 있습니다

이 예측 프로세스를 나타내기 위해:

.

원래 추정치의 각 지점을 새로운 예측 위치로 이동하며, 원래 추정치가 정확할 경우 시스템이 다음 위치로 이동합니다. 그렇다면 다음 순간의 위치와 속도를 예측하기 위해 매트릭스를 어떻게 사용합니까?다음은 기본 운동학 공식으로 표현됩니다.

이제 다음 순간의 상태를 나타내는 예측 행렬이 있지만 공분산 행렬을 업데이트하는 방법은 아직 모릅니다. 이 시점에서 다른 공식을 도입해야 합니다. 분포의 각 점에 행렬 A를 곱하면 공분산 행렬이 됩니다.

어떻게 변할까요?매우 간단합니다. 공식은 다음과 같습니다.

방정식 (4)와 (3)을 결합하면 다음이 산출됩니다.

외부 제어 볼륨

우리는 모든 정보를 캡처하지 않았으며 시스템을 제어하고 시스템 자체의 상태와 관련되지 않은 일부 변경을 가져올 외부 요인이 있을 수 있습니다.

기차의 운동 상태 모델을 예로 들면, 기차 운전자는 기차를 가속하기 위해 가속기를 조작할 수 있습니다. 마찬가지로 로봇 예제에서 내비게이션 소프트웨어는 바퀴를 돌리거나 멈추라는 명령을 내릴 수 있습니다. 이 추가 정보를 알면 벡터를 사용할 수 있습니다.

나타내려면 수정을 위해 예측 방정식에 추가하십시오.

스로틀 설정 또는 제어 명령으로 인해 원하는 가속도를 알고 있다고 가정합니다.

.

, 기본 운동 방정식에 따라:

행렬 형식으로 표현하면 다음과 같습니다.

.

컨트롤 매트릭스라고 불리는

제어 벡터라고 합니다(외부 제어가 없는 단순 시스템의 경우 이 부분을 무시할 수 있음). 우리의 예측이 100% 정확하지 않다면 어떻게 될까요?

외부 간섭

이러한 상태량이 시스템 자체의 속성 또는 알려진 외부 제어 동작에 따라 변경되면 문제가 발생하지 않습니다.

그러나 알 수 없는 장애가 있는 경우 예를 들어 쿼드로터를 추적하면 바람에 의해 방해를 받을 수 있고, 바퀴가 달린 로봇을 추적하면 바퀴가 미끄러지거나 도로의 작은 경사로 인해 속도가 느려질 수 있습니다. 이런 식으로 우리는 이러한 상태를 계속 추적할 수 없으며 이러한 외부 교란을 고려하지 않으면 예측이 편향될 것입니다.

각 예측 후에 "외부 세계"(즉, 추적하지 않는 교란)로 이 불확실성을 모델링하기 위해 몇 가지 새로운 불확실성을 추가할 수 있습니다.

원래 추정치의 각 상태 변수가 새 상태로 업데이트된 후에도 여전히 가우시안 분포를 따릅니다. 우리는 말할 수있다

의 각 상태 변수는 가우시안 분포를 따르는 새로운 영역으로 이동하며 공분산은

.

. 즉, 우리는 이러한 추적되지 않은 교란을 다음과 같은 공분산을 갖는 것으로 취급합니다.

.

처리할 소음.

.

이는 다른 공분산(그러나 동일한 평균)을 갖는 새로운 가우시안 분포를 생성합니다.

.

우리는 단순히 추가하여이 작업을 수행합니다.

.

확장된 공분산을 얻으면 예측 단계에 대한 전체 표현이 아래에 제공됩니다.

.

위의 공식에서 이전 최적 추정치의 예측을 기반으로 새로운 최적 추정치를 구하고 알려진 외부 제어량의 보정이 추가됨을 알 수 있습니다.

새로운 불확실성은 이전 불확실성에 의해 예측되고 외부 환경이 추가됩니다.

글쎄, 우리는 다음을 사용하여 시스템의 가능한 동작에 대한 모호한 추정치를 가지고 있습니다.

그리고

.

대표합니다. 센서의 데이터를 결합하면 어떻게 될까요?

측정값을 사용하여 추정치를 수정합니다.

시스템의 현재 상태를 측정하기 위해 여러 개의 센서가 있을 수 있습니다. 어떤 센서가 어떤 상태 변수를 측정하는지는 중요하지 않습니다. 하나는 위치를 측정하고 다른 하나는 속도를 측정할 수 있습니다. 각 센서는 간접적으로 상태 정보를 알려줍니다.

.

센서가 읽은 데이터의 단위와 척도는 우리가 추적하고자 하는 상태의 단위와 척도와 다를 수 있습니다.

.

센서 데이터를 나타냅니다.

.

다음과 같이 이전 표현을 사용하여 센서 판독값의 분포를 계산할 수 있습니다.

.

Kalman 필터링의 가장 큰 장점 중 하나는 센서 노이즈를 처리할 수 있다는 것입니다. 즉, 우리 센서는 다소 신뢰할 수 없으며 원시 추정치의 각 상태는 센서 판독값의 특정 범위에 해당할 수 있습니다.

.

측정된 센서 데이터에서 시스템이 현재 어떤 상태인지 대략적으로 추측할 수 있습니다. 그러나 불확실성으로 인해 일부 상태는 우리가 얻은 판독값보다 실제 상태에 더 가까울 수 있습니다.

.

이 불확실성(예: 센서 노이즈)을 공분산으로 사용합니다.

.

분포의 평균이 우리가 읽은 센서 데이터임을 나타냅니다.

.

. 이제 두 개의 가우시안 분포가 있습니다. 하나는 예측값 주변이고 다른 하나는 센서 판독값 주변입니다.

.

예측값(분홍색)과 센서 측정값(녹색) 사이에서 최적의 솔루션을 찾아야 합니다.

그렇다면 우리의 가장 가능성 있는 상태는 무엇입니까?

.

, (1) 센서의 측정값, (2) 이전 상태에서 얻은 예측값의 두 가지 경우가 있습니다. 이 두 가지 상황이 모두 발생할 수 있는 확률을 알고 싶다면 이 두 가지 가우시안 분포를 곱하면 됩니다.

.

나머지는 겹침이고 겹침의 평균은 두 추정치 중 가장 가능성이 높은 값, 즉 모든 정보가 주어졌을 때 가장 좋은 추정치입니다.

이 겹치는 영역은 또 다른 가우시안 분포처럼 보입니다.

.

보시다시피 평균과 분산이 다른 두 개의 가우스 분포를 곱하면 독립적인 평균과 분산을 가진 새로운 가우시안 분포를 얻을 수 있습니다!아래에서 공식으로 설명합니다.

퓨전 가우스 분포

먼저 분산이 있는 1차원 가우시안 분포로 더 간단한 점을 분석합니다.

.

및 μ의 가우시안 곡선은 다음 공식으로 표현할 수 있습니다.

두 개의 가우스 함수를 함께 곱하면 무엇을 얻습니까?

.

공식 (9)를 공식 (10)으로 대체하면(총 확률이 1이 되도록 재정규화에 주의) 다음을 얻을 수 있습니다.

식(11)에서 두 식의 같은 부분은 k로 표시된다.

.

다음으로 공식 (12)와 (13)은 행렬 형태로 추가로 작성됩니다. Σ가 가우시안 분포의 공분산을 나타내는 경우,

각 차원의 평균을 나타내는 다음:

행렬

.

이를 Kalman 이득이라고 하며 아래에서 사용할 것입니다. 진정하세요! 거의 끝났습니다!

모든 공식을 하나로 합치다

두 개의 가우시안 분포, 예측 부분이 있습니다.

.

및 측정 섹션

.

, 그것들을 공식 (15)에 넣어 그들 사이의 겹침을 계산하십시오.

방정식 (14)에서 Kalman 이득은 다음과 같이 얻을 수 있습니다.

.

식(16)과 식(17)의 양변에 역행렬을 동시에 곱한다.

.

포함하는

.

빼서 식(16)의 오른쪽 두 번째 식의 양변에 행렬을 동시에 곱한다.

.

의 역함수는 다음 방정식을 제공합니다.

위 공식은 완전한 업데이트 단계 방정식을 제공합니다.

는 새로운 최적의 추정치이므로 다음과 결합할 수 있습니다.

다음 예측에 넣고 방정식을 업데이트하고 계속 반복합니다.

요약

위의 모든 수식에서 수식 (7), (18) 및 (19)만 사용하면 됩니다. (잊으셨다면 (4)식과 (15)식에 따라 다시 유추하시면 됩니다.)

이러한 공식을 사용하여 모든 선형 시스템에 대해 정확한 모델을 설정할 수 있습니다.비선형 시스템의 경우 확장 칼만 필터링을 사용합니다.차이점은 EKF에는 예측 및 측정 부분을 선형화하는 추가 프로세스가 있다는 것입니다.

-끝-

원문: 이 칼만 필터 원리를 읽고 충격을 받았습니다! - RFASK 무선 주파수 질문

RFASK에 대한 질문

RF질문은 "Microwave RF Network" 시리즈의 원천 기술 칼럼을 기반으로 업그레이드된 기술 문답 학습 플랫폼으로 주로 RF 칩, 마이크로웨이브 회로, 안테나, 레이더, 위성 및 기타 관련 기술 분야에 중점을 두고 있습니다. , 안테나, 레이더 및 기타 산업, 고품질의 독창적인 기술 질문 및 답변, 칼럼 기사, RF 과정 및 기타 학습 콘텐츠를 제공합니다. 자세한 내용은 RFASK RF 질문 - RF 기술 R&D 서비스 플랫폼 | 기술 질문 및 답변, 칼럼 기사, RF 과정을 참조하십시오.

추천

출처blog.csdn.net/qizu/article/details/131061638