Привет. Подскажите, по какому принципу подбираются значения коэффициентов относительно величины ошибки и требуемого регулирующего воздействия. Например, нужно воздействие в диапазоне 0..5000, величина ошибки может быть любым числом (даже очень большим), какие значения коэффициентов подбирать - я имею в виду не настройку а именно масштаб. Допустим настраиваю регулятор, проп. коэфф. для начала можно взять 0.1, 10, 20 или 1000...?
Настройка Пид - дело тонкое. Допустим, у вас печка. Есть текущая температура, есть заданная. А значит есть рассогласование. Берем пропорциональную составляющую. Если ее взять маленькую, то мощность на объект управления пойдет маленькая, а по мере нагрева она еще и будет уменьшатьсся. Если коэффициент взять большой, то возможно сильное перерегулирование. Писать тут всю теорию - слишком долго и скучно, эту информацию вы найдете в сети. Одно могу сказать точно - никто вам не скажет порядок величины коэффициентов, поскольку он (порядок) и они (коэффициенты) зависят от объекта управления.
Однозначно сразу ставьте дифференциальный коэф. в ноль и можете про него забыть. 99 всех ПИД регуляторов это ПИ регуляторы. А вообще в институте теорию ПИД регулирования изучают год.
Спасибо. У меня еще вопрос по поводу ошибки рассогласования. Её нужно ограничивать, т.е. например при ошибке = 100 я регулирую, а при ошибке = 0.01 нет - это правильный поход для достижения необходимой точности регулирования? или регулятор должен работать всегда несмотря на величину ошибки?
Регулятор должен сделать так, чтобы рассогласования не было. Получить рассогласование 0,01 - это фантастика. В реальном регуляторе всегда будут колебания. Пример - вы едете по идеально прямой дороге. Руль стоит очень точно прямо. Можно ли вам поспать на заднем сиденье?
Radist, это-то конечно не получить даже и не мечтаю. Вопрос немного в другом. У меня есть механизм, который управляет какой-то величиной. Допустим я получил err = need_val - current_val = 10, где err-ошибка, need_val - требуемое значение величины, current_val - текущее значение величины. Пусть ошибка равная 10 меня устраивает, тогда чтобы не дергать механизм лишний раз я его отключаю, если ошибка снова станет >10 я снова его включу - так правильно делать? И попутно еще вопрос - при регулировании как Вы и сказали всегда будут колебания, как отличить колебания нормальные и перерегулирование или возбуждение?
Отключать механизм при малом рассогласовании - это правильно. Так работают с клапанами и задвижками. Не отключают когда работают с тэнами и печами. Перерегулирование - это большой вылет за уставку. Если следующий перелет будет еще больше - это уже возбуждение. Если меньше - затухающий апериодический процесс. Величина перерегулирования обратна пропорциональна времени выхода на режим: можно ооооочееень плавно подойти к уставке без перерегулирования, но это будет достаточно долго.
Radist, спасибо. Я думаю, что еще вопросы появятся в ближайшее время, хочу подробнее разобраться в теме. Посоветуйте пожалуйста литературу (книги, статьи) для начала - книг много нашел в сети, глаза разбегаются, не знаю с какой начать и в основном голая теория, куча математики. Действительно хорошую стать посоветовал Master (спасибо) лежит на http://www.pidregulator.com.
Это действительно проблема. Я сам не видел хороших книг по этому. Точнее понятных для новичков. Есть формула пид закона. Потребителя интересует методика настройки коэффициентов. На сайте owen.ru есть то ли журналы, то ли статьи, где я видел эти методики. Кладезь знаний есть тут http://lord-n.narod.ru/walla.html, но жизни не хватит чтобы все это прочитать.
В данный момент работаю с пропорциональным клапаном, который управляется ШИМ с помощью МК (задача - поддерживать постоянный поток с помощью датчика и клапана). Клапан довольно быстрый, время отклика еденицы - десятки миллисекунд. Есть кое-какие успехи, но проблема с коэффициентами ПИД. Без дифф. составляющей система явно колеблется, при малейшем изменении интегрального тоже начинает сильные колебания. В общем настроить не могу. Подскажите как работать с такими системами.
С клапанами не используют классический ПИД. Клапан по сути - интегратор. Упрощаем задачу: есть бассейн с двумя трубами. По одной трубе вещество вытекает (исчезает любым способом), по другой трубе втекает. На этой трубе есть задвижка, которую надо поставить в такое положение, когда приход равен расходу. Если расход изменится - изменится и положение задвижки - система стремиться сделать приход равным расходу (не напоминает работу операционного усилителя?). Пид закон рассчитывает воздействие, которое надо передать в систему. Когда приход равен расходу - мы не трогаем задвижку, то есть воздействие на нее нулевое. Доказал, что не нужна интегральная составляющая? При пропорциональном управлении будут колебания в силу специфичности объекта управления. Кстати, пример вам пропорциональной системы управления без колебаний и перерегулирования - смывной бачок унитаза. Это все была лирика, теперь к сути. Нужно использовать закон ПДД, где вторая Д - вторая производная рассогласования. Вы помните 3 последних рассогласования, конечные разности суть первая и вторая производные. Что делает первая производная - она увеличивает сигнал управления когда мы уходим от уставки (ускоряет возврат к уставке), и уменьшает сигнал управления когда мы идем к уставке (тормозит, чтобы не перелететь). Вторая производная наводит последний лоск. Подбор коэффициентов - тот еще геморрой. Вам сильно бы помогло, если бы вы могли получить следующие графики от времени: - переменная процесса - сигнал управления - пропорциональная составляющая сигнала управления - первая диф составляющая - вторая диф составляющая В процессе подбора будет видно как меняется общая картина, и вам будет нагляднее подбирать коэффициенты.
Radist, понял идею с ПДД. А без интегральной составляющей как система выйдет на точно уставку? У меня задача выдержать поток на выходе, величины потока могут быть различными, но их нужно держать, да еще и от давления на входе клапана выход не должен зависеть.
Попробую еще раз объяснить просто и с примерами. Выход у вас - положение заслонки. Задача - найти это положение. Управляющее воздействие - движение заслонки в ту или другую сторону. Если есть ненулевая интегральная составляющая - значит вы движите заслонку. И будете двигать, пока не упретесь. Обратимся к аллегориям. Вы за рулем автомобиля. Вы не смотрите на руль, поэтому не знаете положение колес, но знаете куда хотите ехать. Поехали. Опа, не туда, надо повернуть руль. Все равно не туда, сильнее поворачиваем. О, приближаемся к нужному нам направлению - надо руль в другую сторону повернуть. Теперь немного туда-сюда покрутим - мы вышли на уставку! (Теперь на минутку вернемся к нашим терминам. Наше направление уходит от нас - мы крутим руль сильнее, направление приближается к нам - мы начинаем возвращать руль обратно заранее - типичный закон ПД). И рулем будем крутить только если мы отойдем от генеральной линии партии. А пока мы на линии - рулем не крутим. Так был осуществлен выход на режим без использования интегральной составляющей.
Ну и еще один пример-аргумент. Интегральная составляющая - сумма рассогласований с учетом знака, поделенная на время интегрирования. Когда мы выйдем на режим - интегральная составляющая будет не нулевой (мы же на режиме не мгновенно оказались, была ошибка, мы ее копили). Неизбежно перерегулирование. И оно будет идти до тех пор, пока мы его не выработаем (не вычтем из интеграла сумму ошибок с другой стороны уставки). П и Д компоненты (если они были выбраны примерно верно) не дадут далеко уйти от уставки, а потом цикл повторится. Я вот подумал - может те колебания были именно интегральной составляющей вызваны? В данном случае она - враг.