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

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


Оффлайн AndRay

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

Еще раз - ЛОГИКА. У нас в регуляторе есть P компонента. Она ПО ОПРЕДЕЛЕНИЮ - пропорциональна рассогласованию регулируемого параметра. Т.е выход Р компоненты - РЕГУЛИРУЮЩИЙ параметр - пропорционален рассогласованию Регулируемого. Если это не ТАК, то этот параметр - не P а твой личный ( имеешь право). А где ты "жульничаешь"...РЕГУЛИУЕМЫЙ параметр - это СИЛА, а не "положение сервы". СИЛА и положение сервы ТОГДА и только тогда совпадают, когда у тебя точно-точно выведена нулевая точка. Во всех остальных случаях у тебя СИЛА не пропорциональна рассогласованию, а СИЛА равна сразу "силе в нулевой точке сервы" + P*(рассогласование). Поэтому в твоём регуляторе P компонента всегда "врет", кроме случая точной установкой сервы.

И всё бы ничего.. но тебе под каждый ветер надо бы выставлять заново точно серву так, чтобы 0 сервы равнялся 0 силы... :)

Потом, естественно, твой регулятор "подтянивает" предкомпенсацию... И в результате оно работает, но медленно!!! А настоящий пидрегулятор - он "быстрый", он притягивает систему к решению с максимально!!! достижимой для системы скоростью. А твой - плавненько подтягивает систему.
« Последнее редактирование: 08 Ноябрь, 2013, 15:09:41 pm от AndRay »

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #151 : 08 Ноябрь, 2013, 16:07:18 pm »
Еще раз - ЛОГИКА. У нас в регуляторе есть P компонента. Она ПО ОПРЕДЕЛЕНИЮ - пропорциональна рассогласованию регулируемого параметра. Т.е выход Р компоненты - РЕГУЛИРУЮЩИЙ параметр - пропорционален рассогласованию Регулируемого. Если это не ТАК, то этот параметр - не P а твой личный ( имеешь право).
согласен.
А где ты "жульничаешь"...РЕГУЛИУЕМЫЙ параметр - это СИЛА, а не "положение сервы". СИЛА и положение сервы ТОГДА и только тогда совпадают, когда у тебя точно-точно выведена нулевая точка. Во всех остальных случаях у тебя СИЛА не пропорциональна рассогласованию, а СИЛА равна сразу "силе в нулевой точке сервы" + P*(рассогласование). Поэтому в твоём регуляторе P компонента всегда "врет", кроме случая точной установкой сервы.
не согласен.
С чего ты это взял?? Я нигде такого не говорил. Всегда говорил, что управляю сервой. Максимум, в скобочках добавлял, что следовательно силой. Но на первом месте всегда положение сервы.
У меня регулируемый параметр - положение сервы. Измеряемый и целевой - угловая скорость. Имею право сам выбирать регулируемые параметры. (А у тебя регулируемый параметр - смещение сервы, я же не кричу, что ты не то что надо регулируешь.. )
На выходе  регулятора - не сила. На выходе - положение сервы. И компонента P ПРОПОРЦИОНАЛЬНА рассогласованию.
А силой PID вообще не может управлять, она зависит слишком от многих параметров. (От ветра, от оборотов, от температуры, от плотности воздуха, от размера ротора...)
PID управляет силой опосредовано, через положение сервы.

И всё бы ничего.. но тебе под каждый ветер надо бы выставлять заново точно серву так, чтобы 0 сервы равнялся 0 силы... :)
МНЕ - не надо. Это делает I компонента. Она для того и существует, чтобы устранять влияние внешних воздействий.

Потом, естественно, твой регулятор "подтянивает" предкомпенсацию... И в результате оно работает, но медленно!!! А настоящий пидрегулятор - он "быстрый", он притягивает систему к решению с максимально!!! достижимой для системы скоростью. А твой - плавненько подтягивает систему.
Это происходит не "потом". У него ПОСТОЯННО в I компоненте находится текущая ошибка, которая добавляется постоянно, так же как и D. Поэтому регулятору при постоянных внешних воздействиях достаточно P компоненты для попадания в цель. Если внешние условия изменятся, I компонента под это подстроится.

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

P.S. посмотри еще раз график. В каком месте ты там видишь "А твой - плавненько подтягивает систему"  ???????? (Смотреть надо левую часть графика, правая - это твой "быстрый" вариант без P компоненты.
« Последнее редактирование: 08 Ноябрь, 2013, 16:31:46 pm от alienn »

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #152 : 08 Ноябрь, 2013, 16:39:40 pm »
не согласен.
у меня регулируемый параметр - положение сервы.
Это было бы допустимо, если бы ты, к примеру, камерой, установленной на серве следил за объектом.

Имею право сам выбирать регулируемые параметры.
Имеешь, бесспорно!!!

На выходе  регулятора - не сила. На выходе - положение сервы.
Т.е. ты сервой ( а не силой хвоста) крутишь вертолёт... Подумай над этим внимательно.

Это происходит не "потом". У него ПОСТОЯННО в I компоненте находится текущая ошибка, которая добавляется постоянно,
Верно, именно так и работает твой регулятор. Но как только мы поменяем ветер - он "перенастроится" не раньше, чем наберёт новый аккумулятор в другую сторону... Так?

Ты сам мне по телефону говорил, что твое регулятор получал на вход команду - медленно - медленно подниматься, чтобы ни дай бог не раскачать систему в колебания... Так что не надо про скорость.
Нет :) медленно надо было для того, чтобы было а) красиво б) чтобы можно было ( если что) поймать руками в комнате:)

посмотри еще раз график. В каком месте ты там видишь "А твой - плавненько подтягивает систему"
Смотри - ты же чётко вывел серву в 0 и убрал ветер :)  Т.е. ты вывел свой регулятр в режим PID регулятора...А теперь сравни результаты, добавив ветерок и ( заодно) сместив серву (в сторону ветра, разумеется)..И увидишь, насколько у тебя медленне стало работать.

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #153 : 08 Ноябрь, 2013, 16:54:58 pm »
не согласен.
у меня регулируемый параметр - положение сервы.
Это было бы допустимо, если бы ты, к примеру, камерой, установленной на серве следил за объектом.
Не вижу логики. Почему не допустимо? Могу управлять чем хочу, если это управление приводит к изменению измеряемого параметра.

Т.е. ты сервой ( а не силой хвоста) крутишь вертолёт... Подумай над этим внимательно.
Подумал. Не вижу противоречий. Я управляю сервой. в результате вертолет как-то крутится. Я могу это измерить. Классическое применение PID контроллера.

Это происходит не "потом". У него ПОСТОЯННО в I компоненте находится текущая ошибка, которая добавляется постоянно,
Верно, именно так и работает твой регулятор. Но как только мы поменяем ветер - он "перенастроится" не раньше, чем наберёт новый аккумулятор в другую сторону... Так?
абсолютно верно.
А теперь вспомни, что мой I аккамулятор - равен твоему P регулятору. Поэтому скорость перенастройки будет идентичная.

посмотри еще раз график. В каком месте ты там видишь "А твой - плавненько подтягивает систему"
Смотри - ты же чётко вывел серву в 0 и убрал ветер :)  Т.е. ты вывел свой регулятр в режим PID регулятора...А теперь сравни результаты, добавив ветерок и ( заодно) сместив серву (в сторону ветра, разумеется)..И увидишь, насколько у тебя медленне стало работать.
Да не вопрос!
ок. сместил серву и добавил ветер.
Судя по твоим ожиданиям, что все сразу перестанет работать - ты так и не понял, как же работает PID регулятор. Ему абсолютно по барабану на смещение сервы и ветер. У него есть I, который нейтрализует ЛЮБЫЕ внешние воздействия.

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

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #154 : 08 Ноябрь, 2013, 17:20:31 pm »
Могу управлять чем хочу, если это управление приводит к изменению измеряемого параметра.
Не все регуляторы являются PID регуляторами... Их много и разных. У тебя - твой.

Я управляю сервой. в результате вертолет как-то крутится.
Регуляторов с обратной связью - бесчисленное количество... Но не все они соответствуют определению PID регуляторов...

т.к. верт сделал много оборотов, до команды остановиться, видно как она тормозит, чтобы погасить инерцию.. все видно.
А ты заметил, что у тебя серву постоянно колбасит внизу ?! Что, в общем, не совсем правильно- т.к. мы всё таки не ШИМ управление делаем. Можешь избавиться от болтанки сервы внизу? У тебя ЧЕТЫРЕ секунды серва туда-сюда летает, чтобы в "среднем" поймать хвост.

Кстати, как сделать чтобы получилось как у тебя - такое мощное откролнение вниз кривых? У меня на экране оно как-то мелко получается?

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #155 : 08 Ноябрь, 2013, 17:27:04 pm »
Могу управлять чем хочу, если это управление приводит к изменению измеряемого параметра.
Не все регуляторы являются PID регуляторами... Их много и разных. У тебя - твой.
У меня PID. А у тебя опять голословное утверждение.
Я управляю сервой. в результате вертолет как-то крутится.
Регуляторов с обратной связью - бесчисленное количество... Но не все они соответствуют определению PID регуляторов...
Мой соответствует. И ты так и не доказал обратное.
т.к. верт сделал много оборотов, до команды остановиться, видно как она тормозит, чтобы погасить инерцию.. все видно.
А ты заметил, что у тебя серву постоянно колбасит внизу ?! Что, в общем, не совсем правильно- т.к. мы всё таки не ШИМ управление делаем. Можешь избавиться от болтанки сервы внизу? У тебя ЧЕТЫРЕ секунды серва туда-сюда летает, чтобы в "среднем" поймать хвост.
А ты перед тем как писать, читаешь то что я пишу?
Серва болтается потому, что верт успел сделать 4 полных оборота вокруг оси, и направление ветра для него менялось 4 раза, и серва вынуждена это компенсировать. И это как раз пример как отлично PID контроллер держит требуемую скорость, несмотря на ПОСТОЯННО меняющееся внешнее воздействие.

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #156 : 08 Ноябрь, 2013, 17:35:45 pm »
А у тебя опять голословное утверждение.
Слово "пропорционально"- я понимаю только как "пропорционально", а не как "потом будет I, а сейчас неважно" :)

А ты перед тем как писать, читаешь то что я пишу?
Сорри, погорячился :) Ксатити, поставил 7ку - буду мучать :)

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #157 : 08 Ноябрь, 2013, 17:49:14 pm »
А у тебя опять голословное утверждение.
Слово "пропорционально"- я понимаю только как "пропорционально", а не как "потом будет I, а сейчас неважно" :)
Слово "пропорционально" я понимаю так же как и ты. Но пропорциональная компонента в PID только одна. И она у меня "пропорциональная". Поэтому я не вижу ни одного противоречия определению PID контроллера.
А ты вот все никак не свыкнешься, что применение PID контроллера может быть разное, и не обязательно такое как у тебя.

Сорри, погорячился :) Ксатити, поставил 7ку - буду мучать :)
Удачи :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #158 : 08 Ноябрь, 2013, 18:11:48 pm »
Но пропорциональная компонента в PID только одна.
И если она не пропорциональна - то это - не ПИД регулятор, это просто регулятор ( вполне работоспособный) :)

Слово "пропорционально" я понимаю так же как и ты.
отлично. Но конкретное, абсолютное положение сервы непропорционально никаким образом изменению угловой скорости! :) Пропорционально - это когда 0 на серве - 0 изменения угловой скорости, + на серве - это увеличение угловой скости, - уменьшение.....А это, в общем виде, не так.



Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #159 : 08 Ноябрь, 2013, 18:26:00 pm »
Но пропорциональная компонента в PID только одна.
И если она не пропорциональна - то это - не ПИД регулятор, это просто регулятор ( вполне работоспособный) :)
да.
Слово "пропорционально" я понимаю так же как и ты.
отлично. Но конкретное, абсолютное положение сервы непропорционально никаким образом изменению угловой скорости! :) Пропорционально - это когда 0 на серве - 0 изменения угловой скорости, + на серве - это увеличение угловой скости, - уменьшение.....А это, в общем виде, не так.
Давай вернемся к определению P компонеты.
P компонента обязана быть пропорциональна рассогласованию.
У меня это именно так.
вот кусок кода:

 var position = _device.Position;
 var error = _target - position;
 _pControl = error * _Pgain;

position - это текущая угловая скорость.
_target это целевая углавая скорость.
_pControl - это P компонента управляющего воздействия. И как ты видишь, она абсолютно пропорциональна рассогласованию.

далее внизу идет рассчет I составляющей и D составляющей.

потом еще одна строчка:
_control = _pControl + _iControl + _dControl;

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

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

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #160 : 08 Ноябрь, 2013, 18:27:57 pm »
Пропорционально - это когда 0 на серве - 0 изменения угловой скорости, + на серве - это увеличение угловой скости, - уменьшение.....А это, в общем виде, не так.
Ты не прав.
У нас нет требования, чтобы P была пропорциональна угловой скорости. У нас есть требование чтобы P была пропорциональна рассогласованию. А это во всех видах так. (см. код выше.)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #161 : 08 Ноябрь, 2013, 18:44:07 pm »
У нас нет требования, чтобы P была пропорциональна угловой скорости. У нас есть требование чтобы P была пропорциональна рассогласованию.
Совершенно верно.

Но скажи, как у тебя изменение угловой скорости на самом деле связано с P? ( ты то регулируешь угловую скорость в конце конуов, а не положение сервы)...

Для простоты - у тебя рассогласование пусть НУЛЬ будет... Регулятор - только включен. КУДА у тебя пойдет система?!

Оффлайн almus

  • Сообщений: 552
« Ответ #162 : 08 Ноябрь, 2013, 19:04:46 pm »
Вообще в теории автоматического управления под пропорциональностью понимается следующее:
управляющее воздействие = некий коэффициент * рассогласование дискрмнатора,
причем коэфф. может быть и отрицательным, и в общем виде вообще функцией чего угодно. Кроме того, устойчивым положением системы является такое положение, когда рассогласование дискриминатора равно нулю, но сама эта точка может находиться и не в нуле по абсолютному значению (разное положение сервы в разных условиях), ведь одно из назначений дискриминатора - линеаризачия функции управления в точке, хотя сама эта точка может и смещаться при работе системы!

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

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #163 : 08 Ноябрь, 2013, 21:57:05 pm »
Кроме того, устойчивым положением системы является такое положение, когда рассогласование дискриминатора равно нулю, но сама эта точка может находиться и не в нуле по абсолютному значению (разное положение сервы в разных условиях),
Совершенно верно, именно про это я и говорю - удобно работать оперируя не абсолютным положением рабочей точки, а её смещением от текущего значения. Система - стабилизировалась и рабочая точка ОСТАНОВИЛАСЬ в этом положении.

Оффлайн alienn

  • Сообщений: 104
    • Вадим
    • Юнак
  • Город: Санкт-Петербург
« Ответ #164 : 09 Ноябрь, 2013, 13:54:14 pm »
Пол часа по телефону и мы пришли к конценсусу :) У нас у обоих PID регулятор, только по разному используется выход регулятора.

Нет понятия УДОБНО для регулятора. Ему абсолютно все равно с чем работать. Способ использования регулятора выбирает инженер, а дальше у каждого способа есть свои плюсы и минусы.
Различия наших с тобой способов использования я привел здесь: http://heli-spb.ru/forumheli/index.php?topic=11849.msg178539#msg178539
Если есть что добавить к этим плюсам и минусам - welcome.
Пока что, если я правильно тебя понял, ты меня убеждаешь, что в твоем случае будет меньше колебаний около целевой точки. Ок, сделай - посмотрим, а пока не считается :)