Skip to content
Owen Logic Macrae
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
2MAVGTC[].tpl
2MAVG[].tpl
DT[].tpl
LICENSE
MAVGTC[].tpl
MAVG[].tpl
PID[].tpl
PWM[fLIMIT].tpl
README
VLV[fLIMIT].tpl
WBP[].tpl
fLIMIT[].tpl
ПИД регулятор.owl
Трубное отопление.odt
Трубное отопление.owl

README

Универсальные макросы к Owen Logic для построения высокоэффективных автоматических регуляторов.

Общая информация:
Макросы именуются короткими наименованиями на основе выполняемой функции.
В квадратных скобках указываются макросы, от которых зависит данный, для того, чтобы в случае усовершенствования какого либо макроса видеть, где его еще нужно заменить.

Макрос DT
Определяет время программного цикла.
Используется для отладки, после чего может быть заменен постоянной равной времени цикла для установившейся программы.

Макрос PWM
Широтно-частотный дискретный двухпозиционный импульсный модулятор.
    Входы
STP - время шага в секундах.
PER - период ШИМ в секундах
fill - коэффициент заполнения.
    Выходы
Q+ - выход положительного управляющего сигнала
Q- - выход отрицательного управляющего сигнала
INC - значение внутреннего счетчика.
    Макрос обладает следующими особенностями:
1) дискретность - интервал подачи сигнала управления OUT+, OUT- строго пропорционален периоду шага.
2) кумулятивность - Весь объем невыполненного управления суммируется и отрабатывается, когда его значение превысит шаг. Таким образом, сигналы малого значения приводят к частотно-импульсной модуляции.
3) Исключительность. Одновременно работает или вывод OUT+ или OUT-. Одновременное их срабатывание исключается.
4) строгое соблюдение периода: никакие колебания коэффициента заполнения не могут вызвать включение и отключение управления несколько раз за период.

Макрос VLV
Управление клапанами.
    Входы
STP - шаг управления в секундах
PER - период управления в секундах
T_F - время полного хода клапана
TGT - требуемая позиция клапана (от 0 до 1)
    Выходы
Q+ - выход открытия
Q- - выход закрытия
CUR - текущее положение
    Макрос обладает следующими особенностями
1) дискретность - Интервал подачи управления строго пропорционален времени минимального шага
2) исключительность - подается сигнал или на открытие или на закрытие
3) строгое соблюдение периода: никакие колебания входа TGT не могут вызвать включение и отключение управления несколько раз за период.
4) выборка люфтов: если входящее значение TGT ниже нуля или выше единицы - на клапан подается дополнительное воздействие для доводки его до крайнего положения (концевика).
Для работы этой фичи, не следует ограничивать подаваемое воздействие интервалом [0...1]
 
Макрос MAVG
Скользящая средняя.
    Входы:
τ - время усреднения
dt - время программного цикла
input - вход фильтруемой величины
    Выходы:
Out - выход отфильтрованной величины
    Макрос обладает следующими особенностями
1) плавный ввод в работу: для того, чтобы предотвратить длительный выход отфильтрованной величины на актуальное среднее значение из-за случайного попадания на вход выброса в момент начала работы или увеличения времени фильтрации, фильтр производит предварительное равномерное усреднение по величине времени равной постоянной усреднения, после чего переходит на экспоненциальную весовую функцию.
Эта особенность выглядит как недофильтрация в момент включения или резкой смены (увеличения) постоянной времени фильтрации.
2) Защита от нуля в вводе dt
3) компенсация потери точности float-чисел: добавки в текущее значение могут быть незначительными. Для устранения их недоучета в алгоритм введена петля компенсации.

Макрос 2MAVG
Скользящая средняя второго порядка
    Входы:
τ - время усреднения
dt - время программного цикла
input - вход фильтруемой величины
    Выходы:
Out - выход отфильтрованной величины
Diff - первая производная
    Макрос обладает теми-же особенностями что и MAVG
Кроме них в макрос введен дополнительный вывод первой производной фильтруемой величины.
В отличии от MAVG, 2MAVG обладает гладкой весовой функцией (имеющей непрерывную первую производную), поэтому она производит отфильтрованную первую производную с компенсацией потери точности.

Макросы MAVGTC и 2MAVGTC
Скользящие средние с компенсацией тренда.
Каждый фильтр реального времени обладает свойством запаздывания. То есть вычисленное среднее является средним в прошлом, которое совпадает с актуальным средним только если величина в целом не меняется.
Если величина равномерно изменяется, то фильтр будет давать среднее отличающееся от актуального на время запаздывания умноженное на скорость изменения величины. Скользящая средняя с компенсацией тренда использует простую скользящую среднюю второго порядка и использует её вычисленную производную для компенсации этого эффекта. Скользящая средняя с компенсацией тренда второго порядка использует скользящую среднюю третьего порядка и вычисляет значение и первую производную с компенсацией тренда за счет использования вычисленных первой и второй производной. 

Макрос PID
Пропорционально-Интегрально-Дифференциальный независимый регулятор.
     Входы:
X - Текущее значение регулируемой величины
dX - производная регулируемой величины. Алгоритм не вычисляет её самостоятельно. Для получения её значения согласованного с текущим отфильтрованным значением рекомендуется использовать скользящую среднюю второго порядка, или любой другой фильтр с гладкой весовой функцией.
X0 - Уставка.
Xp - пропорциональный коэффициент в обратных единицах регулируемой величины.
T_I - интегралное время в секундах
T_D - Дифференциальное время в секундах
X0_in - вход "опорной точки": значение регулируемой величины при котором выход управления равен нулю. Используйте значение поданное вручную для коррекции при необходимости. Иначе соедините линией задержки с выходом X0_out
dt - значение программного цикла в секундах
Qmin - минимальное нормальное значение выхода управления. При значении обратной связи ниже данного блокируется снижение опорной точки.
Qmax - максимальное нормальное значение выхода управления. При превышении данного значения на входе обратной связи блокируется рост опорной точки.
!!! выход управления не ограничивается данными значениями ! Данные пределы предназначены только для блокировки насыщения интегральной составляющей. Используйте реальные пределы регулирования в случае управления системой, непосредственно управляемой во всем диапазоне пределов, значение заданное вручную в случае наличия ручного режима. В случае управления системой, актуальные пределы которой неизвестны, которая управляется косвенно, используйте в качестве пределов измеренное значение плюс-минус некий адекватный допуск.
LB - обратная связь, актуальное значение управления. Подавайте актуальное значение для корректной отработки интегральной составляющей. Если управление происходит непосредственно, то подавайте значение выхода. Если система управляется косвенно, сюда подается задаваемое значение величины после всех промежуточных преобразований.
I_F - коэффициент влияния смены уставки. При смене уставки адекватное значение опорной точки, обеспечивающее равновесие в системе тоже изменяется. В принципе, оно самостоятельно определяется в процессе интегрального регулирования, но вы можете улучшить качество отработки смены уставки, если на опыте подберете данный коэффициент.
задание 0 означает, что опорная точка при смене уставки не будет изменяться.
    Выходы:
Q - Выход управления. ! Помните о том, что он будет выходить за пределы заданные входами Qmin, Qmax !
QP - пропорциональная составляющая. Используйте для отладки коэффициентов
QD - дифференциальная составляющая. Используйте её значение для отладки.
Q0_out - выход опорной точки. соедините линией задержки со входом напрямую, если её не планируется корректировать, либо посредством переменной доступной для редактирования.
Чтобы редактирование работало, следует выбрать режим записи переменной "после чтения".
Задание 1 означает, что опорная точка при смене уставки будет изменена на значение смены уставки.
    Данный макрос имеет следующие особенности:
1) Доступ к текущим значениям составляющих для отладки.
2) возможность изменения интегральной составляющей посредством опорной точки
3) универсальность - вы можете использовать данный макрос для вычисления некой предварительной величины, которая управляется опосредованно, подавая в обратную связь её измеренное значение.
4) независимость - макрос обрабатывает отдельно пропорциональную, интегральную и дифференциальную составляющую, что исключает некоторые широко распространенные на рынке ПИД-регуляторов ошибки управления.
5) внешняя фильтрация: макрос не выполняет никакой фильтрации, и дифференцирования, так что его работа проста и предсказуема. Он не создает никаких непонятных задержек, зависящих от реализации фильтра или дифференциатора.

Макрос WBP
Вычисляет давление насыщенного водяного пара при заданной температуре воздуха.
Используется для вычислений влажности по показаниям двух термометров.

Проект PID-регулятор
Демонстрационный проект, показывающий простое применение ПИД-регулятора.
Управляет нагревателем.

Проект Трубное отопление
Демонстрационный проект, показывающий сложное применение ПИД-регуляторов.
Описание работы находится в отдельном файле. 

Макросы распространяются на основе свободной лицензии GNU GPLv3 см файл LICENCE
Используйте на здоровье!
Любые комментарии, вопросы, исправления и улучшения приветствуются.
Форум АСУ компании ОВЕН посвященный системе Owen Logic, где вы можете задать любые вопросы
http://www.owen.ru/forum/forumdisplay.php?f=63
Последняя версия моих макросов доступна по адресу
https://github.com/anthrwpos1/macros
You can’t perform that action at this time.