Интегрированный сигнал
Симуляция/непрерывная
Блок Integrator Limited идентичен блоку Integrator за исключением того, что выход блока ограничен на основании верхнего и нижнего пределов насыщения. Дополнительные сведения см. в разделе Ограничение интеграла.
Simulink ® рассматривает блок интегратора как динамическую систему с одним состоянием. Динамика блока задана:
(t0) = x0
где:
u - вход блока.
y - блочный выход.
x - состояние блока.
x0 - начальное условие x.
В то время как эти уравнения определяют точное соотношение в непрерывном времени, Simulink использует методы численного приближения, чтобы оценить их с конечной точностью. Simulink может использовать несколько различных методов численного интегрирования для вычисления выходного сигнала блока, каждый из которых имеет преимущества в конкретных приложениях. Используйте панель Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters) (см. Панель Решатель (Solver)), чтобы выбрать метод, наиболее подходящий для приложения.
Выбранный решатель вычисляет выходной сигнал блока интегратора на текущем шаге времени, используя текущее входное значение и значение состояния на предыдущем шаге времени. Для поддержки этой вычислительной модели блок интегратора сохраняет выходные данные на текущем шаге времени для использования решателем для вычисления выходных данных на следующем шаге времени. Блок также предоставляет решателю начальное условие для использования при вычислении начального состояния блока в начале моделирования. По умолчанию начальное условие имеет значение 0. Диалоговое окно параметров блока используется для задания другого значения начального условия или создания порта ввода начального значения в блоке.
Диалоговое окно параметров используется для:
Определение верхнего и нижнего пределов интеграла
Создание входных данных, восстанавливающих исходное значение вывода (состояния) блока в зависимости от изменения входных данных
Создайте дополнительный вывод состояния, чтобы значение вывода блока могло инициировать сброс блока
Используйте блок интегратора дискретного времени для создания чисто дискретной системы.
Можно определить начальные условия как параметр в диалоговом окне блока или ввести их из внешнего сигнала:
Чтобы определить начальные условия как параметр блока, задайте параметр Initial condition source как internal и введите значение в поле Начальное условие.
Для предоставления исходных условий из внешнего источника укажите параметр Initial condition source как external. Под входом блока появляется дополнительный входной порт.

Примечание
Если интегратор ограничивает свой выход (см. раздел Ограничение интеграла), исходное условие должно находиться внутри пределов насыщения интегратора. Если начальное условие выходит за пределы насыщенности блока, то в блоке появляется сообщение об ошибке.
Несколько физических явлений носят циклический, периодический или роторный характер. Примерами таких явлений являются объекты или механизмы, которые проявляют вращательное движение, и осцилляторы.
Моделирование этих явлений в Simulink включает интегрирование скорости изменения периодических или циклических сигналов для получения состояния движения.
Недостатком этого подхода, однако, является то, что в течение длительного времени моделирования состояния, представляющие периодические или циклические сигналы, интегрируются в большие значения. Кроме того, вычисление синуса или косинуса этих сигналов требует все большего количества времени из-за уменьшения угла. Большие значения сигналов также негативно влияют на производительность и точность решателя.
Один из подходов для преодоления этого недостатка заключается в сбросе углового состояния до 0 когда он достигает 2λ (или -λ, когда он достигает λ, для числовой симметрии). Этот подход повышает точность вычислений синусов и косинусов и уменьшает время уменьшения угла. Но это также требует обнаружения пересечения нуля и вводит сброс решателя, что замедляет моделирование для решателей с переменным шагом, особенно в больших моделях.
Чтобы исключить сброс решателя в точках наложения, блок Integrator поддерживает состояния переноса, которые можно включить, установив флажок Состояние переноса (Wrap state) в диалоговом окне параметров блока. При включении состояния обтекания значок блока изменяется, указывая, что блок имеет состояния обтекания.

Simulink позволяет обертывать состояния, которые ограничены параметрами верхнего и нижнего значений обернутого состояния. Алгоритм определения состояний обтекания задается:
x−xlxu−xl⌋otherwise
где:
x1 - меньшее значение обернутого состояния.
xu - верхнее значение обернутого состояния.
y - выходной сигнал.
Опора для упаковочных состояний обеспечивает эти преимущества.
Это устраняет нестабильность моделирования при приближении модели к большим углам и большим значениям состояния.
Это уменьшает количество сбросов решателя во время моделирования и устраняет необходимость обнаружения пересечения нулей, увеличивая время моделирования.
Он исключает большие угловые значения, ускоряя вычисление тригонометрических функций на угловых состояниях.
Она повышает точность и производительность решателя и обеспечивает неограниченное время моделирования.
Чтобы предотвратить превышение заданных уровней вывода, установите флажок Предельный вывод (Limit output) и введите предельные значения в соответствующие поля параметров. Это действие заставляет блок функционировать как ограниченный интегратор. Когда выходной сигнал достигает предельных значений, интегральное действие выключается, чтобы не допустить нарастания интегрального сигнала. Во время моделирования можно изменить пределы, но нельзя изменить, ограничен ли вывод. Блок определяет вывод следующим образом:
Если интеграл меньше или равен пределу нижнего насыщения, выходной сигнал удерживается на пределе нижнего насыщения.
Когда интеграл находится между нижним пределом насыщения и верхним пределом насыщения, выход является интегралом.
Когда интеграл больше или равен верхнему пределу насыщения, выходной сигнал удерживается на верхнем пределе насыщения.
Чтобы сгенерировать сигнал, указывающий, когда состояние ограничено, установите флажок Показать порт насыщения. Под выходным портом блока появляется порт насыщения.

Сигнал имеет одно из трех значений:
1 указывает, что применяется верхний предел.
0 указывает, что интеграл не ограничен.
-1 указывает, что применяется нижний предел.
При установке этого флажка блок имеет три пересечения нуля: одно для обнаружения при входе в верхний предел насыщения, одно для обнаружения при входе в нижний предел насыщения и одно для обнаружения при выходе из насыщения.
Примечание
Для блока Integrator Limited по умолчанию выбран параметр Limit output, верхний предел насыщения - 1, а для параметра Нижний предел насыщения установлено значение 0.
Блок может сбросить свое состояние до заданного начального состояния на основе внешнего сигнала. Чтобы вызвать сброс состояния блока, выберите один из вариантов внешнего сброса. Под входным портом блока появляется порт триггера, указывающий тип триггера.

Выбрать rising сброс состояния при повышении сигнала сброса с отрицательного или нулевого значения до положительного.
Выбрать falling сброс состояния при падении сигнала сброса с положительного значения на нулевое или отрицательное.
Выбрать either сброс состояния при изменении сигнала сброса с нуля на ненулевое значение, с ненулевого значения на ноль или изменение знака.
Выбрать level сброс состояния, когда сигнал сброса является ненулевым на текущем шаге времени или изменяется с ненулевого на предыдущем шаге времени на ноль на текущем шаге времени.
Выбрать level hold сброс состояния при ненулевом сигнале сброса на текущем шаге времени.
Порт сброса имеет прямой канал. Если выходные данные блока поступают обратно в этот порт либо непосредственно, либо через ряд блоков с прямым проходом, получается алгебраический цикл (см. Алгебраические концепции цикла). Используйте порт состояния блока интегратора для обратной передачи выходных данных блока без создания алгебраического цикла.
Примечание
Для соответствия стандарту MISRA ® модель должна использовать логические сигналы для управления внешними портами сброса блоков интегратора.
Если установить флажок Показать порт состояния в диалоговом окне параметров блока интегратора, в верхней части блока интегратора появится дополнительный порт вывода, порт состояния.

Выход порта состояния совпадает с выходом стандартного порта вывода блока, за исключением следующего случая. Если блок сбрасывается на текущем временном шаге, то выходной сигнал порта состояния является значением, которое могло бы появиться на стандартном выходе блока, если бы блок не был сброшен. Выходные данные порта состояния появляются раньше, чем выходные данные выходного порта блока интегратора. Используйте порт состояния, чтобы избежать создания алгебраических циклов в следующих сценариях моделирования:
Самоустановка интеграторов (см. Создание самоустановки интеграторов)
Передача состояния из одной включенной подсистемы в другую (см. раздел Передача состояний между включенными подсистемами)
Примечание
При обновлении модели Simulink проверяет, применим ли порт состояния к одному из этих двух сценариев. В противном случае появится сообщение об ошибке. Кроме того, нельзя регистрировать выходные данные этого порта в ссылочной модели, которая выполняется в режиме ускорителя. Если для порта включено ведение журнала, Simulink генерирует предупреждение «сигнал не найден» во время выполнения ссылочной модели.
Порт состояния блока интегратора помогает избежать алгебраического цикла при создании интегратора, который сбрасывает себя на основе значения его выхода. Рассмотрим, например, следующую модель.

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

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

Включенные подсистемы A и B содержат следующие блоки:
| Подсистема A | Подсистема B |
|---|---|
|
|
|
В этой модели постоянный входной сигнал управляет двумя включенными подсистемами, которые интегрируют сигнал. Генератор импульсов генерирует разрешающий сигнал, который вызывает чередование выполнения между двумя подсистемами. Порт активизации каждой подсистемы установлен в состояние reset, что приводит к сбросу интегратора подсистемы, когда она становится активной. Сброс интегратора приводит к считыванию интегратором значения его порта начального состояния. Порт начального состояния интегратора в каждой подсистеме подключен к выходному порту интегратора в другой подсистеме.
Это соединение предназначено для обеспечения непрерывной интеграции входного сигнала, когда исполнение чередуется между двумя подсистемами. Однако соединение создает алгебраический цикл. Чтобы вычислить выходной сигнал A, Simulink должен знать выходной сигнал B и наоборот. Поскольку выходы являются взаимно зависимыми, Simulink не может вычислить выходные значения. Поэтому при попытке смоделировать или обновить эту модель появляется сообщение об ошибке.
В следующей версии той же модели используется порт состояния интегратора, чтобы избежать создания алгебраического цикла при передаче состояния.

Включенные подсистемы A и B содержат следующие блоки:
| Подсистема A | Подсистема B |
|---|---|
|
|
|
В этой модели начальное состояние интегратора в A зависит от значения порта состояния интегратора в B, и наоборот. Значения портов состояния обновляются раньше на этапе моделирования, чем значения выходных портов интегратора. Поэтому Simulink может вычислить начальное состояние любого интегратора, не зная конечного выходного значения другого интегратора. Другой пример использования порта состояния для передачи состояний между условно выполненными подсистемами см. в разделе Создание модели блокировки сцепления.
По умолчанию программа Simulink использует абсолютное значение допуска, указанное в диалоговом окне Параметры конфигурации (Configuration Parameters) (см. раздел Допуски ошибок для решателей с переменным шагом) для вычисления выходных данных блока интегратора. Если это значение не обеспечивает достаточного контроля ошибок, укажите более подходящее значение в поле Абсолютный допуск (Absolute tolerance) диалогового окна Блок интегратора (Integrator block). Указанное значение используется для вычисления всех выходных данных блока.
При выборе всех параметров значок блока выглядит следующим образом.

Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|