Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Теория и практика автоматизации
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

DirectLogic06 ПИД+ШИМ+3пИМ?

 Ответить Ответить Страница  12>
Автор
Сообщение
Андрей111 Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 20 Февраль 2012
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Андрей111 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: DirectLogic06 ПИД+ШИМ+3пИМ?
    Опубликовано: 20 Февраль 2012 13:25
Здравствуйте.
Подобную тему нашел, был положительный результат, 
 но примеров нет.

Необходимо управлять уровнем воды в барабане котла с помощью 3-поз ИМ
Попытался в уставку ПИД регулятора поставить разницу между текущим уровнем и заданным.
(в идеале текущая разница должна гулять около нуля)
На возмущение ПИД регулятор выдавал время импульса в ШИМ. Т.е. чем больше разница, 
тем больше импульс. Но эта схема не заработала - возникают автоколебания, накапливается переменная bias и импульсы идут максимальные.
Хотелось бы услышать Astilya. по всей видимости, у него получилось решить эту проблему.


Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 18 Декабрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 275
Свойства публикации Свойства публикации   Ответить, цитируя автора - Astilya Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2012 13:37
Добрый день, Андрей.
 
Вы сегодня написали нам на инфо письмо - ребята ответят, перешлют пример с ШИМом. По отзывам тех, кто пользовался, он работает нормально, без автоколебаний. Если будут какие-то вопросы, готов ответить. В принципе, алгоритм не нов - примерно по такой идеологии был реализован ШИМ на Ремиконтах 200 серии.  Из настроект необходимо будет задать лишь длину минимального импульса и полное время хода МЭО.
Наверх
Андрей111 Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 20 Февраль 2012
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Андрей111 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Февраль 2012 14:21
Спасибо, пример пришел по почте. Завтра буду пробовать на ДЕ25
Наверх
Андрей111 Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 20 Февраль 2012
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Андрей111 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Февраль 2012 08:09
Вообщем  итог работы таков: уровень воды стал регулироваться гораздо лучше. Можно было бы так и оставить, но нужна какая-то защита от  ухода регулятора в 0 или в 4095. Иначе регулятор просто замирает и не выдает никаких импульсов, даже если уставка и текущее значение датчика не совпадают.
Решил этот же регулятор применить к давлению воздуха и разрежению, да не тут то было.  Вообщем регулирования не получается. Регулятор то подает частые импульсы заподряд, то вообще  молчит. Регулятор такой: МЭО управляет заслонкой.
 Выручайте.
Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 18 Декабрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 275
Свойства публикации Свойства публикации   Ответить, цитируя автора - Astilya Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Февраль 2012 09:46

Наш опыт показывает, что при точном определении времени хода МЭО, таких проблем возникать не должно. Рекомендую засечь реальное время хода, а не оринетироваться на паспортные данные, так как настройка концевых проводится по месту и может фактически изменить настоящее время хода.

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

Присоединился: 20 Февраль 2012
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Андрей111 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Февраль 2012 10:02
Спасибо. С понедельника в командировке попробую замерить точное время хода МЭО, регуляторы настраивать поотдельности, а с импульсами я догадался, но пока не испробовал.
Наверх
Alexander_I Смотреть выпадающим
Участник
Участник


Присоединился: 09 Октябрь 2011
Online Status: Offline
Публикации: 45
Свойства публикации Свойства публикации   Ответить, цитируя автора - Alexander_I Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Февраль 2012 10:45
Еще один момент. Если это кондовая советская конструкция МЭО, то приходилось встречаться с мертвым ходом до 3.5 сек. Естественно, на регулировании это сказывается безобразно, если это не учитывать программно.
Наверх
Андрей111 Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 20 Февраль 2012
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Андрей111 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 06 Март 2012 14:36
Результат работы таков. Уровень поддерживается стабильно. Интегральная составляющая иногда доходит до нуля. В этот момент специальный импульс подает команду на закрытие. Уровень понижается и регулятор опять входит в рабочий режим.
На разрежении пришлось повозиться. Здесь интегральная составляющая имеет тенденцию на увеличение. Решение было такое.  В момент, когда выход пид регулятора достигает 4095 происходит вычитание некой константы из выхода и bias. Таким образом регулятор продолжает работать стабильно. Может я что-то сделал неправильно, тогда поправьте. 

Из-за старого оборудования (заслонки а не частотники) разрежение медленно реагирует на возмущение. Поэтому на этом объекте не удалось реализовать поддержание давления пара в барабане на постоянном значении. Использовался встроенный пид регулятор. Выход регулятора должен был задавать необходимое значение газа на горелке. Газовая заслонка не двигалась, пока разрежение не входило в нормальный интервал, + люфт газовой заслонки. В результате, возникало большое запаздывание (до 1-2 минут) пока изменится давление газа на горелке. Такой регулятор создавал автоколебания в диапазоне полукилограмма.
Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 18 Декабрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 275
Свойства публикации Свойства публикации   Ответить, цитируя автора - Astilya Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Март 2012 10:31

Добрый день!

Получилось? Значит правильно:) Хотя не стоит забывать и тот факт, что в регуляторе можно "замораживать" интегральную составляющую как раз для тех случаев, когда ИМ раскрылся/закрылся на полную, а рассогласование отлично от нуля или зону нечувствительности.
 
Со вторым вопросом сложнее. Автоматика - одно из звеньев общей "цепи", ей нельзя исправить "косяки" другого оборудования. Ну, или можно, но не всегда. Самым злым врагом САУ как раз и являются некорректно выбранные точки замеров и установки ИМ, а также их характеристики.
Если я верно понимаю, Вас жизнь поставила фактически перед звеном чистого запаздывания. В классике его регулируют упредителем Смитта (это не реальное устройство, передаточную функцию которого можно реализовать только приближенно - так как реальных дифференциаторов не существует). В Вашей ситуации ближе всего к решению проблемы - использование дифференциальной настройки ПИДа.
К сожалению, у меня по технологии нет опыта работы с паровыми котлами. Но в водогрейных я бы сроду не взялся за Д-составляющую регулятора. Разрежение - самый "живой" параметр, к тому же из списка аварийных.
Поэтому корректный подход - обновить арматуру. А вот использовать ли мой совет про дифференциальную составляющую - решать Вам. Думаю, по крайней мере попробовать можно.
Наверх
FPavel Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Июнь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - FPavel Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Август 2012 01:48
Здравствуйте!

Прошу прощения за "некромантию" - редко бываю на форуме, но очень уж хочется добавить и свои пять копеек.

Кое-что из "тезисов" привожу из рабочих пометок, кое-что набираю в браузере. Поэтому у сообщения разный стиль...

Сразу хочу выразить благодарность 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:
"Если это не поможет, советую дописать небольшой кусок программы. Суть его в том, что при наличии рассогласования и отсутствия реакции регулятора, принудительно выдавать импульсы некоторой длительности (подбирается на практике) с последующей проверкой рассогласования. Как только войдет в зону нечувствительности отключить схему принудительной подачи импульсов."
Наверх
 Ответить Ответить Страница  12>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz