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

[Do-more] Встроеный ПИД и несимметричность ИМ

 Ответить Ответить
Автор
Сообщение
FPavel Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Июнь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - FPavel Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: [Do-more] Встроеный ПИД и несимметричность ИМ
    Опубликовано: 26 Август 2018 23:56
Доброго дня!

При программировании обработчика ПИД регулятора ознакомился с неприятным эффектом - несимметричностью перемещения исполнительного механизма (ИМ) при открытии и при закрытии регулирующего органа (РО). Т.е. после импульса открытия длительностью 10 секунд для возвращения в исходное состояние требуется импульс закрытия длительностью 11 секунд.

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

Проблема возникает при сочетании встроенного в ПЛК ПИД (дающего на выход число от 0 до 100% - предлагаемое положение ИМ) и трёхпозиционного ИМ без обратной связи по положению (т.е. используется математическая модель - оценка положения по отношению длительности открытий-закрытий к длительности полного хода).

Несимметричность приводит к тому, что встроенный ПИД-регулятор контроллера с выходным значением от 0% до 100% "переполняется" и, по мере компенсации несимметричности, значение выхода становится равным 0% (а вместе с ним и математическая оценка положения). В то время, как реально ИМ остаётся примерно посередине положения.

Я сейчас борюсь с этой проблемой так: при достижении выходом 5% или 95% устанавливаю внутреннюю переменную ПИД (BIAS), в которой накапливается интегральная составляющая, в значение 50%. Конечно, при этом проверяю, что вызвало приближение к границам - интегральная или другие составляющие.

Обратная связь по положению ИМ существует, но из-за чудовищных люфтов в самих датчиках положения (т.е. порочной конструкции ИМ) не могу использовать её при регулировании.

Для следующей работы с этим контроллером, возможно, сделаю собственную реализацию ПИД. Пока, из-за нехватки времени, обошёлся костылями.

Кто-нибудь уже сталкивался с такой проблемой? Как решали её?
Наверх
Антон Соколов Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 29 Май 2014
Online Status: Offline
Публикации: 85
Свойства публикации Свойства публикации   Ответить, цитируя автора - Антон Соколов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Сентябрь 2018 11:03
Использовал самописный ШИМ-регулятор с контролем люфтов.
Антон Соколов
Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

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

Павел, я все же думаю, что не все контроллером можно решить. Как минимум уже потому ,что при смене МЭО на другой вполне может оказаться, что он без люфта (или люфт существенно меньший) - и то, что Вы выставляете в крайних точках внутреннюю переменную в 50% - выйдет боком рано или поздно.
Простите за оффтоп. Когда-то настраивал вакуумные деаэраторы, там один из параметров - вакуум в головке. Гений-конструктор установил датчик на метр ниже точки отбора. Естественно по мере заполнения импульсных трубок конденсатом показания изменялись на величину текущего столба жидкости в импульсных трубках. Начальство издало приказ - как заполнятся трубки, не сливать конденсат и внести постоянную поправку (согласно высоте между точкой отбора и установкой датчика) в отображение в СКАДА. Все было замечательно, пока очередной КИПовец с похмелья не слил конденсат. Человеческий фактор. После чего все-таки сделали перемонтаж, подняв датчик на уровень точки отбора.

Я понимаю, что пишу не решение - поэтому, наверно, вызвал этим постом досаду. Но, Павел, все-таки правильней бороться с МЭО. Не в контроллере тут дело.
И, пожалуйста, не считайте ответ "теоретическим". В свое время достаточно много проработал в инжиниринге под разными ГИПами. И могу сказать, что хорошо работало только там, где ГИП настаивал на устранении первопричины, а не пытался одними средствами решить проблему совсем других.
Наверх
FPavel Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Июнь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - FPavel Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Сентябрь 2018 23:17
Крепнет уверенность, что в данном случае требуется именно программное решение.
Встроенный алгоритм ПИД хорошо работает для частотника, для ИМ с входным токовым сигналом, для ИМ с хорошим датчиком положения.
Но для трёхпозиционного ИМ без обратной связи по положению требуется другое решение.

Антон Соколов, контроль люфтов - в смысле компенсация шириной импульса при смене направления? Так вы просто несколько отодвигаете момент, когда произойдёт переполнение. Но неточность определения времени ассиметричных люфтов (а также их изменение в ходе эксплуатации) всё равно проявится.
Для симметричного случая было бы незатухающее колебание регулируемой величины и BIAS. Но для несимметричного - BIAS переполнится (станет равным 0 или 100).
И вот переполнение наступило. Как быть?

В моём случае по одному параметру переполнение происходило через 30 минут, а по другому через 2-3 часа.


Astilya, как уже сказал, утвердился в мысли, что решение всё же программное - исправляется или костылями или отказом от встроенного ПИДа в пользу самостоятельной реализации. Подчеркну - именно для трёхпозиционного ИМ без ОС по положению.

Разобравшись с причиной (несимметричностью люфта и переполнением BIAS), хотел применить настройку velocity (ПИДД) вместо position в ПИД регуляторе. Но прочитал, что и в этом режиме BIAS используется аналогично, т.е. переполнения не избежать.

Как таковой, накопленный за длительное время BIAS не нужен. Важно лишь приращение за последний период пересчёта и насколько всё же переместился ИМ. Это пока просто мысль, без реализации. Т.к. программа уже сдана и некоторые изменения смогу внести ближе к зиме при отладке других режимов работы объекта управления. Но глобальная переделка ПИД - откладывается на следующий объект, на котором будет возможность проведения экспериментов.

Всё было проще с Р25 - он не накапливал в ограниченную диапазоном 0-100 переменную (конденсатор). И по мере выдачи импульса разряжал конденсатор.

Может, и было бы лучше заменить ИМ 4*8=32шт., но не с моим счастьем.
Наверх
Антон Соколов Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 29 Май 2014
Online Status: Offline
Публикации: 85
Свойства публикации Свойства публикации   Ответить, цитируя автора - Антон Соколов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 04 Сентябрь 2018 11:05
FPavel
А обратной связи нет даже по концевикам? Если есть концевики, можно попробовать нормализовываться по ним
Антон Соколов
Наверх
FPavel Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Июнь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - FPavel Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 04 Сентябрь 2018 11:28
Нет. ОС по концевикам тоже нет. Есть ОС по положению 4-20мА, но у неё недостаток - люфт по измерению положения (шток переместился на 40-50мм, а выходной ток не изменился). Т.е. и этой ОС - нет, только для справки.

По началу я пытался просто открывать или закрывать ИМ до достижения требуемого положения. Но из-за люфта измерения перешёл к математической модели.

В любом случае появляется необходимость манипулировать BIAS.

Или как можно нормализовываться по концевикам? Ведь при работе ИМ их не достигает - рабочая точка где-то в 10-40% положения.
Наверх
Антон Соколов Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 29 Май 2014
Online Status: Offline
Публикации: 85
Свойства публикации Свойства публикации   Ответить, цитируя автора - Антон Соколов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 04 Сентябрь 2018 11:41
В моей реализации ШИМ я не использовал положение, только концевики, и то, только для "дожатия". Плюс был в том, что измерялась реакция системы на один импульс (подача сигнала открытия-закрытия на ИМ в течении одного, двух, трёх, пяти сканов (1 скан ~= 30 мс), а положение ИМ не требовалось. По изменению контролируемых параметров после воздействия делался вывод, на сколько ещё "сканов" надо открываться или закрываться. При изменении направления вращения ИМ, закладывалось некоторое количество сканов на люфт.
Такой способ оправдал себя, но требовал точной практической настройки этого программного регулятора ШИМ под каждый ИМ (индивидуально).
Антон Соколов
Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 18 Декабрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 275
Свойства публикации Свойства публикации   Ответить, цитируя автора - Astilya Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 04 Сентябрь 2018 12:31
Коллеги, добрый день!
Да, конечно, если есть концевики - дожим самое верное решение. Сам делал. Но опять же - это когда ИМ в крайних положениях. А когда он в ходе процесса в промежуточном и при этом по ОС врет безбожно?

Беда тут в том, что в контроллере ПДД2 (2 - квадрат, показатель степени) передаточная функция. Совокупно с МЭО, чья передаточная - интегральная составляющая - дает ПИД. Портит жизнь интегральная составляющая. Но она и жизненно нужна, потому что только ей можно убрать статическую ошибку (если она допустима - убирайте И-составляющую к черту!).
Поэтому не могу согласиться, что накопленный BIAS не нужен - если его сбрасывать и интегрировать только в короткие периоды времени - переходный процесс регулирования потеряет плавность. Начнутся "дерганья", причем по сути с амплитудой, диктуемой пропорциональной составляющей настроек регулятора. Мб на процессе это и не скажется критически - но МЭО начнут сдыхать на порядок быстрее. Впрочем, это уже не головная боль наладчика:)
Тем не менее, Ваша идея интересна и, думаю, работоспособна. Вопрос только в том - насколько глубоко из прошлого рассчитывать И-составляющую. Совсем ее обнулять нельзя - это будет уже не регулирование. По идее напрашивается ситуация "скользящей интеграции" (к примеру, глубиной в 10-20 сканов). Вопрос, скорее, как это программно реализовать... У меня пока идей нет, увы:(
Наверх
 Ответить Ответить

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

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