Просмотр полной версии : ПИД-регулятор в двухконтурном регулировании
Назаров Александр
15.06.2008, 17:54
Уважаемые коллеги, подскажите кто чем может. Каким образом регуляторы из библиотеки PID-Regilators можно организовать таким образом, чтобы выход одного регулятора был входом (заданием) для другого? Задача - регулирование температуры воздуха в помещении (по вытяжке).
Филоненко Владислав
15.06.2008, 21:30
Просто соедините вход второго пида с выходом первого. Оба имеют тип переменной REAL.
Возможно придётся преобразовать масштаб до необходимого.
Никаких ограничений на это нет.
ОДНАКО!
Важный момент. Для корректной работы ПИД-регулятора необходимо на его вход подавать циклическое время в формате WORD в 1/100 секунды.
Для второго пида необходимо скопировать время на входе первого и подавать его и на вход второго.
Если реализуется более сложная схема с двумя и более источниками сигнала (каждый со своим значением времени и темпами его изменения), то надо либо тактировать пиды от независимого источника времени, либо при изменении значения времени хотя-бы в одном источнике менять его по всей цепочке передачи сигнала управления от ПИДа к ПИДу.
Сумбурно, но что вы хотите от времени? :)
Назаров Александр
16.06.2008, 06:47
Как раз с временами вроде бы проблем нет, так как вспомогательный (или внутренний) контур имеет свою обратную связь - температура на притоке в помещение, а основной свою - измеренную температуры в помещении (или на вытяжке). Показания датчиков приходят со своими временами. Кроме того, основной регулятор скорее всего может быть просто пропорциональным, так как обладает очень большой инерционностью. А вот внутренний - ПИД с автонастройкой. Вопрос лишь в том, каким образом настроить передаточную функцию основного регулятора, чтобы он на выходе выдавал задание (уставку) для внутреннего контура, т.е. преобразовать величину от 0-100 в уставку температуры в гр.С.?
Назаров Александр
16.06.2008, 07:12
Возникла мысль: 0 - минимальная температура притока (допустим 14гр.), а 100 - максимальная (допустим 28гр.), остальное для регулирования. Будет работать?
Малышев Олег
16.06.2008, 09:03
Добрый день!
Первый контур - это явно ПИ регулятор (д - ненужно!). Поставьте на входе первого фильтр tф=0.01*4*tau
Мысль совершенно правильная - 0..100 =tmin..tmax
насчет автонастройки - в момент автонастройки не должна колебаться уставка и в помещении не должны внезапно открываться окна :).
Назаров Александр
16.06.2008, 09:34
Добрый день!
Первый контур - это явно ПИ регулятор (д - ненужно!). Поставьте на входе первого фильтр tф=0.01*4*tau
Мысль совершенно правильная - 0..100 =tmin..tmax
насчет автонастройки - в момент автонастройки не должна колебаться уставка и в помещении не должны внезапно открываться окна :).
Тогда вопрос по поводу автонастройки:
1. Каким образом убрать не нужные функции в регуляторе с автонастройкой? Я думаю если просто при инициализации задать нули, а затем провести автонастройку, то ... ?
2. По моему автонастройку достаточно провести для первого контура, с отстегнутым вторым?
3. Сколько должна быть в у.е. регулятора полоса пропорциональности для второго (внешнего) контура, примерно ?
4. tф=0.01*4*tau ?
Спасибо за ответы.
Малышев Олег
16.06.2008, 17:17
1) Не понятно, что имелось в виду о ненужных функций, а автонатройку можно провести в любой момент подав значение на соотв. вход.
2) АНР в данной ситуации не поможет. Т.к. расчет идет на основе болле простой мат модели объекта чем у Вас. Вообщем лучше использовать PID_Fuction.
3) Не знаю - сами прикидывайте Yreg=100*(SP-Pv)/XP. Какое значение может быть? ну скажем 10..50.
4) tau - запаздывание системы - время реакции на единичное возмущение - ищется как время от начала воздействия до пересечения касательной от графика pv к оси времени. Тф - постоянная времени DIG_FLTR
Назаров Александр
16.06.2008, 17:25
1) Не понятно, что имелось в виду о ненужных функций, а автонатройку можно провести в любой момент подав значение на соотв. вход
Что надо сделать чтобы Регулятор ПИД, как функциональный блок, настраивался только как ПИ или П, допустим. Непонятно как поведет себя АНР, будет настраивать ПИД полностью? Без автонастройки все вродебы понятно - ставишь нули и подбираешь коэфициенты необходимых функций.
Теперь понятнее:) ?
Малышев Олег
16.06.2008, 18:19
теперь понятно.
В режиме отладки во внутренние переменные можно записать kdki = 0, Ctrl-F7 - и ПИ регулятор готов.
Еще раз - посоветовавшись с опытными людьми - уточняю - АНР - не Ваш случай. Вам нужно подбирать к-ты ручками.
Назаров Александр
16.06.2008, 20:04
В принципе с визуализацией переходных процессов проблем подбора параметров дело не очень хлопотное. Просто хотелось прояснить нюансы до эксперементов на объекте.
А что делать с запаздыванием привода клапана? ПИД-функция ничего не предусматривает на этот счет.
И вообще в библиотеке какаято странная классификация регуляторов - 2pos, 3pos! На мой взгляд правильнее было бы классифицировать как регуляторы для безинерционных исполнительных элементов и инерционных, а исполнительные (выходные) элементы уже делятся на аналоговые, трехпозиционные, и двухпозиционные. Как это относится к самим регуляторам непонятно.
И еще вопрос к техподдержке. В описании PID_3POS_IM_ANR на графике №2.10а видно, что процесс автонастройки производится после установившегося режима (SP=PV). При этом Out_Val имеет вполне конкретное, компенсирующее возмущения, значение. В тоже время параметр PST (начальное значение мощности на выходе регулятора при автонастройке) на рис 2.10б может иметь абсолютно любое значение не равное Out_Val. Т.е. либо график кривой, не отражающий реальный процесс, либо по счастливой случайности они равны?
И еще вопрос к техподдержке. В описании PID_3POS_IM_ANR на графике №2.10а видно, что процесс автонастройки производится после установившегося режима (SP=PV). При этом Out_Val имеет вполне конкретное, компенсирующее возмущения, значение. В тоже время параметр PST (начальное значение мощности на выходе регулятора при автонастройке) на рис 2.10б может иметь абсолютно любое значение не равное Out_Val. Т.е. либо график кривой, не отражающий реальный процесс, либо по счастливой случайности они равны?
В абзаце перед графиками дается указание:задать такое значение SP, чтобы выходная мощность примерно соответствовала PST. Отсюда и график (упрощенный).
Малышев Олег
17.06.2008, 09:28
1) ПИД и не должнен это предусматривать. Объект с задвижкой( сервомеханизмом) рассматривается как единое целое. Т.е. общее запаздывание которое суммируется как запаздывание объекта + запаздывание задвижки должно использоваться в регуляторе.
2) ПИД регулятору вообщем все равно чем рулить - задвижкой или теном. Но для автонастройки играет роль какое возмущение передается на объект в текущий момент времени. Что касается названий тут уж так сложилось и данную библиотеку никто менять не будет.
3) Ключ к решению парадокса - последний абзац перед рисунком.
В кратце - выводим задвижку на 50 % дожидаемся стабилизации температуры (скажем на SP=45 грС). Предпологаем (или знаем), что сдвиг на +-20% приведет к изменению температуры на НЕ МЕНЕЕ чем на +-5 грС. (т.е. YDOP=5,PST=50,SP=45.)Запускаем регулятор в режиме анр сразу после стабилизации Т. До стабилизации просто игнорируем значение входной мощности регулятора, например с помощью SEL.
Назаров Александр
17.06.2008, 09:36
В абзаце перед графиками дается указание:задать такое значение SP, чтобы выходная мощность примерно соответствовала PST. Отсюда и график (упрощенный).
Это каким же образом можно предугадать соответствие SP и PST? Подбором?
И что же всетаки скажите по поводу классификации регуляторов? По моему вы вводите людей в заблуждение, или я чегото не понимаю:)?
Малышев Олег
17.06.2008, 12:29
Подбором или паспортной характеристикой. Автонастройка (3POS) начинается установившегося значения и при некоторой мощности. Аналоговый регулятор = 2х позиционный если я правильно Вас понял.
Назаров Александр
17.06.2008, 13:29
Чего то я стал терять нить общения:). Конкретный вопрос:
1. Регуляторы PID_2POS_IM_ANR и PID_3POS_IM_ANR отличаются только разным алгоритмом АНР, определяемым запаздыванием выходного элемента? и соответственно не привязвны к способу управления (2ух, 3ух и аналоговому приводу)?
2. Зачем вообще параметр PST, если есть PTOL и установившееся значение OUT? Тогда все было бы логично и небыло бы лишних вопросов.
3. При инициализации PID какие то значения присваиваются коэффициентам регулятора?
Малышев Олег
17.06.2008, 18:57
1. Да именно так.
2. Регулятор запускаете первый раз именно в режиме анр - а мощность ставите вручную соответствующую той что есть на управлении объектом на момент начала АНР.
3. Можно посмотреть во внутренних переменных при выполнении. Навскидку - XP=K0 KI=_Ti KD=kdki*_TI
Назаров Александр
30.06.2008, 07:46
Вчера пробовал на объекте PID-funktion. Оказалось, что этот функциональный блок на выходе дает управляющее воздействие на рассогласование отличное от нуля и не интегрирует регулирующее воздействие. Для 3-х позиционных клапанов это понятно, но что делать с аналоговыми (0..10В)?
Пожалуйста поясните.
Малышев Олег
30.06.2008, 07:58
какие входные параметры были заданы? что подано на вход PV_time
Назаров Александр
30.06.2008, 08:19
PB=20, Ti=100000, Td=0. Пытался из него сделать пропорциональный регулятор. На PV_time с МВУ от датчика температуры. Хотя при пропорциональном регуляторе он не нужен.
Малышев Олег
30.06.2008, 09:05
integral=Сумма(Ey/TI)
При даннном TI =100000, интеграл будет очень долго копиться ( см. внутреннюю переменную Integral1).
Назаров Александр
30.06.2008, 09:21
Правильно. А иначе как мне сделать пропорциональный регулятор? Только при Ti стремящееся к бесконечности интегральная составляющая стремится к 0 :) .
Про интеграл я имел ввиду Yi = Y0 + kx, т.е. при установившемся режиме регулирующее воздействие чемуто равно (компенсация возмущения) при х=0. У PID функции при х=0, Yi = 0
Малышев Олег
30.06.2008, 11:37
Ясно - используйте Imax,Imin, а лучше к выходу регулятора прибавляйте некую константу.
Назаров Александр
30.06.2008, 11:45
Непонимаю. Причем здесь ограничение накопления интегральной составляющей? В П-регуляторе ее нет, или вернее практически нет. Или эти параметры несут еще какойто скрытый смысл?
Малышев Олег
30.06.2008, 15:10
Давайте попробуем так - П регулятор - выдает на выход только Y=Ey*Kp. Если Вы хотите добавить некоторую дополнительную компенсацию - Y=Y0+Ey*Kp это можно сделать и без регулятора.
Для ПИ регулятора Y=Ey*KP+Yi/XP ; Yi=Yi+Ey/XP
Если нужно сделать именно П регулятор, не вижу вообще смысла вызывать PID_Function, вполне достаточно выражения Y=(SP-PV)*KP;
Назаров Александр
11.07.2008, 22:34
Спасибо Олегу!
Сам тормозил. Хотя выяснил простецкую вещь - П регулирование возможно только с 3х позиционным клапаном. С управлением 10В необходимо ПИ регулирование.
Карнаухов Дмитрий
18.07.2008, 09:11
Возможно, однако, П-регулятор настроить на "аналоговый" ИМ. Как было сказано выше, для этого к рассчетному выходу регулятора добавляется некая "опорная" величина (мощность в вашей терминологии?), которая в оригинале выводит систему на режим близкий к оптимальному. Я для таких случаев в своем регуляторе проверяю Ti на равенство 0 и если необходимо суммирую выход со значением спец. входа.
Назаров Александр
18.07.2008, 10:00
В качестве опорной вкличины можно выбрать и температуру уставки на вытяжку, однако без интегальной составляющей всеравно не обойтись. В зависимости от того какую опорную величину выберешь - будет зависить величина накопленного интеграла. По другому чего то не получается. А что такое спец. вход?
Карнаухов Дмитрий
18.07.2008, 10:37
Нет. Опорная величина - выход регулятора, при котором ИМ механизм принимает удовлетворяющее вас положение, и соответственную температуру. К примеру, управляя руками нашли, что нужная Т = 20оС получается при положении ИМ 40% открытия. Соответственно, для П-регулятора нужно к выходу добавить 40% от диапазона. И уже эту сумму подавать на позиционирующее устройство (или программынй блок, если у вас это делает программа).
Специальный вход - вход на моем регуляторе, который при наличии интегральной части обеспечивает безударное включение, а при ее отсутствии - является той самой опорной величиной.
Овеновские регуляторы не использую, в сложных системах автонастройка не работает, а без нее - и свой регулятор не хуже.
Тем более, что исходный код тех регуляторов закрыт.
2OWEN Не поделитесь исходниками? Академический интерес...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot