Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2021, 11:08   #1
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию "Зависание" VectorPID

Доброго дня!
Давно забываю задать один вопрос. Частенько в последнее время использую ваш макрос VectorPID для управления регулирующими клапанами с управлением "открыть/закрыть". Работает хорошо. Но порой возникают неприятные ситуации. Если регулятор долго (а это порой и несколько суток) стоял в крайнем положении (чаще всего это происходило так - сантехник открывал байпас вокруг 3-х ходового и температура была выше уставки, поэтому клапан полностью закрывался), то при возвращении системы в нормальный режим клапан так и не начинал открываться. Ну или терпения не хватало у обслуживающего персонала, не знаю, но температура падала на десятки градусов а клапан не реагировал. Выкл/вкл регулятора перезапускало ПИД и он начинал работать корректно. Сейчас вот корректирую одну свою программу и прикрутил к макросу принудительный "выкл/вкл" регулятора 2 раза в сутки... но это наверное костыль. Есть другие варианты как с этим бороться? МОжет при большой дельте тоже делать принудительный выкл/вкл?
Max2114 вне форума   Ответить с цитированием
Старый 28.06.2021, 00:34   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата
Сообщение от Max2114 Посмотреть сообщение
Если регулятор долго (а это порой и несколько суток) стоял в крайнем положении (чаще всего это происходило так - сантехник открывал байпас вокруг 3-х ходового и температура была выше уставки, поэтому клапан полностью закрывался), то при возвращении системы в нормальный режим клапан так и не начинал открываться. Ну или терпения не хватало у обслуживающего персонала, не знаю, но температура падала на десятки градусов а клапан не реагировал.
Чисто теоретически, при залёте в ограничитель при большой дельте и/или большом "P" ("D" ещё может сверху полирнуть) ПИД тормозится с большим расчётным интегралом внутри. Этот интеграл может весьма долго рассасываться малой дельтой, что вызывает задержку - персонал не дождался)

Вариант перезапуска при большой отрицательной (относительно входа в ограничение) дельте вполне приемлем. Его разновидность используется в последних версиях Конструктора HVAC и я планировал этот опыт перенести на все регуляторы. Но это тоже не самое лучшее решение: в сильно зашумленной обстановке и больших П и Д можно усугубить ситуацию.

Перезапуск регулятора безопасен только на СО. При работе с ГВС можно напортачить с регулированием. Однако вы можете внести в перезапускатель счётчик и если последний импульс от регулятора был условно час назад, а дельта при этом большая - перезапускаться. Сам метод плох износом приводов, защита которых построена на ограничении момента - это все штоковые и часть поворотных.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 04.07.2021, 13:04   #3
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Чисто теоретически, при залёте в ограничитель при большой дельте и/или большом "P" ("D" ещё может сверху полирнуть) ПИД тормозится с большим расчётным интегралом внутри. Этот интеграл может весьма долго рассасываться малой дельтой, что вызывает задержку - персонал не дождался)

Вариант перезапуска при большой отрицательной (относительно входа в ограничение) дельте вполне приемлем. Его разновидность используется в последних версиях Конструктора HVAC и я планировал этот опыт перенести на все регуляторы. Но это тоже не самое лучшее решение: в сильно зашумленной обстановке и больших П и Д можно усугубить ситуацию.

Перезапуск регулятора безопасен только на СО. При работе с ГВС можно напортачить с регулированием. Однако вы можете внести в перезапускатель счётчик и если последний импульс от регулятора был условно час назад, а дельта при этом большая - перезапускаться. Сам метод плох износом приводов, защита которых построена на ограничении момента - это все штоковые и часть поворотных.
Спасибо за совет. реализовал последний способ - если в течении 1 часа не поступало импульсов в сторону уменьшения рассогласования, то регулятор сбрасывается. Гипотетически, если он будет стоят долго в одном из крайних положений, мой алгоритм должен будет заресеить регулятор если восстановятся условия нормальной работы и отклонение от уставки в другую сторону станет больше 10 градусов ( т.е. он час не будет ждать, если перекроют байпас, а позволит температуре опустится на 10 градусов и затем "заресетит" регулятор).
Max2114 вне форума   Ответить с цитированием
Старый 04.07.2021, 14:26   #4
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

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


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 05.07.2021, 09:26   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата
Сообщение от LordN Посмотреть сообщение
и потому легко создаётся ситуация, когда выход уже ограничен, а интеграл продолжает потихоньку накапливаться и потому улетает в голубую даль откуда его только ресетом и можно вернуть.
Нет, ограничение выхода без ограничения интеграла технически невозможно. Это один и тот же сигнал внутри регулятора.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.07.2021, 12:01   #6
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нет, ограничение выхода без ограничения интеграла технически невозможно. Это один и тот же сигнал внутри регулятора.
у вас так и сделано, интеграл ограничивается, вернее в нём отключается накопление, только при переполнении всей суммы полного сигнала, а пределы самого интеграла никак не контролируются, потому что нет нормировки и при различных коэффициентах максимальная величина интеграла будет каждый раз иная.


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 05.07.2021, 12:06   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата
Сообщение от LordN Посмотреть сообщение
у вас так и сделано, интеграл ограничивается, вернее в нём отключается накопление, только при переполнении всей суммы полного сигнала, а пределы самого интеграла никак не контролируются, потому что нет нормировки и при различных коэффициентах максимальная величина интеграла будет каждый раз иная.
Ну так он же не накапливается, как вы пишите. Он встаёт. И да, если влетает на большущей дельте, то долго выходит.

В Конструкторе HVAC в секвенсоре это было учтено с самого начала.


Добавлено через 14 секунд


Цитата
Сообщение от Max2114 Посмотреть сообщение
Спасибо за совет. реализовал последний способ - если в течении 1 часа не поступало импульсов в сторону уменьшения рассогласования, то регулятор сбрасывается. Гипотетически, если он будет стоят долго в одном из крайних положений, мой алгоритм должен будет заресеить регулятор если восстановятся условия нормальной работы и отклонение от уставки в другую сторону станет больше 10 градусов ( т.е. он час не будет ждать, если перекроют байпас, а позволит температуре опустится на 10 градусов и затем "заресетит" регулятор).
Я тут, кстати, вспомнил. Векторный PID в норме должен работать с нулевым интегралом. Он в принципе не должен улетать в насыщение интеграла.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.07.2021, 13:53   #8
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ну так он же не накапливается, как вы пишите. Он встаёт. И да, если влетает на большущей дельте, то долго выходит.
так этого бывает достаточно.
а был бы отдельный ограничитель - такого бы не случалось


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 06.07.2021, 08:43   #9
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Я тут, кстати, вспомнил. Векторный PID в норме должен работать с нулевым интегралом. Он в принципе не должен улетать в насыщение интеграла.
В смысле он нормально регулирует с I=0?
Max2114 вне форума   Ответить с цитированием
Старый 06.07.2021, 11:03   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата
Сообщение от Max2114 Посмотреть сообщение
В смысле он нормально регулирует с I=0?
У него два интегральных звена. "I" - это первичное. "Время хода" - это вторичное.

Строго говоря, это не PID, это PI2D.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 06.07.2021, 13:18   #11
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
У него два интегральных звена. "I" - это первичное. "Время хода" - это вторичное.

Строго говоря, это не PID, это PI2D.
Ну т.е. при использовании этого регулятора для управления клапаном отопления можно (и нужно) задавать I=0 (при этом время хода, естественно, будет не нулевое)? Или нет?
Max2114 вне форума   Ответить с цитированием
Старый 06.07.2021, 13:19   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата
Сообщение от Max2114 Посмотреть сообщение
Ну т.е. при использовании этого регулятора для управления клапаном отопления можно (и нужно) задавать I=0 (при этом время хода, естественно, будет не нулевое)? Или нет?
Да.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 06.07.2021, 13:43   #13
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: "Зависание" VectorPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Да.
Принял. Спасибо. Вот я ненулевое I использовал поэтому и накапливался счетчик.
Max2114 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(2014 год) Pixel: "зависание" клавиатуры и дискретных входов Arsie Сообщения об ошибках 0 07.11.2014 17:46


Часовой пояс GMT +4, время: 09:04.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023