PID Controller

ПИД-регулятор в непрерывном времени или дискретном времени

  • Библиотека:
  • Simulink / Непрерывный

  • PID Controller block

Описание

Блок PID Controller реализует ПИД-регулятор (ПИД, ПИ, ПД, П только, или И только). Блок идентичен блоку Discrete PID Controller с набором параметров Time domain к Continuous-time.

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

Блок поддерживает несколько типов контроллера и структур. Конфигурируемые опции в блоке включают:

  • Тип контроллера (ПИД, ПИ, ПД, П только, или И только) — Видит параметр Controller.

  • Форма контроллера (Параллель или Идеал) — Видит параметр Form.

  • Временной интервал (непрерывный или дискретный) — Видит параметр Time domain.

  • Начальные условия и триггер сброса — Видят параметры External reset и Source.

  • Выведите пределы насыщения, и встроенный антизаключительный механизм — Смотрите параметр Limit output.

  • Отслеживание сигнала для передачи управления bumpless и многоконтурного управления — Видит параметр Enable tracking mode.

Когда вы изменяете эти опции, внутреннюю структуру изменений блока путем активации различных различных подсистем. (См. Различные Подсистемы.), Чтобы исследовать внутреннюю структуру блока и его различных подсистем, щелкните правой кнопкой по блоку и выберите Mask> Look Under Mask.

Управляйте настройкой

В одной общей реализации блок PID Controller действует в пути прямого распространения обратной связи.

Вход блока обычно является сигналом ошибки, который является различием между опорным сигналом и системой выход. Для 2D входного блока, который разрешает взвешивание заданного значения, смотрите PID Controller (2DOF).

Настройка коэффициента ПИД

Коэффициенты ПИД-регулятора являются настраиваемыми или вручную или автоматически. Автоматическая настройка требует Simulink® Программное обеспечение Control Design™. Для получения дополнительной информации об автоматической настройке, смотрите параметр Select tuning method.

Порты

Входной параметр

развернуть все

Различие между опорным сигналом и выходом системы под управлением, как показано.

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, установите Controller parameters Source на external.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

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

Зависимости

Чтобы включить этот порт, установите Controller parameters Source на external, и набор Controller к типу контроллера, который имеет интегральное действие.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

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

Зависимости

Чтобы включить этот порт, установите Controller parameters Source на external, и набор Controller к типу контроллера, который имеет производное действие.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, установите Controller parameters Source на external, и набор Controller к типу контроллера, который имеет отфильтрованную производную.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Инициируйте, чтобы сбросить интегратор и фильтр к их начальным условиям. Значение параметра External reset определяет, происходит ли сброшенный на возрастающем сигнале, падающем сигнале или сигнале уровня. Значок порта указывает на выбранный триггерный тип. Например, следующий рисунок показывает блок PID непрерывного времени с набором External reset к rising.

Когда триггер происходит, блок сбрасывает интегратор и фильтр к начальным условиям, заданным Integrator Initial condition и параметрами Filter Initial condition или портами I0 и D0.

Примечание

Быть совместимым с Ассоциацией Надежности Motor Industry Software (MISRA®) стандарт программного обеспечения, ваша модель должна использовать булевы сигналы управлять внешними портами сброса блока PID controller.

Зависимости

Чтобы включить этот порт, установите External reset на любое значение кроме none.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | Boolean

Начальные условия интегратора, обеспеченные из источника, внешнего с блоком.

Зависимости

Чтобы включить этот порт, установите Initial conditions Source на external, и набор Controller к типу контроллера, который имеет интегральное действие.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, установите Initial conditions Source на external, и набор Controller к типу контроллера, который имеет производное действие.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, выберите Limit output и установите выходное насыщение Source на external.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, выберите Limit output и установите выходное насыщение Source на external.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

Зависимости

Чтобы включить этот порт, выберите параметр Enable tracking mode.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

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

D[N1+Nα(z)],

где α (z) зависит от метода интегратора, вы задаете этим параметром.

Forward Euler

α(z)=Tsz1.

Backward Euler

α(z)=Tszz1.

Trapezoidal

α(z)=Ts2z+1z1.

Для получения дополнительной информации об интегрировании дискретного времени, смотрите страницу с описанием блока Discrete-Time Integrator. Для получения дополнительной информации об условно выполняемых подсистемах см. Условно Выполняемый Обзор Подсистем.

Зависимости

Чтобы включить этот порт, установите Time Domain на Discrete-time и выберите опцию PID Controller is inside a conditionally executed subsystem.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вывод

развернуть все

Контроллер выход, обычно на основе суммы входного сигнала, интеграла входного сигнала и производной входного сигнала, взвешенного пропорциональным, интегралом и производной, получает параметры. Полюс первого порядка фильтрует производное действие. То, какие термины присутствуют в сигнале контроллера, зависит от того, что вы выбираете для параметра Controller. Основная передаточная функция контроллера для текущих настроек отображена в разделе Compensator formula параметров блоков и под маской. Другие параметры изменяют блок выход, такой как пределы насыщения, заданные Upper Limit и параметрами насыщения Lower Limit.

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

развернуть все

Задайте, какое из пропорционального, интеграл и производные термины находятся в контроллере.

PID

Пропорциональный, интеграл и производное действие.

PI

Пропорциональное и интегральное действие только.

PD

Пропорциональное и производное действие только.

P

Пропорциональное действие только.

I

Интегральное действие только.

Совет

Передаточная функция контроллера для текущей установки отображена в разделе Compensator formula параметров блоков и под маской.

Программируемое использование

Параметры блоков: Controller
Ввод: строка, вектор символов
Значения: "PID"\Pi, "PD"Pi
Значение по умолчанию: "PID"

Задайте, параллельна ли структура контроллера или идеальна.

Parallel

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

Cpar(s)=P+I(1s)+D(Nss+N).

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

Cpar(z)=P+Iα(z)+D[N1+Nβ(z)],

где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.

Ideal

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

Cid(s)=P[1+I(1s)+D(Nss+N)].

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

Cid(z)=P[1+Iα(z)+DN1+Nβ(z)],

где Integrator method и параметры Filter method определяют a (z) и b (z), соответственно.

Совет

Передаточная функция контроллера для текущих настроек отображена в разделе Compensator formula параметров блоков и под маской.

Программируемое использование

Параметры блоков: Controller
Ввод: строка, вектор символов
Значения: "Parallel", "Ideal"
Значение по умолчанию: "Parallel"

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

Когда блок PID Controller находится в модели с синхронным государственным контролем (см. блок State Control (HDL Coder)), вы не можете выбрать Continuous-time.

Примечание

PID Controller и блоки Discrete PID Controller идентичны за исключением значения по умолчанию этого параметра.

Программируемое использование

Параметры блоков: TimeDomain
Ввод: строка, вектор символов
Значения: "Continuous-time", "Discrete-time"
Значение по умолчанию: "Continuous-time"

Для ПИД-регуляторов в дискретном времени позвольте порту интегратора дискретного времени использовать свое собственное значение шага расчета интегратора дискретного времени. Гарантировать соответствующему интегрированию, Использованию TDTI порт, чтобы ввести скалярное значение Δt для точного интегрирования дискретного времени.

Зависимости

Чтобы включить этот параметр, установите Time Domain на Discrete-time.

Программируемое использование

Параметры блоков: UseExternalTs
Ввод: строка, вектор символов
Значения: "on"off
Значение по умолчанию: "off"

Задайте шаг расчета путем ввода значения положительной скалярной величины, такой как 0,1. Дискретный шаг расчета по умолчанию –1 среднего значения, что блок наследовал свой шаг расчета от восходящих блоков. Однако рекомендуется, чтобы вы установили шаг расчета контроллера явным образом, особенно если вы ожидаете, что шаг расчета восходящих блоков изменится. Эффект коэффициентов контроллера P, я, D, и N зависим от шага расчета. Таким образом, для данного набора содействующих значений, изменяя шаг расчета изменяет эффективность контроллера.

См. Настройку времени выборки для получения дополнительной информации.

Чтобы реализовать контроллер непрерывного времени, установите Time domain на Continuous-time.

Совет

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

Зависимости

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

Программируемое использование

Параметры блоков: SampleTime
Ввод: скаляр
Значения: -1, положительная скалярная величина
Значение по умолчанию: -1

В дискретное время интегральным термином передаточной функции контроллера является (z), где α (z) зависит от метода интегратора, вы задаете этим параметром.

Forward Euler

Передайте прямоугольное (левое) приближение,

α(z)=Tsz1.

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

Backward Euler

Обратное прямоугольное (правое) приближение,

α(z)=Tszz1.

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

Trapezoidal

Билинейное приближение,

α(z)=Ts2z+1z1.

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

Совет

Формула контроллера для текущей установки отображена в разделе Compensator formula параметров блоков и под маской.

Примечание

Для BackwardEuler или Trapezoidal методы, вы не можете сгенерировать HDL-код для блока если также:

  • Limit output выбран, и Anti-Windup Method - что-либо кроме none.

  • Enable tracking mode выбран.

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

Зависимости

Чтобы включить этот параметр, установите Time Domain на Discrete-time и набор Controller к типу контроллера с интегральным действием.

Программируемое использование

Параметры блоков: IntegratorMethod
Ввод: строка, вектор символов
Значения: "Forward Euler", "Backward Euler", "Trapezoidal"
Значение по умолчанию: "Forward Euler"

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

D[N1+Nα(z)],

где α (z) зависит от метода фильтра, вы задаете этим параметром.

Forward Euler

Передайте прямоугольное (левое) приближение,

α(z)=Tsz1.

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

Backward Euler

Обратное прямоугольное (правое) приближение,

α(z)=Tszz1.

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

Trapezoidal

Билинейное приближение,

α(z)=Ts2z+1z1.

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

Совет

Формула контроллера для текущей установки отображена в разделе Compensator formula параметров блоков и под маской.

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

Зависимости

Чтобы включить этот параметр, установите Time Domain на Discrete-time и включите Use filtered derivative.

Программируемое использование

Параметры блоков: FilterMethod
Ввод: строка, вектор символов
Значения: "Forward Euler", "Backward Euler", "Trapezoidal"
Значение по умолчанию: "Forward Euler"

Основной

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

internal

Задайте усиления контроллера и отфильтруйте коэффициент с помощью параметров блоков P, I, D и N.

external

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

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

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

В блоке входной сигнал u умножается на внешне предоставленное усиление интегратора, I, перед интегрированием. Эта реализация выражения:

yi=uIdt.

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

Программируемое использование

Параметры блоков: ControllerParametersSource
Ввод: строка, вектор символов
Значения: "internal", "external"
Значение по умолчанию: "internal"

Задайте конечное, действительное значение усиления для пропорциональной составляющей. Когда Controller form:

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

    Cpar(s)=P+I(1s)+D(Nss+N).

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

    Cpar(z)=P+Iα(z)+D[N1+Nβ(z)],

    где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.

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

    Cid(s)=P[1+I(1s)+D(Nss+N)].

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

    Cid(z)=P[1+Iα(z)+DN1+Nβ(z)],

    где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.

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

Зависимости

Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal и набор Controller к PID, PD\Pi, или P.

Программируемое использование

Параметры блоков: P
Ввод: скаляр, вектор
Значение по умолчанию: 1

Задайте конечное, действительное значение усиления для интегральной составляющей.

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

Зависимости

Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal, и набор Controller к типу, который имеет интегральное действие.

Программируемое использование

Параметры блоков: I
Ввод: скаляр, вектор
Значение по умолчанию: 1

Задайте конечное, действительное значение усиления для производного усиления.

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

Зависимости

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

Программируемое использование

Параметры блоков: D
Ввод: скаляр, вектор
Значение по умолчанию: 0

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

Dz1zTs.

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

Зависимости

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

Программируемое использование

Параметры блоков: UseFilter
Ввод: строка, вектор символов
Значения: "on"off
Значение по умолчанию: "on"

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

  • Когда Time domain является Continuous-time, местоположением полюса является s = -N.

  • Когда Time domain является Discrete-time, местоположение полюса зависит от параметра Filter method.

    Отфильтруйте методМестоположение полюса фильтра
    Forward Eulerzpole=1NTs
    Backward Eulerzpole=11+NTs
    Trapezoidalzpole=1NTs/21+NTs/2

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

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

Зависимости

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

Программируемое использование

Параметры блоков: N
Ввод: скаляр, вектор
Значение по умолчанию: 100

Если у вас есть программное обеспечение Simulink Control Design, можно автоматически настроить коэффициенты ПИДа. Для этого используйте этот параметр, чтобы выбрать настраивающий инструмент и нажать Tune.

Transfer Function Based (PID Tuner App)

Используйте PID Tuner, который позволяет вам в интерактивном режиме настроить коэффициенты ПИДа при исследовании соответствующих откликов системы, чтобы подтвердить эффективность. По умолчанию PID Tuner работает с линеаризацией вашей модели объекта управления. Для моделей, которые не могут линеаризоваться, можно настроить коэффициенты ПИДа против модели объекта управления, оцененной из данных об измеренном отклике или симулированного. Для получения дополнительной информации смотрите Введение в Основанный на модели ПИД, Настраивающий Simulink (Simulink Control Design).

Frequency Response Based

Используйте Frequency Response Based PID Tuner, который настраивает коэффициенты ПИД-регулятора на основе данных об оценке частотной характеристики, полученных симуляцией. Этот настраивающий подход особенно полезен для объектов, которые не linearizable или которые линеаризуют, чтобы обнулить. Для получения дополнительной информации смотрите ПИД-регулятор Проекта из Данных Частотной характеристики Объекта (Simulink Control Design).

Оба из этих настраивающих методов принимают одноконтурную настройку управления. Программное обеспечение Simulink Control Design включает другие настраивающие подходы, которые удовлетворяют более комплексным настройкам. Для получения информации о других способах настроить блок PID Controller, смотрите, Выбирают Control Design Approach (Simulink Control Design).

Обнаружение пересечения нулем может точно определить местоположение разрывов сигнала, не обращаясь к чрезмерно маленьким временным шагам, которые могут привести к длинным временам симуляции. Если вы выбираете Limit output или активируете External reset в вашем блоке PID Controller, активирование обнаружения пересечения нулем может уменьшать время вычисления в вашей симуляции. Выбор этого параметра активирует обнаружение пересечения нулем:

  • В сбросе начального состояния

  • При вводе верхнего или более низкого состояния насыщения

  • При отъезде верхнего или более низкого состояния насыщения

Для получения дополнительной информации об обнаружении пересечения нулем, смотрите Обнаружение Пересечения нулем.

Программируемое использование

Параметры блоков: ZeroCross
Ввод: строка, вектор символов
Значения: "on"off
Значение по умолчанию: "on"

Инициализация

Simulink использует начальные условия, чтобы инициализировать интегратор и производный фильтр (или неотфильтрованная производная) выход в начале симуляции или в заданном триггерном событии. (См. параметр External reset.) Эти начальные условия определяют начальный блок выход. Используйте этот параметр, чтобы выбрать, как предоставить начальные значения условия с блоком.

internal

Задайте начальные условия с помощью параметров Filter Initial condition и Integrator Initial condition. Если Use filtered derivative не выбран, используйте параметр Differentiator, чтобы задать начальное условие для неотфильтрованного дифференциатора вместо условия начальной буквы фильтра.

external

Задайте начальные условия внешне с помощью входных параметров блока. Дополнительные входные порты Io и Do появляются на блоке. Если Use filtered derivative не выбран, предоставьте начальное условие для неотфильтрованного дифференциатора в Do вместо условия начальной буквы фильтра.

Программируемое использование

Параметры блоков: InitialConditionSource
Ввод: строка, вектор символов
Значения: "internal", "external"
Значение по умолчанию: "internal"

Simulink использует начальные условия интегратора, чтобы инициализировать интегратор в начале симуляции или в заданном триггерном событии (см. External reset). Начальные условия интегратора и условие начальной буквы фильтра определяют начальный выход блока PID controller.

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

Зависимости

Чтобы использовать этот параметр, во вкладке Initialization, устанавливают Source на internal, и набор Controller к типу, который имеет интегральное действие.

Программируемое использование

Параметры блоков: InitialConditionForIntegrator
Ввод: скаляр, вектор
Значение по умолчанию: 0

Simulink использует условие начальной буквы фильтра инициализировать производный фильтр в начале симуляции или в заданном триггерном событии (см. External reset). Начальные условия интегратора и условие начальной буквы фильтра определяют начальный выход блока PID controller.

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

Зависимости

Чтобы использовать этот параметр, во вкладке Initialization, устанавливают Source на internal, и используйте контроллер, который имеет производный фильтр.

Программируемое использование

Параметры блоков: InitialConditionForFilter
Ввод: скаляр, вектор
Значение по умолчанию: 0

Когда вы используете неотфильтрованную производную, Simulink использует этот параметр, чтобы инициализировать дифференциатор в начале симуляции или в заданном триггерном событии (см. External reset). Начальные условия интегратора и производное начальное условие определяют начальный выход блока PID controller.

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

Зависимости

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

Программируемое использование

Параметры блоков: DifferentiatorICPrevScaledInput
Ввод: скаляр, вектор
Значение по умолчанию: 0

Используйте этот параметр, чтобы задать, применить ли Integrator Initial condition и параметр Filter Initial condition к соответствующему состоянию блока или вывести. Можно изменить этот параметр в командной строке только, с помощью set_param установить InitialConditionSetting параметр блока.

State (most efficient)

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

Output

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

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

Этот параметр только доступен посредством программируемого использования.

Программируемое использование

Параметры блоков: InitialConditionSetting
Ввод: строка, вектор символов
Значения: "state"вывод
Значение по умолчанию: "state"

Задайте триггерное условие, которое заставляет блок сбрасывать интегратор и фильтр к начальным условиям. (Если Use filtered derivative не выбран, триггер сбрасывает интегратор и дифференциатор к начальным условиям.) Выбирающий любую опцию кроме none включает порт Reset на блоке для внешнего сигнала сброса.

none

Интегратор и фильтр (или дифференциатор) выходные параметры установлены в начальные условия в начале моделирования и не сбрасываются в процессе моделирования.

rising

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

falling

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

either

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

level

Сбросьте выходные параметры, когда сброс будет сигнализировать также:

  • Является ненулевым на шаге текущего времени

  • Изменения от ненулевого на предыдущем временном шаге, чтобы обнулить на шаге текущего времени

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

Зависимости

Чтобы включить этот параметр, установите Controller на тип, который имеет производное или интегральное действие.

Программируемое использование

Параметры блоков: ExternalReset
Ввод: строка, вектор символов
Значения: "none", "rising", "falling", "either", "level"
Значение по умолчанию: "none"

Выберите, чтобы обеспечить Simulink и команды линеаризации Simulink Control Design, чтобы проигнорировать любой механизм сброса, заданный в параметре External reset. Игнорирование состояний сброса позволяет вам линеаризовать модель вокруг рабочей точки, даже если та рабочая точка заставляет блок сбрасывать.

Программируемое использование

Параметры блоков: IgnoreLimit
Ввод: строка, вектор символов
Значения: "off"on
Значение по умолчанию: "off"

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

Bumpless управляют передачей

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

Для получения дополнительной информации см. Передачу Управления Bumpless.

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите Controller на тип, который имеет интегральное действие.

Программируемое использование

Параметры блоков: TrackingMode
Ввод: строка, вектор символов
Значения: "off"on
Значение по умолчанию: "off"

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

Зависимости

Чтобы включить этот параметр, выберите Enable tracking mode.

Программируемое использование

Параметры блоков: Kt
Ввод: скаляр
Значение по умолчанию: 1

Выведите насыщение

Активация этой опции ограничивает блок выход, так, чтобы вам не был нужен отдельный блок Saturation после контроллера. Это также позволяет вам активировать антизаключительный механизм, встроенный в блок (см. параметр Anti-windup method). Задайте выходные пределы насыщения с помощью параметров Upper limit и Lower limit. Можно также задать пределы насыщения внешне как входные порты блока.

Программируемое использование

Параметры блоков: LimitOutput
Ввод: строка, вектор символов
Значения: "off"on
Значение по умолчанию: "off"

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

internal

Задайте выходные пределы насыщения с помощью параметров Lower limit и Upper limit.

external

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

Программируемое использование

Параметры блоков: SatLimitsSource
Ввод: строка, вектор символов
Значения: "internal", "external"
Значение по умолчанию: "internal"

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

Зависимости

Чтобы включить этот параметр, выберите Limit output.

Программируемое использование

Параметры блоков: UpperSaturationLimit
Ввод: скаляр
Значение по умолчанию: Inf

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

Зависимости

Чтобы включить этот параметр, выберите Limit output.

Программируемое использование

Параметры блоков: LowerSaturationLimit
Ввод: скаляр
Значение по умолчанию: -Inf

Обеспечьте Simulink, и команды линеаризации Simulink Control Design, чтобы проигнорировать блокируют выходные пределы, заданные в параметрах Lower limit и Upper limit. Игнорирование выходных пределов позволяет вам линеаризовать модель вокруг рабочей точки, даже если та рабочая точка заставляет блок превышать выходные пределы.

Зависимости

Чтобы включить этот параметр, выберите параметр Limit output.

Программируемое использование

Параметры блоков: LinearizeAsGain
Ввод: строка, вектор символов
Значения: "off"on
Значение по умолчанию: "off"

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

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

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

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

none

Не используйте антизаключительный механизм.

back-calculation

Раскрутите интегратор, когда блок выход будет насыщать путем возвращения к интегратору различия между влажным и ненасыщенным управляющим сигналом. Следующая схема представляет схему обратной связи заднего вычисления для контроллера непрерывного времени. Чтобы видеть фактическую схему обратной связи для вашей настройки контроллера, щелкните правой кнопкой по блоку и выберите Mask> Look Under Mask.

Используйте параметр Back-calculation coefficient (Kb), чтобы задать усиление антизаключительной схемы обратной связи. Это обычно удовлетворительно, чтобы установить Kb = I, или для контроллеров с производным действием, Kb = sqrt(I*D). Обратное вычисление может быть эффективным для объектов с относительно большой потерей времени [1].

clamping

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

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

Зависимости

Чтобы включить этот параметр, выберите параметр Limit output.

Программируемое использование

Параметры блоков: AntiWindupMode
Ввод: строка, вектор символов
Значения: "none", "back-calculation", "clamping"
Значение по умолчанию: "none"

back-calculation антизаключительный метод раскручивает интегратор, когда блок выход насыщает. Это делает так путем возвращения к интегратору различия между влажным и ненасыщенным управляющим сигналом. Используйте параметр Back-calculation coefficient (Kb), чтобы задать усиление антизаключительной схемы обратной связи. Для получения дополнительной информации смотрите параметр Anti-windup method.

Зависимости

Чтобы включить этот параметр, выберите параметр Limit output и установите параметр Anti-windup method на back-calculation.

Программируемое использование

Параметры блоков: Kb
Ввод: скаляр
Значение по умолчанию: 1

Типы данных

Параметры в этой вкладке, в основном, имеют применение в генерации фиксированной точки с помощью Fixed-Point Designer™. Они задают, как числовые количества, сопоставленные с блоком, хранятся и обработанный, когда вы генерируете код.

Если необходимо сконфигурировать типы данных для генерации фиксированной точки, нажмите Open Fixed-Point Tool и используйте тот инструмент, чтобы сконфигурировать остальную часть параметров во вкладке. Для получения информации об использовании Fixed-Point Tool смотрите Автомасштабирующиеся Объекты данных Использовать Fixed-Point Tool (Fixed-Point Designer).

После того, как вы будете использовать Fixed-Point Tool, можно использовать параметры в этой вкладке, чтобы внести изменения в настройки типа данных фиксированной точки при необходимости. Для каждой величины, сопоставленной с блоком, можно задать:

  • С плавающей точкой или тип данных с фиксированной точкой, включая то, наследован ли тип данных от восходящих значений в блоке.

  • Минимальные и максимальные значения для количества, которые определяют, как количество масштабируется для представления фиксированной точки.

Для помощи в выборе соответствующих значений щелкните, чтобы открыть Ассистент Типа данных по соответствующему количеству. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

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

  • Продукт выход — Хранилища результат умножения выполняется под маской блока. Например, P product output хранит выход блока усиления, который умножает вход блока с пропорциональной составляющей P.

  • Параметр — Хранилища значение числовых параметров блоков, такие как P, I или D.

  • Выход блока — Хранилища выход блока, который находится под маской блока ПИД-регулятора. Например, используйте Integrator output, чтобы задать тип данных выхода блока под названием Интегратор. Этот блок находится под маской в подсистеме Интегратора и вычисляет термин интегратора действия контроллера.

  • Аккумулятор — значения Хранилищ сопоставлены с блоком суммы. Например, SumI2 Accumulator устанавливает тип данных аккумулятора, сопоставленного с блоком SumI2 суммы. Этот блок находится под маской в Обратной подсистеме Вычисления Антизаключительной подсистемы.

В общем случае можно найти блок сопоставленным любым перечисленным параметром путем взгляда под маской блока PID Controller и исследования ее подсистем. Можно также использовать Model Explorer, чтобы искать под маской перечисленное название параметра, такое как SumI2. (См. Model Explorer.)

Соответствие с входом и внутренними типами данных

По умолчанию все типы данных в блоке установлены в Inherit: Inherit via internal rule. С этой установкой Simulink выбирает типы данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при составлении свойств оборудования целевого процессора.

При некоторых условиях несовместимость может находиться между типами данных в блоке. Например, в непрерывное время, блок Integrator под маской может принять только сигналы типа double. Если входной сигнал блока является типом, который не может быть преобразован в double, такой как uint16, внутренние правила для наследования типа генерируют ошибку, когда вы генерируете код.

Чтобы избежать таких ошибок, можно использовать настройки Data Types, чтобы обеспечить преобразование типа данных. Например, можно явным образом установить P product output, I product output и D product output к double, обеспечение, что сигналы, достигающие интеграторов непрерывного времени, имеют тип double.

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

Фиксированная точка операционные параметры

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Параметры блоков всегда вокруг к самому близкому представимому значению. Чтобы управлять округлением параметров блоков, введите выражение с помощью MATLAB® функция округления в поле маски.

Программируемое использование

Параметры блоков: RndMeth
Ввод: символьный вектор
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Значение по умолчанию: 'Floor'

Задайте, насыщает ли переполнение или переносится.

  • off — Переполнение переносится к соответствующему значению, которое может представлять тип данных.

    Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.

  • on — Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.

    Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.

Совет

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

  • Полагайте, что снятие этого флажка, когда это необходимо, оптимизирует КПД вашего сгенерированного кода.

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

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

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

Программируемое использование

Параметры блоков: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на этом блоке. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).

Программируемое использование

Параметры блоков: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Атрибуты состояния

Параметры в этой вкладке, в основном, имеют применение в генерации кода.

Присвойте уникальное имя состоянию, сопоставленному с интегратором или фильтром для ПИД-регуляторов в непрерывном времени. (Для получения информации об именах состояния в ПИД-регуляторе в дискретном времени смотрите параметр State name.) Имя состояния используется, например:

  • Для соответствующей переменной в сгенерированном коде

  • Как часть устройства хранения данных называют при логгировании состояний в процессе моделирования

  • Поскольку соответствующее состояние в линейной модели получает путем линеаризации блока

Допустимое имя состояния начинается с буквенного символа или символа подчеркивания, сопровождаемого алфавитно-цифровыми символами или символами подчеркивания.

Зависимости

Чтобы включить этот параметр, установите Time domain на Continuous-time.

Программируемое использование

Параметр: IntegratorContinuousStateAttributes, FilterContinuousStateAttributes
Ввод: символьный вектор
Значение по умолчанию: ''

Присвойте уникальное имя состоянию, сопоставленному с интегратором или фильтром для ПИД-регуляторов в дискретном времени. (Для получения информации об именах состояния в ПИД-регуляторе в непрерывном времени смотрите параметр State name (e.g., 'position').)

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

  • Для соответствующей переменной в сгенерированном коде

  • Как часть устройства хранения данных называют при логгировании состояний в процессе моделирования

  • Поскольку соответствующее состояние в линейной модели получает путем линеаризации блока

Для получения дополнительной информации об использовании имен состояния в генерации кода, смотрите Настройку генерации кода C для Элементов Интерфейса модели (Simulink Coder).

Зависимости

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

Программируемое использование

Параметр: IntegratorStateIdentifier, FilterStateIdentifier
Ввод: строка, вектор символов
Значение по умолчанию: ""

Выберите этот параметр, чтобы потребовать, чтобы имя состояния интегратора или фильтра дискретного времени решило к объекту Сигнала Simulink.

Зависимости

Включить этот параметр для состояния интегратора или фильтра дискретного времени:

  1. Установите Time domain на Discrete-time.

  2. Задайте значение для интегратора или отфильтруйте State name.

  3. Установите параметр конфигурации модели Signal resolution на значение кроме None.

Программируемое использование

Параметры блоков: IntegratorStateMustResolveToSignalObject, FilterStateMustResolveToSignalObject
Ввод: строка, вектор символов
Значения: "off"on
Значение по умолчанию: "off"

Примеры модели

Характеристики блока

Типы данных

double | fixed point | integer | single

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Вопросы совместимости

развернуть все

Поведение изменяется в R2021b

Поведение изменяется в R2020b

Ссылки

[1] Visioli, A., "Измененная антизаключительная схема ПИД-регуляторов", продолжения IEE - теория управления и приложения, издание 150, номер 1, январь 2003

Расширенные возможности

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

Представленный в R2009b
Для просмотра документации необходимо авторизоваться на сайте