Integrator Limited

Интегрируйте сигнал

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

Описание

Блок Integrator Limited идентичен блоку Integrator за исключением того, что вывод блока ограничивается на основе верхних и более низких пределов насыщенности. Смотрите Ограничение Интеграла для деталей.

Simulink® обрабатывает блок Integrator как динамическую систему с одним состоянием. Блочными движущими силами дают:

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

где:

  • u является блочным входным параметром.

  • y является блоком вывод.

  • x является блочным состоянием.

  • x0 является начальным условием x.

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

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

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

  • Задайте верхний и нижние пределы на интеграле

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

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

Используйте блок Discrete-Time Integrator, чтобы создать чисто дискретную систему.

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

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

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

  • Чтобы обеспечить начальные условия из внешнего источника, задайте Начальный исходный параметр условия как external. Дополнительный входной порт появляется под блочным входным параметром.

    Примечание

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

Перенос циклических состояний

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

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

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

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

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

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

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

где:

  • xl является нижним значением перенесенного состояния.

  • xu является верхним значением перенесенного состояния.

  • y является вывод.

Поддержка переноса состояний обеспечивает эти преимущества.

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

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

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

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

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

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

  • Когда интеграл меньше чем или равен Более низкому пределу насыщенности, вывод сохранен в Более низком пределе насыщенности.

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

Порт сброса имеет прямое сквозное соединение. Если блок вывод возвращается в этот порт, или непосредственно или через серию блоков с прямым сквозным соединением, алгебраический цикл заканчивается (см. Алгебраические Циклы). Используйте порт блока Integrator состояния, чтобы возвратить вывод блока, не создавая алгебраический цикл.

Примечание

Чтобы быть совместимой со стандартом программного обеспечения Motor Industry Software Reliability Association (MISRA®), ваша модель должна использовать булевы сигналы управлять внешними портами сброса блоков Интегратора.

О порте состояния

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

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

  • Самосброс интеграторов (см., что Создание Самосбрасывает Интеграторы),

  • Передача состояния от одной активированной подсистемы до другого (см. Передачу состояний Между Enabled Подсистемами),

    Примечание

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

Создание интеграторов самосброса

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

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

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

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

Передача состояний между Enabled подсистемами

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

Активированные подсистемы, A и B, содержат следующие блоки:

Подсистема AПодсистема B

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

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

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

Активированные подсистемы, A и B, содержат следующие блоки:

Подсистема AПодсистема B

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

Определение абсолютного допуска к блоку Выходные параметры

Simulink по умолчанию программное обеспечение использует абсолютное значение допуска, заданное в диалоговом окне Configuration Parameters (см. Ошибочные Допуски к Решателям Переменного Шага) вычислить вывод блока Integrator. Если это значение не обеспечивает достаточный контроль ошибок, задайте больше соответствующего значения в Абсолютном поле допуска диалогового окна блока Integrator. Значение, которое вы задаете, используется, чтобы вычислить весь блок выходные параметры.

Выбор всех опций

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

Порты

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

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

Предупредите что потребности быть интегрированными.

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

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

Зависимости

Чтобы включить этот порт, включите Внешний параметр Сброса.

Типы данных: Булевская переменная

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

Зависимости

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

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

Вывод

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

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

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

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

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

Выведите состояние блока. Займитесь Портом состояния.

Зависимости

Включите этот порт путем включения параметра порта Состояния показа.

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

Параметры

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

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

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

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

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

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

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

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

Блочный параметр: ExternalReset
Ввод: вектор символа, строка
Значения: 'ни один' | 'повышающийся' | 'падающий' | 'любой' | 'уровень' | 'уровень не содержит'
Значение по умолчанию: 'none'

Выберите источник начального условия:

  • internal — Получите начальные условия состояний от Начального блочного параметра условия.

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

Зависимости

Выбор internal включает Начальный параметр условия.

Выбор external отключает Начальный параметр условия и включает входной порт IC.

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

Блочный параметр: InitialConditionSource
Ввод: вектор символа, строка
Значения: 'внутренний' | 'внешний'
Значение по умолчанию: 'internal'

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

Советы

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

Зависимости

Установка Начального источника условия к internal включает этот параметр.

Установка Начального источника условия к external отключает этот параметр.

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

Блочный параметр: InitialCondition
Ввод: скаляр или вектор
Значение по умолчанию: '0'

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

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

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

Зависимости

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

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

Блочный параметр: LimitOutput
Ввод: вектор символа, строка
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

Зависимости

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

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

Блочный параметр: UpperSaturationLimit
Ввод: вектор символа, строка
Значения: скаляр | вектор | матрица
Значение по умолчанию: Inf

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

Зависимости

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

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

Блочный параметр: LowerSaturationLimit
Ввод: вектор символа, строка
Значения: скаляр | вектор | матрица
Значение по умолчанию: Inf

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

Если вы задаете Перенесенное верхнее значение состояния как inf и Перенесенное нижнее значение состояния как -inf, перенос не происходит.

Зависимости

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

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

Блочный параметр: WrapState
Ввод: вектор символа, строка
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

Зависимости

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

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

Блочный параметр: WrappedStateUpperValue
Ввод: скаляр или вектор
Значения: '2*pi'
Значение по умолчанию: \Pi

Нижний предел блока выводится.

Зависимости

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

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

Блочный параметр: WrappedStateLowerValue
Ввод: скаляр или вектор
Значения: '0'
Значение по умолчанию: \Pi

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

Зависимости

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

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

Блочный параметр: ShowSaturationPort
Ввод: вектор символа, строка
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

Зависимости

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

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

Блочный параметр: ShowStatePort
Ввод: вектор символа, строка
Значения: 'off' | 'on'
Значение по умолчанию: 'off'
  • Если вы вводите auto или –1, то Симулинк использует абсолютное значение допуска в диалоговом окне Configuration Parameters (см. Панель Решателя) вычислить блочные состояния.

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

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

Была ли эта тема полезной?