Вы здесь

Применение фильтра Калмана в навигационной аппаратуре

GPS World

Статья подготовлена по материалам опубликованным в журнале GPS World, Сентябрь 1997
Advanstar Communications, 859 Willamette Street, Eugene, OR 97401, USA
Phone + (541) 343-1200
Fax + (541) 984-5333
E-mail:editorial-gps@gpsworld.com

Перевод выполнен "Навгеоком" © 2000

Ларри Леви (Larry J. Levy, The Johns Hopkins University, Applied Physics Laboratory)

Предложенный Рудольфом Калмэном в 1960 году алгоритм цифровой фильтрации сразу получил положительные отзывы специалистов: развитие вычислительной техники к тому времени уже находилось на достаточно высоком уровне, а кроме того существовал ряд задач (например, совместное использование навигационных систем разной природы), требовавших удобного средства обработки данных в реальном времени. Однако вскоре было признано, что практическое применение фильтра Калмэна, несмотря простоту алгоритма, требует особого внимания к построению математических моделей обрабатываемых процессов, а также к точности компьютерной арифметики. С учетом этих требований впоследствии было разработано и опробовано множество вариантов применения алгоритма Калмэна при решении задач навигации, геодезии, геологии, океанографии, гидродинамики и многих других областей знания.

Описание работы алгоритма

Представим себе некоторую систему, состояние которой в любой момент времени однозначно характеризуется определенным набором величин (например, координаты, скорости, уровни напряжения и т. д.), как правило, недоступных для непосредственного определения. Говоря терминами векторной алгебры, эти величины являются элементами вектора состояния системы, отнесенного к заданному моменту времени. Кроме того, имеется ряд переменных, некоторым образом связанных с состоянием системы, которые можно измерить с заданной точностью; такие величины составляют вектор измерений, относящихся к определенному моменту времени. Алгоритм фильтра Калмэна позволяет в реальном времени построить оптимальную оценку состояния системы, основываясь на измерениях, неизбежно содержащих погрешности; при этом вектор измерений рассматривается в качестве многомерного выходного сигнала системы, отягощенного шумом, а вектор состояния — неизвестный многомерный сигнал, подлежащий определению. Условием оптимальности построенной оценки состояния является минимум ее средней квадратической ошибки.

Описание работы алгоритма

Указанный критерий признан наиболее общим; доказано, что применение множество других подобных условий (например, среднее арифметическое некоторой непрерывно возрастающей, симметричной функции, такой как абсолютная величина) приводит к тому же решению (функция модуля не обладает непрерывной производной, что существенно затрудняет ее применение в алгоритмах минимизации). Фильтр Калмэна явился существенным усовершенствованием своего предшественника - алгоритма, позволяющего с помощью метода наименьших квадратов выделять скалярный сигнал из шума с неизменными статистическим характеристиками, предложенного в 40-х годах XX столетия Н. Винером.

Рисунок иллюстрирует работу алгоритма фильтра Калмэна. Начальными условиями на каждом новом цикле алгоритма служат оценка состояния системы и величина, характеризующая ее погрешность. В случае скалярной переменной такой характеристикой является дисперсия, которая тем больше, чем сильнее разброс индивидуальных значений относительно истинного. Распространенная оценка дисперсии — среднеквадратическое отклонение, то есть квадрат стандартного отклонения, — выражает степень разброса величины относительно среднего. Обобщением дисперсии для вектора, то есть совокупности скалярных величин, служит ковариационная матрица. Ее диагональные элементы являются дисперсиями соответствующих составляющих вектора, а недиагональные — ковариациями, характеризующими взаимосвязь между парой составляющих. Совокупность измерений, отнесенных к каждому из моментов времени, обобщает вектор измерений. Алгоритм последовательно обрабатывает вновь поступающие векторы измерений, учитывая при этом значения, вычисленные на предшествующем цикле. Эта особенность отличает алгоритм фильтра Калмэна от нерекуррентных алгоритмов, которым для работы требуется хранить весь массив обрабатываемых данных. На следующем шаге с помощью обрабатываемых на данном цикле измерений уточняются начальные условия. Для этого алгоритм вычисляет вес поправок к ним на основе ковариационных матриц оценки состояния и измерений. Чем меньшей погрешностью характеризуются измерения по сравнению с оценкой состояния системы, тем больший вес они получат. Относительные веса неизвестных, определяющих вектор состояния системы, зависят от степени их влияния на вектор измерений: больший вес получат те переменные, вклад которых в измерения больше.

Уточнение начальных условий на основе поступивших на данном цикле измерений, в общем случае, приводит к уменьшению неопределенности в оценке состояния системы. Исправленные таким образом начальные условия и являются выходными данными фильтра Калмэна на каждом цикле. На заключительном этапе работы алгоритма происходит подготовка к поступлению нового вектора измерений. На основе заданного линейного преобразования, связывающего последующий вектор состояния с предыдущим, прогнозируется оценка состояния системы, отнесенная к моменту следующего измерения. При построении ковариационной матрицы прогнозируемого вектора состояния фильтром Калмэна учитывается возможность искажения модели, описывающей поведение системы, некоторым случайным процессом с известными статистическими параметрами. Поскольку конкретные значения возмущающего эффекта не могут быть известны, данное обстоятельство способствует повышению неопределенности прогноза. По мере последовательной обработки новых измерений происходит накопление фильтром полезной информации, поэтому если элементы вектора состояния уверенно выражаются через измеренные величины, то суммарная погрешность оценок, как правило, должна снижаться. Однако поскольку вместе с улучшением точности оценок на этапе их уточнения имеет место ее снижение при построении прогноза, то эти тенденции, компенсируя друг друга, в последствии приведут к стабилизации неопределенности, характеризующей оценку состояния системы. В случае отсутствия фактора, вносящего возмущения в процесс перехода системы из одного состояния в другое, погрешность оценок в итоге достигнет нуля. Изменяющаяся в процессе работы алгоритма степень неопределенности оценки состояния системы влечет за собой и изменение весов, вычисляемых на втором шаге; данное обстоятельство выделяет фильтр Калмэна как алгоритм с переменными весами.

Если состояние рассматриваемой системы неизменно, то алгоритм фильтра Калмэна сводится к последовательной форме классического метода наименьших квадратов, в котором матрица, обратная ковариационной, выступает в качестве весовой. Другими словами, фильтр Калмэна является, по существу, рекуррентным способом решения задачи уравнивания по методу наименьших квадратов. Данная задача впервые решена К. Ф. Гауссом в 1795 году, результаты были опубликованы в работе 1809 года под названием “Теория движения небесных тел”, в которой он применил метод наименьших квадратов к определению элементов орбит небесных тел (см. раздел “Замечания Гаусса”). Все изложенные в этой работе положения, касающиеся эффективности применения данного метода при обработке результатов измерений в равной степени относятся и к фильтру Калмэна.

Замечания Гаусса

Если предположить, что астрономические наблюдения и прочие величины — исходные данные для вычисления орбит — не содержат ошибок, то и элементы орбит, выведенные из трех или четырех наблюдений, в свою очередь, будут безошибочны в случае кеплерова движения небесного тела. Следовательно, привлечение других наблюдений к вычислениям приводило бы к одинаковому результату. Но поскольку все наши измерения и наблюдения выполнены с некоторой долей погрешности, то и вычисленные на их основе величины неизбежно носят приближенный характер. Важнейшей целью подобных расчетов является наилучшее из возможных соответствие искомых неизвестных их истинным значениям. Это достигается посредством обработки заведомо большего числа измерений, чем необходимо для определения неизвестных величин. Корректное решение данной задачи возможно лишь в том случае, когда мы располагаем предварительно определенной орбитой, элементы которой впоследствии подлежат уточнению так, чтобы наилучшим образом удовлетворить всем наблюдениям.

(Из работы К. Ф. Гаусса “Теория движения небесных тел”, 1809)

Математические подробности

Пусть для двух векторов состояния системы xk и xk+1, относящихся к моментам времениtk и tk+1 соответсвенно, существует уравнение связи вида

xk+1 = Фkxk + wk,

а вектор измерений определен как

zk = Hkxk + vk

где x0, wk, и vk — взамно некоррелированные векторы с математическими ожиданиями m0, 0 и 0 и положительно определенными ковариационными матрицами и S0, Qk, и Rk соответственно (последние два, очевидно, представляют собой последовательности белого шума).

Тогда представленный на рисунке 1 рекуррентный алгоритм реализует оптимальную в смысле метода наименьших квадратов фильтрацию по Калмэну и соответствует блок-схеме, приведенной на рисунке 2. Вектор xk/j представляет собой оценку вектора x, отнесенного к моменту времени tk, учитывающую измерения до момента tj включительно, а Pk/j — его ковариационная матрица. Достоверность получаемых результатов определяется степенью соответствия реальной системы ее модели, реализованной в алгоритме фильтра. Приведенные уравнения можно вывести с помощью ряда методов. Например, если исходные переменные нормально распределены, то минимизация квадратичной формы etk/jAek/j, характеризующей среднюю квадратическую ошибку прогноза, где ek/j = xk ­ xk/j, а A — положительно определенная весовая матрица, приводит к уравнениям Калмэна. В случае негауссового распределения величин дополнительным условием для получения однозначного решения является наличие линейного соотношения между измерениями, оценкой состояния системы и его прогнозом.

Простой пример

Основные мысли предыдущего раздела поможет прояснить следующий простой пример. Рассмотрим задачу вывода реального сопротивления резистора номиналом 100 ом из повторных измерений омметром и их обработки фильтром Калмэна. В первую очередь необходимо установить модели, связывающие состояния нашей системы с измерениями и между собой, а также их статистические характеристики, служащие для вычисления весов. В данном случае имеет место всего одна величина, характеризующая неизменное состояние системы, — неизвестное сопротивление x. Таким образом, модель, описывающая состояние системы, выглядит как

xk+1 = xk. [1]

Заметим, что оно не нарушается каким-либо случайным возмущающим процессом. Цветовой код на резисторе указывающий класс его точности, позволяет установить, что данная партия характеризуется нормальным (гауссовым) распределением значений сопротивления вокруг номинала в 100 ом с дисперсией (2 ом)2. Таким образом, при отсутствии измерений наилучшей оценкой сопротивления является x0/­ = 100, а величина его погрешности P0/­ = 4.

Повторные измерения омметром

zk = xk + vk ,

непосредственно дают значения сопротивления, отягощенные инструментальными ошибками, которые принимаются некоррелированными от измерения к измерению. Завод-изготовитель омметра сообщает, среднее значение погрешности измерения составляет 0, с дисперсией Rk = (1 ом)2. При k = 0 вес поправки в начальные условия за первое поступающее измерение

P0/- 4
K0= ---------------- = ---------------,
P0/- + R0 4+1

а исправленная оценка состояния

x0/0 = (1 - K0)x0/- + K0z0,

где через x0/0 обозначена наилучшая оценка, относящаяся к моменту времени t0, полученная из обработки измерений, поступивших на момент времени t0 включительно. Поскольку измерения обладают меньшей дисперсией, чем исходная оценка состояния, первое измерение получает относительно высокий вес. Дисперсия, характеризующая неопределенность исправленной оценки состояния

  1 4
P0/0 = (1 - K0)P0/- = ---------4= ---
  4 + 1 5

Заметим, что всего одно хорошее измерение уменьшает дисперсию оценки состояния с 4 до 4/5.

Рассматриваемая нами система находится в неизменном состоянии, поэтому согласно уравнению [1]

  4
x1/0 = x0/0 ; P1/0 = P0/0 = ---
  5

На новом цикле вес поправок в начальные условия

  P1/0 4/5  
K1 = -------------= ------ , [2]
  P1/0+R1 4/5+1  

а дисперсия исправленной оценки

  1 4   4  
P1/1 = (1 - K1) P1/0 = (---------) --- = --- [3]
  4/5 + 1 5   9  

Рисунок 3 иллюстрирует процесс приближения оценки к истинному значению, при этом дисперсия построенной фильтром оценки стремится к нулю (рисунок 4).

Дополнительное условие

Усложним нашу задачу и предположим, что резистор находится в условиях агрессивной среды, так что его сопротивление испытывает небольшие колебания, а измерения выполняются в течение года. Производитель резистора указывает, что независимо от времени года среднее значение отклонений составляет 0, а их дисперсия — 1/4 ом2. Таким образом, модель, связывающая предыдущее состояние системы с последующим, примет вид

xk + 1 = xk + wk, [4]

где величина wk, представляющая случайный возмущающий процесс, характеризуется дисперсией Qk = 1/4. Qk представляет собой важную часть модели состояния системы в фильтре Калмэна, поскольку дает возможность установить правильные веса поправок в начальные условия за обработанные измерения, влияя на степень учета информации, накопленной на предшествующих циклах. Неверное значение этой величины может повлечь за собой значительное снижение качества работы алгоритма. В предыдущем случае дисперсия прогнозируемой оценки состояния системы в момент времени t1, построенной в момент t0 была такой же, как и у исправленной оценки на момент времени t0, то есть потери точности не происходило. Сейчас из-за наличия случайной величины в [4] дисперсия прогноза оценки состояния

  4 1    
P1/0 = P0/0 + Q0 = ----+ --- = 1.05 . [10]
  5 4    

Вычисления веса поправок и дисперсии исправленной оценки проводятся аналогично предыдущему примеру согласно [2] и [3], но с большим значением дисперсии прогнозируемой оценки. Рисунок 5 иллюстрирует процесс увеличения погрешности оценки на фазе прогноза и ее уменьшения при исправлении очередным измерением. В какой-то момент времени фильтр достигает состояния, при котором оба этих явления уравновесят друг друга, Pk+1/k = 0.65 и Pk/k = 0.4

Совместное применение спутниковой и инерциальной навигационных систем

Простота реализации, требующей наличия только адекватных статистических моделей, описывающих поведение системы и ее взаимодействие с внешним миром, способствовали широкому применению алгоритма фильтра Калмэна в навигационных системах гибридной природы. Сочетание спутниковой и инерциальной навигационных систем совместно с фильтром Калмэна позволяет повысить точность навигационных определений. Измерения, полученные инерциальной системой, с одной стороны, характеризуются низким уровнем случайных ошибок, при этом имеет место медленный дрейф нуль-пункта системы; с другой стороны, результаты спутниковых определений не подвержены подобным сдвигам системы координат, однако в большей степени отягощены случайными погрешностями. В этом кроется преимущество гибридной системы: располагая характеристиками инструментальных ошибок обеих систем, фильтр Калмэна сводит к минимуму их влияние на выходные навигационные данные. Алгоритм фильтра предполагает наличие линейных моделей, связывающих переменные состояния системы с измерениями и друг с другом. Поскольку большинство реальных систем (включая инерциальные и спутниковые навигационные системы) и процессов нелинейны, возникает задача линеаризации их моделей. Такой поход к совместному использованию обеих навигационных систем иллюстрирует рисунок 6.

Истинные значения навигационных данных, вырабатываемые каждой из систем, поступают на вход фильтра Калмэна с обратными знаками, компенсируя друг друга, таким образом, в данном случае моделированию подлежат только инструментальные погрешности. В большинстве случаев можно считать, что траектория, выдаваемая инерциальной системой, принимаемая в качестве опорной, достаточно близка к истинной, и, несмотря на то, что система в целом нелинейна, фильтр Калмэна работает в линейной области совместных погрешностей обоих навигационных методов. Степень подробности модели последних, реализуемой в фильтре Калмэна в виде уравнений связи, определяется требованиями к точности получаемых навигационных данных и классом применяемого оборудования. К ошибкам спутниковой аппаратуры относятся: нестабильность частоты генератора приемника и спутникового стандарта частоты, селективный доступ, задержки сигнала, вызванные влиянием тропо- и ионосферы, эффект многолучевости и неточности в эфемеридном обеспечении. Погрешности инерциальной системы включают: ошибки начальных условий, уход гироскопов, а также ошибки, вносимые акселерометрами и приближенными значениями ускорения силы тяжести. Если при совместном применении инерциальной и спутниковой навигационных систем, последняя предоставляет положение объекта, то считается, что такая гибридная система построена по схеме со слабой связью составляющих ее частей.

Примером тесной связи может служить задействование в гибридной системе величин, непосредственно измеряемых при спутниковых определениях, в этом случае опорная траектория, получаемая инерциальным методом, вместе с эфемеридной информацией используются для прогноза спутниковых измерений, таким образом, место локализации моделируемых погрешностей переместится из области вычисляемых координат в область измеряемых псевдодальностей и фаз несущей. Схема тесной связи предпочтительнее, поскольку результирующая система менее чувствительна к срывам приема спутникового сигнала, кроме того, применяемые в фильтре Калмэна модели удается сделать проще и точнее. Схема со слабо связанными компонентами применяется при невозможности привлечения “сырых” спутниковых данных. Приведение в действие контура обратной связи, изображенного пунктиром на рисунке 6, может рассматриваться как расширение фильтрации по Калмэну. Вырабатываемые алгоритмом оценки инструментальных погрешностей служат для удержания опорной траектории достаточно близкой к истинной, что позволяет компенсировать медленное смещение нуль-пункта инерциальной системы.

Применение фильтра Калмэна в спутниковой навигационной аппаратуре

Когда применение инерциальной навигационной системы становится нецелесообразным, как, например, в одиночных GPS приёмниках, ее заменяют уравнениями движения объекта, навигационные данные которого подлежат определению, с задействованием петли обратной связи (рисунок 6). Статистические параметры погрешностей, характеризующие модели состояния системы и измерений в фильтре Калмэна, определяются тщательностью составления уравнений движения. Для статичного объекта они тривиальны и строги, однако в более сложных случаях неизбежны упрощения, которые приводят к накоплению погрешностей и значительному снижению точности по сравнению с опорной траекторией, определяемой инерциальным методом. Преимущество подобной схемы применения фильтра Калмэна по сравнению с обычным решением задачи определения координат по методу наименьших квадратов кроется в сглаживании выбросов случайных ошибок спутникового метода, что уменьшает их влияние на результаты навигационных определений.

Практическая разработка

Разработка навигационной системы, содержащей в своем составе фильтр Калмэна, независимо от типа применяемого оборудования (инерциальная или спутниковая аппаратура, прочие устройства) заставляет учитывать ряд особенностей. Часть фильтра, занимающаяся ковариационным анализом, не требует для своей работы ни конкретных значений оценок состояния системы, ни измерений; необходимы только величины, характеризующие их погрешности. Данное свойство используется разработчиком для априорной оценки точности результатов, получаемых посредством того или иного вида аппаратуры, и тем самым позволяет осуществить выбор подходящего оборудования. В некоторых случаях приходится предварительно реализовывать алгоритм на компьютере и проверять его работу с различными начальными условиями. Далее с помощью методов статистического анализа следует убедиться в том, что реализованная в фильтре модель измерений соответствует своему реальному прототипу. Наконец, когда построенный фильтр удовлетворит всем требованиям, необходимо провести серию заключительных испытаний для оценки адекватности выбранного способа линеаризации задачи и локализации возможных ошибок вычислительного характера. В большинстве случаев расширенный вариант алгоритма с замкнутым контуром обратной связи позволяет значительно снизить нежелательные последствия линеаризации. Ошибки в вычислениях обычно вызваны ограниченной длиной машинного слова и наиболее ярко проявляются в ковариационных матрицах, которые становятся либо несимметричными, либо имеют отрицательные диагональные элементы, вследствие чего нарушается правильная работа фильтра Калмэна. Влияние этого источника погрешностей можно снизить, удерживая большее число значащих цифр при вычислениях или применив численный алгоритм, менее чувствительный к ошибкам округления.

Заключение

Алгоритм фильтра Калмэна из-за своей кажущейся простоты и легкости реализации до сих пор является основным средством обработки измерений в навигационных системах, использующих спутниковый метод определений. Для установления весов поступающих измерительных данных требуются статистические характеристики их ошибок, а также уравнения, предоставляющие связь переменных, определяющих текущее состояние системы, с измерениями и между собой. Таким образом, фильтр Калмэна является инструментом, позволяющим на основе математической модели системы построить оптимальные оценки системных переменных по выполненным измерениям. К достоинствам алгоритма следует отнести его рекуррентную природу, эффективно проявляющуюся при работе в реальном времени, а также возможность априорной оценки точности получаемых результатов средствами самого алгоритма.