PDA

Просмотр полной версии : Помогите:ПЛК63, CoDeSys, ПИД



Glebster
25.04.2011, 14:10
Здравствуйте!
В рамках ДП разрабатывается ПИД регулирование температуры в печи. Печь имеет два ТЭНа. Регулирование раздельное.

Используется ПЛК63-РРРРУУ, два реле должны включать(выключать) конктретный нагреватель. Аналоговые выходы 0...10 В управляют БУСТ. Аналоговые входы задействованы все: 8 термопар ТХА. Две термопары закреплены около каждого нагревателя, должны использоваться для регулирования. Остальные 6 - просто для измерения температуры в любой точке печи.

Подскажите кто чем может: алгоритм, пример программы, как искать коэффициенты для ПИД-закона, на каком языке в CoDeSys лучше это написать?

С такой САУ работаю первый раз, время поджимает. Потихоньку разбираюсь, но слишком потихоньку.

Спасибо!

Glebster
25.04.2011, 14:24
P.S. Так же необходима остановка программы когда на дискретный вход поступает сигнал "1".
Можно сделать прерывание при таком условии или же выполнение всей программы происходит в бесконечном цикле, где проверяется данное условие?

Gans
25.04.2011, 14:27
Здравствуйте Glebster.
На первый взгляд для решения данной задачи вообще не следует использовать ПИД-регулятор, более целесообразно парой релейных выходов (через пускатель/твердотелку и тд.) вовремя включать тэны. Может даже тэны разбить на три группы (например: 2, 4, 8), а потом в программе выбирать необходимое количество выключенных/выключенных тэнов для поддержания заданной температуры.
P. S. укажите пожалуйста значение поддерживаемой температуры и допустимое отклонение от заданного.

Glebster
25.04.2011, 21:13
Дело в том, что в задании конкретно указано реализовать раздельное и совместное ПИД-регулирование. Разрабатываемая установка - лабораторный стенд.
По поводу поддержания температуры: температура в печи меняется от комнатной до +250 С. Уставка должна задаваться с ПК. Пусть это будет хоть 100, хоть 150 градусов, любое желаемое значение. Начет допустимого отклонения - не больше 1,5 С.

Алексей Дмитриев
25.04.2011, 22:13
Как понимать раздельное или совместное? Напрашивается 2 регулятора с одной уставкой. Обратную связь заводить с датчиков, которые рядом с ТЭНами. БУСТы, как я понимаю именно этими ТЭНАМИ и управляют. Зачем еще пускатели?

Glebster
25.04.2011, 23:49
Совместное или раздельное: например на одном нагревателе получить температуру 100 С, на втором 200 С.
Как я понимаю в таком случае будет две уставки. Если совместное регулирование, то просто эти уставки должны быть равны. Так?

Но мой вопрос темы: вот задал я уставку, ее подставляю в формулу для пид-закона, туда же подставляется значение полученное с датчика. В формуле имеются некие коэффициенты. Как эти коэффициенты найти?

Чтобы включить реле (выходы типа "Р" контроллера), нужно переменной этого выхода присвоить значение 1?

P.S. Может для кого-нибудь мои вопросы кажутся туповатыми, просто совсем еще новичек в САУ.:confused:

Николаев Андрей
26.04.2011, 00:36
http://www.owen.ru/forum/showthread.php?t=10396&page=2

Glebster
26.04.2011, 01:20
Можно использовать функцию PID из библиотеки Util.lib?

KP – коэффициент передачи
TN – постоянная интегрирования
TV – постоянная дифференцирования
SET_POINT - уставка
АCTUAL - сигнал с датчика
Y - выходной сигнал

Подскажите, что значат оставшиеся входы, и какие значения присваивать всем входам?

swerder
26.04.2011, 10:12
Как эти коэффициенты найти?
какие значения присваивать всем входам?

для этого как бы в университетах преподают курс лекций "ТАУ"
существует программа vissim, в ней можно методом научного тыка подобрать "оптимальные" параметры настройки регулятора

Glebster
26.04.2011, 10:21
В одном ВУЗе ТАУ могут преподавать по одной программе, как положено. В другом - по-другому. А когда прижмет, все и вылезает наружу.

Николаев Андрей
26.04.2011, 12:06
для этого как бы в университетах преподают курс лекций "ТАУ"
существует программа vissim, в ней можно методом научного тыка подобрать "оптимальные" параметры настройки регулятора

Давайте не будем про ВУЗовское образование. Уже 10 лет назад знания по ПИД регулятору ВУЗ дает теоритические и абстрактные...

ПИД регулятор из Util.lib использовать можно. Он без автонастройки.

В самом простом случае кэффициенты подбираются имперческим путем. Начиная с П составляющей.

Glebster
26.04.2011, 13:04
А с автонастройкой как реализовать?

Николаев Андрей
26.04.2011, 13:22
ссылка с примером выше в моем посте.

Николаев Андрей
26.04.2011, 13:22
В принципе Вы сами можете попробовать реализовать ПИД. Примеров на форуме куча

Glebster
26.04.2011, 16:22
Спасибо! Будем разбираться.

Glebster
27.04.2011, 00:23
В принципе все сделал. Писал на языке FBD. Но один пользовательский функциональный блок пришлось сделать на ST.
Остался один нюанс. При использовании PID из библиотеки Util.lib не понял в каком диапазоне выдается управляющее воздействие Y? от 0 до 100 (подразумевается в %) или от 0 до 1 (в долях).?? Подскажите....

Николаев Андрей
27.04.2011, 00:26
Надо читать мануал. Величина как то завязана на ограничения, вводимые на входах.
Попробуйте, за одно и остальным расскажите.

Алексей Дмитриев
27.04.2011, 23:53
Вот тут самописаный ПИД с исходником, люди пробовали, говорят нормально работает.;)
http://www.owen.ru/forum/showthread.php?t=10325
А из util.lib работает, конечно, но глюковатый, неадекватный. Если только для диплома, без реализации, то пойдет, конечно.:D

Glebster
29.04.2011, 15:14
Ага, спасибо!

Вот требуется еще сделать совместное пид-регулирование. Но это не просто один регулятор на два нагревателя, или два регулятора на оба нагревателя с одинаковыми параметрами и уставкой.

То есть должна происходить компенсация влияния одной зоны нагрева на другую. Это что-то типа каскадного включения регуляторов с компенсирующим звеном. С этим никто не сталкивался?

Glebster
29.04.2011, 15:16
А из util.lib работает, конечно, но глюковатый, неадекватный. Если только для диплома, без реализации, то пойдет, конечно.:D

Да вроде бы с реализацией, но я уже выпущусь из академии:)

Алексей Дмитриев
05.05.2011, 13:38
Так и чего париться, пусть голова у Вашего последователя болит!:D

Glebster
05.05.2011, 17:32
Хе:) так оно, наверное, и будет))