Smalltim OSD and autopilot (часть 2)

KBV

А если в стабилизации дать ток 40А (как сделал автопилот) или, как вариант, ограничить макс ток автономного полета скажем 20А ?

Edward_tlt
smalltim:

Кабель до ИМУ у Вас не удлинен? Свейте его слегка.

Тим, с интересом почитал полный текст сообщения ещё до редактирования:) Кабель не удлиннён, свить попробую но когда моя ИМУшка придёт. Летаю на чужой пока… Офф: у моей статус “сортировка в Москве” с 4го числа, емс блин:)
А по делу: В этом полёте “коррекция рассогласования датчиков” стояла 15, это я поставил начитавшись инструкции:) Потом поменял на 20 и далее так и летал. Записи последнего полёта нету, но меня всё устроило:) И если хочется проверить какие то идеи, может вам сделать раздел на своём сайте с бета-прошивками? Кому интересно могли бы поучаствовать в тестировании.

baychi
smalltim:

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

Имеется в виду так называемая - 3D стабилизация? Когда работает только дифф. составляющая гироскопов?
Это полезный режим - но только не вместо обычной стабилизации, а как дополнение.

Полетал вчерась вслаcть с альтернативной прошивкой. В основном тестировал режим управления газом в зависимости от тангажа. ИМХО - получилось неплохо, предлагаю добавить этот режим как еще одини вариант к варианту управления скоростью, можно даже вместо режима существующего управления газом. Преимущества данного способа - независимость от измерения скорости по GPS или баро. А по экономичности он лишь немного проигрывает режиму удержания скорости.

Вот видео:
Тест IMU от Smalltim альтернативная прошивка

На последнем RTH акк разряжен до неприличия (комментарий на клипе затерся).

По IMU замечу, что на первый план выходит борьба с вибрациями. Понятно, что лучше бороться с причниой, чем со следствиями - балансировать ВМГ, ставить IMU на специальные виброгасящие площадки и т.п. Но ИМХО, всего этого может оказаться недостаточно для массового изделия. Поэтому предлагаю вернуться к вопросу программной фильтрации вибрации в алгоритме IMU. Понятно, что любой фильтр даст дополнительную задержку (половина длины фильтра для КИХ), но так ли велика будет эта задержка? При 200 Гц опросе гироскопов (если не ошибаюсь), задержка в 50 мс - это КИХ фильтр на 20 шагов. Как режекторный или ФНЧ он способен срезать вибрации с частотами от 10 до 100 Гц с ослаблением на 20-30 дБ. Не берусь предсказать, насколько это ухудшит динамику, но чувствительность к вибрациям движка будет значительно ниже. Может стоит добавить такой фильтр, как опцию?
И еще по вибрациям очень не хватает обратной связи: вывода каких либо показателей на OSD. Трудно бороться с тем чего не видишь на земле. 😃

Creator991
baychi:

Полетал вчерась вслаcть с альтернативной прошивкой

очень хорошо! где скачать и как задаются данные коридора управления газом? (в КП?) меня очень напрягает когда АП (принудительный АВ)с высоты 200метров врубает газ на 100% и снижается на 100 метров!!😃 Ощющение, что щас крылья сложаться!

Edward_tlt

Я тож готов потестить альтернативные прошивки

baychi
FiLial:

металко валидол на посадке не повредилось?

Не. Она же раз в 10 крепче Изи, а он не пострадал. 😃

Creator991:

где скачать и как задаются данные коридора управления газом?

Пока это нигде скачать нельзя. Вот добавит Тимофей это в официальный релиз…

Creator991:

меня очень напрягает когда АП (принудительный АВ)с высоты 200метров врубает газ на 100% и снижается на 100 метров!!

АП стартует с газом равным параметру “Целевой газ”. Затем действует по обстоятельствам - в режиме “удержания скорости” будет снижать, а в существующем режиме “управление газом” остваит этот газ. Поставьте себе небольшое значени “целевого газа” и станет лучше.

smalltim
Edward_tlt:

Тим, с интересом почитал полный текст сообщения ещё до редактирования

Да я еще раз внимательно пересмотрел видео, пересмотрел код, все отображаемые на видео параметры, и понял, что мои теоретизирования оказались не в кассу. Стер 😃

Creator991:

меня очень напрягает когда АП (принудительный АВ)с высоты 200метров врубает газ на 100% и снижается на 100 метров!! Ощющение, что щас крылья сложаться!

Андрей, даже если АП сказано удерживать скорость, то начальный газ он выставляет в значение, заданное в поле величина газа для режима “удерживать газ” и держит его 2 секунды. После начинает играть газом. Поставьте эту величину поменьше и Вам будет спокойнее.

baychi:

Поэтому предлагаю вернуться к вопросу программной фильтрации вибрации в алгоритме IMU. Понятно, что любой фильтр даст дополнительную задержку (половина длины фильтра для КИХ), но так ли велика будет эта задержка? При 200 Гц опросе гироскопов (если не ошибаюсь), задержка в 50 мс - это КИХ фильтр на 20 шагов. Как режекторный или ФНЧ он способен срезать вибрации с частотами от 10 до 100 Гц с ослаблением на 20-30 дБ. Не берусь предсказать, насколько это ухудшит динамику, но чувствительность к вибрациям движка будет значительно ниже. Может стоит добавить такой фильтр, как опцию?

Попробую сделать, но позже, когда будем поднимать в воздух коптерные прошивки.
Сейчас пока планирую отображать в углу индикатора горизонта уровень вибраций и перегрузок.

Вахтанг
serj:

Зы : не стоит думать что у Тимофея одна голова 😃

Ну да. Тимофей - ты у нас тепер будешь Змей Горинич 😃

serj:

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

Инструктор он на то и инструктор.
Летал я на ЯК18, с бывшим военным пилотом, под Питером! Рассказать это словами нереально, надо самому посмотреть, а еще лучше попробовать! от перегрузок глаза чуть на лоб не вылезли. Ничего, не обблевалься. Поворота блинчиком он не делает, принципиально. А разворот на 180 градусов в конце полосы, с наклоном под 70 градусов, и посадка до середины полосы - это пожалуйста.
При управлении РУ моделью и я также управляю, наклон 40-60 градусов и РВ в место РН. Разворот с меньшим радиусом не сделать больше никак! Правда делать это надо на скорости, ибо можно свалится на крыло.
Тимофей- а выбор в контрольной панели типа авиагоризонта будет? я имею в виду разное понимание отображения у нас и за бугром.

AlexSneg
smalltim:

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

сорри, что вмешиваюсь, но уж поскольку той же проблемой мучаюсь, подкину мысль, вдруг поможет, и я буду знать, что путь правильный.
Вот вместо того, чтобы мучаться с коэффициентами, не проще сигнал roll с IMU подать на преобразование фурье и получить спектр гармоник. Гармонику воздействия на серву мы знаем, поскольку сами ее генерим. Соответственно строим цифровой фильтр и вырезаем гармонику раскачки, за одно и вибрации, на ходу прямо из сигнала горизонта.

baychi
AlexSneg:

строим цифровой фильтр и вырезаем гармонику раскачки,

Что такой гамоника раскачки? И зачем ее выделять через ДПФ, если алгоритм сам раскачивает модель?

AlexSneg:

за одно и вибрации, на ходу прямо из сигнала горизонта.

Вибрации выделить можно, но ИМХО проще их сразу давить ФНЧ.

AlexSneg
baychi:

И зачем ее выделять через ДПФ

Для того, чтобы сразу понять куда подкручивать коэффициенты усиления воздействия на серву.

baychi:

сразу давить ФНЧ

ФНЧ на сигналы датчиков или ФНЧ на результирующий сигнал горизонта?

baychi
AlexSneg:

чтобы сразу понять куда подкручивать коэффициенты усиления воздействия на серву.

Допустим, с помощью ДПФ мы выделим частоту раскачки, ее амплитуду и фазу относительно некоего момента времени. Как Вы хотите из этой информации получить коэффициенты усиления? И разве сам по себе ПИД алгоритм при правильной настройке не должнен гасить раскачку?

AlexSneg:

ФНЧ на сигналы датчиков

Да, ФНЧ над исходными измерения гироскопов.

AlexSneg
baychi:

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

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

baychi:

ФНЧ над исходными измерения гироскопов.

Какую частоту дискретизации мы имеем на гироскопе в данном случае? 400 герц? А предполагаемая частота вибрации двигателя, диапазон? Вы ж понимаете Александр, что частоты более, чем половина частоты дискретизации уже и так задавлены в сигнале гироскопа? А те, что выше дискретизации вообще уже на уровне белого шума.

baychi
AlexSneg:

400 герц? А предполагаемая частота вибрации двигателя, диапазон?

От 50 до 200 Гц на движках с КV порядка 1000 об./мин. До 400-500 Гц на высокооборотистых. Но могут быть еще гармоники, как вверх так и вниз по спектру.

AlexSneg:

что частоты более, чем половина частоты дискретизации уже и так задавлены в сигнале гироскопа?

Там слабый аппаратный ФНЧ, 1-го порядка, ИМХО.

AlexSneg:

А те, что выше дискретизации вообще уже на уровне белого шума.

Это почему? Все что попадает в окно 0-200 Гц и не сильно задавлено аппаратно, будет видно в результате ДПФ. Например вибрация в 250 Гц будет видна, как ослабленная 150 Гц, 900 Гц, как 100 и т. д. Потому и предлагаю - сразу давить цифровым ФНЧ, все что можем себе позволить, не теряя в скорости отклика.

Creator991

ДЯдьки! вы или слишком умные или воду сквозь пальцы льете! Тимофей читает все ваши домыслы и наверно катается от смеха!!!

serj

Александр, алгоритм вычисления углов по гироскопу- это же ИНТЕГРАТОР… ничего там фильтровать не надо, оно и так все отфильтровано. 😃
Причина не в гироскопах, а “уплывании нуля” акселерометров при превышении уровня вибраций диапазона измерения - акселерометр превращается в нелинейный детектор. Гироскопы тоже начинают врать, но позже. и фильтрами это не исправить.

smalltim

Коллеги, FFT - это, конечно, хорошо, но в данном случае это, по-моему, чуть в сторону от того, что надо. Если есть колебания с частотой, выше или равной и, главное, кратной частоте сэмплирования, то хоть убейся, ничего не нафильтруешь.
Мне кажется, мы на ИМУ ловим на деталях конструкции модели baychi гармоники по крутильным колебаниям (а не по акселерометрам, иначе с чего вдруг ему удалось горизонт скривить больше чем на 90 градусов). И ловим их как раз на биениях. Обороты выше/ниже - привет, всё хорошо.
От такого можно спастись сэмплированием на реально дикой частоте, но на такой частоте на моем Cortex M3 не вертится математика 😃
Можно сэмплировать часто, делать даже простейшую фильтрацию на лету и скармливать (сравнительно) медленно вертящейся математике. Но всегда найдется модель, на которой что-нибудь вылезет на какой-нибудь жуткой гармонике, и опять всё снова.
Не проще ли потратить силы на что-то более полезное, а тем, у кого реально вдруг появились проблемы с вибрацией, постоветовать меры для снижения вибропомех, применяемые вертолетчиками уже сто лет: “подвесить” ИМУшку и увеличить “подвешенную” массу. Т .е. закрепить на масиивную (массивную! 10-15 грамм - для ИМУшки уже массивная!) медную/латунную/алюминиевую пластину, а ту, в свою очередь, приклеить на толствй виброгасящий скотч.

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

Применять FFT для подавления колебаний из-за неправильно настроенного ПИД - тоже из пушки по воробьям. Есть миллион и одна методика настройки ПИД, и знание (вычисление в полете, задание заранее, приблизительная оценка) сил, моментов инерции и демпфирующих свойств модели даст гораздо больше для принятия правильного решения, чем спектр сигнала с гиро.
Понимаю, выстроить характеристики исполнительных механизмов и модели как системы в целом, подав воздействие и пронаблюдав реакцию - это самое то для правильной настройки. Но FFT? Не знаю. Оно, конечно, вычислительно недорого и много, наверное, даст, но что-то голова у меня не включается в ту сторону.
Я думаю о том, что, воздействуя и меряя, помимо этого, надо еще и модель не уронить, и пилота не напугать, и на разных скоростях-высотах и в разное время (полный бак-пустой бак) это даст разные результаты, поэтому оценку характеристик надо встраивать в саму математику управления. И автоподстройкой Ку и хитрым I я делаю первые приблизительные попытки, потом будем двигаться дальше.
И мне б вот классную навигацию скорее запилить, пока мысли не разбежались 😃

Потом, обратная связь по наклон-воздействие не должна и не будет работать с бесконечной скоростью.
Если б так было, не надо было бы использовать ПИДы. Они, в общем-то, и придуманы для того, чтобы иметь возможность управлять системой, имея неидеальные исполнительные механизмы.

msv

Идентификация объекта управления на основе исследования его фазо-частотных характеристик- классика ТАУ, например www.bookasutp.ru/Chapter5_1_3.aspx#FrequencyIdenti…. Однако, уже намекал, применить это для авиамодели не так просто… Её передаточные функции зависят от многих режимов полета. Например ПХ крена может существенно меняться от воздушная скорости, газа (обдува рулевых поверхностей), тангажа, etc… Все это многообразие зависимостей все равно заставит искать некий компромисс, что, в моем представлении, для поиска идеального решения, безумно сложно. Недаром до сих пор не выработано четкого аналитического решения расчета даже банального ПИДа, а многообразие алгоритмов настройки только подчеркивают сложность проблемы. И пока для многих объектов управления подбор коэффициентов ПИДа ручками (естественно с пониманием чего от этого ждать) и визуального наблюдение за его поведением, дает лучшие результаты, чем трехэтажные мат. построения… ИМХО.

AlexSneg
serj:

алгоритм вычисления углов по гироскопу- это же ИНТЕГРАТОР… ничего там фильтровать

Согласен, на это и хотел намекнуть Александру. И с тем, что проблема как раз в акселерометром согласен, он как раз тупо врать начинает, показывать лажу всякую. Я это абсолютно четко отслеживал когда ставил эксперименты с отключением и включением магнетометра. Гира+Аксель получается лучше в статике, а гира + аксель+маг, существенно лучше в динамике и при наличии тряски.

smalltim:

Но FFT? Не знаю

Я эту тему поднял, потому как твоя мысль про интегратор с ограничением, это как раз и есть попытка сделать то же самое только во временной области. А зачем делать во временной, если в частотной все гораздо проще произойдет.

А вообще ты прав, делай лучше навигацию. Я тоже с ней колупаюсь сейчас. А с параметрами чего-нибудь потом придумаем.

msv:

классика ТАУ, например

Интересная статейка. Как раз те мысли, которые у меня в голове интуитивно крутились.

Oliver
smalltim:

Мне кажется, мы на ИМУ ловим на деталях конструкции модели baychi гармоники по крутильным колебаниям

smalltim:

И мне б вот классную навигацию скорее запилить

smalltim:

Эдуард, а что конкретно не понравилось? Как-то непонятно горизонт внаклонке остался? Да, это странно, от 0:57 до 1.10. Дальше выправилось. Похоже, коррекция центробежных ускорений по ГПС до ИМУ дошла с торможением.

Блин, а мне бы видео наших полетов 8-14 мая нарезать. Летали много и плодотворно. Крайние два полета в одном и том же месте поймали характерный уход горизонта почти под 60. Судя по всему тоже на конкретных оборотах. Также несколько раз словили небольшой, около 10 градусов временный уход и корректировку его через пару секунд. Поймали странное поведение при походе на точку (а в крайнем полете - и домой) - покачивание вправо-влево из-за постоянного “промахивания” мимо нужного направления, возможно надо добавить чувствительности по крену. Поймали невозврат домой после последней точки. Поймали странное неудержание скорости, вернее ниже не опускается, а вот выше - разгоняет чуть ли не до 100кмч. И поймали попытку все же полететь домой после того, как после аварийной посадки мотор выключился и все замерло.

О хорошем как правило не пишут. Я - напишу. 😃 Все началось с того, что ИМУ пришла, была воткнута в пилот, откалибрована в КП и… запущена в небо. Больше НИКАКИХ настроек не делалось. В стабилизации полетело сразу и больше с тех пор скай в ручном режиме не летал вообще. Раньше пилот стоял с пультом на старте, а помощник (я) запускал скай чуть ли не с разбегу, т.к. при неровном броске, да еще при провале на старте можно было завалиться в траву. Теперь мне счастье - в стабилизации пилот бросает ская сам и никакая просадка не страшна, т.к. крен держится ровно при любом броске. Просто счастье. 😃 В принципе на аппе команда “ручной режим” была заменена на полет по точкам. Домой полетело тоже сразу, но неуверенно. Добавили чувствительность по курсу до 120%, упреждение гпс - до 2-х секунд, заодно, раз уж подключили КП, уменьшили допустимый тангаж вниз, идти к целевой высоте по прямой (“сразу занимать целевую” на почти 3кг скае выглядит стремно), уменьшили целевой газ и поставили удержание скорости. ВСЕ! Ни настройки чувствительности, ни демпфирование, ни рассогласование, да вообще, больше НИЧЕГО не менялось. Теперь даже не могу заставить пилота поменять курс с ГПС на компас. Заявлено: “меня ВСЕ устраивает, зачем что-то менять???”.
Выполнены первые на этом скае полеты на дальность, на высоту, полеты по точкам, даже одна аварийная посадка из-за севшей батареи. Впечатления почти все положительные. За исключением остальных впечатлений самого пилота, которые можно описать только словом “восторг”. 😃
Нет, конечно надо допилить и устранить неясности. Но даже в текущем состоянии безбоязненно ушли на 4км из которых 1км - над заливом. При этом были уверены - щелчок на пульте - и он вернется. Впереди, думаю, полеты за облака, в облаках очень не хватало приборов и нормального горизонта. Теперь - есть.