А вот как наши автопилото стабиллизаторы отрабатывают внештатные ситуации?

AsMan

Вопрос к тем кто не по наслышке знает что у них в мозгах творится.

Например, если один из входных параметров принимает запредельное значение, или изменяется быстрей чем это предпологается.

Что при этом происходит?

baychi
AsMan:

Вопрос к тем кто не по наслышке знает что у них в мозгах творится

Про свои детища лучше всего знают их авторы.
Есть разные алгоритмы стабилизации на базе MEMS - от примитивного DCM, до EKF и MARG.

AsMan:

Например, если один из входных параметров принимает запредельное значение, или изменяется быстрей чем это предпологается. Что при этом происходит?

Как запрограмируют. 😃 Обычно все проверяют на ограничения, но реакция может быть разной.
Вы бы спросили поконкретней: о каком звере речь?

AsMan
baychi:

Как запрограмируют. 😃 Обычно все проверяют на ограничения, но реакция может быть разной.
Вы бы спросили поконкретней: о каком звере речь?

Вот мне, как раз интересно про реакцию. Без относительно зверька.

baychi

Тогда опишите ситуацию точнее: какие параметры и куда уходят? Что было перед этим и какой контекст полета? Какой алгоритм рассматриваем?

Вопрос типа: как поведет себя человек столкнувшись с тигром? 😃

AsMan
baychi:

Про свои детища лучше всего знают их авторы.
Есть разные алгоритмы стабилизации на базе MEMS - от примитивного DCM, до EKF и MARG.

Парни же сдесь появляются. Потому и спросил.

ЗЫ Просто интересно стало, что происходит когда в рантайме вдруг случается какой нить девижн бай зиро?

RedSun

Ну какой вопрос - такой и ответ будет.
Если известный алгоритм прописан аккуратно, то все особые ситуации корректно обрабатываются. Если алгоритм новый, или писатель прочел только первую формулу и тем ограничился - возможны варианты. Ну а обработка сигналов с датчиков по уму должна включать хотя бы простейшую фильтрацию.
Так что никакой принципиальной разницы с любым другим программированием. Выбрать подходящий алгоритм, корректно его реализовать и оттестировать - и наступит СЧАСТЬЕ с большой буквы “Щ”. Вот только на практике нечасто все эти пожелания совмещаются в одном продукте 😦(

baychi

Если Вы про программные ошибки, то результат непредсказуем. Если про исправные алгоритмы, то так как все они являются конечными автоматам, то можно точно сказать что будет, зная алгоритм и контекст.

PS: Без конкретики условий, рассуждать можно до второго пришествия.

AsMan
RedSun:

Ну а обработка сигналов с датчиков по уму должна включать хотя бы простейшую фильтрацию.

А вот если аут оф ренж? Что происходит?

ЗЫ Я не спору ради. Понять хочется…

kimu
AsMan:

А вот если аут оф ренж? Что происходит?

Дак или не позволит калибровка, или отсеется фильтрами как шум.
Оно обычно слишком кратковременно.

AlexSneg
AsMan:

что происходит когда в рантайме вдруг случается какой нить девижн бай зиро?

В EKF на кватернионах нет ни разрывов ни особых точек в функциях. В DCM есть, поэтому в теории наступит жопа, если такую ситуацию искусственно не отлавливать. По MARG я не спец, это пусть Тимофей расскажет. По крайней мере в предыдущей версии АП он MARG использовал, насколько я в курсе.

AsMan:

А вот если аут оф ренж? Что происходит?

Ничего. Так как с сырыми данными без пропускания предварительного через цепочки фильтров никто не работает. И если какой-то отсчет датчика вылетел в зону переполнения, то ФНЧ его проглотит и откинет. Если датчик просто сдох, то и рассуждать не о чем. У нас не ракета с ядерной боеголовкой, дублирующих источников сигналов на борту нет.

type_2

шторм - надоело лететь по прямой, пару раз крутанул наикорявейшую бочку. через секунду самолет выровнялся и полетел дальше

dima043

Насколько я понял по опыту использования зимой фишек автопилоту страшнее всего резкое изменение температуры в полете. До какого то предела скорости дрейфа гир алгоритм сходится и горизонт пусть и медленно но приводится к некоему стабильному положению. Из за дрейфа акселей оно может не совпадать с реальностью но в целом алгоритм работает.
Но вот после некоторого порога дрейфа отображаемый горизонт начинает крутиться на ровно летящем в ручном режиме самолете или отображение горизонта совсем пропадает. Затем через какое то время что то видимо перезапускается и горизонт начинает работать нормально.

Нагрев происходит от собственного тепловыделения а охлаждение от холодного окружающего воздуха. Чем ниже температура тем быстрее происходит ее изменение. Теплоизоляция спасает от этого вида зимних проблем.

Павeл
AsMan:

А вот если аут оф ренж? Что происходит?

ЗЫ Я не спору ради. Понять хочется…

ИМХО, что все “ауты” и “дивижины” должны отлавливаться до продажи АП конечным пользователям, иначе результат будет примерно как при других неисправностях, таких как КЗ, обрыв, отказ сервы, т.е. как повезёт (типа как с фишкой).

KBV

Никогда не забуду тот прикол с потерей GPS спутников в полете 😃
Типа подлетел к радиовышке, потерял спутники, начал кружиться. Немного удалился, спутники снова поймались и АП решил что в этом месте и есть точка взлета, RTL теперь хотел лететь туда ))

что-то не могу найти оригинальное сообщение, примерно в середине лета было. Имя “главного героя” (название автопилота) тоже не помню.

X3_Shim

Какая интересная тема.

вот я меня последний глюк был (пару недель назад). Полет на высоте 100 метров. Проверка RTL. Вдруг барометр (после всех фильтров) сообщает что высота вдруг стала 9000 метров. Самолет начинает падать беспорядочно (переключился в ручной, самолет спас). Высота же прыгнув на 9000 потом плавно снизилась к нормальной (плавно скорее всего из-за фильтра). Формально такой выброс можно отфильтровать разными методами. Например смотреть дельту. Ну не может самолет за долю секунды набрать 9000 метров. Можно сравнить с показанием GPS, если сильно расходятся показания высоты, можно посмотреть кто сильно “прыгнул” и временно его отключить. На автопилот ничего такого не сделал.
Вот и интересно как разные АП такое обрабатывают.

msv

Давно выкинул все фильтры, которые стояли “на всякий случай”. Решил, что это самообман. Простейшие ФНЧ итп неэффективны, и только увеличивают транспортные задержки в контуре регулирования. Эвристические методы фильтрации, при весьма ограниченном наборе исходных данных, могут дать больше проблем, чем правильных решений в “нестандартных” ситуациях.
Естественно фильтры стоят там, где они необходимы для реализации алгоритмов.

AlexSneg:

В EKF на кватернионах нет ни разрывов ни особых точек в функциях. В DCM есть …

😃 Поподробнее пожалуйста, лучше пруфлинк…

AlexSneg
msv:

лучше пруфлинк

Когда 2 года назад я копал код ардупилота там была такая затычка

Vector3f
AP_DCM::renorm(Vector3f const &a, int &problem)
{
float renorm;

renorm = a * a;

if (renorm < 1.5625f && renorm > 0.64f) { // Check if we are OK to use Taylor expansion
renorm = 0.5 * (3 - renorm); // eq.21
} else if (renorm < 100.0f && renorm > 0.01f) {
renorm = 1.0 / sqrt(renorm);
renorm_sqrt_count++;
} else {
problem = 1;
renorm_blowup_count++;
}

return(a * renorm);
}

Я не знаю современное состояние кода. Но раньше при pitch = +/-90 градусов алгоритм входил в ступор и выходил из него с помощью костыля.

msv

Так а в чем тут “затычка”? Я правда не стал изголяться с оптимизацией разложением в ряд Тейлора, но это личные предпочтения. Главное нормализировать вектор, а уж в лоб это делать или с оптимизацией, принципиально не важно.
Ну а неопределенные состояния в углах Эйлера к матрице отношение не имеют. Это свойство самих углов ( о каком крене можно говорить при тангаже 90 град)… В матрице всегда однозначно определена ориентация объекта без всяких разрывов и особых точек, как собственно и в кватернионах…

AlexSneg

Ну тогда будем считать, что я неправильно выразил свою мысль. Тебе лучше знать, есть там “затычки” или нет 😃