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

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


Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« : 05 Ноябрь, 2013, 01:54:43 am »
Собственно, расскажу о том, как я понимаю PID регуляторы...

1. Немного занудства для приличия и наукообразия. ПИД регулятор - это не отдельная шаманская наука, а всего-лишь "вывернутое" уравнение колебаний с затуханием и вынуждающей силой.... (кто не верит, пусть проверит). И этот факт "инженера" и "программисты" - игнорируют настолько, что превращают тривиальную процедуру подбора пары коэффициентов в дикое шаманство.

В общем, пропустив еще страницу занудства посмотрим на PID регулятор в котором есть только одна P компонента. Даже уравнение писать не буду (классический гармонический осциллятор http://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%80%D0%BC%D0%BE%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BE%D1%81%D1%86%D0%B8%D0%BB%D0%BB%D1%8F%D1%82%D0%BE%D1%80 ) а сразу предъявлю систему. Грузик на резинке (мячик-раскидайчик), а резинка прибита к координате X=0. Нам бы очень хотелось, чтобы координата грузика "отрегулировалась" к этому самому нулю...  Но что мы видим.. сила, которая тянет мячик - это сила натяга резинки, ПРОПОРЦИОНАЛЬНАЯ Х....  ЕЩе раз- ПРОПРОЦИОНАЛЬНАЯ.  И еще раз - СИЛА... Соответственно, ускорение мячика - это сила, делёная на массу. Вроде бы - всё честно - чем ближе к нулю, тем меньше сила...НО!!! Мы то знаем, что мячик - он не останавливается в центре, а пролетает координату 0 с огромной скоростью, натягивая резинку в обратную сторону. (попутно заметим, что частота этих пролетов  - это корень из жёсткости пружины , делёной на  массу шарика).

А, теперь, собственнно, как тут регулятор то делать? А очень просто - на вход регулятора мы подаем "расстояние" до нужного значения, а на выход подаём силу, пропорционально этому значению ( со знаком (-)). И единственный настроечный параметр, который у нас в этом регуляторе есть - это коэффициент при силе( назовём его А)

Значит нам удалось заставить систему колтрахаться около нужного целевого значения с частотой, равной корню из А. 

Тем не менее, возникает вопрос - "а почему это мы регулировали УСКОРЕНИЕ, в зависимости от координаты", а не, к примеру, скорость? Вопрос абсолютно правомерный....но

Если мы можем управлять скоростью в зависимости от координаты- то мы получаем классический вариант экспоненты (которая будет к нулю стухать бесконечно долго) - это раз, а во вторых - в природе, скоростью удаётся управлять только через ускорение, поэтому проще делать регулятор именно для ускорений.

Так что  пропорциональный регулятор может получать либо достаточно бесполезные колебания около нужной точки, либо бесконечно долгое приближение у этой точке и, очевидно, его нам не хватит для вывода системы в точку.

Продолжение следует.


Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #1 : 05 Ноябрь, 2013, 20:17:06 pm »
Продолжу!

Часть вторая ...но не про I и не про D компоненты, а про реалии создания регуляторов в целом.

Чем, собственно, отличается реальный регулятор то идеального регулятора "на вход регулятора мы подаем "расстояние" до нужного значения, а на выход подаём силу, пропорционально этому значению"?  А отличается тем, что в регуляторах есть задержка. Т.е. то, что идёт на "выход" - зависит от "входа", но в предыдущий момент времени ...Т.е. есть задержка, ( условно) в целый "тик". Длина этой задержки - как повезёт, и определяется конкретной конструкцией. Может надо много времени для вычисления, а может- для "срабатывания", но это задержка практически неустранима (с рядом оговорок на экзотические конструкции).

К чему ведёт эта задержка... Если посмотреть вот сюда http://ru.wikipedia.org/wiki/%D0%92%D1%8B%D0%BD%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B5%D0%B1%D0%B0%D0%BD%D0%B8%D1%8F , и немного покрутить уравнения то будет видно, что "запаздывание" эквивалентно введению "вынуждающей силы", со всеми приключениями, которые это даёт. Но, чтобы не мучать формулы, просто посмотрим что происходит... В момент, когда наша система оказывается в точке 0, сила тоже должна была бы быть тоже 0...но она не 0, а некоторое значение, которое соответсвовало ненулевому значению координаты.  Т.е. в этот момент задержка "добавляет" энергии системы и система начинает "разгоняться".  Т.е. мечты о том, что P регулятор даст гармоническое колебание - несбыточны. Эти колебания идут вразнос, постоянно увеличивая амплитуду.

Но, для регулятора, который вечно стремился к нужной точке - ситуация становится интереснее...Задержка даёт "лишнюю" скорость в данной точке, т.к. эта скорость была вычислена для предыдущей точки, где расстояние было БОЛЬШЕ. Т.е. такой регулятор успешно дойдет до точки..перевалится через неё и начнёт возвращаться обратно... и будет с небольшой амплитудой болтаться рядом с целевой точкой..и мы снова получаем колебательную систему!

А теперь - начинаем фокусничать. Конечно, задержки - это плохо...Но!!! у нас система то колебательная...и... если нельзя задержку обнулить, то можно её еще увеличить..Что будет происходить? Очевидно - будет увеличиваться "разгон"...Но! Система то циклическая и задержка на целый "оборот"- это и есть нулевая задержка...а если теперь чуть чуть "недокрутить до "полного обортоа", то получим не задержку, а "опережение". А как мы помним - задержки давали "разгон"...А опережение, ( при определённом везении и ряде оговорок) даёт - ТОРМОЖЕНИЕ!!!
  И это очень важный момент, что играя с задержкой можно "запаздывание+разгон"  превращать в "опережение и торможение". И именно эта богатая идея лежит в основе этих регуляторов.

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

Собственно, именно про это и расскажу в продолжении.

 

Patrik

  • Гость
« Ответ #2 : 06 Ноябрь, 2013, 00:24:02 am »
Может просто, купить Контрон?! :-[.  И летать как можно больше, не смотря на все трудности и сложные алгоритмы! :-X

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #3 : 06 Ноябрь, 2013, 00:55:17 am »
Ну, одно другому не мешает :)
Но это, скорее, не про регулятор оборотов а про настройку FBL систем как здесь http://heli-spb.ru/forumheli/index.php?topic=9924.msg178311#msg178311  или про GT5 от TT, где можно самостоятельно это всё понастраивать.

Оффлайн almus

  • Сообщений: 552
« Ответ #4 : 06 Ноябрь, 2013, 09:24:20 am »
Андрей! Вопрос чуть не в тему, ты в какой области ученый? Очень неординарно описываешь такие избитые процессы! В принципе, подавляющему большинству вертолетчиков именно так и надо. Хотя, если помнить классическую теорию автоматического регулирования, эти рассуждения выглядят весьма прикольно. Версия лайт для блондинок. :D И самое главное, человек который глубоко в теме, никогда так не скажет.

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #5 : 06 Ноябрь, 2013, 10:27:00 am »
А зачем вообще нужны вопросы не в тему? Подколоть флуда ради? Ну и смысл? Есть что сказать по теме - излагай прямо и без подколок. Какая мне разница, если Андрей излагает понятным и доступным языком, чтобы в эту тему можно было послать любого интересующегося основами. Есть правки - предлагай, в конце концов.

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #6 : 06 Ноябрь, 2013, 10:32:46 am »
Но это, скорее, не про регулятор оборотов а про настройку FBL систем как здесь http://heli-spb.ru/forumheli/index.php?topic=9924.msg178311#msg178311  или про GT5 от TT, где можно самостоятельно это всё понастраивать.


750-й модуль тоже имеет сходные настройки ;)

Петр, логично еще предложить купить VBar и летать - беды не знать ;) Шутки шутками - я, например, контрон брать в ближайшее время точно не планирую, а жить приходится именно с тем г, которое есть. Что имеем - тому и рады :)

Оффлайн almus

  • Сообщений: 552
« Ответ #7 : 06 Ноябрь, 2013, 11:15:15 am »
А зачем вообще нужны вопросы не в тему? Подколоть флуда ради? Ну и смысл? Есть что сказать по теме - излагай прямо и без подколок. Какая мне разница, если Андрей излагает понятным и доступным языком, чтобы в эту тему можно было послать любого интересующегося основами. Есть правки - предлагай, в конце концов.
Илья! Эта тема сама по себе является "трепом и флудом" по определению, ее испортить невозможно. ИМХО конечно, может кто здесь и заумь какую разглядит. Вот и интересно стало, с какой именно стороны эти процессы можно ТАК увидеть? ;)

По теме: Петр прав на 400%, хорошая система позволяет настроить ее как угодно, и для этого вовсе не нужно лезть в дебри, там все уже прокопано разработчиками. Пример - V-Bar.  Если система ущербна - тонкими настройками это не лечится. Пример - ФБЛ от Элайна.

Patrik

  • Гость
« Ответ #8 : 06 Ноябрь, 2013, 11:25:31 am »
Ни хотел я ни кого подкаловать, просто лично у меня проблемы с восприятием"сверх сложных" теорий, больше практик.Воткнул настроил, как учили деды :D и полетел, как можно больше и как можно дальше. :-[
С большим уважением отношусь к образованным людям, спасибо. O0
P.S.Практикую, народный способ настройки "Метод тыка". ;D

Оффлайн Anton_vrn

  • Старейшина клуба
  • Сообщений: 6001
    • Антон
    • Бухонов
  • Город: Воронеж
« Ответ #9 : 06 Ноябрь, 2013, 11:43:33 am »
P.S.Практикую, народный способ настройки "Метод тыка".
Это не правильно. Правильно - метод научного тыка!
Я не червонец, чтобы нравиться всем!

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #10 : 06 Ноябрь, 2013, 11:46:31 am »
метод научного тыка
это расширенная теория :)

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #11 : 06 Ноябрь, 2013, 11:54:53 am »
Пример - V-Bar.
Я внезапно не удивлен. Мне интересно, что лежит под названием VBar - знаете ли, не только полетами живем ;)

Ну а как на пальцах можно объяснить сложные вещи?

Я в свое время писал реализацию фильтра Калмана для arduino/atmega - пока не нашел подобного объяснения, и не понял на пальцах сыр процесса - сдвинуться с мертвой точки (почти) не мог, тратил непозволительно много времени. Получил нужный хинт - и процесс был пройден за один вечер. Я не программист, не математик, образование позволяет разобраться и с математикой чуток выше уровня 9-го класса - но я не хочу тратить время на собственные грабли, возникшие от недопонимания деталей, которое возникло в свою очередь от недопонимания общей сущности всего процесса.

Строго говоря, всегда изначально придерживаюсь точки зрения, что любой сложный процесс - в действительности не сложный, если понимать суть происходящего. Лишь редкие случаи привносят такие детали, которые сами по себе сложны и требуют очередной абстракции и обобщения.
« Последнее редактирование: 06 Ноябрь, 2013, 12:05:18 pm от ilyxa »

Оффлайн almus

  • Сообщений: 552
« Ответ #12 : 06 Ноябрь, 2013, 12:56:40 pm »
любой сложный процесс - в действительности не сложный, если понимать суть происходящего.
Вот это правильно! Вот только пока дойдешь до понимания сути - у некоторых жизнь заканчивается. :D

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #13 : 06 Ноябрь, 2013, 13:54:28 pm »
Вот это правильно! Вот только пока дойдешь до понимания сути - у некоторых жизнь заканчивается.

хочу заметить, что не все процессы одинаково полезны и важны ;) главное - вовремя притормозить ;)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #14 : 06 Ноябрь, 2013, 14:49:44 pm »
Вопрос чуть не в тему, ты в какой области ученый?
Физика твёрдого тела. Теоретик.

Очень неординарно описываешь такие избитые процессы!
А что неординарного в классической механике и уравнении колебаний?

И самое главное, человек который глубоко в теме, никогда так не скажет.
Я же не пишу учебник по ТАУ, я рассказываю про то, как я понимаю регулирование и построение и настройку PID регулятора.

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

Пример - ФБЛ от Элайна.
Надо уметь готовить. Да, ребята там, конечно, горячие, в 4.0 прошивке - беда с хвостом... Но в целом - вполне себе летучий мозжечок с версией 3.1

Правильно - метод научного тыка!
Практика - критерий истины!