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

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


Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #135 : 08 Ноябрь, 2013, 01:17:03 am »
P - дает воздействие СРАЗУ.
Проверь - не даёт :) Либо шкалу дорисуй :)

реально - убери D в нуль и у тебя вполне "идёт за стиком" быстро и ровно. А с ненулевой - нечто жуткое...а всё потому, что твоя I - это моя P ! :)

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #136 : 08 Ноябрь, 2013, 01:27:37 am »
P - дает воздействие СРАЗУ.
Проверь - не даёт :) Либо шкалу дорисуй :)
реально - убери D в нуль и у тебя вполне "идёт за стиком" быстро и ровно. А с ненулевой - нечто жуткое...а всё потому, что твоя I - это моя P ! :)
Опять ты за свое :)
При P равным 0 и D равным 0 - никто за стиком не идет. Начинаются автоколебания. Ты пожалуйста давай конкретные примеры конкретных значений.
Система стабилизируется и без P, но с P делает это быстрее.
А задача FBL не только стабилизировать систему, но и быть для пилота незаметной, действовать без задержек, а этого без P достичь сложно.
Все, всем спокойной ночи.
P.S. Проверил - P gain дает. И сразу. А вот I gain - с задержкой.

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #137 : 08 Ноябрь, 2013, 01:40:04 am »
До меня дошло, по поводу интегрирования I.
Рассмотрим  работу головы и хвоста (сразу скажу что в руках у меня только ZYX Tarot, про остальные системы расскажут другие).
Хвост в удержании при смещении серва остается в положении пока хвост не вернется,
а чашка  головы после возмущения (ручкой или внешним) приходит потиху в ноль.
Отсюда очень простой вывод - хвост интегрируется до лимита накопленной погрешности, а голова по последней выборке. Так что все правы. Короче в программу нужна опция и так и так  :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #138 : 08 Ноябрь, 2013, 02:36:22 am »
Проверил - P gain дает. И сразу. А вот I gain - с задержкой.
начерти шкалу хотя бы с разметкой по 1/50 секунды (хе хе, стандартная серво), чтобы видеть сколько времени твоя система приходит в норму...

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #139 : 08 Ноябрь, 2013, 02:37:38 am »
Отсюда очень простой вывод - хвост интегрируется до лимита накопленной погрешности, а голова по последней выборке
на самом деле - нет никаких погрешностей :) Позже объясню чем на самом деле занимается I компонента :)

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #140 : 08 Ноябрь, 2013, 08:17:58 am »
Отсюда очень простой вывод - хвост интегрируется до лимита накопленной погрешности, а голова по последней выборке
на самом деле - нет никаких погрешностей :) Позже объясню чем на самом деле занимается I компонента :)
Андрей, слова "чем на самом деле занимается I компонента" претендуют на некое абсолютное знание, недоступное остальным. Это для меня как красная тряпка для быка.
Давай все таки определимся - я не против твоего способа регулирования, проблема в том, что он не применяется в FBL.

Твой способ:
PID управляет приращением позиции серво. По факту получается, что у тебя нет в "моем" понимании компоненты P. "Твоя" компонента P работает примерно как "моя" I. Далее, ты используешь I и D для гашения колебаний вызванных P. При этом глубина интегрирования по I - 3/4 периода колебаний.
Плюсы твоего способа:
1. Для работы не нужны серво-машинки. Достаточно обычного моторчика, т.к. на выходе контроллера не позиция, а приращение. Фишка в том, что в нашем случае (FBL, хвост) ты пытаешься брать на контроллер, задачу, которая решается внутри серво её собственным PID контроллером (ну или как-то еще..)
2. В стабильном положении выход контроллера 0, а следовательно можно безбоязненно выключать и перезагружать PID прямо на лету.
Минусы:
1. Динамика отклика - разгонная. Т.к. управляешь приращением. Отсюда неизбежные задержки, нелинейность отклика вертушки на команды пилота.
2. Отсутсвие возможности возврата в необходимое состояние при каком-то внешнем воздействии. Нету в твоей схеме Heading Lock, т.к. глубина интегрирования мизерная, меньше секунды. Тебе для реализации Heading Lock необходим доп. контроллер, который будет сверяться с курсом и командовать твоим контроллером. (В FBL такого точно нету. Это уже функции автопилота)

"Мой" вариант. (Он же используется в FBL)
PID управляет положением серво. P - дает непосредственную команду от пилота, I корректирует возможные ошибки при исполнении, D - гасит колебания вызванные I и P и тормозит чтобы избежать перелетов. (на самом деле не только гасит колебания, она же помогает гасить резкие порывы ветра. Она вообще сглаживает все резкое.)
Плюсы:
1. Более быстрая реакция на рулевое воздействия пилота благодаря P компоненте. Регулятору не надо нащупывать положение серво, он итак знает куда ее надо сдвинуть. А текущее триммироание у него есть в I компоненте.
2. Режим Heading Lock легко реализуется самим I компонентом в любом количестве. Глубина интегрирования - бесконечная.
Минусы:
1. В режиме стабильности выход PID не 0. Отсюда вывод - нельзя выключать или перезагружать PID в полете. (иначе Lock уплывет). Как с этим борятся в FBL - постоянно пишут в энергонезависимую память текущие параметры и переменные работы PID, и в случае перезагрузки (например просадка напруги при tic-tac), считывают их обратно.
2. Для работы необходимы точные серво, т.к. на выходе конкретное положение которое необходимо занять. Ну что поделать, это факт - чем лучше, быстрее, точнее серво, тем лучше работает FBL. Тем выше можно накрутить всяких чувствительностей и тем точнее и быстрее будет работать FBL

Андрей, просьба - не надо считать, что все остальные ничего не понимают и не знают. Твой вариант сам по себе не плох и не хорош. Он просто другой. Имеет право на существование. Как и любой другой. Но не надо говорить, что остальные неправы, только потому что у них не так как у тебя.


P.S. обновил эмулятор. Убрал лимит по I Acc. Теперь ограничений на накопление и исправление ошибки нет вообще. Ночью понял, что оно не нужно.
« Последнее редактирование: 08 Ноябрь, 2013, 09:24:50 am от alienn »

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #141 : 08 Ноябрь, 2013, 09:36:22 am »
А еще, ты просил графиков, их есть у меня.  :)

Все параметры идентичные, но:
слева P - 415, справа P- 0

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

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #142 : 08 Ноябрь, 2013, 10:22:52 am »
но во втором случае дольше.
Можешь разметку сделать по-времени? ( вертикальные полупрозрачные полосочки каждые 0.05 секунды хотя-бы() )

Оффлайн pilot

  • Сообщений: 56
    • Виталий
  • Город: Могилёв, Беларусь
« Ответ #143 : 08 Ноябрь, 2013, 10:36:45 am »
1. Для работы не нужны серво-машинки. Достаточно обычного моторчика, т.к. на выходе контроллера не позиция, а приращение. Фишка в том, что в нашем случае (FBL, хвост) ты пытаешься брать на контроллер, задачу, которая решается внутри серво её собственным PID контроллером (ну или как-то еще..)
есть вероятность что это следующий фетиш FBL систем, избавится от промежуточного регулятора в серво, и сервы будут с обратной связью в "коробку"


2. Отсутсвие возможности возврата в необходимое состояние при каком-то внешнем воздействии. Нету в твоей схеме Heading Lock, т.к. глубина интегрирования мизерная, меньше секунды. Тебе для реализации Heading Lock необходим доп. контроллер, который будет сверяться с курсом и командовать твоим контроллером. (В FBL такого точно нету. Это уже функции автопилота)
еще раз уточню про разное поведение головы и хвоста, в моей фбл точно голова работает не в режиме удержания, нужно чтобы ктото проверил как ведут себя другие системы - берем резко наклоняем вертолет и держим в наклоне, если после возмущений чашка становится в позу, а потом потиху возвращаются в 0, то суммирование погрешности будет по последнему отрезку.


Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #144 : 08 Ноябрь, 2013, 10:46:32 am »
есть вероятность что это следующий фетиш FBL систем, избавится от промежуточного регулятора в серво, и сервы будут с обратной связью в "коробку"
Сомневаюсь, но кто знает? :)
Напомню, у данной схемы есть минусы, которые хуже чем плюсы, которые она дает.
еще раз уточню про разное поведение головы и хвоста, в моей фбл точно голова работает не в режиме удержания, нужно чтобы ктото проверил как ведут себя другие системы - берем резко наклоняем вертолет и держим в наклоне, если после возмущений чашка становится в позу, а потом потиху возвращаются в 0, то суммирование погрешности будет по последнему отрезку.
Согласен, поведение хвоста и головы разное. Не только в твоей FBL так, это во всех так. Голова медленно возвращается в центр, после возмущения.
Потому что в ГОЛОВЕ ограниченный HeadingHold. Он работает кратковременно. Скорость возврата в данном случае может регулироваться глубиной интегрирования. Для полного лока - глубина бесконечна. Для плавного возврата - ограничиваем глубину интегрирования, скажем 5 секундами. Тогда через 5 секунд PID забудет про ошибку и голова плавно вернется на место. Этот параметр - скорость возврата регулируется. Я думаю что он реализован глубиной интегрирования.

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

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #145 : 08 Ноябрь, 2013, 10:49:33 am »
но во втором случае дольше.
Можешь разметку сделать по-времени? ( вертикальные полупрозрачные полосочки каждые 0.05 секунды хотя-бы() )
Сделал.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #146 : 08 Ноябрь, 2013, 10:52:20 am »
PID управляет положением серво.
Твой регулятор - работает. Но это  - не PID регулятор...Это I регулятор...Т.к. без I компоненты он вообще неработоспособен...Убери I  и посмотри - чтобы он справился - надо вручную поставить серво изначально в некоторое положение. Вечером посмотрю код - пойму что ты делаешь на самом то деле :)

P - дает непосредственную команду от пилота,
От пилота идёт \omega_0- целевая угловая скорость, которую хочет пилот ( пропорционально его ручке)....

есть вероятность что это следующий фетиш FBL систем, избавится от промежуточного регулятора в серво, и сервы будут с обратной связью в "коробку"
Это давно сделано в проекте OpenServo. :) Только под него еще нет достойного автопилота, который бы этим качественно пользовался

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #147 : 08 Ноябрь, 2013, 10:53:48 am »
Сделал.
А самая мелкая засечка - это сколько?

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #148 : 08 Ноябрь, 2013, 11:07:28 am »
Цитировать (выделенное)
Т.к. без I компоненты он вообще неработоспособен

Ты будешь удивлен, но PID регулятор и не должен быть работоспособен без I компоненты. Потому что без I это уже не PID регулятор, а  PD регулятор.
PID управляет положением серво.
Твой регулятор - работает. Но это  - не PID регулятор...Это I регулятор...Т.к. без I компоненты он вообще неработоспособен...Убери I  и посмотри - чтобы он справился - надо вручную поставить серво изначально в некоторое положение. Вечером посмотрю код - пойму что ты делаешь на самом то деле :)

Все, до свидания. Нравится упорствовать в своих идеях - ради бога. Ты абсолютно не хочешь слушать того что тебе излагают простым, понятным логическим языком. В твоих же ответах, к сожалению простая математическая логика отсутствует.
Всех остальных призываю с долей скептицизма относиться к тому что объясняет Андрей, и не воспринимать информацию как идею для настройки FBL, т.к. то использование PID которое он сам пробовал в прошлом и с чем разобрался и в чем хорошо понимает, к сожалению, как мне видится, лежит в другой области применения, нежели FBL или хвост с Heading Lock.

Цитировать (выделенное)
А самая мелкая засечка - это сколько?
А логику включить?  Между большими засечками 10 маленьких. Большие засечки стоят с интервалом в 1 сек. (легко засекается) - вывод - маленькие засечки по 0.1 сек. или 100msec.
« Последнее редактирование: 08 Ноябрь, 2013, 11:29:37 am от alienn »

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #149 : 08 Ноябрь, 2013, 11:40:56 am »
есть вероятность что это следующий фетиш FBL систем, избавится от промежуточного регулятора в серво, и сервы будут с обратной связью в "коробку"
Новая линейка SV от Futaba... Уже.