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

ПИД регулятор ADAM5510

 Ответить Ответить Страница  123>
Автор
Сообщение
Vel_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: ПИД регулятор ADAM5510
    Опубликовано: 25 Апрель 2006 08:52

В данное время есть два разработанных мною  ПИД регулятора.

Разработаны в среде Ultralogik (16-бит). Первая модель работает на объектах более 2х лет. Вторая (переработанная) несколько месяцев. Регуляторы работают с МЭО.

Предлогаю обменятся разработками и идеями.

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


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Апрель 2006 09:36

Давайте меняться, с чьих идей начнем?

Сделал ПИ регулятор, тоже на UL16, крутит МЭО и другие привода примерно уже 3 года, последнее время переписал регулятор на UL32.

При разработке программы за основу взял блок Р.27, интересно кому пришли другие идеи?

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


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Апрель 2006 05:16

Сергею отправил сообщение на пейджер с контактным адресом!

Для наглядности публикую входные и выходные переменные ПИД регуляторов.

ПИД 1

    Vx     (Float)-Входной сигнал с датчика (0..100%)
    Zad    (Float)-Задание регулятору (0..100%)

    Z_Pmax (Float)-Верхняя граница работы Р-регулятора (0..100%)
    Z_Pmin (Float)-Нижняя граница работы Р-регулятора (0..100%)
    Z_int  (Float)-Верхняя граница работы I-регулятора (0..100%)
    I_max  (Float)-Максимальная длительность упр. импульса (=> Z_Pmax)(10..100 ссек)
    I_min  (Float)-Минимальная длительность вых.импульса (= Z_Pmin)(5..20 ссек)
    P_max  (Float)-Максимальная длительность паузы (<= Z_Pmin)сек.
    P_min  (Float)-Минимальная длительность паузы (=> Z_Pmax)сек.

    OkNoy  (Boolean)-Блокирование обнуления интегратора при
                     переходе рассогласования через ноль "по False"
    Ti     (Float) "Время изодрома (удвоения)интегратора"
    T_int  (Float) "Время одного цикла интегратора" (в секундах)
    MaxMin (Float) "Ограничение выходного сигнала интегратора"
    Kf_int (Float) "Коэффициент выхода интегратора"
   
    dTD    (Float) Время между отсчетами диффиренциатора (в секундах)
    dTs    (Float) Время между отсчетами демпфера (в секундах)
    Kf_dif (Float) Коэффициент выхода дифферинциатора

    KorMEO (Float)  -Время выборки люфта МЭО
    BR     (Boolean)-Вход больше "ручное"
    MR     (Boolean)-Вход меньше "ручное"
    TR     (Float)  -Длительность импульса на ручном управлении(в секундах)
    Auto   (Boolean)-Упр.сигнал автомат-ручное(по True автомат)

    Vix_Int (Float)-Выходной сигнал интегратора.
    Vix_Dif (Float)-Выходной сигнал дифференциатора.
    PID     (Float)-Выходной сигнал PID регулятора.(в сантисекундах - длительность упр.импульса)
    I_upr   (Float)-Выходной сигнал длительности импульса (в секундах)
    VixB    (Boolean)-Выход "БОЛЬШЕ"
    VixM    (Boolean)-Выход "МЕНЬШЕ"

ПИД 2

1)     Vx     (Float) - Входной сигнал (с датчика)
2)     Zad    (Float) - Задание регулятору
3)     KP     (Float) - Коэффициент пропорциональности
4)     MaxI   (Float) - Максимальная длительность импульса на выходе регулятора (cсек)
5)     MinI   (Float) - Минимальная длительность импульса (ниже сигнала на выходе нет)(ссек)
6)     Pauz   (Float) - Начальная длительность паузы между импульсами (ссек)
7)     KPauz  (Float) - Коэффициент уменьшения длительности паузы
8)     Ti     (Float) - Время изодрома (время интегрирования)(ссек)
9)     T_int  (Float) - Время одного цикла интегратора (ссек)
10)    MaxMin (Float) - Ограничение выходного сигнала интегратора (ссек)
11)    TDif   (Float) - Время между отсчетами дифференциатора (ссек)
12)    KDif   (Float) - Коэффициент усиления дифференциатора
13)    KMEO   (Float) - Время выборки люфта МЭО (ссек)
14)    BR   (Boolean) - Вход больше "на ручном"
15)    MR   (Boolean) - Вход меньше "на ручном"
16)    TR     (Float) - Длительность импульса на ручном управлении (ссек)
17)    Auto (Boolean) - Упр.сигнал автомат-ручное(по True автомат)
18)    PO   (Boolean) - Прямой-обратный выход на автоматике (по True - прямой)


       B    (Boolean) - Выход на МЭО "Больше"
       M    (Boolean) - Выход на МЭО "Меньше"
       Di     (Float) - Выход длительности импульса (для графика)(ссек)
       PID    (Float) - Выход ПИД закона (для настройки)(ссек)

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


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Апрель 2006 18:01

У меня все проще

Я сделал блок формирующий ПД алгоритм, совместно с исполнительным механизмом постоянной скорости (МЭО) получается ПИ регулятор, при необходимости получения ПИД регулятора добавляется внешний дифференциатор (из стандартных библиотек UL).  Входные /выходные сигналы получаются такие:

Вход:

E (float) - сигнал рассогласования

Ap(float) - коэффициент передачи регулятора

Ti(float) - время изодрома регулятора, в сС

timp(float) - минимальная длительность импульса, в сС

tl(float) - время люфта испольнительного механизма, в сС 

p(float) - вход для динамических воздействий (пропорциональный)

Выход:

b(boolean)

m(boolean)

Y(float)

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

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


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Апрель 2006 07:50

Отправил email с первым ПИД регулятором. Второй вышлю позже, требуется время на перевод в рисунки (по прозьбе Сергея).

Мои регуляторы создавались как универсальные (для разных объектов), поэтому для облегчения дальнейшей работы в них собраны почти все функции. Т.е. вставил блок, прописал входа выхода и всё.

Первый объект на котором регулятор работал, это регулирование уровня в барабане парового котла. Процесс АСТАТИЧНЫЙ, т.е. уровень может увеличиваться или уменьшаться "до бесконечности". ПИ регулятор (КИП), который работал до автоматизации, работал практически как "обвальщик", т.е. уровень растет, регулятор импульсами закрывает подачу воды, уровень начал уменьшаться, регулятор все равно закрывает подачу воды пока входной сигнал не  зайдет в зону нечувствительности. И тотже цикл повторяется при уменьшении уровня. Регулирование идет "пилой" и размер "пилы" изменяется паузами между импульсами и их длительностью. В итоге регулирование в пределах ±15 (20) мм.вод.ст.

Мой регулятор позваляет при 100-110 импульсах в 3 минуты (предел количества импульсов для МЭО) поддерживать уровень в пределах ±1,5-2мм.вод.ст. При 3 импульсах в минуту (для сохранения МЭО) рабочий режим ±6-7мм.вод.ст. Для статических объктов регулирования Д закон практически не используется и соответствующие коэффициенты уменьшаются до минимума.

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

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

В первом ПИД регуляторе дифференциатор "не очень", во втором я уже добился кое каких успехов, но все равно полностью стабильной работы Д закона я еще не добился. Если у кого есть наработки и идеи - поделитесь, если не жалко!

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


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Апрель 2006 10:20

Делать универсальные программные блоки не совсем правильно, поскольку зря отнимаются ресурсы контроллера. Необходимо иметь специализированные блоки, которые использовать по мере необходимости. Для регулирования тепловых процессов, при том в условиях сильных помех, Д составляющая регулятора не может быть использована. Регуляторы питания котла я налаживал на различной аппаратуре (РПИБ, Р-25, Р-21, Р-27, ПРОТАР-112), везде ПИ, переход на ADAM принес в первую очередь компенсацию люфта исполнительного механизма, в результате уменьшилось количество срабатываний. Характеристики "110срабатываний, ±1,5-2мм" не совсем точно отражают качество регулирования, поскольку котлы, привода, регулирующие органы бывают разные.

Для РПК могу предложить еще ряд "примочек":

-контроль исправности привода,

-контроль исправности датчиков.

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


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Апрель 2006 12:52
Первоначально опубликовано s_smirnov

Делать универсальные программные блоки не совсем правильно, поскольку зря отнимаются ресурсы контроллера.

У этого вопроса две стороны:

1) Я полностью согласен, что для определенного параметра (объекта) лучшим будет регулятор, сделанный именно для него, а не универсальный. НО, во первых будет необходимо писать для каждого объекта регулирования свой регулятор (программу контроллера и верхний уровень), это уже значительные затраты времени на разработку и наладку. Наша группа занимается АСУТП под ключ (разработка проекта, програмного обеспечения верхнего и нижнего уровня, курирование монтажа, наладка, запуск в эксплуатацию, а потом и техподдержка) и "обратитесь к разработчику" все к нам. Объектов более чем достаточно и на каждый индивидуально разрабатывать регулятор - это не реально. К тому же регулятор делал я один (сделал на свою голову!), другие только используют его в своих проектах. И если регуляторы разные, то необходимо для каждого конкретного регулятора делать описание (для дежурной службы), да и самому вспомнить что "навоял" через пару месяцев уже тяжело, а как быть с теми кто его увидел в первый раз? Во вторых, а зачем вообще тогда придумывали ООП, модули, библиотеки и т.д., как не для облегчения и ускорения разработки. Можно написать программу контроллера полностью на asm, но это несравнимо по трудозатратам с разработкой в среде UL (он как раз и компанует asm obj).

2) Насчет ресурсов конроллера: здесь я не согласен. Из практики, когда я отлаживал ПИД регулятор в контроллере без модулей ввода вывода, то скорость была за 1200 циклов в секунду. При 3 модулях ADAM5017 и одном ADAM5050 и 4 ПИД регуляторах - скорость 30-36 циклов в секунду. При 2 ПИД регуляторах - скорость 34-42 циклов в секунду. Это при том что мы используем 2 COM порта одновременно, передача информации идет по двум независимым сетям, на два разных компьютера. Затормаживают систему аналоговые модули, они и пожирают ресурсы.

3) В моем ПИД1 регуляторе работает Д составляющая, без неё качество регулирования и скорость гашения возмущений резко падают. В ПИД2 я существенно улучшил дифференциатор и качество его выходного сигнала, а шум и помехи всегда есть.

4) 110 импульсов в 3 минуты это максимальные режимы (пауза между импульсами 3.5 сек.) при "жестком" удержании парамета, например при резком возмущении (открыли где то задвижку и расход пара резко увеличился). При штатной работе если нет возмушений и отклонения, регулятор вообще "молчит". Я не могу здесь привести график работы (не знаю как вставить рисунок). А вообще ПИД регулятор настраивается на объекте, под конкретный параметр и исполнительный механизм и тут все в руках того кто настраивает, а настроить можно и как попало,"криво".

Я считаю, чем больше свобода выбота, тем лучше. Поэтому мне и интересны идеи и разработки других, для анализа своих ошибок и недоразумений. Готовлю ПИД 2 к отправке.

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


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Апрель 2006 17:41

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

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

Регуляторы с подобными параметрами настройки (максимальная длительность, минимальная длительность и т.д.) видел у фирмы "АМАКС", налаживают их специальные наладчики.

А вообще, проблема ПИ регулятора для механизма постоянной скорости имеется не только у меня и Vel'а. В большинстве PLC зарубежных фирм нет такого алгоритма, поэтому вместе с регулирующей аппаратурой отечественным автоматизаторам приходится заменять и привода.

Сергей
Наверх
D. Ushkin Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 69
Свойства публикации Свойства публикации   Ответить, цитируя автора - D. Ushkin Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Апрель 2006 18:24

Используем ПИ-регуляторы для приводов с постоянной скоростью, реализованные, правда, в Step7, SCL.

Использование датчика положения регулирующего органа позволило охватить ИМ обратной связью по положению. В этом внутреннем контуре реализуется зона нечувствительности по положению. Минимальное время включения определяется длительностью цикла контроллера. Такой охваченный обратной связью ИМ при рассчетах аппроксимируется А-звеном первого порядка.

Сам ПИ-регулятор реализуется с помощью рекуррентного алгоритма, что позволяет легко обеспечить безударное переключение с ручного на автоматический режим.

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

Иван Данилушкин
Наверх
s_smirnov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 29 Апрель 2006 08:26
Я делал регулятор на основе вышеприведенного программного блока, характеристику регулирующего органа (РПК) снял по точкам, "перевернул" и завел на апроксиматор. По положению исполнительного механизма изменяется коэффициент передачи регулятора, чем компенсируется нелинейность характеристики.
Сергей
Наверх
 Ответить Ответить Страница  123>

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

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