Спасибо всем, кто вчера оставил комментарии / ответы на мой запрос ( внедрение фильтра Калмана для положения, скорости, ускорения ). Я смотрел на то, что было рекомендовано, и в частности на (а) пример Википедии об одномерном положении и скорости, а также на другой веб-сайт, который рассматривает аналогичную вещь .
Обновление 26 апреля 2013 года : оригинальный вопрос содержал некоторые ошибки, связанные с тем, что я неправильно понял пример из Википедии об одномерном положении и скорости . С моим улучшенным пониманием того, что происходит, я теперь переформулировал вопрос и сфокусировал его более четко.
Оба примера, на которые я ссылаюсь во вступительном параграфе выше, предполагают, что измеряется только позиция. Однако ни один из примеров не имеет каких-либо расчетов для скорости. Например, пример Wikipedia определяет матрицу как , что означает, что вводится только позиция. Сосредоточив внимание на примере из Википедии, вектор состояния фильтра Калмана содержит положение и скорость , т.е.H H = [ 1 0 ] x k x k ˙ x k
Предположим, что измерение положения в момент времени равно . Тогда, если положение и скорость в момент времени были и , и если - постоянное ускорение, которое применяется в интервале времени от до , из измерения , что можно вывести значение для , используя формулуй к к - 1 х к - 1 ˙ х к - 1 к - 1 к й
Это подразумевает, что в момент времени измерение скорости определяется как˙ х к
Все величины в правой части этого уравнения (т.е. , и ) являются нормально распределенными случайными величинами с известными средними и стандартными отклонениями , поэтому матрица для вектора измеренияхк-1 ˙ х к-1Р
можно рассчитать. Является ли это правильным способом введения оценок скорости в процесс?
источник
Ответы:
Если вы выберете свой штат соответствующим образом, то оценки скорости приходят «бесплатно». Смотрите вывод модели сигнала ниже (для простого 1-D случая, который мы рассматривали).
Модель сигнала, дубль 2
Итак, нам действительно нужно согласовать модель сигнала, прежде чем мы сможем двигаться вперед. Из вашей правки, похоже, что ваша модель позиции, , выглядит так:xk
Если наше состояние такое же, как и раньше: тогда уравнение обновления состояния будет просто: где теперь наш - это нормально распределенное ускорение.
Это дает матрицу отличную от предыдущей версии, но матрицы и должны быть одинаковыми.G F H
Если я реализую это в
scilab
(извините, нет доступа к Matlab), это выглядит так:Затем я могу применить уравнения фильтра Калмана к этому (шумные измерения).y
Итак, у нас есть измерения с шумом , и мы применили к ним фильтр Калмана и использовали ту же модель сигнала для генерации что и при применении фильтра Калмана (иногда довольно большое предположение!).y y
Затем следующие графики показывают результат.
График 1 : и зависимости от времени.y xk
График 2 : увеличенное изображение первых нескольких образцов:
Сюжет 3 : Что-то, чего вы никогда не получите в реальной жизни, истинная позиция против оценки состояния позиции.
Сюжет 4 : То, чего вы никогда не получите в реальной жизни, истинная скорость в сравнении с оценкой состояния скорости.
Сюжет 5 : Норма матрицы ковариации государства (то, что вы всегда должны отслеживать в реальной жизни!). Обратите внимание, что он очень быстро переходит от своего начального очень большого значения к чему-то очень маленькому, поэтому я показал только первые несколько образцов.
График 6 : Графики погрешности между истинным положением и скоростью и их оценками.
Если вы изучите случай, когда измерения положения точны, то вы обнаружите, что уравнения ускорения Калмана дают точные результаты для ОБА и положения и скорости. Математически легко понять почему. Используя те же обозначения, что и в статье в Википедии , точные измерения означают, что . Если вы предполагаете, что начальная позиция и скорость известны так, что , то и матрица усиления Калмана определяется какzk+1=xk+1 Pk=0 P−k+1=Q Kk+1
Это означает, что процедура обновления Kalman производит
Как видите, значение скорости определяется именно той формулой, которую вы предлагали использовать для оценки скорости. Таким образом, хотя вы не могли видеть какие-либо вычисления для скорости, на самом деле они все-таки скрыты.(xk−xk−1)/dt
источник