exponenta event banner

Интегратор

Интегрированный сигнал

  • Библиотека:
  • Simulink/Часто используемые блоки

    Симуляция/непрерывная

  • Integrator block

Описание

Блок интегратора выдает значение интеграла своего входного сигнала относительно времени.

Simulink ® рассматривает блок интегратора как динамическую систему с одним состоянием. Динамика блока задана:

{(t) = u (t) y (t )  = x (t) x (t0) = x0

где:

  • u - вход блока.

  • y - блочный выход.

  • x - состояние блока.

  • x0 - начальное условие x.

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

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

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

  • Определение верхнего и нижнего пределов интеграла

  • Создание входных данных, восстанавливающих исходное значение вывода (состояния) блока в зависимости от изменения входных данных

  • Создайте дополнительный вывод состояния, чтобы значение вывода блока могло инициировать сброс блока

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

Определение начальных условий

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

  • Чтобы определить начальные условия как параметр блока, задайте параметр Initial condition source как internal и введите значение в поле Начальное условие.

  • Для предоставления исходных условий из внешнего источника укажите параметр Initial condition source как external. Под входом блока появляется дополнительный входной порт.

    Примечание

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

Ограничение интеграла

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

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

  • Когда интеграл находится между нижним пределом насыщения и верхним пределом насыщения, выход является интегралом.

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

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

Сигнал имеет одно из трех значений:

  • 1 указывает, что применяется верхний предел.

  • 0 указывает, что интеграл не ограничен.

  • -1 указывает, что применяется нижний предел.

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

Примечание

Для блока Integrator Limited по умолчанию выбран параметр Limit output, верхний предел насыщения - 1, а для параметра Нижний предел насыщения установлено значение 0.

Циклические состояния обертки

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

Моделирование этих явлений в Simulink включает интегрирование скорости изменения периодических или циклических сигналов для получения состояния движения.

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

Один из подходов для преодоления этого недостатка заключается в сбросе углового состояния до 0 когда он достигает 2λ (или -λ, когда он достигает λ, для числовой симметрии). Этот подход повышает точность вычислений синусов и косинусов и уменьшает время уменьшения угла. Но это также требует обнаружения пересечения нуля и вводит сброс решателя, что замедляет моделирование для решателей с переменным шагом, особенно в больших моделях.

Чтобы исключить сброс решателя в точках наложения, блок Integrator поддерживает состояния переноса, которые можно включить, установив флажок Состояние переноса (Wrap state) в диалоговом окне параметров блока. При включении состояния обтекания значок блока изменяется, указывая, что блок имеет состояния обтекания.

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

y={xx∈[xl,xu) x (xu xl) x−xlxu−xl⌋otherwise

где:

  • x1 - меньшее значение обернутого состояния.

  • xu - верхнее значение обернутого состояния.

  • y - выходной сигнал.

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

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

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

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

  • Она повышает точность и производительность решателя и обеспечивает неограниченное время моделирования.

Сброс состояния

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

  • Выбрать 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). Указанное значение используется для вычисления всех выходных данных блока.

Выбор всех параметров

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

Порты

Блок интегратора принимает и выводит сигналы типа double на своих портах данных. Внешний порт сброса принимает сигналы типа double или Boolean.

Вход

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

Сигнал, который должен быть интегрирован.

Типы данных: double

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

Зависимости

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

Типы данных: Boolean

Установка начального состояния блока по внешнему сигналу.

Зависимости

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

Типы данных: double

Продукция

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

Вывод интегрированного состояния.

Типы данных: double

Укажите, когда состояние ограничено. Сигнал имеет значение 1 если интеграл ограничен указанным верхним пределом насыщения. Когда сигнал ограничен нижним пределом насыщения, значение сигнала равно -1. Когда интеграл находится между пределами насыщения, значение сигнала равно 0. См. раздел Ограничение интеграла.

Типы данных: double

Вывод состояния блока. См. О государственном порту.

Зависимости

Включите этот порт, включив параметр Show state port.

Типы данных: double

Параметры

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

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

  • Выбрать rising сброс состояния при повышении сигнала сброса с отрицательного или нулевого значения до положительного.

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

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

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

  • Выбрать level hold сброс состояния при ненулевом сигнале сброса на текущем шаге времени.

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

Параметр блока: ExternalReset
Тип: символьный вектор, строка
Значения: 'none' | 'rising' | 'falling' | 'either' | 'level' | 'level hold'
По умолчанию: 'none'

Выберите источник исходного состояния:

  • internal - Получение начальных условий состояний из параметра Initial condition block.

  • external - Получение исходных условий состояний из внешнего блока через входной порт IC.

Зависимости

Выбор internal включает параметр Initial condition.

Выбор external отключает параметр Initial condition и активизирует входной порт IC.

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

Параметр блока: InitialConditionSource
Тип: символьный вектор, строка
Значения: 'internal' | 'external'
По умолчанию: 'internal'

Установка начального состояния блока интегратора.

Совет

Программное обеспечение Simulink не позволяет исходному состоянию этого блока быть inf или NaN.

Зависимости

Установка для исходного источника условий значения internal включает этот параметр.

Установка для исходного источника условий значения external отключает этот параметр.

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

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

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

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

  • Снятие этого флажка не ограничивает выходные значения блока.

Зависимости

При выборе этого параметра включаются параметры Нижний предел насыщения и Верхний предел насыщения.

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

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

Укажите верхний предел для интеграла как скаляр, вектор или матрицу. Необходимо указать значение между значениями параметра Минимум вывода (Output minimum) и Максимум вывода (Output maximum).

Зависимости

Чтобы включить этот параметр, установите флажок Предельный вывод (Limit output).

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

Параметр блока: UpperSaturationLimit
Тип: символьный вектор, строка
Значения: скаляр | вектор | матрица
По умолчанию: 'inf'

Укажите нижний предел для интеграла как скаляр, вектор или матрицу. Необходимо указать значение между значениями параметра Минимум вывода (Output minimum) и Максимум вывода (Output maximum).

Зависимости

Чтобы включить этот параметр, установите флажок Предельный вывод (Limit output).

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

Параметр блока: LowerSaturationLimit
Тип: символьный вектор, строка
Значения: скаляр | вектор | матрица
По умолчанию: '-inf'

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

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

Зависимости

При выборе этого параметра включаются параметры верхнего значения состояния оболочки и нижнего значения состояния оболочки.

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

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

Верхний предел вывода блока.

Зависимости

Выбор состояния обтекания включает этот параметр.

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

Параметр блока: WrappedStateUpperValue
Тип: скаляр или вектор
Значения: '2*pi'
По умолчанию: 'pi'

Нижняя граница блочного выхода.

Зависимости

Выбор состояния обтекания включает этот параметр.

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

Параметр блока: WrappedStateLowerValue
Тип: скаляр или вектор
Значения: '0'
По умолчанию: '-pi'

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

Зависимости

При выборе этого параметра включается выходной порт насыщения.

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

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

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

Зависимости

При выборе этого параметра включается порт вывода состояния.

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

Параметр блока: ShowStatePort
Тип: символьный вектор, строка
Значения: 'off' | 'on'
По умолчанию: 'off'
  • При вводе auto или -1, то Simulink использует абсолютное значение допуска в диалоговом окне «Параметры конфигурации» (см. панель «Решатель») для вычисления состояний блоков.

  • При вводе вещественного скаляра это значение переопределяет абсолютный допуск в диалоговом окне «Параметры конфигурации» для вычисления всех состояний блока.

  • Если ввести действительный вектор, то размер этого вектора должен соответствовать размеру непрерывных состояний в блоке. Эти значения переопределяют абсолютный допуск в диалоговом окне Параметры конфигурации (Configuration Parameters).

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

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

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

Совет

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

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

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

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

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

Параметр блока: ZeroCross
Тип: символьный вектор, строка
Значения: 'off' | 'on'
По умолчанию: 'on'
  • Чтобы назначить имя одному состоянию, введите имя между кавычками, например: 'velocity'.

  • Чтобы назначить имена нескольким состояниям, введите список с разделителями-запятыми, окруженный фигурными скобками, например: {'a', 'b', 'c'}. Каждое имя должно быть уникальным.

  • Имена состояний применяются только к выбранному блоку.

  • Число состояний должно равномерно делиться между числом имен состояний.

  • Можно указать меньше имен, чем состояний, но нельзя указать больше имен, чем состояний.

    Например, можно указать два имени в системе с четырьмя состояниями. Первое имя относится к первым двум состояниям, а второе - к последним двум состояниям.

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

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

Параметр блока: ContinuousStateAttributes
Тип: символьный вектор, строка
Значения: ' ' | определяемый пользователем
По умолчанию: ' '

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

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

Типы данных

double

Прямой проход

yes

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

no

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

no

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

yes

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

.
Представлен до R2006a