2 вопроса об этом простом одномерном случае Калмана

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

YouTube: Учебное пособие по фильтру Калмана
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx

Давайте возьмем простой одномерный случай, когда у меня есть сенсорная платформа с 1 датчиком расстояния с каждой стороны, мы скажем, что L — это левый датчик, а R — правая сторона. Робот заключен в коробку длиной 100 единиц, каждый датчик имеет диапазон всего 10 единиц, и мы считаем, что любое значение из них больше ~7,5 недействительно.

Платформа будет двигаться вперед, пока X ‹= 95, затем назад, пока X >= 5, я хочу использовать фильтр для оценки X и использовать данные, поступающие из L/R, для исправления X, когда я приближаюсь к стене. Мои аргументы следующие:

  1. На видео 15:50 Фрэнсис Говерс говорит, что если вы проиграете датчика, то ошибка будет доходить до бесконечности, и вы сможете сказать, что ваш датчик не дает хороших данных. Однако, когда я реализую этот одномерный случай, представленный на веб-странице, ошибка продолжает уменьшаться, даже когда я подаю ему сильно различающиеся данные. Почему? Не должна ли ошибка увеличиться?

  2. Касательно 1, что мне делать, если ошибка становится слишком высокой или я знаю, что датчик выдает неверные данные? Я просто не включаю датчик в шаг коррекции до тех пор, пока не будет обратного?

Извините, если эти вопросы уже задавались ранее, я обычно очень хорошо умею находить ответы самостоятельно, но эти вопросы кажутся немного неясными (или, что более вероятно, ответ очевиден), но я просто не могу его найти. сам.


person Mykel Stone    schedule 14.02.2015    source источник


Ответы (1)


  1. Я вообще не знаком с этим видео, но он может иметь в виду, что если постоянно добавлять технологический шум (P = FPF' + Q), но никогда не уменьшать P с помощью измерений, то P может только увеличиваться. Однако в целом я бы предостерег вас от рассмотрения ковариационной матрицы P в качестве выходных данных вашего фильтра. Вы заметите, что на него не влияют ваши измерения (кроме их отсутствия) или ваше состояние. На него влияет только повторное применение ваших собственных оценок шума процесса и измерения (Q и R), поэтому, если вы ошиблись (например, как вы пытались, подставив измерения мусора с одним и тем же R), вы все равно получите тот же P.
  2. Одно из фундаментальных предположений фильтра Калмана состоит в том, что весь ваш шум является гауссовским (классическое распределение кривой нормального распределения) и нулевым средним. Вы можете многое надуть в распределении, но очень важно, чтобы ваш шум усреднялся до нуля. Это записывается как E(v) = 0, ожидаемое значение. Если ваш датчик показывает «около 5» или 5 + v, где v — случайная величина с нулевым средним, то усреднение показаний вашего датчика даст вам результат, очень близкий к 5. Вот как работает ваш датчик, когда он в диапазоне. Величина v - это то, что вы оцениваете в R, поэтому фильтр знает, сколько требуется усреднения. Если ваш датчик вне диапазона, лучше не включать его в измерение. Когда показания датчика зашкаливают, значение не «около 10», а «вероятно, не менее 10 и, возможно, намного больше», и ваш шум имеет смещение.
person Ben Jackson    schedule 17.02.2015
comment
1) Я не использую P в качестве выхода, я думаю, вы правы насчет шума процесса, если он использует неизменный во времени фильтр Калмана. Я не вижу другого выхода. 2) Вопрос о измерениях вне диапазона - это именно то, что мне нужно было знать, и, к сожалению, я не смог найти ответ в другом месте. - person Mykel Stone; 21.02.2015
comment
@MykelStone: еще один комментарий о датчиках вне диапазона: если вам действительно нужно включить идею о том, что ваш датчик читает > 10, вы не можете сделать это с помощью измерения, но вы можете сделать это с помощью ограничения. Существует множество схем применения ограничений равенства и неравенства к ФК. - person Ben Jackson; 22.02.2015