Непрерывно-разовое или дискретное время два ПИД-регулятора степени свободы
Simulink / Непрерывный
Блок PID Controller (2DOF) реализует два ПИД-регулятора степени свободы (ПИД, PI или PD). Блок идентичен блоку Discrete PID Controller (2DOF) с набором параметра Time domain к Continuous-time
.
Блок генерирует выходной сигнал на основе различия между ссылочным сигналом и измеренной системой вывод. Блок вычисляет взвешенный сигнал различия для пропорциональных и производных действий согласно весам заданного значения (b и c), что вы задаете. Блок вывод является суммой пропорционального, интеграла и производных действий на соответствующих сигналах различия, где каждое действие взвешивается согласно параметрам усиления P, I и D. Полюс первого порядка фильтрует производное действие.
Блок поддерживает несколько типов контроллера и структур. Конфигурируемые опции в блоке включают:
Тип контроллера (ПИД, PI или PD) — Видит параметр Controller.
Форма контроллера (Параллель или Идеал) — Видит параметр Form.
Временной интервал (непрерывный или дискретный) — Видит параметр Time domain.
Начальные условия и триггер сброса — Видят параметры External reset и Source.
Выведите пределы насыщения, и встроенный антизаключительный механизм — Смотрите параметр Limit output.
Отслеживание сигнала для передачи управления bumpless и многоконтурного управления — Видит параметр Enable tracking mode.
Когда вы изменяете эти опции, внутреннюю структуру изменений блока путем активации различных различных подсистем. (См. Различные Подсистемы.), Чтобы исследовать внутреннюю структуру блока и его различных подсистем, щелкните правой кнопкой по блоку и выберите Mask> Look Under Mask.
В одной общей реализации блок PID Controller действует в feedforward пути обратной связи.
Для блока одно входа, который принимает сигнал ошибки (различие между заданным значением и системой вывод), смотрите ПИД-регулятор.
Коэффициенты ПИД-регулятора и веса заданного значения являются настраиваемыми или вручную или автоматически. Автоматическая настройка требует программного обеспечения Simulink® Control Design™. Для получения дополнительной информации об автоматической настройке, смотрите параметр Select tuning method.
Ref
— Ссылочный сигналСсылочный сигнал для объекта, чтобы следовать, как показано.
Когда ссылочный сигнал является вектором, блок действует отдельно на каждый сигнал, векторизуя коэффициенты ПИДа и производя векторный выходной сигнал тех же размерностей. Можно задать коэффициенты ПИДа и некоторые другие параметры как векторы тех же размерностей как входной сигнал. Выполнение так эквивалентно определению отдельного ПИД-регулятора для каждой записи во входном сигнале.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Port_1( y )
— Измеренная система выводитсяСигнал обратной связи для контроллера, от объекта выводится.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
P
Пропорциональное усилениеПропорциональное усиление, обеспеченное из источника, внешнего к блоку. Внешний вход усиления полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход усиления, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Чтобы включить этот порт, установите Controller parameters Source на external
.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
I
Интегральное усилениеИнтегральное усиление, обеспеченное из источника, внешнего к блоку. Внешний вход усиления полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход усиления, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Когда вы предоставляете усиления внешне, изменения времени в интегральном усилении также интегрированы. Этот результат происходит из-за способа, которым коэффициенты ПИД реализованы в блоке. Для получения дополнительной информации смотрите параметр Controller parameters Source.
Чтобы включить этот порт, установите Controller parameters Source на external
и установите Controller на тип контроллера, который имеет интегральное действие.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
D
Производное усилениеПроизводное усиление, обеспеченное из источника, внешнего к блоку. Внешний вход усиления полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход усиления, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Когда вы предоставляете усиления внешне, изменения времени в производном усилении также дифференцируются. Этот результат происходит из-за способа, которым коэффициенты ПИД реализованы в блоке. Для получения дополнительной информации смотрите параметр Controller parameters Source.
Чтобы включить этот порт, установите Controller parameters Source на external
и установите Controller на тип контроллера, который имеет производное действие.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
N
Отфильтруйте коэффициентПроизводный коэффициент фильтра, обеспеченный из источника, внешнего к блоку. Внешний содействующий вход полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Чтобы включить этот порт, установите Controller parameters Source на external
и установите Controller на тип контроллера, который имеет отфильтрованную производную.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
b
Пропорциональный вес заданного значенияПропорциональный вес заданного значения, обеспеченный из источника, внешнего к блоку. Внешний вход полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Чтобы включить этот порт, установите Controller parameters Source на external
.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
c
Производный вес заданного значенияПроизводный вес заданного значения, обеспеченный из источника, внешнего к блоку. Внешний вход полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИДа логикой или другим вычислением в вашей модели и кормите ими блок.
Чтобы включить этот порт, установите Controller parameters Source на external
и установите Controller на тип контроллера, который имеет производное действие.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Сброс
Внешний триггер сбросаИнициируйте, чтобы сбросить интегратор и фильтр к их начальным условиям. Используйте параметр External reset, чтобы задать, какой сигнал инициировал сброс. Значок порта указывает на триггерный тип, заданный в том параметре. Например, следующий рисунок показывает непрерывно-разовый блок PID Controller (2DOF) с набором External reset к rising
.
Когда триггер происходит, блок сбрасывает интегратор и фильтр к начальным условиям, заданным Integrator Initial condition и параметрами Filter Initial condition или портами I0 и D0.
Чтобы быть совместимой со стандартом программного обеспечения Motor Industry Software Reliability Association (MISRA®), ваша модель должна использовать булевы сигналы управлять внешними портами сброса блока ПИД-регулятора.
Чтобы включить этот порт, установите External reset на любое значение кроме none
.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
| Boolean
I0
— Условие начальной буквы интегратораУсловие начальной буквы интегратора, обеспеченное из источника, внешнего к блоку.
Чтобы включить этот порт, установите Initial conditions Source на external
и установите Controller на тип контроллера, который имеет интегральное действие.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
D0
— Отфильтруйте начальное условиеНачальное условие производного фильтра, обеспеченного из источника, внешнего к блоку.
Чтобы включить этот порт, установите Initial conditions Source на external
и установите Controller на тип контроллера, который имеет производное действие.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
TR
— Отслеживание сигналаСигнал для контроллера вывел, чтобы отследить. Когда отслеживание сигнала активно, различие между сигналом отслеживания и блоком вывод возвращено к входу интегратора. Отслеживание сигнала полезно для реализации bumpless передача управления в системах, которые переключаются между двумя контроллерами. Может также быть полезно предотвратить завершение блока в многоконтурных системах управления. Для получения дополнительной информации смотрите параметр Enable tracking mode.
Чтобы включить этот порт, выберите параметр Enable tracking mode.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Port_1( u )
— Controller выводController вывод, обычно на основе суммы входного сигнала, интеграла входного сигнала и производной входного сигнала, взвешенного весами заданного значения и пропорциональным, интегралом и производной, получает параметры. Полюс первого порядка фильтрует производное действие. То, какие условия присутствуют в сигнале контроллера, зависит от того, что вы выбираете для параметра Controller. Основная передаточная функция контроллера для текущих настроек отображена в разделе Compensator formula параметров блоков и под маской. Другие параметры изменяют блок вывод, такой как пределы насыщения, заданные Upper Limit и параметрами насыщения Lower Limit.
Контроллер вывел, векторный сигнал, когда любые из входных параметров являются векторным сигналом. В этом случае блок действует как N независимые ПИД-регуляторы, где N является количеством сигналов во входном векторе.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Controller
— Тип контроллераPID
(значение по умолчанию) | PI
| PD
Задайте, какое из пропорционального, интеграл и производные условия находятся в контроллере.
PID
Пропорциональный, интеграл и производное действие.
PI
Пропорциональное и интегральное действие только.
PD
Пропорциональное и производное действие только.
Вывод контроллера для текущей установки отображен в разделе Compensator formula параметров блоков и под маской.
Параметры блоков: Controller |
Ввод: строка, вектор символов |
Значения: "PID" , "PI" , "PD" |
Значение по умолчанию: "PID" |
Form
— Структура контроллераParallel
(значение по умолчанию) | Ideal
Задайте, параллельна ли структура контроллера или идеальна.
Parallel
Пропорциональные, интеграл, и P усилений производной, I, и D, применяются независимо. Например, для непрерывно-разового ПИД-регулятора 2-DOF в параллельной форме, контроллера вывод u:
где r является ссылочным сигналом, y является измеренным выходным сигналом объекта, и b и c являются весами заданного значения.
В течение дискретного времени контроллер 2-DOF в параллельной форме контроллер вывел:
где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.
Ideal
Пропорциональное усиление P действует на сумму всех действий. Например, для непрерывно-разового ПИД-регулятора 2-DOF в идеальной форме, контроллер вывел:
В течение дискретного времени ПИД-регулятор 2-DOF в идеальной форме передаточная функция:
где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.
Вывод контроллера для текущих настроек отображен в разделе Compensator formula параметров блоков и под маской.
Параметры блоков: Controller |
Ввод: строка, вектор символов |
Значения: "Parallel" , "Ideal" |
Значение по умолчанию: "Parallel" |
Time domain
— Задайте контроллер непрерывно-кратного или дискретного времениContinuous-time
(значение по умолчанию) | Discrete-time
Когда вы выбираете Discrete-time
, рекомендуется, чтобы вы задали явный шаг расчета для блока. Смотрите параметр Sample time (-1 for inherited). Выбор Discrete-time
также включает Integrator method и параметры Filter method.
Когда блок PID Controller находится в модели с синхронным государственным контролем (см. блок State Control), вы не можете выбрать Continuous-time
.
ПИД-регулятор (2DOF) и Дискретный ПИД-регулятор (2DOF) блоки идентичны за исключением значения по умолчанию этого параметра.
Параметры блоков:
TimeDomain |
Ввод: строка, вектор символов |
Значения:
"Continuous-time" , "Discrete-time" |
Значение по умолчанию:
"Continuous-time" |
Sample time (-1 for inherited)
— Дискретный интервал между выборкамиЗадайте шаг расчета путем ввода значения положительной скалярной величины, такой как 0,1. Дискретный шаг расчета по умолчанию –1 среднего значения, что блок наследовал свой шаг расчета от восходящих блоков. Однако рекомендуется, чтобы вы установили шаг расчета контроллера явным образом, особенно если вы ожидаете, что шаг расчета восходящих блоков изменится. Эффект коэффициентов контроллера P, я, D, и N зависим от шага расчета. Таким образом, для данного набора содействующих значений, изменяя шаг расчета изменяет производительность контроллера.
См. Настройку времени выборки для получения дополнительной информации.
Чтобы реализовать непрерывно-кратный контроллер, установите Time domain на Continuous-time
.
Если вы хотите запустить блок с внешне заданным или переменным шагом расчета, установите этот параметр на –1 и поместите блок в Инициированную Подсистему. Затем инициируйте подсистему в желаемом шаге расчета.
Чтобы включить этот параметр, установите Time domain на Discrete-time
.
Параметры блоков: SampleTime |
Ввод: скаляр |
Значения: -1 , положительная скалярная величина |
Значение по умолчанию: -1 |
Integrator method
— Метод для вычислительного интеграла в контроллере дискретного времениForward Euler
(значение по умолчанию) | Backward Euler
| Trapezoidal
В дискретное время интегральным термином передаточной функции контроллера является Ia (z), где a (z) зависит от метода интегратора, вы задаете с этим параметром.
Forward Euler
Передайте прямоугольное (левое) приближение,
Этот метод является лучшим в течение маленького времени выборки, где предел Найквиста является большим по сравнению с пропускной способностью контроллера. В течение большего времени выборки метод Forward Euler
может привести к нестабильности, дискретизировав систему, которая стабильна в непрерывное время.
Backward Euler
Обратное прямоугольное (правое) приближение,
Преимущество метода Backward Euler
состоит в том, что дискретизация стабильной непрерывно-разовой системы с помощью этого метода всегда приводит к стабильному результату дискретного времени.
Trapezoidal
Билинейное приближение,
Преимущество метода Trapezoidal
состоит в том, что дискретизация стабильной непрерывно-разовой системы с помощью этого метода всегда приводит к стабильному результату дискретного времени. Из всех доступных методов интегрирования метод Trapezoidal
приводит к самому близкому соответствию между свойствами частотного диапазона дискретизированной системы и соответствующей непрерывно-разовой системы.
Формула контроллера для текущей установки отображена в разделе Compensator formula параметров блоков и под маской.
Для получения дополнительной информации об интегрировании дискретного времени, смотрите страницу с описанием блока Discrete-Time Integrator.
Чтобы включить этот параметр, установите Time Domain на Discrete-time
и установите Controller на тип контроллера с интегральным действием.
Параметры блоков: IntegratorMethod |
Ввод: строка, вектор символов |
Значения: "Forward Euler" , "Backward Euler" , "Trapezoidal" |
Значение по умолчанию: "Forward Euler" |
Filter method
— Метод для вычислительной производной в контроллере дискретного времениForward Euler
(значение по умолчанию) | Backward Euler
| Trapezoidal
В дискретное время производный термин передаточной функции контроллера:
где α (z) зависит от метода фильтра, вы задаете с этим параметром.
Forward Euler
Передайте прямоугольное (левое) приближение,
Этот метод является лучшим в течение маленького времени выборки, где предел Найквиста является большим по сравнению с пропускной способностью контроллера. В течение большего времени выборки метод Forward Euler
может привести к нестабильности, дискретизировав систему, которая стабильна в непрерывное время.
Backward Euler
Обратное прямоугольное (правое) приближение,
Преимущество метода Backward Euler
состоит в том, что дискретизация стабильной непрерывно-разовой системы с помощью этого метода всегда приводит к стабильному результату дискретного времени.
Trapezoidal
Билинейное приближение,
Преимущество метода Trapezoidal
состоит в том, что дискретизация стабильной непрерывно-разовой системы с помощью этого метода всегда приводит к стабильному результату дискретного времени. Из всех доступных методов интегрирования метод Trapezoidal
приводит к самому близкому соответствию между свойствами частотного диапазона дискретизированной системы и соответствующей непрерывно-разовой системы.
Формула контроллера для текущей установки отображена в разделе Compensator formula параметров блоков и под маской.
Для получения дополнительной информации об интегрировании дискретного времени, смотрите страницу с описанием блока Discrete-Time Integrator.
Чтобы включить этот параметр, установите Time Domain на Discrete-time
и установите Controller на тип контроллера с производным действием.
Параметры блоков: FilterMethod |
Ввод: строка, вектор символов |
Значения: "Forward Euler" , "Backward Euler" , "Trapezoidal" |
Значение по умолчанию: "Forward Euler" |
Source
— Источник для усилений контроллера и коэффициента фильтраinternal
Задайте усиления контроллера, отфильтруйте коэффициент и веса заданного значения с помощью параметров блоков P, I, D, N, b и c соответственно.
external
Задайте коэффициенты ПИД, отфильтруйте коэффициент и веса заданного значения внешне с помощью входных параметров блока. Дополнительный входной порт появляется на блоке для каждого параметра, который требуется для текущего типа контроллера.
Включение внешних входных параметров для параметров позволяет вам вычислять их значения внешне к блоку и предоставлять их блоку как входные параметры сигнала.
Внешний вход полезен, например, когда это необходимо чтобы сопоставить различную параметризацию ПИДа с коэффициентами ПИД блока. Можно также использовать внешний вход усиления, чтобы реализовать запланированное на усиление управление ПИДом. В запланированном на усиление управлении вы определяете коэффициенты ПИД логикой или другим вычислением в вашей модели и кормите ими блок.
Когда вы предоставляете усиления внешне, изменения времени в интегральных и производных значениях усиления интегрируются и дифференцируются, соответственно. Производный вес заданного значения c также дифференцируется. Этот результат происходит, потому что и в непрерывное время и в дискретное время, усиления применяются к сигналу перед интегрированием или дифференцированием. Например, для непрерывно-разового ПИД-регулятора с внешними входными параметрами, термин интегратора реализован как показано на следующем рисунке.
В блоке входной сигнал u умножается на внешне предоставленное усиление интегратора, I, перед интегрированием. Эта реализация урожаи:
Таким образом усиление интегратора включено в интеграл. Точно так же в производном термине блока, умножение производным усилением предшествует дифференцированию, которое заставляет производное усиление D и производный вес заданного значения c дифференцироваться.
Параметры блоков: ControllerParametersSource |
Ввод: строка, вектор символов |
Значения: "internal" , "external" |
Значение по умолчанию: "internal" |
Proportional (P)
— Пропорциональное усилениеЗадайте конечное, действительное значение усиления для пропорционального усиления. Когда Controller form:
Parallel
— Пропорциональное действие независимо от интегральных и производных действий. Например, для непрерывно-разового ПИД-регулятора 2-DOF в параллельной форме, контроллера вывод u:
где r является ссылочным сигналом, y является измеренным выходным сигналом объекта, и b и c являются весами заданного значения.
В течение дискретного времени контроллер 2-DOF в параллельной форме контроллер вывел:
где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.
Ideal
— Пропорциональные множители усиления интегральные и производные условия. Например, для непрерывно-разового ПИД-регулятора 2-DOF в идеальной форме, контроллер вывел:
В течение дискретного времени ПИД-регулятор 2-DOF в идеальной форме передаточная функция:
где Integrator method и параметры Filter method определяют α (z) и β (z), соответственно.
Настраиваемый: да
Чтобы включить этот параметр, установите параметры Контроллера Source на internal
.
Параметры блоков: P |
Ввод: скаляр, вектор |
Значение по умолчанию: 1 |
Integral (I)
— Интегральное усилениеЗадайте конечное, действительное значение усиления для интегрального усиления.
Настраиваемый: да
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
и устанавливают Controller на тип, который имеет интегральное действие.
Параметры блоков: I |
Ввод: скаляр, вектор |
Значение по умолчанию: 1 |
Derivative (D)
— Производное усилениеЗадайте конечное, действительное значение усиления для производного усиления.
Настраиваемый: да
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
и устанавливают Controller на PID
или PD
.
Параметры блоков: D |
Ввод: скаляр, вектор |
Значение по умолчанию: 0 |
Use filtered derivative
— Примените фильтр к производному терминуon
(значение по умолчанию) | off
Для ПИД-регуляторов дискретного времени только, очистите эту опцию, чтобы заменить отфильтрованную производную на неотфильтрованный дифференциатор дискретного времени. То, когда вы делаете так, производный термин контроллера вывел, становится:
Для непрерывно-разовых ПИД-регуляторов всегда фильтруется производный термин.
Чтобы включить этот параметр, установите Time domain на Discrete-time
и установите Controller на тип, который имеет производный термин.
Параметры блоков: UseFilter |
Ввод: строка, вектор символов |
Значения: "on" , "off" |
Значение по умолчанию: "on" |
Filter coefficient (N)
— Производный коэффициент фильтраЗадайте конечное, действительное значение усиления для коэффициента фильтра. Коэффициент фильтра определяет местоположение полюса фильтра в производном действии блока. Местоположение полюса фильтра зависит от параметра Time domain.
Когда Time domain является Continuous-time
, местоположением полюса является s = -N
.
Когда Time domain является Discrete-time
, местоположение полюса зависит от параметра Filter method.
Отфильтруйте метод | Местоположение полюса фильтра |
---|---|
Forward Euler | |
Backward Euler | |
Trapezoidal |
Блок не поддерживает N = Inf
(идеал неотфильтрованная производная). Когда Time domain является Discrete-time
, можно очистить Use filtered derivative, чтобы демонтировать производный фильтр.
Настраиваемый: да
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
и устанавливают Controller на PID
или PD
.
Параметры блоков: N |
Ввод: скаляр, вектор |
Значение по умолчанию: 100 |
Setpoint weight (b)
— Пропорциональный вес заданного значенияВес заданного значения на пропорциональном термине контроллера. Пропорциональный термин контроллера 2-DOF, выводом является P (br –y), где r является ссылочным сигналом и y, является измеренным объектом вывод. Установка b к 0 устраняет пропорциональное действие со ссылочным сигналом, который может уменьшать перерегулирование в отклике системы к ступенчатым изменениям в заданном значении. Изменение относительных значений b и c изменяет баланс между отслеживанием заданного значения и подавлением помех.
Настраиваемый: да
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
.
Параметры блоков: b |
Ввод: скаляр, вектор |
Значение по умолчанию: 1 |
Setpoint weight (c)
— Производный вес заданного значенияВес заданного значения на производном термине контроллера. Производный термин контроллера 2-DOF действует на cr –y, где r является ссылочным сигналом, и y является измеренным объектом вывод. Таким образом установка c к 0 устраняет производное действие на ссылочном сигнале, который может уменьшать переходный ответ на ступенчатые изменения в заданном значении. Установка c к 0 может привести к контроллеру, который достигает и эффективного подавления помех и сглаженного отслеживания заданного значения без чрезмерного переходного ответа. Изменение относительных значений b и c изменяет баланс между отслеживанием заданного значения и подавлением помех.
Настраиваемый: да
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
и устанавливают Controller на тип, который имеет производное действие.
Параметры блоков: c |
Ввод: скаляр, вектор |
Значение по умолчанию: 1 |
Select tuning method
— Инструмент для автоматической настройки коэффициентов контроллераTransfer Function Based (PID Tuner App)
(значение по умолчанию) | Frequency Response Based
Если у вас есть программное обеспечение 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, который настраивает коэффициенты ПИД-регулятора на основе данных об оценке частотной характеристики, полученных симуляцией. Этот настраивающий подход особенно полезен для объектов, которые не linearizable или которые линеаризуют, чтобы обнулить. Frequency Response Based PID Tuner настраивает коэффициенты P, I, D и N, но не настраивает коэффициенты заданного значения b и c. Для получения дополнительной информации смотрите ПИД-регулятор Проекта от Данных Частотной характеристики Объекта (Simulink Control Design).
Оба из этих настраивающих методов принимают одноконтурную настройку управления. Программное обеспечение Simulink Control Design включает другие настраивающие подходы, которые удовлетворяют более комплексным настройкам. Для получения информации о других способах настроить блок PID Controller, смотрите, Выбирают Control Design Approach (Simulink Control Design).
Чтобы включить этот параметр, во вкладке Main, устанавливают параметры контроллера Source на internal
.
Enable zero-crossing detection
— Обнаружьте нулевые пересечения на сбросе и при вводе или отъезде состояния насыщенияon
(значение по умолчанию) | off
Обнаружение пересечения нулем может точно определить местоположение разрывов сигнала, не обращаясь к чрезмерно маленьким временным шагам, которые могут привести к длинным временам симуляции. Если вы выбираете Limit output или активируете External reset в вашем блоке PID Controller, активирование обнаружения пересечения нулем может уменьшать время вычисления в вашей симуляции. Выбор этого параметра активирует обнаружение пересечения нулем:
В сбросе начального состояния
При вводе верхнего или более низкого состояния насыщения
При отъезде верхнего или более низкого состояния насыщения
Для получения дополнительной информации об обнаружении пересечения нулем, смотрите Обнаружение Пересечения нулем.
Параметры блоков: ZeroCross |
Ввод: строка, вектор символов |
Значения: "on" , "off" |
Значение по умолчанию: "on" |
Source
— Источник для интегратора и производных начальных условийinternal
(значение по умолчанию) | external
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" |
Integrator
— Условие начальной буквы интегратораSimulink использует условие начальной буквы интегратора инициализировать интегратор в начале симуляции или в заданном триггерном событии (см. External reset). Условие начальной буквы интегратора и условие начальной буквы фильтра определяют начальный вывод блока ПИД-регулятора.
Условием начальной буквы интегратора не может быть NaN
или Inf
.
Чтобы использовать этот параметр, во вкладке Initialization, устанавливают Source на internal
и устанавливают Controller на тип, который имеет интегральное действие.
Параметры блоков: InitialConditionForIntegrator |
Ввод: скаляр, вектор |
Значение по умолчанию: 0 |
Фильтр
Отфильтруйте начальное условиеSimulink использует условие начальной буквы фильтра инициализировать производный фильтр в начале симуляции или в заданном триггерном событии (см. External reset). Условие начальной буквы интегратора и условие начальной буквы фильтра определяют начальный вывод блока ПИД-регулятора.
Условием начальной буквы фильтра не может быть NaN
или Inf
.
Чтобы использовать этот параметр, во вкладке Initialization, устанавливают Source на internal
и используют контроллер, который имеет производный фильтр.
Параметры блоков: InitialConditionForFilter |
Ввод: скаляр, вектор |
Значение по умолчанию: 0 |
Differentiator
— Начальное условие для неотфильтрованной производнойКогда вы используете неотфильтрованную производную, Simulink использует этот параметр, чтобы инициализировать дифференциатор в начале симуляции или в заданном триггерном событии (см. External reset). Условие начальной буквы интегратора и производное начальное условие определяют начальный вывод блока ПИД-регулятора.
Производным начальным условием не может быть NaN
или Inf
.
Чтобы использовать этот параметр, установите Time domain на Discrete-time
, снимите флажок Use filtered derivative, и во вкладке Initialization, установите Source на internal
.
Параметры блоков: DifferentiatorICPrevScaledInput |
Ввод: скаляр, вектор |
Значение по умолчанию: 0 |
Initial condition setting
— Местоположение, в котором применяется начальное условиеState (most efficient)
(значение по умолчанию) | Output
Используйте этот параметр, чтобы задать, применить ли Integrator Initial condition и параметр Filter Initial condition к соответствующему состоянию блока или вывести. Можно изменить этот параметр в командной строке только, с помощью set_param
, чтобы установить параметр InitialConditionSetting
блока.
State (most efficient)
Используйте эту опцию во всех ситуациях кроме тех случаев, когда блок находится в инициированной подсистеме или подсистеме вызова функций, и упрощенный режим инициализации включен.
Output
Используйте эту опцию, когда блок находится в инициированной подсистеме или подсистеме вызова функций, и упрощенный режим инициализации включен.
Для получения дополнительной информации о Начальном параметре установки условия, смотрите блок Discrete-Time Integrator.
Этот параметр только доступен посредством программируемого использования.
Параметры блоков: InitialConditionSetting |
Ввод: строка, вектор символов |
Значения: "state" , "output" |
Значение по умолчанию: "state" |
External reset
— Инициируйте для сброса интегратора и отфильтруйте значенияnone
(значение по умолчанию) | rising
| falling
| either
| level
Задайте триггерное условие, которое заставляет блок сбрасывать интегратор и фильтр к начальным условиям. (Если Use filtered derivative не выбран, триггер сбрасывает интегратор и дифференциатор к начальным условиям.) Выбирающий любую опцию кроме none
включает порт Reset на блоке для внешнего сигнала сброса.
none
Интегратор и фильтр (или дифференциатор) выходные параметры установлены в начальные условия в начале симуляции и не сбрасываются во время симуляции.
rising
Сбросьте выходные параметры, когда сигнал сброса будет иметь возрастающее ребро.
falling
Сбросьте выходные параметры, когда сигнал сброса будет иметь падающее ребро.
either
Сбросьте выходные параметры, когда сброс будет сигнализировать или о повышениях или о падениях.
level
Сбросьте выходные параметры, когда сброс будет сигнализировать также:
Является ненулевым на шаге текущего времени
Изменения от ненулевого на предыдущем временном шаге, чтобы обнулить на шаге текущего времени
Эта опция содержит выходные параметры к начальным условиям, в то время как сигнал сброса является ненулевым.
Чтобы включить этот параметр, установите Controller на тип, который имеет производное или интегральное действие.
Параметры блоков: ExternalReset |
Ввод: строка, вектор символов |
Значения:
"none" , "rising" , "falling" , "either" , "level" |
Значение по умолчанию: "none" |
Ignore reset when linearizing
— Обеспечьте линеаризацию, чтобы проигнорировать сбросoff
(значение по умолчанию) | on
Выберите, чтобы обеспечить Simulink и команды линеаризации Simulink Control Design, чтобы проигнорировать любой механизм сброса, заданный в параметре External reset. Игнорирование состояний сброса позволяет вам линеаризовать модель вокруг рабочей точки, даже если та рабочая точка заставляет блок сбрасывать.
Параметры блоков: IgnoreLimit |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Enable tracking mode
— Активируйте отслеживание сигналаoff
(значение по умолчанию) | on
Отслеживание сигнала позволяет блоку вывод, следуют, отслеживание сигнализируют, что вы обеспечиваете в порте TR. Когда отслеживание сигнала активно, различие между сигналом отслеживания и блоком вывод возвращено к входу интегратора с усилением Kt
, заданный параметром Tracking gain (Kt). Отслеживание сигнала имеет несколько приложений, включая завершение передачи и предотвращения управления bumpless в многоконтурных управляющих структурах.
Используйте отслеживание сигнала, чтобы достигнуть передачи управления bumpless в системах, которые переключаются между двумя контроллерами. Предположим, что вы хотите передать управление между ПИД-регулятором и другим контроллером. Для этого подключение контроллера вывело к входу TR как показано на следующем рисунке.
Для получения дополнительной информации см. Передачу Управления Bumpless с Двумя ПИД-регуляторами Степени свободы.
Используйте отслеживание сигнала, чтобы предотвратить завершение блока в многоконтурных подходах управления. Для примера, иллюстрирующего этот подход с 1DOF ПИД-регулятор, смотрите, Предотвращают Завершение Блока в Многоконтурном Управлении.
Чтобы включить этот параметр, установите Controller на тип, который имеет интегральное действие.
Параметры блоков: TrackingMode |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Tracking coefficient (Kt)
— Усиление отслеживающей сигнал обратной связиКогда вы выбираете Enable tracking mode, различие между TR сигнала и блоком вывод возвращено к входу интегратора с усилением Kt
. Используйте этот параметр, чтобы задать усиление в той обратной связи.
Чтобы включить этот параметр, выберите Enable tracking mode.
Параметры блоков: Kt |
Ввод: скаляр |
Значение по умолчанию: 1 |
Limit Output
— Limit вывод к заданным степеням насыщенияoff
(значение по умолчанию) | on
Активация этой опции ограничивает блок вывод внутренне к блоку, так, чтобы вам не был нужен отдельный блок Saturation после контроллера. Это также позволяет вам активировать антизаключительный механизм, встроенный в блок (см. параметр Anti-windup method). Задайте пределы насыщения с помощью параметров Upper saturation limit и Lower saturation limit.
Параметры блоков: LimitOutput |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Upper limit
— Верхний предел насыщения для блока выводитсяInf
(значение по умолчанию) | скалярЗадайте верхний предел для блока вывод. Блок вывод сохранен в Верхнем пределе насыщения каждый раз, когда взвешенная сумма пропорционального, интеграла и производных действий превышает то значение.
Чтобы включить этот параметр, выберите Limit output.
Параметры блоков: UpperSaturationLimit |
Ввод: скаляр |
Значение по умолчанию: Inf |
Lower limit
— Более низкий предел насыщения для блока выводится-Inf
(значение по умолчанию) | скалярЗадайте нижний предел для блока вывод. Блок вывод сохранен в Более низком пределе насыщения каждый раз, когда взвешенная сумма пропорционального, интеграла и производных действий понижается то значение.
Чтобы включить этот параметр, выберите Limit output.
Параметры блоков: LowerSaturationLimit |
Ввод: скаляр |
Значение по умолчанию: -Inf |
Ignore saturation when linearizing
— Обеспечьте линеаризацию, чтобы проигнорировать выходные пределыoff
(значение по умолчанию) | on
Обеспечьте Simulink, и команды линеаризации Simulink Control Design, чтобы проигнорировать блокируют выходные пределы, заданные в параметрах Lower limit и Upper limit. Игнорирование выходных пределов позволяет вам линеаризовать модель вокруг рабочей точки, даже если та рабочая точка заставляет блок превышать выходные пределы.
Чтобы включить этот параметр, выберите параметр Limit output.
Параметры блоков: LinearizeAsGain |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Anti-windup method
— Антизаключительный метод интегратора none
(значение по умолчанию) | back-calculation
| clamping
Когда вы выбираете 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 coefficient (Kb)
— Получите коэффициент антизаключительной обратной связиАнтизаключительный метод 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, чтобы гарантировать, что все типы данных внутренне совместимы.
Integer rounding mode
— Rounding для операций фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Параметры блоков всегда вокруг к самому близкому представимому значению. Чтобы управлять округлением параметров блоков, введите выражение с помощью функции округления MATLAB® в поле маски.
Параметры блоков:
RndMeth |
Ввод: символьный вектор |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
Значение по умолчанию:
'Floor' |
Saturate on integer overflow
— Метод действия переполненияoff
(значение по умолчанию) | on
Задайте, насыщает ли переполнение или переносится.
'off'
Переполнение переносится к соответствующему значению, которое может представлять тип данных.
Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.
on
— Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.
Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.
Рассмотрите установку этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде.
Полагайте, что снятие этого флажка когда это необходимо оптимизирует эффективность вашего сгенерированного кода.
Снятие этого флажка также помогает вам постараться не чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Проверку на Ошибки Диапазона сигнала.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выводу или результату.
В целом процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Lock data type settings against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на этом блоке. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).
Параметры блоков: LockScale |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Параметры в этой вкладке, в основном, имеют применение в генерации кода.
State name (e.g., 'position')
— Назовите для состояний стационарного фильтра и интегратора''
(значение по умолчанию) | вектор символовПрисвойте уникальное имя состоянию, сопоставленному с интегратором или фильтром для непрерывно-разовых ПИД-регуляторов. (Для получения информации об именах состояния в ПИД-регуляторе дискретного времени смотрите параметр State name.) Имя состояния используется, например:
Для соответствующей переменной в сгенерированном коде
Как часть устройства хранения данных называют при журналировании состояний во время симуляции
Поскольку соответствующее состояние в линейной модели получает путем линеаризации блока
Допустимое имя состояния начинается с буквенного символа или символа подчеркивания, сопровождаемого алфавитно-цифровыми символами или символами подчеркивания.
Чтобы включить этот параметр, установите Time domain на Continuous-time
.
Параметр: IntegratorContinuousStateAttributes , FilterContinuousStateAttributes |
Ввод: символьный вектор |
Значение по умолчанию: '' |
State name
— Имена для состояний фильтра и интегратора дискретного времениПрисвойте уникальное имя состоянию, сопоставленному с интегратором или фильтром для ПИД-регуляторов дискретного времени. (Для получения информации об именах состояния в непрерывно-разовом ПИД-регуляторе смотрите параметр State name (e.g., 'position').)
Допустимое имя состояния начинается с буквенного символа или символа подчеркивания, сопровождаемого алфавитно-цифровыми символами или символами подчеркивания. Имя состояния используется, например:
Для соответствующей переменной в сгенерированном коде
Как часть устройства хранения данных называют при журналировании состояний во время симуляции
Поскольку соответствующее состояние в линейной модели получает путем линеаризации блока
Для получения дополнительной информации об использовании имен состояния в генерации кода, смотрите, Применяют Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Simulink Coder).
Чтобы включить этот параметр, установите Time domain на Discrete-time
.
Параметр: IntegratorStateIdentifier , FilterStateIdentifier |
Ввод: строка, вектор символов |
Значение по умолчанию: "" |
State name must resolve to Simulink signal object
— Потребуйте, чтобы имя состояния решило к объекту сигналаoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы потребовать, чтобы имя состояния интегратора или фильтра дискретного времени решило к объекту Сигнала Simulink.
Включить этот параметр для состояния интегратора или фильтра дискретного времени:
Установите Time domain на Discrete-time
.
Задайте значение для интегратора или отфильтруйте State name.
Установите образцовый параметр конфигурации Signal resolution на значение кроме None
.
Установка этого флажка отключает Code generation storage class для соответствующего состояния интегратора или фильтра.
Параметры блоков: IntegratorStateMustResolveToSignalObject , FilterStateMustResolveToSignalObject |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Code generation storage class
— Класс памяти для генерации кодаAuto
(значение по умолчанию) | ExportedGlobal
| ImportedExtern
| ImportedExternPointer
Выберите класс памяти состояния для генерации кода. Если вы не должны взаимодействовать через интерфейс к внешнему коду, выберите Auto
.
Для получения дополнительной информации смотрите, Применяют Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Simulink Coder) и Применяют Пользовательские Классы памяти к Отдельному Сигналу, состоянию и Элементам данных Параметра (Embedded Coder).
Включить этот параметр для состояния интегратора или фильтра дискретного времени:
Установите Time domain на Discrete-time
.
Задайте значение для интегратора или отфильтруйте State name.
Установите образцовый параметр конфигурации Signal resolution на значение кроме None
.
Параметры блоков: IntegratorRTWStateStorageClass , FilterRTWStateStorageClass |
Ввод: строка, вектор символов |
Значения: "Auto" , "ExportedGlobal" , "ImportedExtern" | "ImportedExternPointer" |
Значение по умолчанию: "Auto" |
Code generation storage type qualifier
— Спецификатор типа хранения"const"
| "volatile"
|...Задайте спецификатор типа хранения, такой как const
или volatile
.
Этот параметр будет удален в будущем релизе. Чтобы применить спецификаторы типа хранения к данным, используйте разделы custom storage classes и memory. Если вы не используете основанную на ERT цель генерации кода с Embedded Coder®, разделы custom storage classes и memory не влияют на сгенерированный код.
Чтобы включить этот параметр, установите Code generation storage class на любое значение кроме Auto
.
Параметры блоков: IntegratorRTWStateStorageTypeQualifier , FilterRTWStateStorageTypeQualifier |
Ввод: строка, вектор символов |
Values:"" , "const" , "volatile" |
Значение по умолчанию: "" |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
ПИД-регулятор с 2 степенями свободы может быть интерпретирован как ПИД-регулятор с предварительным фильтром или ПИД-регулятор с feedforward элементом.
В параллельной форме два ПИД-регулятора степени свободы могут быть эквивалентно смоделированы следующей блок-схемой, где C является одним ПИД-регулятором степени свободы, и F является предварительным фильтром на ссылочном сигнале.
Ref является ссылочным сигналом, y является обратной связью от измеренной системы вывод, и u является вывод контроллера. Для непрерывно-разового ПИД-регулятора 2-DOF в параллельной форме передаточные функции для F и C
где b и c являются весами заданного значения.
Для ПИД-регулятора 2-DOF в идеальной форме передаточные функции
Подобное разложение запрашивает дискретное время контроллер 2-DOF.
Также параллельные два ПИД-регулятора степени свободы могут быть смоделированы следующей блок-схемой.
В этой реализации Q действует как создание условий форварда канала на ссылочном сигнале. Для непрерывно-разового ПИД-регулятора 2-DOF в параллельной форме передаточная функция для Q
Для ПИД-регулятора 2-DOF в идеальной форме передаточная функция
Передаточные функции для C эквивалентны в разложении фильтра.
Подобное разложение запрашивает дискретное время контроллер 2-DOF.
[1] Visioli, A., "Измененная антизаключительная схема ПИД-регуляторов", продолжения IEE - теория управления и приложения, издание 150, номер 1, январь 2003
Для непрерывно-разовых ПИД-регуляторов (набор Time domain к Continuous-time
):
Рассмотрите использование Образцового Discretizer, чтобы сопоставить непрерывно-разовые блоки с дискретными эквивалентами та генерация кода поддержки. К Модели доступа Discretizer, из вашей модели, выбирают Analysis> Control Design> Analysis> Model Discretizer.
Не рекомендуемый для производственного кода.
Для ПИД-регуляторов дискретного времени (набор Time domain к Discrete-time
):
Зависит от абсолютного времени, когда помещено в инициированной иерархии подсистемы.
Сгенерированный код полагается на memcpy
или функции memset
(string.h
) при определенных обстоятельствах.
Генерация фиксированной точки поддерживается для ПИД-регуляторов дискретного времени только (набор Time domain к Discrete-time
).
Производная | Дискретный ПИД-регулятор (2DOF) | Усиление | Интегратор | ПИД-регулятор
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.