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

smalltim

Осмысливаю. Про руление руддером - да, пора, пожалуй, вводить управление руддером.

serj:

Даже отклонение на 1.5мм по задней кромке элеронов на несколько секунд приведет к желаемому крену.

Это я пытаюсь донести коллегам, что считают отклонения плоскостей в стабилизации маленькими.

serj:

ограничение I- компоненты в зависимости от P сделают квадратичной характеристику регулятора

Не уверен, что это так. Он, по-прежнему, линейный, с Ку от 1 до 3.

Edward_tlt

Полетал сегодня. Так как угол тангажа не удалось уменьшить до -10, то поставил резкость 10%. Вообщем всё гуд, даже маленький рекорд для себя установил, 3км отдаление и 1км высоты. Был один не понятный момент, пока всячески испытывал возврат. Вот он

Можно было конечно подождать как дальше себя ап поведёт, но что то я решил переключиться на ст.

smalltim

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

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 я делаю первые приблизительные попытки, потом будем двигаться дальше.
И мне б вот классную навигацию скорее запилить, пока мысли не разбежались 😃

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