Интегрирование входного сигнала второго порядка
Simulink/Непрерывный
Блок Second-Order Integrator и блок Second-Order Integrator Limited решают задачу начального значения второго порядка:
где u - вход в систему. Поэтому блок является динамической системой с двумя непрерывными состояниями: x и dx/dt.
Примечание
Эти два состояния имеют математическую связь, а именно, что dx/dt является производной x. Чтобы удовлетворить этой зависимости на протяжении всей симуляции, Simulink накладывает различные ограничения на параметры и поведение блоков.
Блок Second-Order Integrator Limited идентичен блоку Second-Order Integrator за исключением того, что он по умолчанию ограничивает состояния на основе заданных верхнего и нижнего пределов. Для получения дополнительной информации см. раздел «Ограничение государств».
Simulink® программное обеспечение может использовать несколько различных методов численного интегрирования, чтобы вычислить выходы блока. Каждый имеет преимущества для конкретных применений. Используйте панель Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters), чтобы выбрать метод, наиболее подходящий для вашего приложения. (Для получения дополнительной информации см. «Критерии выбора решателя».) Выбранный решатель вычисляет состояния блока Second-Order Integrator на текущем временном шаге, используя текущее входное значение .
Используйте диалоговое окно параметров блоков, чтобы:
Укажите, является ли источник каждого начального условия состояния внутренним или внешним
Задайте значение для начальных условий состояния
Задайте верхний и нижний пределы одного или обоих состояний
Задайте абсолютные погрешности для каждого состояния
Задайте имена для обоих состояний
Выберите внешнее условие сброса
Включите обнаружение пересечения нулем
Повторно инициализируйте dx/dt, когда x достигает насыщения
Укажите, что Simulink игнорирует пределы состояния и внешний сброс для операций линеаризации
Можно задать начальные условия каждого состояния по отдельности как параметр в диалоговом окне блока или ввести один или оба из них из внешнего сигнала.
Чтобы определить начальные условия x состояния как параметры блоков, используйте раскрывающееся меню Initial condition source x, чтобы выбрать internal
и введите значение в поле Initial condition x.
Чтобы предоставить начальные условия от внешнего источника для x состояний, задайте параметр Initial condition source x следующим external
. На блоке появляется дополнительный входной порт.
Чтобы определить начальные условия dx/dt состояния как параметры блоков, используйте раскрывающееся меню Initial condition source dx/dt, чтобы выбрать internal
и введите значение в поле Initial condition dx/dt.
Чтобы предоставить начальные условия от внешнего источника для dx/dt состояний, задайте Initial condition source dx/dt как external
. На блоке появляется дополнительный входной порт.
Если вы принимаете решение использовать внешний источник для обоих начальных условий состояния, ваш блок появляется следующим образом.
Примечание
Simulink не допускает начальных значений условия inf
или NaN
.
Если вы ограничиваете x состояний или dx/dt состояний путем определения пределов насыщения (см. «Ограничение состояний»), и одно или несколько начальных условий находятся вне соответствующих пределов, то соответствующие состояния инициализируются до ближайшего допустимого значения и вычисляется набор допустимых начальных условий.
При моделировании системы второго порядка может потребоваться ограничить состояния блока. Например, движение поршня в цилиндре определяется Вторым Законом Ньютона и имеет ограничения на положение поршня (x). С помощью блока Second-Order Integrator можно ограничить состояния x и dx/dt независимыми друг от друга. Можно даже изменить пределы во время симуляции; однако невозможно изменить, ограничены ли состояния. Важным правилом является то, что верхний предел должен быть строго больше, чем соответствующий нижний предел.
Внешний вид блока меняется, когда вы ограничиваете одно или оба состояния. Когда оба состояния ограничены, блок появляется следующим образом.
Для каждого состояния можно использовать диалоговое окно параметров блоков, чтобы задать соответствующие пределы насыщения.
Если вы используете блок Second-Order Integrator Limited, оба состояния по умолчанию ограничены. Но можно также вручную ограничить x состояния на блоке Second-Order Integrator, выбрав Limit x и введя пределы в соответствующие поля параметра.
Затем блок определяет значения состояний следующим образом:
Когда x меньше или равно своему нижнему пределу, значение x удерживается на своем нижнем пределе и dx/dt устанавливается на нуль.
Когда x находится между его нижним и верхним пределами, оба состояния следуют траектории, заданной ОДУ второго порядка.
Когда x больше или равно своему верхнему пределу, значение x удерживается на своем верхнем пределе, и dx/dt устанавливается на нуль.
Можно принять решение повторно инициализировать dx/dt к новому значению в то время, когда x достигает насыщения. См. «Повторная инициализация dx/dt, когда x достигает насыщения».
Как и в случае x состояния, dx/dt состояния по умолчанию задается как ограниченное на панели dx/dt диалогового окна Second-Order Integrator Limited блока. Можно вручную задать этот параметр, Limit dx/dt, на блоке Second-Order Integrator. В любом случае необходимо ввести соответствующие пределы для dx/dt.
Если вы ограничиваете только dx/dt состояния, то блок определяет значения dx/dt следующим образом:
Когда dx/dt меньше или равно своему нижнему пределу, значение dx/dt удерживается на своем нижнем пределе.
Когда dx/dt находится между его нижним и верхним пределами, оба состояния следуют траектории, заданной ОДУ второго порядка.
Когда dx/dt больше или равно своему верхнему пределу, значение dx/dt удерживается на своем верхнем пределе.
Когда dx/dt состояния удерживается на его верхнем или нижнем пределе, значение x управляется задачей начального значения первого порядка:
где L dx/dt, предел (верхний или ниже), <reservedrangesplaceholder5> <reservedrangesplaceholder4> является временем, когда dx/dt достигает этого предела, и <reservedrangesplaceholder2> <reservedrangesplaceholder1> - значение состояния x в то время.
Когда вы ограничиваете оба состояния, Simulink поддерживает математическую согласованность состояний, ограничивая допустимые значения верхнего и нижнего пределов для dx/dt. Такие ограничения необходимы для удовлетворения следующих ограничений:
Когда x находится на своих пределах насыщения, значение dx/dt должно быть нулем.
В порядок, чтобы x покинули верхний предел, значение dx/dt должно быть строго отрицательным.
В порядок, чтобы x покинули его нижний предел, значение dx/dt должно быть строго положительным.
В таких случаях верхний предел dx/dt должен быть строго положительным, а нижний предел dx/dt - строго отрицательным.
Когда оба состояния ограничены, блок определяет состояния следующим образом:
Всякий раз, когда x достигает своих пределов, полученное поведение такое же, как описано в «Ограничении только x».
Всякий раз, когда dx/dt достигает одного из своих пределов, полученное поведение такое же, как описано в «Limiting dx/dt only» - включая расчет x с помощью ОДУ первого порядка, когда dx/dt удерживается на одном из своих пределов. В таких случаях, когда x достигает одного из своих пределов, он удерживается на этом пределе и dx/dt устанавливается на нуль.
Всякий раз, когда оба достигают своих соответствующих пределов одновременно, состояние x поведение переопределяет dx/dt поведение, чтобы поддерживать согласованность состояний.
Когда вы ограничиваете оба состояния, можно принять решение повторно инициализировать dx/dt в то время, когда x состояния достигает насыщения. Если повторно инициализированное значение выходит за заданные пределы dx/dt, то dx/dt инициализируется повторно до ближайшего допустимого значения и вычисляется последовательный набор начальных условий. См. Повторную инициализацию dx/dt, когда x достигает насыщения
Блок может сбросить свои состояния к заданным начальным условиям на основе внешнего сигнала. Чтобы вызвать сброс состояния блока, выберите один из External reset вариантов на панели Attributes. Порт триггера появляется на блоке ниже его входного порта и указывает тип триггера.
Выберите rising
сброс состояний, когда сигнал сброса повышается с нуля до положительного значения, с отрицательного на положительное значение или отрицательное значение до нуля.
Выберите falling
сброс состояний, когда сигнал сброса падает с положительного значения на ноль, с положительного на отрицательное значение или с нуля на отрицательное.
Выберите either
чтобы сбросить состояния, когда сигнал сброса изменяется с нуля на ненулевое значение или изменяет знак.
Порт сброса имеет прямое сквозное соединение. Если выход блока поступает обратно в этот порт, либо непосредственно, либо через серию блоков с прямыми сквозными соединениями, получается алгебраический цикл (см. Концепции Алгебраического Цикла).
Этот параметр контролирует, включено ли обнаружение пересечения нулем для этого блока. По умолчанию параметр Enable zero-crossing detection выбирается на панели Attributes. Однако этот параметр находится только в влиянии, если для Zero-crossing control на панели Solver диалогового окна Параметров конфигурации задано значение Use local settings
. Для получения дополнительной информации смотрите Обнаружение пересечения нулем.
Для некоторых приложений моделирования dx/dt должны быть повторно инициализированы, когда x состояния достигает своих пределов, порядок немедленно вытащить x из насыщения. Этого можно добиться, выбрав Reinitialize dx/dt when x reaches saturation на панели Attributes.
Если эта опция включена, то в момент, когда x достигает насыщения, Simulink проверяет, позволяет ли текущее значение dx/dt начального условия (параметра или сигнала) x состояние немедленно покинуть насыщение. Если это так, Simulink повторно инициализирует dx/dt состояния со значением начального условия (параметра или сигнала) в этот момент. Если нет, Simulink игнорирует этот параметр в текущий момент и устанавливает dx/dt в нуль, чтобы сделать состояния блока последовательными.
Этот параметр применяется только в то время, когда x действительно достигает предела насыщения. Он не применяется в любое будущее время, когда x содержится в насыщении.
Для получения дополнительной информации см. разделы по ограничению состояний. Для получения примера смотрите Симуляцию Прыгающего Мяча.
Для случаев, когда вы упрощаете модель путем ее линеаризации, можно иметь Simulink игнорировать пределы состояний и внешнего сброса, выбирая Ignore state limits and the reset for linearization.
По умолчанию Simulink использует значение абсолютной погрешности, заданное в диалоговом окне Параметров конфигурации (см. Допуски ошибок для Переменной-Шага Решателей), чтобы вычислить выход блоков интегратора. Если это значение не обеспечивает достаточное управление ошибками, задайте более подходящее значение для x состояния в поле Absolute tolerance x и для dx/dt состояния в Absolute tolerance dx/dt поле диалогового окна параметра. Simulink использует значения, которые вы задаете, чтобы вычислить значения состояния блока.
Вы можете управлять, отображать ли x или dx/dt выходной порт, используя ShowOutput
параметр. Можно отобразить один выходной порт или оба; однако необходимо выбрать хотя бы один.
Вы можете задать имя x состояний и dx/dt состояний, используя StateNameX
и StateNameDXDT
параметры. Однако необходимо задать имена для обоих имен или для них обоих; вы не можете задать имена только для x или просто dx/dt. Оба имени состояний должны иметь одинаковый тип и длину. Кроме того, количество имен должно равномерно делить количество состояний.
Когда вы выбираете все опции, значок блока выглядит следующим образом.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|