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

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


Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #105 : 07 Ноябрь, 2013, 20:53:17 pm »
. Так что могу гарантированно, со всей ответственностью заявить, что BRAIN управляет не дельтой положения сервы, а фактическим её положением
Т.е ты лично калибруешь БРЕЙН, чтобы он знал какое положение сервы соответсвует какой угловой скорости? :)
Спорим, что если ты сдвинешь серву...то ничего не произойдет и он все равно будет работать правильно?

У BRAIN есть для всех серв нейтральное положение, он знает их 0. Дальше когда ты ставишь ему задачу: угловая скорость 50 - он вычисляет смещение от нуля с помощью параметра P. Получает новое положение. В идеале, без ветра, и при условии что 0 положение соответствует 0 угловой скорости - да, этого достаточно. Но по факту 0 может быть не 0, т.к. серву могли подвинуть, могу подуть ветер. И вот тут вступает в действие компонента I. Она "видит" что P не справляется с задачей и помогает - добавляет воздействия для устранения ошибки.
Разница в том, что P действует мгновенно - пропорционально положению стика, а I с отставанием - по мере накопления ошибки.

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #106 : 07 Ноябрь, 2013, 20:54:11 pm »
Я не это утверждаю.
Ты согласен что при выходе системы в искомую точку выход ПИДа - нуль?

При отсутствии внешних воздействий - да. При наличии любых внешних воздействий - нет.


Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #107 : 07 Ноябрь, 2013, 20:54:50 pm »
Сделал отключаемые порывы ветра
У тебя не держит курс... При ветре его отруливает, убираешь ветер - он возвращается в исходное положение. А должен при ВЕТРЕ возвращаться в исходное положение после небольшого колебания.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #108 : 07 Ноябрь, 2013, 20:55:47 pm »
У BRAIN есть для всех серв нейтральное положение, он знает их 0
Нулевое положение сервы не соответсвует нулевому значению тяги ( как ты понимаешь) :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #109 : 07 Ноябрь, 2013, 20:56:38 pm »
При отсутствии внешних воздействий - да. При наличии любых внешних воздействий - нет.
ТАк именно эта ошибка у тебя в программе и есть... Ты не можешь с ветром вернуться на исходный курс

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #110 : 07 Ноябрь, 2013, 22:50:48 pm »
Три траницы споров показали следующее :)

1. Надо внимательно читать  друг друга

2. Существуют ( как было сказано в первой части) несколько способов формирования PID регуляторов... разность заключается в разности уровней производный...
Т.е. можно регулировать координату через скорость ( т.е. dx/dt=-x) или скорость через ускорение ( силу) dv/dt=-v и получать  решение, которое я обозвал "экспоненциально стухающее скучное решение".  В этом случае P компонента - это скрость или сила
 А можно - регулировать координату уже через силу (d2x/dt2=-x), или, к примеру, скорость через ускорение ускорения (d2v/dv2=-v), получая быстрое "раскачивающееся решение" :), а в этом случае P компонента - это сила или изменение силы



Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #111 : 07 Ноябрь, 2013, 23:09:00 pm »
Ну в общем, полтора часа обсуждения показали, что каждый прав, но по своему :)
А для меня важно, что мою программу можно использовать в качестве эмулятора PID регулятора используемого в FBL системах и гироскопах с удержанием хвоста. Алгоритмы заложенные в неё аналогичны используемым в FBL системах.
А Андрей знает еще один способ использования PID регулятора. Возможно его подход также можно было бы использовать в FBL, но мы этого не знаем, если у него получится - он нам расскажет.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #112 : 07 Ноябрь, 2013, 23:19:41 pm »
Я, кстати, вспомнил почему мне нравится PID регулятор со второй производной ( т.е. когда скорость регулируется через ускорение ускорения) (в твоём тексте - это задач про позиционирование, ты прав). Вот по какой причине...  ускорение ускорения ( т.е. ускорение силы) - это достаточно "честная" величина, поскольку это "смещение" сервы от текущей точки. А вот просто сила(ускорение) - величина хорошая, но из положения сервы (или ручки газа на сооснке) она никак не вытекает...Т.е. одно и то же положение ручки газа на сооснике (сервы на хвосте) может ( в зависимости от нагрузки)  быть и ускорением вверх, а может - и вниз. (или влево и вправо).. А вот  приращение ускорения - всегда будет честной величиной и поэтому именно эту величину я ввел как P компоненту.

Т.е. твой вариант - работает только на симуляторе :) где у тебя 0 сервы - это   0 силы :) Сделай "смещение сервы" - и посмотри какой кошмар получится :) Серьёзно, попробуй!!! :) Мне -надо пока комп  с семеркой для запуска студии :)
« Последнее редактирование: 07 Ноябрь, 2013, 23:32:44 pm от AndRay »

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #113 : 07 Ноябрь, 2013, 23:43:57 pm »
Т.е. твой вариант - работает только на симуляторе :) где у тебя 0 сервы - это   0 силы :) Сделай "смещение сервы" - и посмотри какой кошмар получится :) Серьёзно, попробуй!!! :) Мне -надо пока комп  с семеркой для запуска студии :)
Неа! Будет работать абсолютно корректно, за счет компоненты I.
Сделаю, специально, чтобы тебе показать как это будет выглядеть :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #114 : 07 Ноябрь, 2013, 23:46:39 pm »
Будет работать абсолютно корректно, за счет компоненты I.
Это называется - "костыль" :) Тебе вообще P компонента не нужна тогда, поскольку реально ни за что не будет отвечать, за всё будет отвечать I аккумулятор, а d - не будет давать разгоняться системе :) Т.е. у тебя будет ID регулятор, d - будет мешать :)
Кстати, сравним время выхода на стационар для твоего и моего регулятора, кстати :)

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #115 : 07 Ноябрь, 2013, 23:47:30 pm »
Прочитал все с первой по последнюю страницу и решил влезть в вопрос так как очень интересно.
Вопрос по программе. Рассмотрим висение, висим, серва в определенном положении (в программе это ноль), управляющее воздействие это ноль, задаем угловую скорость, система должна переварить это, выдать управляющее воздействие повернуть серву, стабилизировать угловую скорость, управляющее воздействие должно стать ноль, а вот серва должна быть не ноль, а вот в программе она возвращается в ноль. Думаю управление сервой должно быть относительным положением а не абсолютным.
По поводу I и удержания, опять же рассмотрим типичный сворот хвоста,  если хвост свернуло на пол оборота, какая система FBL или обычный гир ставит хвост назад, а если на целый оборот свернуло? есть лимит интегрирования что помнит система даже при том что, да, в удержании если на земле двинуть хвостом то серва съезжает и ждет возврата хвоста в первоначальное положение.
Тут еще главное не запутаться в термине "устойчивое положение системы", у нас положение  это не позиция в пространстве , а угловая скорость.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #116 : 07 Ноябрь, 2013, 23:48:24 pm »
Сделаю, специально, чтобы тебе показать как это будет выглядеть
Давай, жду!!! Смести процентов на 30-40 !!! :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #117 : 07 Ноябрь, 2013, 23:49:28 pm »
Думаю управление сервой должно быть относительным положением а не абсолютным.
Это у нас и есть предмет спора :) Я - за "относительное"...!!!

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #118 : 07 Ноябрь, 2013, 23:56:45 pm »
Это у нас и есть предмет спора :) Я - за "относительное"...!!!
Я тоже за относительное (в пределах лимитов). Но спором это называть не будем, лучше поиск истины, то что программа полезна это факт и автору респет, но нужно все-таки довести это дело до конца.

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #119 : 08 Ноябрь, 2013, 00:00:41 am »

Ты согласен что при выходе системы в искомую точку выход ПИДа - нуль?
При отсутствии внешних воздействий - да. При наличии любых внешних воздействий - нет.

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