Необходимо управлять уровнем воды в барабане котла с помощью 3-поз ИМ
Попытался в уставку ПИД регулятора поставить разницу между текущим уровнем и заданным.
(в идеале текущая разница должна гулять около нуля)
На возмущение ПИД регулятор выдавал время импульса в ШИМ. Т.е. чем больше разница,
тем больше импульс. Но эта схема не заработала - возникают автоколебания, накапливается переменная bias и импульсы идут максимальные.
Хотелось бы услышать Astilya. по всей видимости, у него получилось решить эту проблему.
Добрый день, Андрей.
Вы сегодня написали нам на инфо письмо - ребята ответят, перешлют пример с ШИМом. По отзывам тех, кто пользовался, он работает нормально, без автоколебаний. Если будут какие-то вопросы, готов ответить. В принципе, алгоритм не нов - примерно по такой идеологии был реализован ШИМ на Ремиконтах 200 серии. Из настроект необходимо будет задать лишь длину минимального импульса и полное время хода МЭО.
Спасибо, пример пришел по почте. Завтра буду пробовать на ДЕ25
Вообщем итог работы таков: уровень воды стал регулироваться гораздо лучше. Можно было бы так и оставить, но нужна какая-то защита от ухода регулятора в 0 или в 4095. Иначе регулятор просто замирает и не выдает никаких импульсов, даже если уставка и текущее значение датчика не совпадают.
Решил этот же регулятор применить к давлению воздуха и разрежению, да не тут то было. Вообщем регулирования не получается. Регулятор то подает частые импульсы заподряд, то вообще молчит. Регулятор такой: МЭО управляет заслонкой.
Выручайте.
Наш опыт показывает, что при точном определении времени хода МЭО, таких проблем возникать не должно. Рекомендую засечь реальное время хода, а не оринетироваться на паспортные данные, так как настройка концевых проводится по месту и может фактически изменить настоящее время хода.
Если это не поможет, советую дописать небольшой кусок программы. Суть его в том, что при наличии рассогласования и отсутствия реакции регулятора, принудительно выдавать импульсы некоторой длительности (подбирается на практике) с последующей проверкой рассогласования. Как только войдет в зону нечувствительности отключить схему принудительной подачи импульсов.
Спасибо. С понедельника в командировке попробую замерить точное время хода МЭО, регуляторы настраивать поотдельности, а с импульсами я догадался, но пока не испробовал.
Еще один момент. Если это кондовая советская конструкция МЭО, то приходилось встречаться с мертвым ходом до 3.5 сек. Естественно, на регулировании это сказывается безобразно, если это не учитывать программно.
Результат работы таков. Уровень поддерживается стабильно. Интегральная составляющая иногда доходит до нуля. В этот момент специальный импульс подает команду на закрытие. Уровень понижается и регулятор опять входит в рабочий режим.
На разрежении пришлось повозиться. Здесь интегральная составляющая имеет тенденцию на увеличение. Решение было такое. В момент, когда выход пид регулятора достигает 4095 происходит вычитание некой константы из выхода и bias. Таким образом регулятор продолжает работать стабильно. Может я что-то сделал неправильно, тогда поправьте.
Из-за старого оборудования (заслонки а не частотники) разрежение медленно реагирует на возмущение. Поэтому на этом объекте не удалось реализовать поддержание давления пара в барабане на постоянном значении. Использовался встроенный пид регулятор. Выход регулятора должен был задавать необходимое значение газа на горелке. Газовая заслонка не двигалась, пока разрежение не входило в нормальный интервал, + люфт газовой заслонки. В результате, возникало большое запаздывание (до 1-2 минут) пока изменится давление газа на горелке. Такой регулятор создавал автоколебания в диапазоне полукилограмма.
Добрый день!
Получилось? Значит правильно:) Хотя не стоит забывать и тот факт, что в регуляторе можно "замораживать" интегральную составляющую как раз для тех случаев, когда ИМ раскрылся/закрылся на полную, а рассогласование отлично от нуля или зону нечувствительности.
Со вторым вопросом сложнее. Автоматика - одно из звеньев общей "цепи", ей нельзя исправить "косяки" другого оборудования. Ну, или можно, но не всегда. Самым злым врагом САУ как раз и являются некорректно выбранные точки замеров и установки ИМ, а также их характеристики.
Если я верно понимаю, Вас жизнь поставила фактически перед звеном чистого запаздывания. В классике его регулируют упредителем Смитта (это не реальное устройство, передаточную функцию которого можно реализовать только приближенно - так как реальных дифференциаторов не существует). В Вашей ситуации ближе всего к решению проблемы - использование дифференциальной настройки ПИДа.
К сожалению, у меня по технологии нет опыта работы с паровыми котлами. Но в водогрейных я бы сроду не взялся за Д-составляющую регулятора. Разрежение - самый "живой" параметр, к тому же из списка аварийных.
Поэтому корректный подход - обновить арматуру. А вот использовать ли мой совет про дифференциальную составляющую - решать Вам. Думаю, по крайней мере попробовать можно.
Здравствуйте!
Прошу прощения за "некромантию" - редко бываю на форуме, но очень уж хочется добавить и свои пять копеек.
Кое-что из "тезисов" привожу из рабочих пометок, кое-что набираю в браузере. Поэтому у сообщения разный стиль...
Сразу хочу выразить благодарность Astilya за ранее проявленную помощь.
Несколько лет назад Astilya и мне показал этот алгоритм. Идея алгоритма очень хорошая и простая. В целом она хорошо была применена к контурам паровых котлов ДЕ16 и ДКВР-10/13. Но не в "чистом" виде. Я тоже прошёл через "замирания" и некоторые особенности реализации математики в контроллере DL06. Хочу поделиться своим опытом.
Программу я изменил. Не понравилось неопределённость SP60 и SP62 в строках 4 и 5 с момента включения до установки T0.
К сожалению, функция автонастройки для ШИМ возвращала плохие результаты. Возможно из-за большой инерционности объекта. При ручной настройке выяснилось - результат зависел не только от Ти, Тд, Кп, но и от Ts (время пересчёта контура). При "нащупанных" Ти, Тд, Кп Уровень в барабане "качался", но как только увеличили Ts до 5-10 секунд - сразу стабилизировался.
Особенность математики ПИД-регулятора состоит в том, что при вхождении регулируемого параметра (PV) в зону нечувствительности, значение выхода регулятора скачком изменяется на величину пропорциональной и дифференциальной составляющих, т.к. считается, что рассогласования нет. Это приводит к формированию «мусорных» импульсов на регулирующий орган (РО). Чтобы этого не происходило, в ШИМ была введена дополнительная блокировка изменения внутренней переменной (Ybcd), в других условиях, численно равной выходу регулятора. Соответственно, далее алгоритм ШИМ предполагает, что выход ПИД-регулятора не изменяется и не генерирует «мусор».
При переводе ПИД-регулятора из автоматического режима в ручной и обратно путём установки соответствующего бита, перед переключением проходит время Ts. Т.к. я считал, что переключение происходит сразу после установки бита, то сразу разрешал обработку. "Предыстория" состояния ШИМ приводила к появлению "таинственных" импульсов на выходе (в случае контура Газ-Пар импульс достигал Ts=10 секунд). К самому алгоритму это не имеет отношения, но данный эффект нужно учитывать.
Также нужно учитывать, что инициализировать переменные ШИМ и ПИД (в таблице контура PID_xxx) нужно до перехода в автоматический режим.
Как только контур оказывался в ручном режиме, я инициализировал Yprev, Ybcd, PID_BIAS, PID_OUT значением середины диапазона изменения выхода (PID_Ymin+PID_Ymax)/2. Этим я делал допущение, что контур в автоматическом режиме начинал действовать с середины положения РО.
Такой финт возможен потому, что в программе действуют две уставки - основная и текущая. В контур отправляется текущая. В ручном и при включении автоматического режима текущая становиться равной переменной процесса, а после перехда в "автомат" с некоторым шагом начинает приближаться к основной уставке. Нужно это для "безударного" перехода. И заодно приводит к тому, что при включении в "автомат" рассогласование равно нулю (как следствие - безразлично значение BIAS).
Для компенсации люфта при смене направления движения РО ко времени минимального импульса tmin добавляется время Тлюфт. Поэтому в таймер тактов отправляется не tmin, а другая переменная, равная или tmin или (tmin+Tлюфт).
При «перегрузке» выхода ПИД-регулятора (0 или 4095) на выход ШИМ подаётся непрерывный импульс ("меньше" или "больше"). Достигается это тем, что когда внутренняя переменная Ybcd входит в диапазон (Ymax-dYmin, Ymax) или (Ymin, Ymin+dYmin), то переменной Ybcd присваивается значение, отстоящее от границы диапазона на dYmin. Такое решение, конечно, не очень хорошо. Но создавать обработку ШИМ, сопоставимую по размерам со всей программой, ещё хуже. Вдобавок, если не переключать постоянно режимы автомат-ручной (тем самым «переводя» при инициализации Ybcd в середину диапазона [Ymin, Ymax]), то после одного-двух таких импульсов, значение переменной Ybcd будет примерно соответствовать действительному положению РО.
В алгоритме ШИМ ПИД Давления Пара также введены ограничения на максимальную величину управляющих импульсов. При появлении такого длинного импульса (большего Tи.макс) всякое появление импульсов в данном направлении блокируется на время паузы (Tи.пауза). Эти параметры введёны по причине того, что на данной конфигурации оборудования при открытии/закрытии заслонки давление газа изменяется значительно быстрее давления воздуха, что привело бы к погасанию факела горелки (а так только небольшая копоть из трубы). Также эта пара параметров служит для исключения ситуации "выбега" давления газа за допустимые для регулирования границы. Такое возможно из-за инерции нарастания давления газа после изменения положения заслонки (плюс задержка при сглаживании значения давления газа в контроллере и прочие причины). Как раз паузой даётся возможность восстановить баланс Газ/Воздух, и установиться самому значению давления газа. Если использование этих параметров не предполагается, то следует задать Ти.пауза=0, Ти.макс=999.9. Также, введение ограничения на ширину импульса, IMHO, улучшает ситуацию при «перегрузке» математики ПИД-регулятора (чтобы «сплошной» импульс не «завёл» очень далеко). Реально это ограничение срабатывало только в контуре Газ-Пар, но никогда не активировалось в контуре поддержания Уровня. В ШИМ контуров Разрежения и Давления Воздуха такое ограничения я даже и не пытался реализовывать.
Эта комбинация почти подходит под совет Astilya:
"Если это не поможет, советую дописать небольшой кусок программы. Суть его в том, что при наличии рассогласования и отсутствия реакции регулятора, принудительно выдавать импульсы некоторой длительности (подбирается на практике) с последующей проверкой рассогласования. Как только войдет в зону нечувствительности отключить схему принудительной подачи импульсов."
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме