Segnetics

Вернуться   Segnetics > Форум Segnetics > SMConstructor (вентиляция)

SMConstructor (вентиляция) Вопросы о работе Конструктора (Вентиляция и кондиционирование)

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2013, 01:27   #1
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Римэйк Seq(t) и myPID

В свете http://forum.segnetics.com/showthread.php?t=684 и http://forum.segnetics.com/showthread.php?t=1224, с целью экономии времени при разработке проектов, сделана доработка конструкторского секвенсера.

1. Коэффициенты меняются на лету, без необходимости останавливать установку.

2. ПИД-регулятор доработан для выдачи управляющего сигнала в "формате" Дайкина, в соответствии с дайкинскими рекомендациями. В связи с этим в ПИД-е и Секвенсере появились новые входы:
bool Дайкин - единица разрешает использование дайкинского блока
bool Ступень Дайкин - единица включает использование дайкинского блока. Единица подается на этот вход тогда, когда работает та ступень нагрева/охлаждения, на которой живет этот Дайкин. При этом соответствующий выход секвенсера выдает управляющий сигнал в нужном виде.
real Дельта мах - максимальное отклонение текущей температуры от уставки, определяющее максимальный сдвиг производительности Дайкина.
При остсутствии единиц на обоих булевых входах, ПИД работает штатно.
По Дайкину: 5в - работаем на текущей производительности, 5-0в - уменьшение производительности, 5-10в увеличение производительности. При этом ΔU - линейная функция от ΔТmax, которую дайкин рекомендует задавать в пределах 1-5 °С
В остальном секвенсер и ПИД работают БЕЗ ИЗМЕНЕНИЙ

3. Переделанные Seq(t) и myPID предназначены только для замены конструкторских в сгенерированных проектах. Использовать на свой страх и риск .
4. Не просить дать "открытые" макросы, т.к. это противоречит политике партии, будем уважать мнение разработчика.
Вложения
Тип файла: msl Seq (t)+Fly-PID+Daikin-Closed.msl (257.4 Кбайт, 113 просмотров)
Тип файла: msl my PID v6+Daikin-Closed.msl (41.1 Кбайт, 88 просмотров)

Последний раз редактировалось ViS, 28.08.2013 в 01:37
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 06:56   #2
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от ViS Посмотреть сообщение
1. Коэффициенты меняются на лету, без необходимости останавливать установку.
Относится это только к возможности сменить коэффициенты в секвенсере или еще и к отсуствию скачка на выходе при смене коэффициентов для активного в данный момент ПИД? Если только первое, то больше вреда, чем пользы. Смена коэффициентов будет приводить к скачку на выходе, что равнозначно внесению возмущения по выходу. Это не есть хорошо.
tvf вне форума   Ответить с цитированием
Старый 28.08.2013, 12:14   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

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


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.08.2013, 12:33   #4
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Будет прыгать разве что от применения P-составляющей, она не скомпенсирована.
Это ни чего не меняет. Даже если будет прыгать только при изменении P-составляющей, это уже не хорошо. Применеие регулятора в составе секвенсера может спровоцировать включение следующей/предыдущей ступени. При каком изменении P-составляющей произойдет переключение ступеней будет зависеть от текщего состояния выхода регулятора и значения рассогласования на входе. Слишком много неизвестных.
tvf вне форума   Ответить с цитированием
Старый 28.08.2013, 13:10   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

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


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.08.2013, 13:12   #6
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от tvf Посмотреть сообщение
Применеие регулятора в составе секвенсера может спровоцировать включение следующей/предыдущей ступени. .
Маловероятно, если не менять в процессе наладки Р с 10 на, скажем 834 сразу Вменяемый наладчик такого не делает
И вообще, предполагается, что этот римейк будут использовать только те, кто делает проект для себя, то есть сам же и налаживать/пускать в работу будет. Для проектов на "сторону" лучше оставить все родное от Сегнетикса

Моя (подчеркну - МОЯ) практика показала, что со сменой коэффициентов на лету у меня уходит на порядок меньше времени на наладку системы.

P.S. Арсений, на какую почту написать?
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 13:29   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от ViS Посмотреть сообщение
P.S. Арсений, на какую почту написать?
Техподдержка, ясен красен


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.08.2013, 13:38   #8
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от ViS Посмотреть сообщение
Маловероятно, если не менять в процессе наладки Р с 10 на, скажем 834 сразу
При выходе регулятора =910 и изменении Р с 10 на 11 вы однозначно получите включение следующей ступени:
(910/10)*11=1001
даже при нулевом значении рассогласования на входе.

Цитата:
Моя (подчеркну - МОЯ) практика показала, что со сменой коэффициентов на лету у меня уходит на порядок меньше времени на наладку системы.
А вот с этим согласен.
tvf вне форума   Ответить с цитированием
Старый 28.08.2013, 13:49   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от tvf Посмотреть сообщение
При выходе регулятора =910 и изменении Р с 10 на 11 вы однозначно получите включение следующей ступени:
(910/10)*11=1001
даже при нулевом значении рассогласования на входе.
Применённый в секвенсере регулятор (my_PID v6) умеет компенсировать изменение P при нулевом рассогласовании. Так что тут всё чисто будет.

Другое дело, что при ненулевом рассогласовании пересчёт будет выполнен некоррректно. Отмечу особенно: пересчёт будет выполнен правильно в математическом смысле, но некорректно в смысле САР.

Для корректного пересчёта я в принципе понимаю, что нужно делать, возможно это и будет сделано в версии 2.0 Конструктора, которая уйдёт от поддержки контроллеров SMH2010 и Pixel-12.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.08.2013, 14:00   #10
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Согласен, но в таком состоянии установки и при смене коэффициентов не на лету у вас после перезапуска установки регулятор улетит на следующую ступень и надо что-то придумывать для удержания системы на нужной ступени, которую мы сейчас настраиваем теми коэффициентами. Например уставку занизить/завысить и т.п. Если, допустим, мы настраиваем нагрев, сейчас зима, и старт системы с прогревом занимает 5-10 минут по методу запуска 2, то"возврат" в нужную ступень произойдет быстрее по штатной регулированию, чем перезапуск системы
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 14:14   #11
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Применённый в секвенсере регулятор (my_PID v6) умеет компенсировать изменение P при нулевом рассогласовании.
Это делает сам регулятор (my_PID v6) или внешная обвязка из состава секвенсера?
tvf вне форума   Ответить с цитированием
Старый 28.08.2013, 14:21   #12
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от ViS Посмотреть сообщение
Согласен, но в таком состоянии установки и при смене коэффициентов не на лету у вас после перезапуска установки регулятор улетит на следующую ступень и надо что-то придумывать для удержания системы на нужной ступени
Просто надо применить несколько другую формулу ПИД регулятора, в которой при изменении коэффициентов меняется не выход регулятора, а характер поведения регулятора. Один из вариантов реализации я выкладывалhttp://forum.segnetics.com/showthread.php?t=1328
По входам он совместим с конструкторским. И опять же
Цитата:
Использовать на свой страх и риск
tvf вне форума   Ответить с цитированием
Старый 28.08.2013, 14:21   #13
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от tvf Посмотреть сообщение
Это делает сам регулятор (my_PID v6) или внешная обвязка из состава секвенсера?
сам
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 14:30   #14
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от tvf Посмотреть сообщение
Просто надо применить несколько другую формулу ПИД регулятора, в которой при изменении коэффициентов меняется не выход регулятора, а характер поведения регулятора. Один из вариантов реализации я выкладывалhttp://forum.segnetics.com/showthread.php?t=1328
По входам он совместим с конструкторским. И опять же
Задача была не сделать что-то свое, идеальное ( ), или просто лучшее, чем у Сегнетикса, а с минимальными изменениями, не затрагивая в целом принципов и характера работы их решений, получить желаемый функционал. МНЕ, повторюсь, это нужно и дает определенные преференции, если вам не надо - не используйте
Спорить о применяемых решениях реализации ПИД-регулятора, выясняя их недостатки и преимущества, в рамах данной темы не стоит.
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 15:37   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

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

Вы правы только в одном - лично мне это не мешает. Да мне, в принципе, и скачок тоже не мешает при смене коэффициентов. Опыт накоплен достаточный, чтобы попасть в примерно нужные коэффициенты с первой попытки. А смена П на пару единиц и И на десяток не так уж и сильно дёргает регулятор.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.08.2013, 16:16   #16
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
А смена П на пару единиц и И на десяток не так уж и сильно дёргает регулятор.
Особенно если вспомнить о том, что меняются они в процессе НАЛАДКИ, когда система как раз не "устаканена", и когда целенаправленно вводятся возмущения, что б отследить реакцию. На отлаженной работающей системе никто эти коэффициенты менять не будет, и, соответственно, никаких возмущений и возможных "перескоков" ступеней от пересчета в ПИД-е нам не грозит.
ViS вне форума   Ответить с цитированием
Старый 28.08.2013, 21:35   #17
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

По рекомендации Арсения "my_PID v6" заменен на "my_PID v7", более подходящий для смены коэффициентов на лету
Вложения
Тип файла: msl Seq (t)+Fly-PID+Daikin-Closed.msl (260.4 Кбайт, 74 просмотров)
Тип файла: msl my PID v7+Daikin-Closed.msl (44.1 Кбайт, 74 просмотров)
ViS вне форума   Ответить с цитированием
Старый 29.08.2013, 07:41   #18
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ваш регулятор обладает ровно такими же проблемами, как и my_PID_v7. Да, характер меняется, но интегральная составляющая перестаёт быть накопленной, т.е. перестаёт отражать реальную реакцию на переходную характеристику объекта.
А вот с этого места поподробней. И поточней. Интегральная составляющая ни куда не девается. Просто не выделена в явном виде.

Если посмотреть стандартную формулу ПИД регулятора, то она сводится к следующему виду:

Y(n)=P*f1(X(0).....X(n),I,D), где
Y(n) - значение выхода ПИД регулятора в момент времени n
Р - коэффициент усиления ПИД регулятора
X(n) - значение рассогласования в момент времени n
f1(X(0).....X(n),I,D) - некая функция, зависящая от ингрального, дифференциального коэффициента и значения рассогласования во все моменты времени от начала регулирования. Именно в ней и сидит накопленная интегральная составляющая.

В моем варианте та же формула ПИД сводится к следующему виду:

Y(n)=Y(n-1)+f2(X(n),X(n-1),X(n-2),P(n),I(n),D(n)), где
Y(n) - значение выхода ПИД регулятора в момент времени n
Р(n),I(n),D(n) - коэффициенты ПИД регулятора в момент времени n
f2(X(n),X(n-1),X(n-2),P(n),I(n),D(n)) - функция, вычисляющая приращение выхода регулятора в момент времени n.
Накопленный интеграл (и не только) сидит в Y(n-1) и ни как не зависит от смены коэффициентов или рассогласования в момент времени n.

Повторю еще раз. Оба варианта исходят из одной и той же формулы ПИД регулятора. Просто математика разная. Отсуда и разница в поведении регуляторов.
tvf вне форума   Ответить с цитированием
Старый 29.08.2013, 11:38   #19
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 074
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

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

Т.е., грубо говоря, при е=1, П=10, И()=10 состояние У в какой-то момент времени н математически недерминировано. Оно зависит от И()н-1 и ен-1. Детерминированность можно обеспечить лишь заглянув на м-ное число шагов назад.

На глазок, м численно равна 2-3 значениям И. Может чуть больше.

А через сброс мы конечно же получаем некий слепок текущего состояния, но совершенно теряем динамику процесса, т.е. каким образом мы "подошли" или "подлетели" к моменту смены коэффициентов.

То, что я описываю, пройдено мною в водяном калорифере ещё несколько лет назад Так всё хорошо работало в теории, но так всё плохо показало себя на практике


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 29.08.2013, 12:35   #20
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 748
Благодарил(а): 1 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Римэйк Seq(t) и myPID

Цитата:
А через сброс мы конечно же получаем некий слепок текущего состояния, но совершенно теряем динамику процесса, т.е. каким образом мы "подошли" или "подлетели" к моменту смены коэффициентов.
Если речь идет об изменении соотношения накопленной интегральной составляющей и пропорциональной состовляющей при неизменности их суммы (это и есть изменеие коэффициентов на лету без скачка на выходе регулятора), то полностью с вами согласен. Дифференциальная составляющая здесь для простоты опущена. Оба варианта реализации ПИД регулятора имеют свои + и -. Дальнейшая полемика о вариантах реализации ПИД регулятора если и имет смысл, то не в этой ветке
tvf вне форума   Ответить с цитированием
Ответ

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

Расширенный поиск

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

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



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


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