Тема: Немного о PID регуляторах, пропорциональная часть.  (Прочитано 59744 раз)

0 Пользователей и 1 Гость просматривают эту тему.


Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #120 : 08 Ноябрь, 2013, 00:03:58 am »
задаем угловую скорость, система должна переварить это, выдать управляющее воздействие повернуть серву, стабилизировать угловую скорость, управляющее воздействие должно стать ноль, а вот серва должна быть не ноль,
Ну тут совсем плохо уже с моделью вертолёта в воздухе...В реальной жизни в вакууме единократное угловое ускорение сообщает телу угловую скорость, которая длится вечно...Но из за сопротивления воздуха - она должна бы тормозиться пропорционально квадрату скорости....Т.е. в вакууме любая постоянная угловая скорость возможна с "нейтральным" положением сервы хвоста. А в воздухе -нет, надо дополнительно постоянно "грести" против силы сопротивления.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #121 : 08 Ноябрь, 2013, 00:05:30 am »
у нас рассматривается ветер ка внешнее воздействие, но у нас и без ветра есть воздействие - это реактивный момент, если мы висим просто и все удерживается, то управление ноль, выключаем двигатель, что должно произойти?
Это проще, считаем что у нас соосник...но рулится он дополнительным хвостом :)

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #122 : 08 Ноябрь, 2013, 00:10:49 am »
Прочитал все с первой по последнюю страницу и решил влезть в вопрос так как очень интересно.
Вопрос по программе. Рассмотрим висение, висим, серва в определенном положении (в программе это ноль), управляющее воздействие это ноль, задаем угловую скорость, система должна переварить это, выдать управляющее воздействие повернуть серву, стабилизировать угловую скорость, управляющее воздействие должно стать ноль, а вот серва должна быть не ноль, а вот в программе она возвращается в ноль. Думаю управление сервой должно быть относительным положением а не абсолютным.
По поводу I и удержания, опять же рассмотрим типичный сворот хвоста,  если хвост свернуло на пол оборота, какая система FBL или обычный гир ставит хвост назад, а если на целый оборот свернуло? есть лимит интегрирования что помнит система даже при том что, да, в удержании если на земле двинуть хвостом то серва съезжает и ждет возврата хвоста в первоначальное положение.
Тут еще главное не запутаться в термине "устойчивое положение системы", у нас положение  это не позиция в пространстве , а угловая скорость.

Вы от меня хотите очень сложной модели. У меня упрощенная модель вертолета. Регулятор управляет сервой -> шагами хвостового ротора -> силой. Сила приводит к ускорению. У меня упрощенно считается в модели вертолета, что нету силы сопротивления воздуха при вращении. Исходя из этого серва и возвращается в 0. Т.к. скорость мы достигли, больше ускорений не нужно, можно вернуться в 0.
В принципе могу добавить силу противодействия хвосту зависящую от текущей угловой скорости. Глобально картинку это не изменит, но для любителей правды будет приятно :)

На данный момент добавил возможность "двигать" серву по хвостовой балке прямо в полете и смотреть как это будет компенсировать PID.

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #123 : 08 Ноябрь, 2013, 00:12:41 am »
Народ, вы придираетесь к частностям. Это все - внешние воздействия, которые легко гасятся I компонентой, которая специально для этого и предназначена - исправлять статическую ошибку.
Вот, ловите - версия, в которой можно двигать серву по балке прямо в полете  ;)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #124 : 08 Ноябрь, 2013, 00:13:11 am »
В принципе могу добавить силу противодействия хвосту зависящую от текущей угловой скорости.
Квадрату скорости, плиз!!! Подбери, чтобы больше полоборота не делал при каких-то реалистичных параметрах

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #125 : 08 Ноябрь, 2013, 00:14:52 am »
В реальной жизни в вакууме единократное угловое ускорение сообщает телу угловую скорость, которая длится вечно...Но из за сопротивления воздуха - она должна бы тормозиться пропорционально квадрату скорости....Т.е. в вакууме любая постоянная угловая скорость возможна с "нейтральным" положением сервы хвоста. А в воздухе -нет, надо дополнительно постоянно "грести" против силы сопротивления.
Да, я согласен, у меня упрощенная в этом смысле модель хвоста (не PID регулятора! )
Раз уже два человека об этом вспомнили, придется добавить силу сопротивления воздуха.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #126 : 08 Ноябрь, 2013, 00:16:03 am »
Вот, ловите - версия, в которой можно двигать серву по балке прямо в полете 
Временную шкалу можешь нарисовать ( чтобы примерно было видно величину задержек и время выхода ну нуль)

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #127 : 08 Ноябрь, 2013, 00:19:23 am »
В реальной жизни в вакууме единократное угловое ускорение сообщает телу угловую скорость, которая длится вечно...Но из за сопротивления воздуха - она должна бы тормозиться пропорционально квадрату скорости....Т.е. в вакууме любая постоянная угловая скорость возможна с "нейтральным" положением сервы хвоста. А в воздухе -нет, надо дополнительно постоянно "грести" против силы сопротивления.
это понятно и так про наличие сопротивление и без, НО даже отбросив сопротивление тела вертолета об воздух у будем считать что его нет. хвостовой ротор ввинчивается в среду, на сколько она плотная в данный момент не важно, скорость будет зависеть от шага ротора, это уже к вопросу почему вращающийся винт постоянного шага после определенной скорости уже не тянет а тормозит.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #128 : 08 Ноябрь, 2013, 00:22:31 am »
будем считать что его нет. хвостовой ротор ввинчивается в среду, на сколько она плотная в данный момент не важно, скорость будет зависеть от шага ротора, это уже к вопросу почему вращающийся винт постоянного шага после определенной скорости уже не тянет а тормозит.
В этом и прелесть аэродинамики - любое ускорение и сила - упираются в сопротивление...И по идее хвостовой ротор - он даёт сил( ускорение)...а по факту - устоявшуюся скорость в потоке воздуха ...

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #129 : 08 Ноябрь, 2013, 00:58:09 am »
Ловите: добавил силу сопротивления воздуха. Без дополнительных вмешательств в контроллер, все само стабилизировалось. PID контроллер будет работать даже в самых тяжелых условиях  ;)
« Последнее редактирование: 08 Ноябрь, 2013, 01:05:54 am от alienn »

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #130 : 08 Ноябрь, 2013, 01:00:48 am »
это понятно и так про наличие сопротивление и без, НО даже отбросив сопротивление тела вертолета об воздух у будем считать что его нет. хвостовой ротор ввинчивается в среду, на сколько она плотная в данный момент не важно, скорость будет зависеть от шага ротора, это уже к вопросу почему вращающийся винт постоянного шага после определенной скорости уже не тянет а тормозит.
Только это уже к PID регулированию не относится... Мы же тут не аэродинамику обсуждаем..

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #131 : 08 Ноябрь, 2013, 01:03:31 am »
Сорри, какую-то левую версию выложил, там в одном месте знак попутан.
Вот правильная:

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #132 : 08 Ноябрь, 2013, 01:06:51 am »
все само стабилизировалось. PID контроллер будет работать даже в самых тяжелых условиях
P - в твоём регуляторе ВООБЩЕ не нужен :)

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #133 : 08 Ноябрь, 2013, 01:09:49 am »
По поводу I и удержания, опять же рассмотрим типичный сворот хвоста,  если хвост свернуло на пол оборота, какая система FBL или обычный гир ставит хвост назад, а если на целый оборот свернуло? есть лимит интегрирования что помнит система даже при том что, да, в удержании если на земле двинуть хвостом то серва съезжает и ждет возврата хвоста в первоначальное положение.
Тут еще главное не запутаться в термине "устойчивое положение системы", у нас положение  это не позиция в пространстве , а угловая скорость.
Да, у нас "устойчивое положение системы" - это угловая скорость равная целевой.
В качестве лимита интегрирования служит параметр I Acc. Это не лимит по времени, это лимит по значению накопленной ошибки. По сути нечто типа на сколько максимально можно свернуть хвост, откуда система сможет вернуться обратно. Если свернуть больше чем на I Acc, то обратно в нужную точку уже не вернется.

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #134 : 08 Ноябрь, 2013, 01:14:09 am »
все само стабилизировалось. PID контроллер будет работать даже в самых тяжелых условиях
P - в твоём регуляторе ВООБЩЕ не нужен :)
В принципе да. За него может поработать D.
Но везде есть свои НО.
P - дает воздействие СРАЗУ.
I и D - с задержкой.

Нам же необходимо чтобы вертолет "был продолжением руки", поэтому без P не обойтись.
В BRAIN есть даже такой параметр - Feed Forward Gain - прямое воздействие со стика пульта на серву, мимо PID регулятора.
Используется для еще более быстрого и прямого управления.
А так да, можно и без P обойтись, только летать будет совсем по "компьютерному"