пятница, 3 сентября 2010 г.

ПИД-регулятор для CJ1 в CX-Programmer.

Для работы с аналоговыми сигналами в CX-Programmer предусмотрено два типа аналоговых регуляторов – простой и с автонастройкой. К сожалению, область применения этих блоков весьма ограничена. Работать они могут только с устройствами нагревательного типа с естественным охлаждением. То есть тогда, когда движение координаты в одну сторону осуществляется путем подачи некоторой порции энергии, а  в обратную сторону система идет сама. Это ограничение связано с выходом ПИД-регулятора. Он может принимать только положительные значения, пропорциональные отклонению. Управлять положением механизма или задвижками с помощью такого регулятора не получится.

Решений проблемы несколько. Первое и самое простое – взять готовый модуль для контроллера, осуществляющий функции регулирования. В линейке CJ1 несколько таких узкоспециализированных модулей для разных задач. Но не факт, что модуль подойдет, кроме того, он стоит денег.
Второе решение – использовать функциональный блок для преобразования выхода  стандартного регулятора в нужный сигнал.
Третье решение – разработка собственного ПИД-регулятора под конкретную задачу.
Вернусь к встроенному ПИД-регулятору. Он имеет достаточно большое число настроек, разобраться в которых не просто. Усложняет задачу перевод на русский язык руководства по регулятору. При его чтении возникает только одна мысль – «Без бутылки не разобраться». Усугубляет проблему наличие ошибок, отсутствие примеров. Поэтому, что бы запустить регулятор пришлось открывать англоязычный вариант.
Регулятор с автонастройкой, ничем не отличается от простого, за исключением возможности этой самой автонастройки. Так как возможности встроенного регулятора не подошли под мою задачу, то и автонастройка не была полностью проверена. Пробная попытка запуска ни к чему не привела, выход регулятора остался равен 0, хотя в ячейках памяти значения менялись.

Комментариев нет:

Отправить комментарий