PDA

Просмотр полной версии : Помогите с задачкой по регулированию



JIexa21
21.03.2011, 08:46
Всем привет!
Нужно плавно поднять, подержать и потом плавно же опустить температуру.
Пробовал PID из стандартной библиотеки. Проблема в том что при изменении задания он сбрасывет настройки выхода и плавно изменить задание на входе не получается...
Пока склоняюсь к такому решению: есть снятые показания за вполне приличный период, забил массив (положение задвижки - температура), по нему планирую в зависимости от задания брать ближайшие крайние значения и вычислять приблизительные значение выхода и потом уже без пид с небольшими задержками подстраивать температуру (типа того же пид) и заодно сохранять полученные значения для дальнейшего использования.
Вообще какие бывают стандартные варианты решения этой задачи?

Николаев Андрей
21.03.2011, 10:27
Можно попробовать использовать ПИД из библиотеки, идущей с контроллером

JIexa21
21.03.2011, 11:14
Смотрел и их (ПЛК63)... К сожалению самостоятельно с их настройкой разобраться не смогу, а ставить эксперименты больше никто не даст.

Фан
21.03.2011, 15:08
Работал с PID из стандартной библиотеки (Util.lib). Для меня непонятно какие настройки выхода сбрасываются при изменении задания. По Вашему описанию складывается впечатление, что любое изменение задания для регулятора приводит к его сбросу, т.е. он становится неработоспособным. Ничего подобного не замечал, все работает правильно.

JIexa21
21.03.2011, 16:35
Попробуйте менять задание на входе. Как только оно изменится, так сразу пид сбрасывает выход в ноль (Y) и начинает выводить его заново с нуля... Это в эмуляторе.
В реале завтра буду пробовать.
Если дадут...

JIexa21
22.03.2011, 07:08
Пример:
Изменить температуру за время 1 час с 30 до 40 градусов. Выход меняю с шагом 1% (чтобы зря не гонять задвижку), уставка меняется постоянно по времени - прошедшее время в шаге/время шага*(температура конец-температура начало)+температура начало.
Вообще может эмуляторе такая засада. И время я там уменьшаю при прогоне...

Фан
22.03.2011, 07:15
Действительно, скажите какие у Вас выставлены значения KN, TN и TV.

JIexa21
22.03.2011, 09:13
Меняю сетпоинт, Y округляю до целого числа процентов и его мониторю в эмуляторе.
Короче в эмуляторе отследить не реально. :)
В нем выставил такие параметры:
PID_KP := 1;
PID_TN := 60;
PID_TV := 10;
Y_MIN := 20;
Y_MAX := 70;
Заодно увеличил время шага и, соответственно, изменилось скорость изменения задания. Глюк со сбросом пропал...
Реальные коэффициенты пока вычислить не удалось. Регулирующие клапана находятся в метрах 100 от сушильной камеры и у клапанов время открытия-закрытия 150 секунд, так что сделать сходу не получилось. Сегодня все-таки попробую это сделать.

Или может проект прицепить? :)
Кстати, т.к. платят копейки, то когда будет готов могу выложить сюда.