"Каковы преимущества и недостатки фильтров Калмана и экспоненциального фильтра?
Я думаю, что фильтр Калмана более сложен в вычислительном отношении, но он имеет более детальную модель системы, поэтому он более точен (?) В многосенсорном синтезе. "
Вот и все, в общем, чем лучше ваша модель системы, тем лучше будет ваш фильтр, независимо от того, используете ли вы фильтр Калмана.
«Экспоненциальный фильтр более полезен при подавлении шума, когда есть дрожание и т. Д., Тогда как фильтр Калмана полезен для фактического слияния с несколькими датчиками. Это правильно?»
Я бы не согласился с этим утверждением. Фильтр Калмана умел подавлять шум. Это намного умнее, чем фильтр нижних частот, потому что он в полной мере использует всю информацию, хранящуюся в ковариационной матрице. Если показатель эффективности, на который вы смотрите: «Насколько близко отфильтрованное значение соответствует истинному значению?» Я думаю, лучшее, на что может надеяться простой фильтр нижних частот, - это сопоставить его производительность, и это только в простейшем случае random walk . Как только у вас появится интересная матрица перехода состояний, я думаю, что у фильтра низких частот нет шансов, потому что он не может видеть, как неопределенность скорости просачивается, например, в неопределенность положения.
«Я пытаюсь объединить магнитный компас и гироскоп для оценки истинной ориентации».
Это именно то, для чего предназначен фильтр Калмана.
Но если вас беспокоит сложность реализации фильтра Калмана, начните с реализации версии фильтра нижних частот:
1) Начните с простого моделирования
predictedAngle = oldAngle+rotationRate*dt
2) Обновите состояние симуляции на основе ваших измерений
rotationRate = alpha1*rotationRate +(1-alpha1)*gyro.rotationRate
filteredAngle = alpha2*predictedAngle+(1-alpha2)*compass.angle
Это в основном структура фильтра Калмана (самый простой) для этой системы.
Все, чего не хватает, это:
- Пишите все в матричном формате
- Добавить «технологический шум» на этапе моделирования
- Добавьте шаг для расчета «оптимального усиления Калмана» вместо использования фиксированных значений для
alpha
- Добавить шаг к обновить ковариацию фильтра .
«Кроме того, насколько полезен генетический алгоритм для слияния сенсоров?»
Я не вижу, где они вписались бы. Вы можете уточнить?