ПИД-регулирование температуры

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Добрый день.
Есть камера в которой происходит нагрев при помощи калориферов.
При задании 100% мощности, параметры примерно следующие:
- скорость нагрева 0,175°С за 1 секунду
- запаздывание 25 сек.
- за 10 минут камера разогреется с 20°С до 130°С
Нагрев.png
Задача:
- обеспечить нагрев камеры за минимальное время с перерегулированием не более 5°С
- поддержание температуры после нагрева с ошибкой не боле 1°С

Возможные решения:
1. Разные настройки регулятора для нагрева и поддержания температуры
2. Нагрев камеры до температуры = 0,8*Tуст (задание на калориферы - 100%).
Далее, снижение задания калориферам до уровня установившегося значения Tуст (надо знать при каком задании ШИМ, до какой температуры может нагреться камера)
При достижении значения температуры 95% от уставки, включать ПИД-регулятор

Проблема:
1. При включении ПИД-регулятора в после разгона характеристики температуры, он начинает считать от 0%
Так как, оптимальные настройки регулятора для поддержания температуры примерно равны K = 0,38. Ti = 983 и значение рассогласования не более 5%,
регулятор начинает выдавать задание 0% и очень медленно поднимает уставку.

Решение проблемы:
надо как-то заставить регулятор считать от 30, 40 или 50% (в зависимости от Tуст)
PID.vi не дает возможности переключать регулятор в ручной и автоматический режим работы (для изменения варианта выдачи управляющего воздействия: руч., авто.)

Прошу дать совет и поделиться опытом
ПИД.png
ПИД.png (9.83 КБ) 9316 просмотров
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Vasiliy Baev »

Добрый день, а чем температуру меряете - оптическим датчиком? Процесс не быстрый, инерционный. Задача не простая, тут еще надо учитывать конструктивные особенности - расположение нагревателей и неравномерный нагрев в разных точках...
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: ПИД-регулирование температуры

Сообщение Borjomy_1 »

Думаю, надо подбирать параметры P, I, и D.
Скорость нагрева зависит от разности температур. Поэтому система нелинейная, интегральный и дифференциальный коэффициенты призваны эту нелинейность убирать.
Плюс ко всему этому процесс регулирования также нелинейный - нагрев происходит быстрее охлаждения, это также надо учитывать, а PID регулятор этого не предусматривает.
В конце концов само управляющее воздействие можно делать нелинейным, компенсирующим нелинейность регулирования (естественно с подбором PID коэффициентов)
Последний раз редактировалось Borjomy_1 07 дек 2016, 12:26, всего редактировалось 1 раз.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Vasiliy Baev, измеряем термосопротивлением в одной точке PT100.
Меня очень волнует вопрос - каким образом научить ПИД-регулятор начинать отчет с заданной мной уставки для ШИМ (30, 40, 50%).

И еще, каким образом подбирать периодичность ШИМ?
надо учесть, что частота сети питающей калориферы 50Гц (управляются они тиристорными ключами), Тиристорные ключи в свою очередь гальванически развязаны с DO модулем контроллера cRIO.
я задал период для ШИМ - 20 секунд. т.е. каждые 20 секунды он начинает считать сначала
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Borjomy_1, проблема в том, что если для "нагрева" использовать коэффициенты "поддержания", то процесс нагрева будет происходить около часа или более, что не допустимо.
если наоборот, коэф-ты "нагрева" использовать для "поддержания", то система начнет раскачку и накопится критическая статическая ошибка, что приведет к Саяно-Шушенской ГЭС.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: ПИД-регулирование температуры

Сообщение Borjomy_1 »

При чем тут поддержание и нагрев? Я говорю про другое - любой нагрев в данной печке (даже в режиме поддержания) происходит быстрее охлаждения. Вот это надо найти, как учитывать. Т.е "торможение" нагрева при подходе к нулевому рассогласованию должно быть интенсивнее. Возможно, D коэффициент должен зависеть от знака рассогласования.

Вариант по-проще - менять уставку в зависимости от рассогласования температур. При большом рассогласовании - делать уставку T-5, при достижении определенного порога рассогласования уставку подводить к заданной.
Tзад тек = Тзад - (Тзад - Тек)*К. В таком случае начальная скорость нагрева будет максимальной, но перерегулирование из-за нелинейностей будет меньше
Последний раз редактировалось Borjomy_1 07 дек 2016, 13:06, всего редактировалось 1 раз.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

что необычно, процесс охлаждения примерно равен нагреву при включении калориферов на 100%.
поэтому, меня больше другое интересует - как регулятор научить считать от заданного мной значения
Lexan_83

Bronze
adviser
adviser
Сообщения: 221
Зарегистрирован: 18 май 2009, 10:50
Награды: 1
Версия LabVIEW: 8.6
Откуда: Москва

Re: ПИД-регулирование температуры

Сообщение Lexan_83 »

Для того, чтобы ПИД регулятор начал считать не с нулевого значения, нужно одну константу сделать контролом. Тогда при ренеицелизации ПИД регулятор будет считаться с этого значения. Я при переключении из ручного режима в режим регулирования ПИД делал реинициализацию и на вход начальное значение подавал последнее значение, которое было на выходе.
Вложения
Безымянный.png
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Lexan_83, да, это я и искал. Спасибо.
Я нашел зависимость задания ШИМ от температуры камеры.
очень примерно, это выглядит так: Tкамеры установившееся = 3,6*h
, где h - задание для ШИМ

Теперь алгоритм выглядит так:
1. h=100%
2. Tкамеры > 0,8*Тзаданное, тогда вкл. регулятор
3. hначальное = Tзаданное/3,6

Но в самом начале, из-за большого рассогласования, регулятор задал h на 20% больше, чем hначальное и начал плавно снижать h.
Ему не хватает времени для снижения h до нормального значения, поэтому буду вводить поправочные коэффициенты
или я иду ни в том направлении?
ПИД-Температура.png
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Возможно, необходимо включать ПИД не от 80%, а от 95%
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Jakob Brontfeyn »

Я лично, в подобных случаях, давно и успешно применяю
многоканальный Функционсгенератор, где помимо сетпоинта для
регулятора ведутся вместе, как функция времени, еще и другие 5
его параметров. Можно индивидуально переключать
их и на ручной ввод. Настоятельно рекомендую, вот и картинка
завалялась.
Вложения
FG_PID_5.jpg
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Jakob Brontfeyn, любопытная вещица :brows:
как-то можно с ней поближе познакомиться?
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: ПИД-регулирование температуры

Сообщение Andrew Lunev »

Добавлю немного к уже сказанному выше.
1. Теоретически доказано, что невозможно реализовать систему одновременно оптимальную по быстродействию и по точности. У них слишком противоположные требования. Поэтому для вашего варианта я вижу только использовать два режима. Один для выхода на режим, другой для поддержания заданной температуры.
2. Попробуйте найти кривые разгона для нескольких диапазонов. Например при переходе с 20 градусов на 40 и с 110 на 130. Думаю узнаете много интересного про ваш объект управления. Скорее всего поддержание температуры на 40 градусах и на 130 градусах потребует разные настройки регулятора.
3. Текущие настройки ПИД-регулятора K = 0,38 Ti = 983 просто ужасны с точки зрения теории управления. Вообще в области двух параметров, да еще и с нелинейностями будет несколько экстремумов. Возможно вы экспериментально нашли один из них, но уверен есть и лучше. Если посмотреть на ваши настройки, то при отклонении температуры на вашу точность 1 градус пропорциональный регулятор изменит выход ШИМ только на 1*0,38= 0,38% То есть ваша температура уже вышла за допустимый диапазон, а регулятор на это среагировал, изменив подаваемую мощность всего на 0,38%. То есть пропорциональная часть регулятора практически не вносит в регулирование хоть какое-то влияние. Интегральная часть чем больше имеет значение Ti, тем меньше дает влияние. То есть так же практически не регулирует. Интегральная часть дает колебания вокруг заданного значения, что для вашей системы очень не хорошо.
Вам надо значительно увеличивать влияние пропорциональной части. Попробуйте начать с настроек K = 5 - 20, Ti = 0. Добейтесь кривой разгона с выходом на режим без перерегулирования, но со статической ошибкой. Затем уменьшайте Ti от 1000 до меньших значений, пока перерегулирование будет в допустимых значениях.
4. Частота контура управления должна быть не ниже 1 Гц, ШИМ так же должен быть с периодом не более 1 с. Иначе вы ухудшаете характеристики контура управления за счет транспортного запаздывания.

Ну и хочу добавить, что скорее всего вы регулируете не температуру в камере, а температуру на датчике температуры. При нестационарных процессах с высокими темпами нагрева всегда будет значительный градиент температуры внутри камеры. Проверьте, если есть возможность, поставив несколько датчиков в разные места камеры. Иногда градиент достигает десятков градусов, а вам нужна точность менее одного градуса. Надо ограничивать скорость нагрева или применять вентиляторы для перемешивания воздуха внутри камеры. А лучше и то и другое.
Еще на динамику и точность нагрева будет влиять теплоемкость объекта в камере. Нагрев пустой камеры и камеры с объектом внутри будет значительно отличаться. А если еще открыть разогретую камеру и положить в нее холодный объект...

Так же добавлю, что регулирование температуры достаточно сложный процесс. Все дело в том, что можно влиять только на рост температуры, а охлаждение происходить благодаря внутренней динамике объекта управления. Очень хотелось бы при перерегулировании подать в объект отрицательную мощность требуемого значения, но в вашем варианте это не возможно. Поэтому чаще всего нагрев и охлаждение происходят с разной динамикой и требуют разных настроек регулятора. Особенно чувствительна к этому интегральная составляющая регулятора. Она интегрирует ошибку, на которую не может влиять.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Jakob Brontfeyn »

Aleksey Feoktistov писал(а):Jakob Brontfeyn, любопытная вещица :brows:
как-то можно с ней поближе познакомиться?

еще здесь в ппт презентации первая картинка
http://www.labviewportal.org/viewtopic. ... =30#p72424

Вообще, я многоканальные и одноканальные Функционсгенераторы постоянно использую
для разных целей
Вложения
PID_Regler.jpg
FG_TMF_0.jpg
FG_TMF.doc
(260 КБ) 164 скачивания
regler.doc
(980 КБ) 154 скачивания
pid_hintergrund.jpg
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: ПИД-регулирование температуры

Сообщение Aleksey Feoktistov »

Andrew Lunev, благодарю за правильный вектор.
Алгоритм изменил следующим образом:
1. h=100%
2. Если Tкамеры > 0,8 * Tзаданное, то h=75%
3. Если Tкамеры > 0,9 * Tзаданное, то h=60%
4. Если Tкамеры > Tзаданное, то включаем ПИД регулирование.
При таком разогреве, перерегулирование не боле 2°С, что удовлетворяет условиям задачи
Но дальше, возникает еще одна проблема
График температуры.png
Температура поддерживается, но с постоянной ошибкой. Ошибка вызвана переходом от нагрева к поддержанию
После реинициализации ПИД-регулятора, данная ошибка уходит.
Теперь необходимо корректно подобрать момент включения реинициализации.
пока в раздумьях
Ответить

Вернуться в «Общие»