Автопилот Arduplane - открытое ПО

Papercut
Shuricus:

Давайте без склок.

В споре рождается истина =)

Shuricus:

Не нужно смешивать все в одну тарелку.

Да я про то же самое =)

Ладно, вернемся к нашим баранам, я тут как-то раз вопрос задавал:

Papercut:

Есть такая группа параметров, вот один, к примеру:
Pitch up max rate (PTCH2SRV_RMAX_UP)
Note: This parameter is for advanced users

This sets the maximum nose up pitch rate that the controller will demand (degrees/sec). Setting it to zero disables the limit.

Range: 0 100
Increment: 1
Units: degrees/second

Если выставить в 0, то управляющие плоскости двигаются соразмерно отклонению от горизонта, т.е компенсируют отклонение не рывком, а постоянно, пока есть отклонение от горизонта. Подобная логика в режиме стабилизации используется в автопилоте Аркберд, например.
Мне вот интересно, АРМ при такой настройке адекватно летать будет?

Кто-нибудь на него ответ знает?

Я все это к чему. Любой адаптированный для самолета автопилот стабилизирует не “гребя” рулями, как АПМ по-умолчанию, а именно выставляя угол отклонения рулевой плоскости, соразмерный отклонению от горизонтальной плоскости. И держит этот угол до тех пор пока самолет не выровняется. Отсюда практически отпадает надобность в точной настройке всяких там PID, да и отработка при разных скоростях почти не изменяется, т.к. динамика самолет и коптера - сильно разные вещи.
То как это делает АПМ больше смахивает на логику работы обычного гироскопического стабилизатора, причем во всех автоматических режимах. А такая стабилизация хороша в полуручных режимах полета. Чтобы ветром не сильно трясло например.
Если сделать настройку, как я выше написал, то АПМ применяет ее ко всем режимам, начиная Stibilize и заканчивая Cruize. Что тоже не очень интересно, т.к. хочется сохранить режим и простой гирокомпенсации.
Есть какие-то мысли как этого добиться?

Shuricus
Илья_Реджепов:

А как настроить APM на заводе,

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

RTemka
Papercut:

В споре рождается истина =)

Кто-нибудь на него ответ знает?

Я все это к чему. Любой адаптированный для самолета автопилот стабилизирует не “гребя” рулями, как АПМ по-умолчанию, а именно выставляя угол отклонения рулевой плоскости, соразмерный отклонению от горизонтальной плоскости. И держит этот угол до тех пор пока самолет не выровняется. Отсюда практически отпадает надобность в точной настройке всяких там PID, да и отработка при разных скоростях почти не изменяется, т.к. динамика самолет и коптера - сильно разные вещи.
То как это делает АПМ больше смахивает на логику работы обычного гироскопического стабилизатора, причем во всех автоматических режимах. А такая стабилизация хороша в полуручных режимах полета. Чтобы ветром не сильно трясло например.
Если сделать настройку, как я выше написал, то АПМ применяет ее ко всем режимам, начиная Stibilize и заканчивая Cruize. Что тоже не очень интересно, т.к. хочется сохранить режим и простой гирокомпенсации.
Есть какие-то мысли как этого добиться?

Старая прошивка так и делала, пропорционально угловой ошибке отклоняла рули.
А новая пытается предугадать по угловой скорости насколько нужно поймать.
А каким образом автопилот должен по вашему угадать соразмерность отклонения, если он не в курсе что это за самолет и какая у него скорость?
Так, что автопилотов с функцией телепатии пока нету 😃
Везде или PID или RATE 😃

Andrey3167
Shuricus:

В нем нет ограничений.

Илья_Реджепов:

Чем он и хорош, универсальностью.

ЦЕНА: вместо одного вектора и др, можно 3 самолета укомплектовать АПМ-мами

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

Wasja

А что Вектор уже выдает позицию самолета на планшет?

Papercut
RTemka:

Старая прошивка так и делала, пропорционально угловой ошибке отклоняла рули.
А новая пытается предугадать по угловой скорости насколько нужно поймать.

ЛАЖА! =) Просто, без комментариев =)

RTemka:

А каким образом автопилот должен по вашему угадать соразмерность отклонения, если он не в курсе что это за самолет и какая у него скорость?

Для начала тупо по углу отклонения от горизонтали.
Опять же выше писал, не надо ничего угадывать!!! Отклонил до факта выравнивания - все, больше ничего не надо.
Если вы этого понять не в состоянии - мне жаль.
В итоге дискуссии ваше мнение из серии гуру плавно переходит в область ламера =)

А ответа на свой вопрос я так и не получил =)

Wasja:

А что Вектор уже выдает позицию самолета на планшет?

А что, это всем надо?!

X3_Shim
Papercut:

Опять же выше писал, не надо ничего угадывать!!! Отклонил до факта выравнивания - все, больше ничего не надо.

Я вот в алгоритмах автопилотов совсем не разбираюсь, уж простите ламера. Но по моему для системы обладающей моментом инерции, выражение “Отклонил до факта выравнивания - все” звучит как минимум странно.

LysvaSki
X3_Shim:

Я вот в алгоритмах автопилотов совсем не разбираюсь, уж простите ламера. Но по моему для системы обладающей моментом инерции, выражение “Отклонил до факта выравнивания - все” звучит как минимум странно.

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

alexeykozin
Papercut:

Сообщение от RTemka
Старая прошивка так и делала, пропорционально угловой ошибке отклоняла рули.
А новая пытается предугадать по угловой скорости насколько нужно поймать.
ЛАЖА! =) Просто, без комментариев =)

надо же, какое авторитетное заявление.
аксиома прям, и на кривой козе не подъедешь…
может все таки прокоментируете или программный код процитируете? почему вдруг коэффициенты устанваливающие зависимость управляющего сигнала на сервы и ошибки угловой скорости по крену/питчу вам показались лажей?

alex195822
alexeykozin:

надо же, какое авторитетное заявление.
аксиома прям, и на кривой козе не подъедешь…
может все таки прокоментируете или программный код процитируете? почему вдруг коэффициенты устанваливающие зависимость управляющего сигнала на сервы и ошибки угловой скорости по крену/питчу вам показались лажей?

А народ то не знает, что для идеального полета достаточно P регулятора. Придумали , наверное от безделия, теорию автоматического регулирования и PID регулятор, это только у сферического коня в вакууме нет ни массы ни момента инерции 😃

dima_ua
Papercut:

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

так это вы описали ПИД

alex195822
dima_ua:

так это вы описали ПИД

Это чистый P с ним будет порхать аки бабочка.

RTemka
Papercut:

ЛАЖА! =) Просто, без комментариев =)

Для начала тупо по углу отклонения от горизонтали.
Опять же выше писал, не надо ничего угадывать!!! Отклонил до факта выравнивания - все, больше ничего не надо.
Если вы этого понять не в состоянии - мне жаль.
В итоге дискуссии ваше мнение из серии гуру плавно переходит в область ламера =)

Ваше “тупо до факта выравнивания” приведет к раскачке до разрушения конструкции 😃
Ибо это сцука самолетная еще и инерцией обладает и массой простите 😃
Залейте в ардуину мультивий и попробуйте.
Крыло у меня разорвало, при наборе скорости с таким алгоритмом😒
Так, что расходы нужно или вбивать правильные или делать самообучающийся алгоритм.
А мешки ворочить батенька это вам не звуки издавать😁

dima_ua
alex195822:

Это чистый P с ним будет порхать аки бабочка.

с чистым P будет качка, которая в ситуации полета по FPV вызовет назад съеденное…
там ниже уже развернуто ответили

в целом же регуляторы чего-либо на чистом Р чреваты вот таким

alex195822
dima_ua:

с чистым P будет качка, которая в ситуации полета по FPV вызовет назад съеденное…

Так именно это я и имел ввиду- либо осцилляция, либо недобор.

Papercut

Возьмите любой автопилот, не АПМ, включите на нем стабилизацию и покрутите самолет. Рули остаются отклоненными до тех пор пока самолет не в горизонтальной плоскости, чем ближе к горизонтали, тем меньше отклонение. Единственное, что настраиваем - коэффициент перевода углов отклонения от горизонтали в углы отклонения рулевых плоскостей. С чего тут взяться осциляции?
АПМ же при отклонении от горизонтали делает рывок рулями, параметры которого настраиваются тем самым PID, после чего возвращает рули в нейтраль, причем это далеко не гарантирует того, что самолет вернулся в горизонталь, PID надо к скорости привязывать и тому подобная муть начинает всплывать. Зачем такая корявая логика мне не сильно понятно.

kaveg
Papercut:

Возьмите любой автопилот, не АПМ, включите на нем стабилизацию и покрутите самолет. Рули остаются отклоненными до тех пор пока самолет не в горизонтальной плоскости, чем ближе к горизонтали, тем меньше отклонение. Единственное, что настраиваем - коэффициент перевода углов отклонения от горизонтали в углы отклонения рулевых плоскостей. С чего тут взяться осциляции?

Теорию управления почитайте, поймете с чего взяться.
пропорциональное отклонение рулей в соотвествии с возмущением(углом наклона) это буковка P в абревиатуре PID
ещё две буковки это интегральный и дифференциальный, один компенсирует инерциальную состовляющюю, второй внешнее воздействие на систему (например ветер) какбы накапливая постоянную ошибку, в результате пид контролдер делает что при боковом ветре рули даже когда самолёт летит горизонтально не в нейтральном положении.

X3_Shim
kaveg:

один компенсирует инерциальную

У него самолет не имеет инерции, так что и с одним P нормально.

Papercut
kaveg:

Теорию управления почитайте, поймете с чего взяться.

Мне и практики хватает с другими, не АПМ автопилотами. Которые не машут плоскостями.
И как это тот же Игл летает, если там из настроек стабилизатора только Gain и максимальные углы отклонения? Что ж он не осцилирует-то?

X3_Shim:

У него самолет не имеет инерции, так что и с одним P нормально.

Да хрен с ней с инерцией. Почему нельзя плоскость отклонять соразмерно отклонению от горизонтали, а не махать ей, возвращая в нейтраль?

alex195822
Papercut:

Зачем такая корявая логика мне не сильно понятно.

Кроме свойства летать самолет имеет так же вес и определенный момент инерции. Ваши рассуждения справедливы только для объектов с весом и моментом инерции = 0.