Здравствуйте! Уважаемы знатоки, где можно посмотреть пример работы PID регулятора с автонастройкой ! Задача выдвигать шток гидроцилиндра на заданную длинну в зависимости от изменяющейся уставки.
Вид для печати
Здравствуйте! Уважаемы знатоки, где можно посмотреть пример работы PID регулятора с автонастройкой ! Задача выдвигать шток гидроцилиндра на заданную длинну в зависимости от изменяющейся уставки.
Уставка изменяется с разными периодом и довольно быстро, управление штоком поредсвом гидронасоса через ПЧ + инертность гидравлики , разное ускорение, разность площадей гидроцилиндра при втягивании и выталкивании Мне кажется без PID с обратной свзью, точности позициолнирования на разных ускорениях не добиться.
Как Вы объяснили, здесь ПИД-ом и не пахнет, выдвигать шток цилиндра в зависимости от уставки. Вы можете объяснить понятным образом, в смысле, может какой процесс(параметр), надо поддерживать на заданном уровне, а шток при движении регулирует ход процесса, тогда бы всё могло встать на свои места?
Шток гидроцилиндра управляет механизмом, который должен точно позиционироваться. На штоке гидроцилиндра стоит датчик считывающий текущее положения штока. Гидроцилиндром управляет гидронасос подключенный к ПЧ, который оопеределяет направления вращения и соответсвенно ход штока и частоту с которой этот шток будет перемещаться. На ПЛК приходит разные значения в диапазоне 0....250 мм что соответсвует длине вылета штока. Координаты меняютсмя быстро и ускорения меняются от медленно до очень быстро Задача чтобы шток перемещался в соответсвии с задаными координатами на различных ускорения. Точноть позиционирования должна быть максимально точной не зависима от ускорений штока. Если бы скорость изменений значений была бы невелика и постоянна тогда можно было и без ПИДа , а так я думаю без него добиться точного позицинирования на разных ускорениях сложнее.
Хорошо, зайдём с другой стороны: поступила команда(как Вы говорите) переместить шток в положение 150 со скоростью вращения двигателя насоса 1500 об/мин, ПИД-ом Вы что хотите поддерживать, какой параметр у Вас будет для регулирования(поддержания)?
И что сейчас(без ПИД-а) не так? В чём проблема, в смысле, не зная проблемы, непонятно что мы решаем!
Проблема в том, что раньше работало теперь не работает, в виду выхода ПЛК из строя и исходников нет.
Без ПИД , где мы просто сравниваем «Задание» (SP)и «Позицию» (PV).
Если PV<SP,включаем мотор вперед на фиксированной частоте (например, 30 Гц). На практике частоту еще тогда надо вычеслить и кроме того она не постоянна.
Если PV>SP, включаем мотор назад на той же частоте.
Если PV=SP, выключаем мотор. (+/- колебания которыми можно пренебречь)
Результат:
-Отсутствие плавности («Старт-стопный режим»).
-Гидравлика обладает инерцией. При подаче частоты 30 Гц шток резко дернется. Из-за свойств масла он обязательно перелетит заданную точку. Система отключит мотор, по инерции произойдет обратный ход, с большой верятностью цилиндр начнет колебаться как маятник.
-Втягивание идет быстрее выдвижения, из-за разностей площадей. Результа ждать выдвигания слишком долго, либо при втягивании получать постоянные удары об упор.
-Реакция на нагрузку , нагрузка не постоянна. Фиксированная частота может оказаться недостаточной для нагрузки.
Если используем Пид, напрямую управляем частотой.
Чем дальше цилиндр от цели, тем выше частота мотора. Это обеспечивает быстрый разгон. Когда цель близка, частота автоматически снижается.
Накапливает ошибку во времени. Если ошибка мала, но стабильна (шток замер в 1 мм от цели), интегратор постепенно увеличивает выходной сигнал, пока ошибка не исчезнет как следствие компенсация статической ошибки,что позволяет цилиндру остановиться ровно в точке 150.00, преодолевая инертность гидравлики,трение ....нагрузку и т.д.
Пид реагирует на скорость изменения ошибки.Если видит, что цилиндр летит к цели слишком быстро, дает команду на снижение частоты до того, как произойдет удар или "перелет / не долёт " до уставки.
Нюанс в том, что координаты постоянно обновляются с разными значениями и периодами, поэтому шток постоянно перемещаеться с разной скоростью. К примеру сейчас в первую секунду координата изменилась на 1мм относительно предыдущей, а следующая через 100ms изменилась уже на 100мм и при всем этом позиционироваться нужно точно не зависимо от скорости. Думаю если НЕ использовать готовый библиотечный Пид скорее всего получиться "кривой" самописный очень похожий на ПИД фукциональный блок. И чтоб не мучиться с настройкой коэффициентов, думаю использовать ПИД с автонастройкой, но не факт что без мучений.
Дык в общем случае ПИД подразумевает некую симметричность ОС. И чем больше разница тем меньше будет прокатывать ПИД.Цитата:
-Втягивание идет быстрее выдвижения,
Вы хоть пробовали подобрать коэффициенты руками? Чесно говоря, в подавляющем большинстве случаев подобрать коэффициенты руками можно достаточно быстро или же выяснить что сам ПИД в чистом виде просто не канает. На фига какое-то авто? Или сами коэффы будут регулярно менятся? Если да, то какой критерий для "пора снова занова"?
Если не изменяет память это что-то типа каскадного ПИД-регулятора получается, в смысле, выход ПИД-регулятора будет уставкой скорости подхода к точке позиционирования, короче задача интересная! Я бы начал с простого П-регулятора со сменой пропорционального коэффициента при движении в прямом и обратном направлении и начальным значением в зависимости от рассогласования(разнице значения очередной уставки и текущего положения), короче пробуйте, уверен что всё получится.
to BSA
Я правильно понял, что когда оно работало, всем пофиг было, а теперь спрашиввть о реальных графиках на одной шкале времени уставки/положения/выход пида/реальной частоты ЧП уже не приходится?
to Сергей308
Возможно. Но я б рискнул начать с одного ПИДа, где ОС - разница задания и положения, а уставка 0.
А выход - в частоту, но не напрямую, а через некоторый преобразователь, т. к выход пида линейный, а зависимость частота/скорость может быть и не совсем. Разные наборы уставок от знака ОС, как вы сказали - само собой. На начальном этапе ввел бы просто зависимость одного набора от другого как входной параметр