Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: опять фильтр кальмана
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
diwil
Я не большой специалист в кальмановской фильтрации, но мне надо решить одну задачку:

Есть цель (например движущийся автомобиль), расстояние до которого определяется с некоторой погрешностью, которая не зависит от расстояния и скорости до него (скажем +-30 метров).
Необходимо получить зависимость расстояния до цели от времени.
Однако надо оценить не только расстояние до цели, но и так же оценить ее скорость.

Задача движения авто была смоделирована простейшим способом ( S = V0*t + a*T^2 / 2 ) Т.е. имеем набор _точных_ входных данных - расстояние до цели и скорость цели. Эти данные зашумляем и подаем на вход фильтра. На выходе, вроде бы, должны получить оценку расстояния до цели и, как побочный продукт, скорость цели.

За основу фильтра кальмана взята программа, предложенная на
http://www.innovatia.com/software/papers/kalman.htm
переделан лишь способ задания результатов измерения.

Получается следующее:
1. Координаты цели фильтруются хорошо. Причем взависимости от параметров можно получить достаточно точные оценки.
2. А вот оценка скорости "отстает" от реальной. На нижнем графике синяя линия - это реальная скорость, а зеленая - восстановленная.


Вопрос - есть ли возможность, используя фильтр кальмана, восстановить не только расстояние, но и скорость _без_ запаздывания. Где можно про это прочитать?

Заранее спасибо.
antoker
Цитата(diwil @ Nov 14 2006, 14:32) *
Вопрос - есть ли возможность, используя фильтр кальмана, восстановить не только расстояние, но и скорость _без_ запаздывания. Где можно про это прочитать?
Заранее спасибо.


Нижний график отстает от оригинала, проверь систему координат. Похоже примерно такой же результат как и при convolution, добовляются дополнительные сэмплы. Про кальмана читай здесь
neptune-1
Насчет дополнительных сэмплов - очень может быть.
Ещё стоит проверить адекватность выбранной модели движения.
В http://www.innovatia.com/software/papers/kalman.htm подразумевается, что ускорение - белый шум, тогда как судя по графикам это совсем не так.
Предлагаю попробовать описать ускорение винеровским процессом, т.е. перейти к системе третьего порядка. В этом случае
А = [1 T 0.5*T^2;
0 1 T;
0 0 1];
То есть сейчас рывок - белый шум.
Builder
Цитата(neptune-1 @ Dec 15 2006, 14:20) *
Насчет дополнительных сэмплов - очень может быть.
Ещё стоит проверить адекватность выбранной модели движения.
В http://www.innovatia.com/software/papers/kalman.htm подразумевается, что ускорение - белый шум, тогда как судя по графикам это совсем не так.
Предлагаю попробовать описать ускорение винеровским процессом, т.е. перейти к системе третьего порядка. В этом случае
А = [1 T 0.5*T^2;
0 1 T;
0 0 1];
То есть сейчас рывок - белый шум.


Это будет эквивалентно введению датчика ускорения.
А с матрицами ковариации поиграться не пробовали?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.