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

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

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

msv
X3_Shim:

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

Действительно интересно… Конечно деление на ноль должен исключить программер. И если это не сделано, означает что прошивка просто кривая.
А вот предусмотреть всевозможные комбинации отказов сразу нескольких подсистем ( RC, GPS, IMU итп) задачка не такая простая…
В моем представлении, если исправно управление необходима только сигнализация отказов, и пилот сам должен принимать решение.
А вот когда проблема с управлением и отказ подсистемы необходимой для отработки автовозврата, что делать не очень понятно…
При отказе GPS, можно пытаться какое-то время удерживать курсу по компасу, высоту по баро в надежде что GPS очухается. В остальных случаях- только самоликвидация… 😃

Olegfpv
KBV:

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

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

У меня на Fy41 пропадали спутники , сменился возвратный курс, но как только спутники поймались система показала путь домой, из памяти не вылетало, ведь питание не выключалось и в буфере остались координаты. Грешил на плохой GPS, позже сменил камеру курсовую ,вместо корпусной 500 линий на безкорпусную Сони600 супер хад и спутники не пропадали . А так же вместо 7-8 стало 9-11шт. Думаю камера с проводом по низкой частоте подглушивала Gps.

yaten

Грешил на плохой GPS, позже сменил камеру курсовую ,вместо корпусной 500 линий на безкорпусную Сони600 супер хад и спутники не пропадали . А так же вместо 7-8 стало 9-11шт. Думаю камера с проводом по низкой частоте подглушивала Gps.

Это импульсник в камере, уже обсуждалось, даже решение нашли путем припаивания кондера на несколько пикофарад в цепь импульсника (куда не помню). Поищите.

У меня ни один GPS вообще спутники не ловил на расстоянии метр от включеной камеры (c bevrc kx-181). Поставил кондер - 10-11 стало.

baychi
Olegfpv:

пропадали спутники , сменился возвратный курс, но как только спутники поймались система показала путь домой, из памяти не вылетало

Да там просто АП рестартовал, очевидно же. Вот и база потерялась…

Cathay_Stray

А если рассматривать не условное деление на ноль, а реальные полётные ситуации?

Например, имевший место случай.

Данные:

АП/ОСД - Шторм
Радио - Фриска
Носитель - Бикслер
Размещение антенн - антенна передатчика вертикально, обе антенны приёмника тоже строго вертикально (что неправильно)
Включение RTH при потере сигнала - около 70 % газа и нейтральные положения остальных палок (70 % газа - это тоже очень неправильно, т.к. слишком много: ток 18-20 А и скорость при этом в районе 120 км/ч, крейсерские значения 3-4 А и 45-55 км/ч)

Развитие событий:

На малой высоте при дальнем заходе на посадку (ок 400 м) я делаю слишком сильный крен (ок 80+ градусов).
Вертикально установленные антенны приёмника теряют связь с передатчиком.
Шторм моментально врубает RTH, ток скачет до 20 А, естественно вместо завершения поворота и выхода из крена самолёт затягивает в бочку и он оказывается на спине.
Антенны снова находятся вертикально, сигнал восстанавливается, газ падает до нормального.
Я вручную переворачиваю самолёт на место и иду менять трусы.

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

Но меня интересует, что делал бы Шторм, если бы я не выкрутил самолёт снова со спины на брюхо? Как бы он его выравнивал, и выравнивал ли бы вообще?
Высота была метров 60, не разгуляешься.

baychi

Возьмите модель, переверните ее вверх ногами с включенной стабилизацией или RTH и посмотрите на сервы. Нормальный АП сначала выводит модель в горизонт пузом книзу , а затем уже думает о рулении на базу. Шторм относится к нормальным АП.
Еще более умные АП не начинают разворот, пока не наберут заданную минимальную высоту.

PS: Ситуации подобные описанной Вами - абсолютно штатные и никаких сюрпризов здесь быть не должно.