Документация Engee

PID Controller

Страница в процессе разработки.

ПИД-регулятор.

Тип: SubSystem

PID Controller

Путь в библиотеке:

/Basic/Continuous/PID Controller

Discrete PID Controller

Путь в библиотеке:

/Basic/Discrete/Discrete PID Controller

Описание

Блок PID Controller реализует ПИД-регулятор (ПИД, ПИ, ПД, только П или только И).

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

Блок поддерживает несколько типов и структур регулятора. Возможные варианты:

  • Тип регулятора (ПИД, ПИ, ПД, только П или только И);

  • Форма регулятора (параллельная или идеальная);

  • Временная область (непрерывная или дискретная);

  • Начальные условия;

  • Пределы насыщения выходного сигнала и встроенный механизм защиты от перенасыщения;

  • Отслеживание сигнала для плавной передачи управления и многоконтурного управления.

При изменении этих параметров изменяется внутренняя структура блока: активируются соответствующие варианты подсистем.

Конфигурация управления

В общем случае блок ПИД-регулятора работает в контуре управления с обратной связью.

discrete pid controller 1

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

Порты

Вход

# IN_1 — входной сигнал
скаляр | вектор | матрица

Details

Разница между уставкой и выходным сигналом управляемой системы, как показано на рисунке ниже:

discrete pid controller 1

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

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# extTs — время дискретного интегратора
скаляр

Details

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

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

где зависит от метода интегрирования:

  • Forward Euler:

  • Backward Euler:

  • Trapezoidal:

Для получения дополнительной информации о дискретном интегрировании см. описание блока Discrete-Time Integrator.

Зависимости

Чтобы использовать этот порт, установите для параметра Time-domain: значение Discrete-time и установите флажок PID Controller is inside conditionally executed subsystem.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# P — пропорциональный коэффициент
скаляр | вектор

Details

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

Зависимости

Чтобы использовать этот порт, установите для параметра Source: значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# I — интегральный коэффициент
скаляр | вектор

Details

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

При задании коэффициентов усиления извне, временные изменения интегрального коэффициента также интегрируются. Этот результат возникает из-за способа реализации коэффициентов ПИД-регулятора внутри блока. Подробности см. в описании параметра Source:.

Зависимости

Чтобы использовать этот порт, установите для параметра Source: значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# D — дифференциальный коэффициент
скаляр | вектор

Details

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

При задании коэффициентов усиления извне, временные изменения дифференциального коэффициента также дифференцируются. Этот результат возникает из-за способа реализации коэффициентов ПИД-регулятора внутри блока. Подробности см. в описании параметра Source:.

Зависимости

Чтобы использовать этот порт, установите для параметра Source: значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# N — коэффициент фильтрации производной
скаляр | вектор

Details

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

Зависимости

Чтобы использовать этот порт, установите для параметра Source: значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# ydot — внешняя производная
скаляр | вектор

Details

Производная сигнала объекта управления , подаваемая в блок непосредственно через данный входной порт. Это полезно, если в модели есть сигнал производной, и нужно пропустить вычисление производной внутри блока.

Зависимости

Чтобы использовать этот порт, установите флажок Use externally sourced derivative.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# TR — следящий сигнал
скаляр | вектор

Details

Сигнал для отслеживания выходного сигнала регулятора. Когда отслеживание сигнала активно, разница между следящим сигналом и выходом блока подается обратно на вход интегратора. Отслеживание сигнала полезно для реализации плавной передачи управления в системах, переключающихся между двумя регуляторами, а также для предотвращения насыщения в многоконтурных системах управления. Для получения дополнительной информации см. описание параметра Enable tracking mode.

Зависимости

Чтобы использовать этот порт, установите флажок Enable tracking mode.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# UpperLimit — верхний предел насыщения выходного сигнала
скаляр | вектор

Details

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

Зависимости

Чтобы использовать этот параметр, в группе параметров Output saturation установите флажок Limit output и для параметра Source: установите значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# LowerLimit — нижний предел насыщения выходного сигнала
скаляр | вектор

Details

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

Зависимости

Чтобы использовать этот параметр, в группе параметров Output saturation установите флажок Limit output и для параметра Source: установите значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# extAW — внешний алгоритм защиты от перенасыщения
скаляр | вектор

Details

Укажите пользовательский алгоритм защиты от перенасыщения на этом порту. Блок предоставляет два встроенных метода защиты от перенасыщения, однако для раскрытия интегратора эти методы зависят от того, превышает ли сумма компонентов блока заданные пределы выходного сигнала. Если в модели есть насыщения или ограничения после блоков ПИД-регулятора, можно использовать входной порт extAW для реализации пользовательской логики защиты от перенасыщения. Этот блок также предоставляет сигнал перед интегратором на выходном порту preInt, который можно использовать для реализации пользовательского алгоритма.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation и для параметра Anti-windup Method: установите значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

Выход

# OUT_1 — выход регулятора
скаляр | вектор

Details

Выход регулятора, представляющий собой взвешенную сумму входного сигнала, интеграла входного сигнала и производной входного сигнала. Весы суммирования задаются пропорциональным, интегральным и дифференциальным коэффициентами. Какие слагаемые участвуют в суммировании, зависит от значения параметра Controller:. Другие параметры изменяют выходные данные блока, такие как пределы насыщения, заданные параметрами Upper limit: и Lower limit:.

Выход регулятора является векторным сигналом, если вход является векторным сигналом. В этом случае блок действует как независимых ПИД-регуляторов, где — количество сигналов во входном векторе.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

# preInt — сигнал, предшествующий интегратору
скаляр | вектор

Details

Порт выходного сигнала, предшествующего интегратору. Используйте этот сигнал в качестве входного для пользовательского алгоритма защиты от перенасыщения, предоставляемого на входном порту extAW.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation и для параметра Anti-windup Method: установите значение external.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Fixed-point

Поддержка комплексных чисел

Нет

Параметры

Main

# Controller: — тип регулятора
PID | PI | PD | P | I

Details

Задайте состав регулятора:

  • PID — пропорциональная, интегральная и дифференциальная части.

  • PI — только пропорциональная и интегральная части.

  • PD — только пропорциональная и дифференциальная части.

  • P — только пропорциональная часть.

  • I — только интегральная часть.

Значения

PID | PI | PD | P | I

Значение по умолчанию

PID

Имя для программного использования

Controller

Настраиваемый

Нет

Вычисляемый

Да

# Form: — структура регулятора
Ideal | Parallel

Details

Задайте структуру регулятора:

  • Parallel — выход регулятора представляет сумму пропорциональной, интегральной и дифференциальной частей, независимо взвешенных по , и соответственно. Например, для ПИД-регулятора параллельной формы с непрерывным временем передаточная функция имеет вид:

    Для регулятора параллельной формы с дискретным временем передаточная функция имеет вид:

    где параметры Integrator method: и Filter method: определяют и соответственно.

  • Ideal — пропорциональное усиление действует на сумму всех частей. Например, для ПИД-регулятора идеальной формы с непрерывным временем передаточная функция имеет вид:

    Для регулятора идеальной формы с дискретным временем передаточная функция имеет вид:

    где параметры Integrator method: и Filter method: определяют и соответственно.

Значения

Ideal | Parallel

Значение по умолчанию

Parallel

Имя для программного использования

Form

Настраиваемый

Нет

Вычисляемый

Да

# Time-domain: — регулятор дискретного или непрерывного времени
Continuous-time | Discrete-time

Details

Для значения Discrete-time рекомендуется явно задать шаг расчета для блока. См. описание параметра Sample time (-1 for inherited):. При выборе значения Discrete-time также включаются параметры Integrator method: и Filter method:.

Когда блок PID Controller находится в модели с синхронным управлением состоянием, нельзя выбрать значение Continuous-time.

Значения

Continuous-time | Discrete-time

Значение по умолчанию

Имя для программного использования

TimeDomain

Настраиваемый

Нет

Вычисляемый

Да

Discrete-time settings

# Sample time (-1 for inherited): — интервал между шагами расчета

Details

Укажите интервал между шагами расчета как неотрицательное число. Чтобы наследовать шаг расчета, установите для этого параметра значение −1.

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

Если вы хотите запустить блок с заданным извне или переменным периодом дискретизации, установите для этого параметра значение −1 и поместите блок в Triggered Subsystem. Затем запустите подсистему при желаемом периоде дискретизации.

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time.

Значение по умолчанию

-1

Имя для программного использования

SampleTime

Настраиваемый

Нет

Вычисляемый

Да

# PID Controller is inside conditionally executed subsystem — активация порта времени дискретного интегратора

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time.

Значение по умолчанию

false (выключено)

Имя для программного использования

UseExternalTs

Настраиваемый

Нет

Вычисляемый

Да

Integator and Filter methods

# Integrator method: — метод интегрирования в дискретном регуляторе
Forward Euler | Backward Euler | Trapezoidal

Details

В дискретном времени интегральный член передаточной функции регулятора равен , где зависит от метода интегрирования:

  • Forward Euler — прямая прямоугольная (левая) аппроксимация:

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

  • Backward Euler — обратная прямоугольная (правая) аппроксимация:

    Преимущество метода Backward Euler состоит в том, что дискретизация устойчивой системы с непрерывным временем с использованием этого метода всегда дает устойчивый результат с дискретным временем.

  • Trapezoidal — билинейное приближение:

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

Для методов Backward Euler или Trapezoidal генерация HDL-кода для блока невозможна, если выполняется одно из следующих условий:

  • Установлен флажок Limit output, и для параметра Anti-windup Method: установлено любое значение, кроме none.

  • Установлен флажок Enable tracking mode.

Для получения дополнительной информации о дискретном интегрировании см. описание блока Discrete-Time Integrator.

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time, и для параметра Controller: значение PID, PI или I.

Значения

Forward Euler | Backward Euler | Trapezoidal

Значение по умолчанию

Forward Euler

Имя для программного использования

IntegratorMethod

Настраиваемый

Нет

Вычисляемый

Да

# Filter method: — метод вычисления производной в дискретном регуляторе
Forward Euler | Backward Euler | Trapezoidal

Details

В дискретном времени дифференциальный член передаточной функции регулятора равен

где зависит от метода интегрирования:

  • Forward Euler — прямая прямоугольная (левая) аппроксимация:

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

  • Backward Euler — обратная прямоугольная (правая) аппроксимация:

    Преимущество метода Backward Euler состоит в том, что дискретизация устойчивой системы с непрерывным временем с использованием этого метода всегда дает устойчивый результат с дискретным временем.

  • Trapezoidal — билинейное приближение:

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

Для получения дополнительной информации о дискретном интегрировании см. описание блока Discrete-Time Integrator.

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time и установите флажок Use filtered derivative.

Значения

Forward Euler | Backward Euler | Trapezoidal

Значение по умолчанию

Forward Euler

Имя для программного использования

FilterMethod

Настраиваемый

Нет

Вычисляемый

Да

Controller parameters

# Source: — источник данных по коэффициентам усиления регулятора и коэффициенту фильтра
internal | external

Details

Активация внешних входов для параметров позволяет вычислять коэффициенты усиления ПИД-регулятора и коэффициенты фильтра вне блока и передавать их в блок в качестве входных сигналов.

  • internal — задайте коэффициенты усиления регулятора и коэффициент фильтра, используя параметры Proportional (P):, Integral (I):, Derivative (D): и Filter coefficient (N):.

  • external — задайте коэффициенты ПИД-регулятора и коэффициент фильтра извне, используя входные порты P, I, D и N.

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

Если вы используете внешние входные коэффициенты усиления, избегайте их зависимости от выходного сигнала OUT_1. При такой зависимости результирующая передаточная функция ПИД-регулятора приводит к алгебраической петле, поскольку для вычисления значения выходного сигнала блока необходимо знать это значение. Эта алгебраическая петля подвержена нестабильности и расходимости. Вместо выходного сигнала попробуйте выразить коэффициенты усиления через время и входной сигнал блока. Дополнительную информацию об алгебраических петлях см. в статье Алгебраическая петля.

При подаче внешних коэффициентов усиления, изменения значений интегрального и дифференциального коэффициентов во времени интегрируются и дифференцируются соответственно. Это происходит потому, что как в непрерывном, так и в дискретном случае коэффициенты усиления применяются к сигналу до интегрирования или дифференцирования. Например, для непрерывного ПИД-регулятора с внешними входами интегрирующий член реализуется, как показано на следующем рисунке.

pid controller 2

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

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

Значения

internal | external

Значение по умолчанию

internal

Имя для программного использования

ControllerParametersSource

Настраиваемый

Нет

Вычисляемый

Да

# Proportional (P): — пропорциональный коэффициент

Details

Конечное вещественное значение пропорционального коэффициента. Если для параметра Form: установлено значение:

  • Parallel — пропорциональное действие не зависит от интегрального и производного воздействий. Например, для параллельного ПИД-регулятора с непрерывным временем передаточная функция имеет вид:

    Для регулятора параллельной формы с дискретным временем передаточная функция имеет вид:

    где параметры Integrator method: и Filter method: определяют и соответственно.

  • Ideal — пропорциональный коэффициент применяется к сумме всех частей. Например, для ПИД-регулятора идеальной формы с непрерывным временем передаточная функция имеет вид:

    Для регулятора идеальной формы с дискретным временем передаточная функция имеет вид:

    где параметры Integrator method: и Filter method: определяют и соответственно.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID, PD, PI или P, а для параметра Source: значение internal.

Значение по умолчанию

1.0

Имя для программного использования

P

Настраиваемый

Нет

Вычисляемый

Да

# Integral (I): — интегральный коэффициент

Details

Конечное вещественное значение интегрального коэффициента.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID, PI или I, а для параметра Source: значение internal.

Значение по умолчанию

1.0

Имя для программного использования

I

Настраиваемый

Нет

Вычисляемый

Да

# Derivative (D): — дифференциальный коэффициент

Details

Конечное вещественное значение дифференциального коэффициента.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID или PD, а для параметра Source: значение internal.

Значение по умолчанию

0.0

Имя для программного использования

D

Настраиваемый

Нет

Вычисляемый

Да

# Filter coefficient (N): — коэффициент фильтрации производной

Details

Конечное вещественное значение коэффициента усиления фильтра. Коэффициент фильтра определяет положение полюса фильтра в дифференциальной части блока. Расположение полюса фильтра зависит от значения параметра Time-domain::

  • Continuous-time — положение полюса равно s = −N.

  • Discrete-time — положение полюса зависит от значения параметра Filter method::

    • Forward Euler — положение полюса фильтра равно

    • Backward Euler — положение полюса фильтра равно

    • Trapezoidal — положение полюса фильтра равно

Блок не поддерживает N = Inf (идеальная нефильтрованная производная). Если для параметра Time-domain: установлено значение Discrete-time, можно снять флажок Use filtered derivative, чтобы удалить фильтр производной.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID или PD, а для параметра Source: значение internal.

Значение по умолчанию

100.0

Имя для программного использования

N

Настраиваемый

Нет

Вычисляемый

Да

# Use I*Ts (optimal for codegen) — использование интегрального коэффициента, умноженного на период дискретизации

Details

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

Для непрерывных регуляторов активация этого параметра не влияет на интегральный коэффициент усиления.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID, PI или I.

Значение по умолчанию

false (выключено)

Имя для программного использования

UseKiTs

Настраиваемый

Нет

Вычисляемый

Да

# Use externally sourced derivative — указать производную на входном порту блока

Details

Установите этот флажок, чтобы указать производную сигнала объекта управления непосредственно через входной порт ydot. Это полезно, если в модели есть сигнал производной, и нужно пропустить вычисление производной внутри блока.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID или PD.

Значение по умолчанию

false (выключено)

Имя для программного использования

UseExternalDerivativeSource

Настраиваемый

Нет

Вычисляемый

Да

# Use filtered derivative — применение фильтра к производной

Details

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

Для ПИД-регуляторов с непрерывным временем производная составляющая всегда фильтруется.

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time, а для параметра Controller: значение PID или PD.

Значение по умолчанию

true (включено)

Имя для программного использования

UseFilter

Настраиваемый

Нет

Вычисляемый

Да

Integrator and Filter initial conditions

# Integrator: — начальное условие интегратора

Details

Начальное условие интегратора, используемое для инициализации интегратора в начале моделирования.

Начальное условие интегратора не может быть NaN или Inf.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID, PI или I.

Значение по умолчанию

0.0

Имя для программного использования

InitialConditionForIntegrator

Настраиваемый

Нет

Вычисляемый

Да

# Differentiator: — начальное условие нефильтрованной производной

Details

Начальное условие нефильтрованной производной, используемое для инициализации дифференциатора в начале моделирования.

Начальное условие производной не может быть NaN или Inf.

Зависимости

Чтобы использовать этот параметр, установите для параметра Time-domain: значение Discrete-time, снимите флажок Use filtered derivative и для параметра Controller: установите значение PID или PD.

Значение по умолчанию

0.0

Имя для программного использования

DifferentiatorICPrevScaledInput

Настраиваемый

Нет

Вычисляемый

Да

# Filter: — начальное условие фильтра

Details

Начальное условие фильтра, используемое для инициализации дифференциального фильтра в начале моделирования.

Начальное условие фильтра не может быть NaN или Inf.

Зависимости

Если для параметра Time-domain: установлено значение Discrete-time, то установите флажок Use filtered derivative, а для параметра Controller: установите значение PID или PD.

Если для параметра Time-domain: установлено значение Continuous-time, то для параметра Controller: установите значение PID или PD.

Значение по умолчанию

0.0

Имя для программного использования

InitialConditionForFilter

Настраиваемый

Нет

Вычисляемый

Да

Tracking mode

# Enable tracking mode — активация отслеживания сигнала

Details

Отслеживание сигнала позволяет выходному порту блока следовать за следящим сигналом, который подается на порт TR. Когда отслеживание сигнала активно, разница между следящим сигналом и выходом блока подается обратно на вход интегратора с коэффициентом усиления , заданным параметром Tracking coefficient (Kt):. Отслеживание сигнала имеет несколько применений, включая плавную передачу управления и предотвращение насыщения в многоконтурных системах управления.

Плавная передача управления

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

pid controller 4

Многоконтурное управление

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

pid controller 5

Подсистема внутреннего контура Inner Loop содержит блоки, показанные на следующем рисунке.

pid controller 6

Поскольку ПИД-регулятор отслеживает выход внутреннего контура, его выход никогда не превышает насыщенный выход внутреннего контура.

Зависимости

Чтобы использовать этот параметр, установите для параметра Controller: значение PID, PI или I.

Значение по умолчанию

false (выключено)

Имя для программного использования

TrackingMode

Настраиваемый

Нет

Вычисляемый

Да

# Tracking coefficient (Kt): — коэффициент усиления контура обратной связи отслеживания сигнала

Details

При установке флажка Enable tracking mode разница между сигналом TR и выходным сигналом блока подается обратно на вход интегратора с коэффициентом усиления . Используйте этот параметр для задания коэффициента усиления в этом контуре обратной связи.

Для дискретных регуляторов, если установить флажок Use I*Ts (optimal for codegen), значение этого параметра будет равно , где — желаемый коэффициент усиления, а — период дискретизации.

Зависимости

Чтобы использовать этот параметр, установите флажок Enable tracking mode.

Значение по умолчанию

1.0

Имя для программного использования

Kt

Настраиваемый

Нет

Вычисляемый

Да

Output saturation

# Limit output — ограничение выходного сигнала блока заданными значениями насыщения

Details

Установка этого флажка позволяет ограничить выходной сигнал блока, поэтому отдельный блок Saturation после регулятора не потребуется. Это также позволяет активировать встроенный в блок механизм защиты от перенасыщения (см. описание параметра Anti-windup Method:).

Задайте пределы насыщения выходного сигнала с помощью параметров Upper limit: и Lower limit:. Можно также указать пределы насыщения извне через входные порты UpperLimit и LowerLimit, установив для параметра Source: значение external в группе параметров Output saturation на вкладке Saturation.

Значение по умолчанию

false (выключено)

Имя для программного использования

LimitOutput

Настраиваемый

Нет

Вычисляемый

Да

# Source: — источник пределов насыщения выходного сигнала
internal | external

Details

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

  • internal — задайте пределы насыщения выходного сигнала, используя параметры Upper limit: и Lower limit:.

  • external — задайте пределы насыщения выходного сигнала извне, используя входные порты UpperLimit и LowerLimit.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation.

Значения

internal | external

Значение по умолчанию

internal

Имя для программного использования

SatLimitsSource

Настраиваемый

Нет

Вычисляемый

Да

# Upper limit: — верхний предел насыщения выходного сигнала блока

Details

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

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation.

Значение по умолчанию

Inf

Имя для программного использования

UpperSaturationLimit

Настраиваемый

Нет

Вычисляемый

Да

# Lower limit: — нижний предел насыщения выходного сигнала блока

Details

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

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation.

Значение по умолчанию

-Inf

Имя для программного использования

LowerSaturationLimit

Настраиваемый

Нет

Вычисляемый

Да

Anti-windup

# Anti-windup Method: — метод защиты от перенасыщения интегратора
none | back-calculation | clamping | external

Details

При установке флажка Limit output и если взвешенная сумма компонентов регулятора превышает заданные пределы выходного сигнала, выходной сигнал блока остается на заданном уровне. Однако выходной сигнал интегратора может продолжать расти (перенасыщение интегратора), увеличивая разницу между выходным сигналом блока и суммой компонентов блока. Другими словами, внутренние сигналы в блоке могут быть неограниченными, даже если выходной сигнал кажется ограниченным пределами насыщения. Без механизма предотвращения перенасыщения интегратора возможны два результата:

  • Если знак входного сигнала никогда не меняется, интегратор продолжает интегрировать до тех пор, пока не произойдет переполнение. Значение переполнения — это максимальное или минимальное значение для типа данных выходного сигнала интегратора.

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

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

  • none — механизм защиты от перенасыщения не используется.

  • back-calculation — раскройте интегратор, когда выход блока насытится, подав на него обратно разницу между насыщенным и ненасыщенным управляющим сигналом. На следующем рисунке представлена схема обратной связи для непрерывного регулятора.

    pid controller 7

    Используйте параметр Back-calculation coefficient (Kb): для задания коэффициента усиления контура обратной связи, предотвращающей насыщение. Обычно достаточно установить или для регуляторов с дифференциальным действием . Обратный расчет может быть эффективен для объектов с относительно большим временем задержки [1].

  • clamping — иногда ограничение сигнала называют условным интегрированием.

    Интегрирование останавливается, когда выполняются оба следующих условия:

    • Сумма компонентов блока превышает пределы выходного сигнала.

    • Входной сигнал интегратора и входной сигнал блока насыщения имеют одинаковый знак.

    Интегрирование возобновляется, когда любое из этих условий перестает выполняться. Ограничение может быть полезно для объектов с относительно небольшим временем задержки, но может привести к плохой переходной характеристике при большом времени задержки [1].

  • external — встроенные методы защиты от перенасыщения основаны на том, что сумма компонентов блока превышает заданные пределы выходного сигнала блока. Если в модели есть насыщения или ограничения после блоков ПИД-регулятора, можно использовать входной порт extAW для реализации пользовательской логики защиты от перенасыщения. Этот блок также предоставляет сигнал перед интегратором на выходном порту preInt, который можно использовать в качестве входного сигнала для пользовательского алгоритма.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation.

Значения

none | back-calculation | clamping | external

Значение по умолчанию

none

Имя для программного использования

AntiWindupMode

Настраиваемый

Нет

Вычисляемый

Да

# Back-calculation coefficient (Kb): — коэффициент усиления контура обратной связи для предотвращения перенасыщения

Details

Метод back-calculation для предотвращения перенасыщения раскрывает интегратор, когда выход блока насыщается. Это происходит путем обратной связи с интегратором разницы между насыщенным и ненасыщенным управляющим сигналом. Используйте данный параметр для задания коэффициента усиления контура обратной связи для предотвращения перенасыщения. Для получения дополнительной информации см. описание параметра Anti-windup Method:.

Для дискретных регуляторов, если установить флажок Use I*Ts (optimal for codegen), значение этого параметра будет равно , где — желаемый коэффициент усиления, а — период дискретизации.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Output saturation и для параметра Anti-windup Method: установите значение back-calculation.

Значение по умолчанию

1.0

Имя для программного использования

Kb

Настраиваемый

Нет

Вычисляемый

Да

Integrator saturation

# Limit output — ограничение выходного сигнала интегратора заданными значениями насыщения

Details

Установка этого флажка позволяет ограничить выходной сигнал интегратора в заданном диапазоне. Когда выходной сигнал интегратора достигнет пределов, действие интегратора прекратится, чтобы предотвратить перенасыщение интеграла. Задайте пределы насыщения с помощью параметров Upper limit: и Lower limit:.

Значение по умолчанию

false (выключено)

Имя для программного использования

LimitIntegrator

Настраиваемый

Нет

Вычисляемый

Да

# Upper limit: — верхний предел насыщения интегратора

Details

Укажите верхний предел для выходного сигнала интегратора. Выходной сигнал интегратора удерживается на этом значении всякий раз, когда в противном случае он превысил бы это значение.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Integrator saturation.

Значение по умолчанию

Inf

Имя для программного использования

UpperIntegratorSaturationLimit

Настраиваемый

Нет

Вычисляемый

Да

# Lower limit: — нижний предел насыщения интегратора

Details

Укажите нижний предел для выходного сигнала интегратора. Выходной сигнал интегратора удерживается на этом значении всякий раз, когда в противном случае он опустился бы ниже этого значения.

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output в группе параметров Integrator saturation.

Значение по умолчанию

-Inf

Имя для программного использования

LowerIntegratorSaturationLimit

Настраиваемый

Нет

Вычисляемый

Да

Литература

  1. Visioli, A., «Modified Anti-Windup Scheme for PID Controllers», IEE Proceedings — Control Theory and Applications, Vol. 150, Number 1, January 2003