Discrete PID Controller (2DOF)

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

  • Библиотека:
  • Simulink/Дискретный

  • Discrete PID Controller (2DOF) block

Описание

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

Блок генерирует сигнал выхода на основе различия между опорным сигналом и измеренным системным выходом. Блок вычисляет взвешенное различие для пропорциональных и производных действий в соответствии с заданными вами b и c весами. Выход блока является суммой пропорциональных, интегральных и производных действий на соответствующих разностных сигналах, где каждое действие взвешивается согласно параметрам усиления P, I и D. Полюс первого порядка фильтрует производное действие.

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

  • Тип контроллера (PID, PI или PD) - Смотрите параметр Controller.

  • Форма контроллера (Parallel или Ideal) - Смотрите параметр Form.

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

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

  • Выходные пределы насыщения и встроенный механизм защиты от насыщения - См. Limit output параметр.

  • Отслеживание сигнала для передачи без шума и многоуровневого управления - Смотрите параметр Enable tracking mode.

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

Управление строением

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

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

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

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

Порты

Вход

расширить все

Опорный сигнал для объекта, чтобы следовать, как показано.

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

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

Сигнал обратной связи для контроллера с выхода объекта.

Типы данных: 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

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

Зависимости

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

Типы данных: 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, чтобы указать, какой тип сигнала запускает сброс. Значок порта указывает тип триггера, заданный в этом параметре. Для примера на следующем рисунке показан блок ПИД-регулятора (2DOF) в непрерывном времени с External reset установленным на rising.

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

Примечание

Соответствовать требованиям Ассоциации по надежности программного обеспечения для моторной промышленности (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

Сигнал на контроллер выход для отслеживания. Когда отслеживание сигнала активно, различие между сигналом отслеживания и выходным сигналом блока подается назад на вход интегратора. Отслеживание сигналов полезно для реализации бесшумной передачи управления в системах, которые переключаются между двумя контроллерами. Это также может быть полезно, чтобы предотвратить обмотку блока в многоуровневых системах управления. Для получения дополнительной информации смотрите параметр 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

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

Совет

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

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

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

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

Parallel

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

u=P(bry)+I1s(ry)+DN1+N1s(cry),

где r - опорный сигнал, y - измеренный сигнал выхода объекта, и b и c - заданные веса.

Для контроллера 2-DOF в дискретном времени в параллельном виде, контроллер выход:

u=P(bry)+Iα(z)(ry)+DN1+Nβ(z)(cry),

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

Ideal

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

u=P[(bry)+I1s(ry)+DN1+N1s(cry)].

Для 2-DOF в дискретном времени ПИД-регулятора в идеальной форме, передаточная функция является:

u=P[(bry)+Iα(z)(ry)+DN1+Nβ(z)(cry)],

где Integrator method и Filter method параметры определяют α (z) и β (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 (2DOF) и Discrete PID Controller (2DOF) идентичны, за исключением значения по умолчанию этого параметра.

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

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

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

Зависимости

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

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

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

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

Дополнительные сведения см. в разделе «Задание шага расчета».

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

Совет

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

Зависимости

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

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

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

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

Forward Euler

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

α(z)=Tsz1.

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

Backward Euler

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

α(z)=Tszz1.

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

Trapezoidal

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

α(z)=Ts2z+1z1.

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

Совет

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

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

Зависимости

Чтобы включить этот параметр, установите 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 разделе параметров блоков и под маской.

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

Зависимости

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

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

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

Главный

internal

Определите прибыль контроллера, отфильтруйте коэффициент и веса заданного значения, используя параметры блоков P, I, D, N, b, и c соответственно.

external

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

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

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

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

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

ui=(ry)Idt.

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

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

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

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

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

    u=P(bry)+I1s(ry)+DN1+N1s(cry),

    где r - опорный сигнал, y - измеренный сигнал выхода объекта, и b и c - заданные веса.

    Для контроллера 2-DOF в дискретном времени в параллельном виде, контроллер выход:

    u=P(bry)+Iα(z)(ry)+DN1+Nβ(z)(cry),

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

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

    u=P[(bry)+I1s(ry)+DN1+N1s(cry)].

    Для 2-DOF в дискретном времени ПИД-регулятора в идеальной форме, передаточная функция является:

    u=P[(bry)+Iα(z)(ry)+DN1+Nβ(z)(cry)],

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

Dz1zTs(cry).

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

Зависимости

Чтобы включить этот параметр, установите 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

Вес уставки на пропорциональный член контроллера. Пропорциональный член контроллер выхода 2-DOF является P (br - y), где r является уставкой, а y - измеренным объектом. Установка значения b на 0 устраняет пропорциональное действие на опорный сигнал, что может уменьшить перерегулирование в отклик системы на шаг изменения уставки. Изменение относительных значений b и c изменяет баланс между подавлением помех и отслеживанием уставки.

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

Зависимости

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

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

Параметры блоков: b
Тип: скаляр, вектор
По умолчанию: 1

Вес уставки на производный член контроллера. Производный член контроллера 2-DOF действует на cr - y, где r является уставкой, а y является измеренным выходом объекта управления. Таким образом, установка c на 0 устраняет производное действие на опорный сигнал, которое может уменьшить переходный процесс к изменениям заданной точки шага. Установка c на 0 может привести к контроллеру, который достигает как эффективного подавления помех, так и сглаживания отслеживания уставки без чрезмерного переходного процесса. Изменение относительных значений b и c изменяет баланс между подавлением помех и отслеживанием уставки.

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

Зависимости

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

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

Параметры блоков: c
Тип: скаляр, вектор
По умолчанию: 1

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

Transfer Function Based (PID Tuner App)

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

Frequency Response Based

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

internal

Задайте начальные условия с помощью параметров Integrator Initial condition и Filter 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

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

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

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

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

Параметры блоков: InitialConditionSetting
Тип: строка, вектор символов
Значения: "state", "output"
По умолчанию: "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). Отслеживание сигналов имеет несколько применений, включая бесшумную передачу управления и избегание насыщения в многоуровневых структурах управления.

Бесшумная передача управления

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

Для получения дополнительной информации смотрите Bumpless Control Transfer with a ПИД-регулятора с двумя степенями свободы.

Мультицикл

Используйте отслеживание сигнала, чтобы предотвратить обмотку блока в мультициклах управлению. Для примера, иллюстрирующего этот подход с 1DOF ПИД-контроллером, смотрите Prevent Block Windup in Multiloop Control.

Зависимости

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

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

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

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

Зависимости

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

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

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

Выходное насыщение

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

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

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

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

internal

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

external

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

Команды линеаризации Force Simulink и Simulink Control Design, чтобы игнорировать выходные пределы блоков, заданные в параметрах Upper limit и Lower 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"

The back-calculation метод anti-windup размотает интегратор, когда выход блока насыщается. Это происходит путем обратной передачи интегратору различия между насыщенным и ненасыщенным сигналом управления. Используйте параметр 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 Type Assistant.

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

  • Выход продукта - Сохраняет результат умножения, выполненного под маской блока. Для примера P product output сохраняет выход блока усиления, который умножает вход блока на пропорциональную составляющую P.

  • Параметр - Сохраняет значение числовых параметров блоков, такого как P, I или D.

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

  • Аккумулятор - Сохраняет значения, сопоставленные с суммовым блоком. Для примера SumI2 Accumulator устанавливает тип данных аккумулятора, сопоставленный с суммовым блоком SumI2. Этот блок находится под маской в подсистеме Back Calculation подсистемы Anti-Windup.

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

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

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

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

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

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

Рабочие параметры с фиксированной точкой

Задайте режим округления для операций с фиксированной точкой. Для получения дополнительной информации см. раздел Округление (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 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.

Установка этого флажка отключает Code generation storage class для соответствующего интегратора или состояния фильтра.

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

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

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

Для получения дополнительной информации смотрите Строение Генерации кода C для Элементов Интерфейса Модели (Simulink Coder) и Организуйте Данные Параметра в Структуру при помощи Класса Памяти (Embedded Coder).

Зависимости

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

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

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

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

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

Параметры блоков: IntegratorRTWStateStorageClass, FilterRTWStateStorageClass
Тип: строка, вектор символов
Значения: "Auto", "ExportedGlobal", "ImportedExtern" | "ImportedExternPointer"
По умолчанию: "Auto"

Укажите классификатор типа хранилища, например const или volatile.

Примечание

Этот параметр будет удален в следующем релизе. Чтобы применить проверку типа хранилища к данным, используйте пользовательские классы памяти и разделы памяти. Если вы не используете цель генерации кода на основе ERT с Embedded Coder®пользовательские классы памяти и разделы памяти не влияют на сгенерированный код.

Зависимости

Чтобы включить этот параметр, установите Code generation storage class любое значение, кроме Auto.

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

Параметры блоков: IntegratorRTWStateStorageTypeQualifier, FilterRTWStateStorageTypeQualifier
Тип: строка, вектор символов
Значения: "", "const", "volatile"
По умолчанию: ""

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

Типы данных

double | fixed point | integer | single

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

no

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

no

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

no

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

no

Подробнее о

расширить все

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

расширить все

Поведение изменено в R2020b

Ссылки

[1] Visioli, A., «Modified Anti-Windup Scheme for ПИД-регуляторы», IEE Proceedings - Control Theory and Applications, Vol. 150, Number 1, January 2003

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

.

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

.
Введенный в R2009b