roboforum.ru

Технический форум по робототехнике.

Масштабы величин в ПИД регуляторе

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

Re: Масштабы величин в ПИД регуляторе

Сообщение Michael_K » 26 окт 2010, 09:33

regal писал(а):А без интегральной составляющей как система выйдет на точно уставку?

Никак.
Radist ошибся, говоря что "клапан по сути - интегратор"...
Это если уровень в баке регулировать, то он конечно интегратор (клапан открыт чуть больше - уровень постоянно растет - налицо накопление погрешности), а если вы управляете клапаном и меряете поток, то нифига он не интегратор (клапан открыт чуть больше - поток чуть больше, ничего никуда не накапливается)...

В систему регулирования сам объект входит, тем более, если мерить одну величину, а управлять совсем другой.

Вам _нужна_ интегральная составляющая, чтобы систематические погрешности убрать,
но добавляя дифференциальную составляющую, вы сможете подойти к "уставке" плавно (без перерегулирования).

Думаю, что вес интегральной составляющей в общей "формуле" в вашем случае должен быть относительно небольшой (то есть иметь большую постоянную времени).
Какого именно порядка - зависит от постоянных времени всей системы, требуемой реакции, периода дискретизации, порядка измеренных величин и т.п. Тут может быть проще подбирать, чем считать.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Масштабы величин в ПИД регуляторе

Сообщение Radist » 26 окт 2010, 11:12

Действительно, я понял задачу не верно. Сейчас еще раз перечитаю пост сначала.

Добавлено спустя 4 минуты 3 секунды:
regal писал(а):(задача - поддерживать постоянный поток с помощью датчика и клапана).


Видимо есть датчик расхода, есть емкость (как и кто ее наполняет - нас не интересует). Задача - управлять расходом. Некто задает уставку: расход сделать таким-то. Нужно поставить клапан в нужное положение. Сейчас я правильно понял?

Добавлено спустя 1 час 29 минут 1 секунду:
И все-таки, все-таки...
Посоветовался с нашим спецом по ТАУ. Задача не очень ясная, можно трактовать по разному. Попробую объяснить как он мне объяснил. Топикстартер не написал, чем он управляет задвижкой, предположу что МЭО.

Структурная схема такая: уставка вычитается с выходом, эта разность идет на регулятор, регулятор управляет МЭО, МЭО управляет положением заслонки, от положения заслонки зависят показания расходомера. Круг замкнулся.
Регулятор выдает на МЭО сигналы "больше" и "меньше". В виде шима это делать нельзя - МЭО ласты склеит (есть даже такой параметр - минимальное время работы МЭО). Выдается импульс рассчитанной длины. МЭО - это дифференциатор. Если постоянно идет команда держать задвижку в положении 50% - МЭО будет стоять. ПДД суть продифференцированный ПИД. И вот тут начинаются недоразумения: перед МЭО имеем ПИД регулятор, после ПДД. О какой интегральной составляющей идет речь? А может задвижкой крутит не МЭО, а какой-то хитрый агрегат, управляемый по токовой петле? Тогда закон - ПИД, и интегральная составляющая нужна. Сам я решал вот какую задачу: есть бак с водой и датчик уровня, из бака берут воду в виде пара, мне надо было подливать кипяточка чтобы уровень ее был стабильным. Управлял МЭО, по ПДД закону. Все было отлично. Потом статью накатал в журнал "Промышленные АСУ и контроллеры", сентябрь 2008г.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Масштабы величин в ПИД регуляторе

Сообщение Michael_K » 26 окт 2010, 11:35

Это вы описали идеальный случай.

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

Скажем, если мы регулируем что-то, и по каким-то неизвестным причинам у нас все время "недолет" -
постоянно промахиваемся вниз, со временем эта составляющая ошибки накопится в интеграторе так, чтобы систематическая ошибка скомпенсировалась, то есть мы начнем целиться выше, а без интегратора - она так и будет постоянно промахиваться.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Масштабы величин в ПИД регуляторе

Сообщение Radist » 26 окт 2010, 11:57

Не уверен. Я по другому представляю процесс. Если все время недолет - мы все время будем пододвигать заслонку. И в конце концов упремся в край. Поэтому даже при неидеальной заслонке не будет недолетов. А вот перелеты будут. В моем случае процесс регулирования со стороны выглядел так: стоит рычаг себе стоит, потом раз - чуть приоткрыл, постоял - призакрыл. Результатом настройки регулятора стали такая длительность воздействий и пауз между ними, что управляемый параметр колебался очень близко к уставке. Допуск был 3 см в обе стороны, реально получился 0,5 см. А период колебаний составлял аж 40 минут: 20 минут выше уставки и 20 минут ниже уставки. Правда коэффициенты подбирали дня три - проверки качества регулирования были долгие.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Масштабы величин в ПИД регуляторе

Сообщение Michael_K » 26 окт 2010, 12:42

У вас бак "интегратором" работал. Если заслонка по каким-то причинам была недостаточно открыта, то уровень в баке не просто стоит ниже положенного - он постепенно опускается.
Radist писал(а):Если все время недолет - мы все время будем пододвигать заслонку.
Это с какого перепугу? Или вы опять ввели "неявный" интегратор, управляя на этот раз не положением заслонки, а ее скоростью?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Масштабы величин в ПИД регуляторе

Сообщение Radist » 26 окт 2010, 13:17

Ну как же? Регулятор ничего не знает о положении задвижки. Знает только, что надо ее двигать в ту или другую сторону. Доведем до абсурда: мы регулировали поток из бака. В бак перестали доливать. Мы получаем постоянно информацию, что надо открыть больше. Откроем на всю катушку и будем открывать дальше, не зная что дошли до конца (в МЭО стоят концевики). Вот поэтому я и написал: если все время недолет - мы все время будем пододвигать заслонку. А вообще при работе с задвижками постоянно приходится крутить туда/сюда. Очень редко приходится двигать в одну сторону, это скорее внештатная ситуация. Не знаю почему, но мне процесс управления заслонкой очень напоминает процесс управления лайнтрейсером, прямо братья-близнецы :) . Также знаем в какуя сторону двигаться, также при потери линии начинаем крутиться на колесе (это когда заслонка дошла до конца, а мы то этого не знаем и пытаемся еще давить).
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Масштабы величин в ПИД регуляторе

Сообщение regal » 26 окт 2010, 14:13

Michael_K, спасибо. Предварительно удалось опытным путем настроить свой ПИД. Без интегральной составляющей действительно никак, только с ней получилось вывести ситему на уставку.
Свою систему я уже описывал в посте, повторюсь:
есть балон с газом, газ поступает на пропорциональный клапан, который управляется ШИМом с помощью микроконтроллера, время отклика клапана порядка 20 мс. Есть датчик потока (расхода) - рассогласование смотрю по нему. Нужно выдерживать заданный поток.
Систему-то настроил, но как в такой системе обеспечить мин. время выхода на уставку, например, когда клапан полностью закрыт нужно его открыть и за минимальное время получить заданный поток?
Может быть посоветуете методику настройки для этого случая.
regal
 
Сообщения: 12
Зарегистрирован: 28 сен 2010, 17:38

Re: Масштабы величин в ПИД регуляторе

Сообщение Michael_K » 26 окт 2010, 15:20

Radist писал(а):Регулятор ничего не знает о положении задвижки.

Да ничего подобного. Это только ваши предположения, которые как раз и дают неявное интегрирование.
Ваш пид регулятор выдает напряжение на мотор (ну пусть пропорционально скорости скорости задвижки), скорость задвижки влияет на положение (положение - ИНТЕГРАЛ от скорости), положение влияет на поток (ну пусть пропорционально).

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

Вы могли взять, ну допустим, серву и управлять заслонкой пропорционально - ПОЛОЖЕНИЕМ заслонки (которое, типа, пропорционально потоку), а не скоростью - , могли выдумать какой-нибудь соленоидный привод... Но вы управляете скоростью заслонки (или даже напряжением на моторе), то есть вводите лишние неявные И-составляющие.

Вообще, это не очень хорошо, потому что эти "лишние" составляющие (в отличии от специально введенных) - неуправляемые и плохо прогнозируемые - обычно от них стараются избавляться локально (например, вводя еще одну ОС в исполнительный механизм).

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

Добавлено спустя 1 минуту 2 секунды:
http://logic-bratsk.ru/radio/pid/misc/skv3.pdf
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Масштабы величин в ПИД регуляторе

Сообщение Radist » 26 окт 2010, 17:35

Вот еще один пример того, что не стоит советовать в тех областях, в которых не разбираешься досконально :) . Знания мои на поверку оказались поверхностными, не систематизированными, да и систему я все время представлял не ту, что была на самом деле :( . Грустно, хоть снова в институт...
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Пред.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron