Check Custom Bounds

Проверяйте, что сигнал модели удовлетворяет границам в процессе моделирования

  • Библиотека:
  • Simulink Design Optimization / Model Verification

    Simulink Design Optimization / Ограничения Сигнала

  • Check Custom Bounds block

Описание

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

  • Если сигнал удовлетворяет всем границам, блок ничего не делает.

  • Если сигнал не удовлетворяет связанному, предупреждающее сообщение появляется в MATLAB® командное окно. Можно также указать что блок:

    • Выполните выражение MATLAB.

    • Остановите симуляцию и возвратите сообщение об ошибке.

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

  • Если сигнал удовлетворяет всем границам, сигнал утверждения верен (1).

  • Если сигнал не удовлетворяет связанному, сигнал утверждения является ложным (0).

Используя блок, можно создать:

  • Сингл связан с одним ребром

  • Сингл связан с несколькими ребрами

  • Несколько границ

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

Этот блок и другие блоки в тесте библиотеки Model Verification, что сигнал остается в заданных границах характеристики временного интервала. Когда модель не нарушает никого связанного, можно отключить блок путем очистки опции утверждения. Если вы изменяете модель, можно повторно позволить утверждению гарантировать, что изменения не заставляют модель нарушать связанное.

Если сигнал не удовлетворяет границам, можно оптимизировать параметры модели, чтобы удовлетворить границам. Если у вас есть Simulink® Программное обеспечение Control Design™, можно добавить границы частотного диапазона, такие как Предвещать величина, и оптимизировать ответ модели, чтобы удовлетворить и временному интервалу и требованиям частотного диапазона.

Блок может использоваться во всех режимах симуляции для контроля сигналов, но только в Normal или Accelerator режим симуляции для оптимизации ответа.

Порты

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

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

Сигнал проверять по верхним и нижним границам, заданным в Amplitudes и Times в процессе моделирования.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | enumerated | bus

Вывод

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

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

  • Верный (1) если утверждение успешно выполняется, то есть, сигнал удовлетворяет всем границам

  • Ложь (0) если утверждение перестало работать, то есть, сигнал нарушает связанное

Тип данных выходного сигнала является двойным по умолчанию. Чтобы установить тип выходных данных как Boolean для всех блоков, которые генерируют логические сигналы в вашей модели Simulink, выберите Implement logic signals as Boolean data in Configuration Parameters.

Зависимости

Чтобы включить этот порт, на вкладке Assertion, выбирают параметр Output assertion signal.

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

Параметры

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

Используйте график просмотреть следующее.

  • Характеристики системы и сигналы, вычисленные в процессе моделирования — Нажимают эту кнопку, прежде чем вы симулируете модель, чтобы просмотреть характеристики системы или сигнал.

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

  • Границы — можно задать границы на вкладке Bounds или путем щелчка правой кнопкой по графику и выбора Bounds> New Bound.

    Можно изменить границы путем перетаскивания ограниченного сегмента или путем щелчка правой кнопкой по графику и выбора Bounds> Edit Bound. Прежде чем вы симулируете модель, нажмите Update Block, чтобы обновить связанное значение в параметрах блоков.

Типичные задачи, которые вы выполняете в окне графика, включают:

  • Открытие диалогового окна Block Parameters путем нажатияOpen block parameters dialog icon или выбора Edit.

  • Нахождение блока, которому окно графика соответствует путем нажатияHighlight block icon или выбора View> Highlight Simulink Block. Это действие делает окно модели активным и подсвечивает блок.

  • Симуляция модели путем нажатияRun icon. Это действие также линеаризует фрагмент модели между заданным вводом и выводом линеаризации.

  • Добавление легенды на графике характеристики линейной системы путем нажатияInsert legend icon.

Откройте окно графика вместо параметров блоков, когда вы дважды кликнете блок в модели Simulink.

Используйте этот параметр, если вы предпочитаете открывать и выполнять задачи, такие как добавление или изменение границ, в окне графика вместо параметров блоков. Если вы хотите получить доступ к параметрам блоков из окна графика, выберите Edit или нажатие кнопкиOpen block parameters dialog icon.

Для получения дополнительной информации о графике смотрите параметр Show plot.

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

Параметр: LaunchViewOnOpen
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Вкладка границ

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

Границы также появляются на графике временной зависимости.

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

Чтобы просмотреть только границы и входной сигнал на графике, очистите Enable assertion.

Зависимости

Чтобы использовать этот параметр, на вкладке Assertion, выбирают Enable assertion. Если вы очищаете Enable assertion, программное обеспечение не использует границы для утверждения, но они продолжают появляться на графике.

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

Параметр: EnableUpperBound
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'on'

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

Задайте соответствующие амплитудные значения в Amplitudes.

  • Чтобы задать сингл, связанный с одним ребром, используйте двухэлементный вектор. Вектор должен иметь форму [Tstart Tend], где Tstart и Tend являются положительными конечными числами с Tstart <Tend.

    Например, чтобы создать одну верхнюю границу с амплитудой 1,2 во временном интервале от 0 до 10 секунд, задайте [0 10] для Times и [1.2 1.2] для Amplitudes.

  • Чтобы задать сингл, связанный с несколькими ребрами, используйте матрицу 2D столбца. Матрица должна иметь форму [T1 T2 ; T2 T3; …; Tn Tn+1], где n является количеством ребер в связанном. Сингл, связанный с несколькими ребрами, является кусочно-непрерывным, поэтому задайте временные интервалы, таким образом, что следующее ребро начинается одновременно, где предыдущее ребро заканчивается.

    Например, чтобы создать сингл, связанный с двумя ребрами во времена 0–5 и 5–10 секунд с амплитудами 1,2 и 1, соответственно, задают [0 5;5 10] для Times и [1.2 1.2;1 1] для Amplitudes.

  • Чтобы задать несколько границ, используйте массив ячеек двухэлементных векторов, матриц 2D столбца или обоих. Таким образом, используйте массив ячеек нескольких одной границ.

    Например, чтобы создать две границы во времена 0–4 и 6–10 секунд с амплитудами 1,2 и 1, соответственно, задают {[0 4] [6 10]} для Times и {[1.2 1.2] [1 1]} для Amplitudes.

Можно добавить или изменить времена начала и конца из окна графика.

  • Чтобы добавить новые временные векторы, щелкните правой кнопкой по желтой области по графику и выберите Edit. Нажмите Insert, чтобы добавить новую строку в Редактирование Связанное диалоговое окно. Задайте времена начала и конца нового ограниченного сегмента в столбце Time. Задайте соответствующие амплитуды в столбце Amplitude.

  • Чтобы изменить времена начала и конца, перетащите ограниченный сегмент. В качестве альтернативы щелкните правой кнопкой по сегменту и выберите Edit. Задайте новые времена в столбце Time.

    Нажмите Update Block прежде, чем симулировать модель.

Чтобы проверять, что входной сигнал удовлетворяет амплитудам, которые соответствуют временным векторам верхней границы, выберите Include upper bound in assertion и Enable assertion.

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

Параметр: UpperBoundTimes
Ввод: символьный вектор
Значение: двухэлементный вектор | матрица 2D столбца | массив ячеек
Значение по умолчанию: [0 5; 5 10]

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

Задайте соответствующие времена начала и конца в Times.

  • Чтобы задать сингл, связанный с одним ребром, используйте двухэлементный вектор. Вектор должен иметь форму [A1 A2], где A1 и A2 являются связанными амплитудами в соответствующих ребрах временного вектора. Для постоянной амплитуды во временном интервале используйте A1 = A2.

    Например, чтобы создать одну верхнюю границу с амплитудой 1,2 во временном интервале от 0 до 10 секунд, задайте [0 10] для Times и [1.2 1.2] для Amplitudes.

  • Чтобы задать сингл, связанный с несколькими ребрами, используйте матрицу 2D столбца. Матрица должна иметь форму [A1 B1; …; An Bn], где n является количеством ребер в связанном. Для постоянной амплитуды во временном интервале используйте Ak = Bk, где k = 1, …, n

    Например, чтобы создать сингл, связанный с двумя ребрами во времена 0–5 и 5–10 секунд с амплитудами 1,2 и 1, соответственно, задают [0 5;5 10] для Times и [1.2 1.2;1 1] для Amplitudes.

  • Чтобы задать несколько границ, используйте массив ячеек двухэлементных векторов, матриц 2D столбца или обоих. Таким образом, используйте массив ячеек нескольких одной границ.

    Например, чтобы создать две границы во времена 0–4 и 6–10 секунд с амплитудами 1,2 и 1, соответственно, задают {[0 4] [6 10]} для Times и {[1.2 1.2] [1 1]} для Amplitudes.

Можно добавить или изменить амплитуды из окна графика.

  • Чтобы добавить новые амплитуды, щелкните правой кнопкой по графику и выберите Edit. Нажмите Insert, чтобы добавить новую строку в Редактирование Связанное диалоговое окно. Задайте амплитуды начала и конца нового ограниченного сегмента в столбце Amplitude. Задайте соответствующие времена начала и конца в столбце Time.

  • Чтобы изменить амплитуды начала и конца, перетащите ограниченный сегмент. В качестве альтернативы щелкните правой кнопкой по сегменту и выберите Edit. Задайте новые амплитуды в столбце Amplitude.

    Нажмите Update Block прежде, чем симулировать модель.

Чтобы проверять, что входной сигнал удовлетворяет верхним амплитудным границам, выберите Include upper bound in assertion и Enable assertion.

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

Параметр: UpperBoundAmplitudes
Ввод: символьный вектор
Значение: двухэлементный вектор | матрица 2D столбца | массив ячеек
Значение по умолчанию: [1.1 1.1; 1.01 1.01]

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

Границы также появляются на графике временной зависимости.

Когда этот параметр отключен, нижние границы отключены, и программное обеспечение прекращает проверять, что границам удовлетворяют в процессе моделирования. Ограниченные сегменты также greyed на графике.

Чтобы просмотреть только границы и входной сигнал на графике, очистите Enable assertion.

Зависимости

Чтобы использовать этот параметр, на вкладке Assertion, выбирают Enable assertion. Если вы очищаете Enable assertion, программное обеспечение не использует границы для утверждения, но они продолжают появляться на графике.

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

Параметр: EnableLowerBound
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

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

Задайте соответствующие амплитудные значения в Amplitudes.

  • Чтобы задать сингл, связанный с одним ребром, используйте двухэлементный вектор. Вектор должен иметь форму [Tstart Tend], где Tstart и Tend являются положительными конечными числами с Tstart <Tend.

    Например, чтобы создать одну нижнюю границу с амплитудой 0,8 во временном интервале от 0 до 10 секунд, задайте [0 10] для Times и [0.8 0.8] для Amplitudes.

  • Чтобы задать сингл, связанный с несколькими ребрами, используйте матрицу 2D столбца. Матрица должна иметь форму [T1 T2 ; T2 T3; …; Tn Tn+1], где n является количеством ребер в связанном. Сингл, связанный с несколькими ребрами, является кусочно-непрерывным, задайте временные интервалы, таким образом, что следующее ребро начинается одновременно, где предыдущее ребро заканчивается.

    Например, чтобы создать сингл, связанный с двумя ребрами во времена 0–5 и 5–10 секунд с амплитудами 0,8 и 0.98, соответственно, задают [0 5;5 10] для Times и [0.8 0.8;0.98 0.98] для Amplitudes.

  • Чтобы задать несколько границ, используйте массив ячеек двухэлементных векторов, матриц 2D столбца или обоих. Таким образом, используйте массив ячеек нескольких одной границ.

    Например, чтобы создать две границы во времена 0–4 и 6–10 секунд с амплитудами 0,8 и 0.98, соответственно, задают {[0 4] [6 10]} для Times и {[0.8 0.8] [0.98 0.98]} для Amplitudes.

Можно добавить или изменить времена начала и конца из окна графика.

  • Чтобы добавить новые временные векторы, щелкните правой кнопкой по желтой области по графику и выберите Edit. Нажмите Insert, чтобы добавить новую строку в Редактирование Связанное диалоговое окно. Задайте времена начала и конца нового ограниченного сегмента в столбце Time. Задайте соответствующие амплитуды в столбце Amplitude.

  • Чтобы изменить времена начала и конца, перетащите ограниченный сегмент. В качестве альтернативы щелкните правой кнопкой по сегменту и выберите Edit. Задайте новые времена в столбце Time.

    Нажмите Update Block прежде, чем симулировать модель.

Чтобы проверять, что входной сигнал удовлетворяет амплитудам, которые соответствуют временным векторам нижней границы, выберите Include lower bound in assertion и Enable assertion.

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

Параметр: LowerBoundTimes
Ввод: символьный вектор
Значение: двухэлементный вектор | матрица 2D столбца | массив ячеек
Значение по умолчанию: []

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

Задайте соответствующие времена начала и конца в Times.

  • Чтобы задать сингл, связанный с одним ребром, используйте двухэлементный вектор. Вектор должен иметь форму [A1 A2], где A1 и A2 являются связанными амплитудами в соответствующих ребрах временного вектора. Для постоянной амплитуды во временном интервале используйте A1 = A2.

    Например, чтобы создать одну нижнюю границу с амплитудой 0,8 во временном интервале от 0 до 10 секунд, задайте [0 10] для Times и [0.8 0.8] для Amplitudes.

  • Чтобы задать сингл, связанный с несколькими ребрами, используйте матрицу 2D столбца. Матрица должна иметь форму [A1 B1; …; An Bn], где n является количеством ребер в связанном. Для постоянной амплитуды во временном интервале используйте Ak = Bk, где k = 1, …, n

    Например, чтобы создать сингл, связанный с двумя ребрами во времена 0–5 и 5–10 секунд с амплитудами 0,8 и 0.98, соответственно, задают [0 5;5 10] для Times и [0.8 0.8;0.98 0.98] для Amplitudes.

  • Чтобы задать несколько границ, используйте массив ячеек двухэлементных векторов, матриц 2D столбца или обоих. Таким образом, используйте массив ячеек нескольких одной границ.

    Например, чтобы создать две границы во времена 0–4 и 6–10 секунд с амплитудами 0,8 и 0.98, соответственно, задают {[0 4] [6 10]} для Times и {[0.8 0.8] [0.98 0.98]} для Amplitudes.

Можно добавить или изменить амплитуды из окна графика.

  • Чтобы добавить новые амплитуды, щелкните правой кнопкой по графику и выберите Edit. Нажмите Insert, чтобы добавить новую строку в Редактирование Связанное диалоговое окно. Задайте амплитуды начала и конца нового ограниченного сегмента в столбце Amplitude. Задайте соответствующие времена начала и конца в столбце Time.

  • Чтобы изменить амплитуды начала и конца, перетащите ограниченный сегмент. В качестве альтернативы щелкните правой кнопкой по сегменту и выберите Edit. Задайте новые амплитуды в столбце Amplitude.

    Нажмите Update Block прежде, чем симулировать модель.

Чтобы проверять, что входной сигнал удовлетворяет более низким амплитудным границам, выберите Include lower bound in assertion и Enable assertion.

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

Параметр: LowerBoundAmplitudes
Ввод: символьный вектор
Значение: двухэлементный вектор | матрица 2D столбца | массив ячеек
Значение по умолчанию: []

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

Для получения дополнительной информации смотрите Обнаружение Пересечения нулем.

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

Параметр: ZeroCross
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'on'

Вкладка утверждения

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

Если утверждение перестало работать, можно опционально указать что блок:

  • Выполните выражение MATLAB, заданное в Simulation callback when assertion fails (optional).

  • Остановите симуляцию и возвратите сообщение об ошибке путем выбора Stop simulation when assertion fails.

Этот параметр не оказывает влияния, если вы не задаете границ.

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

Crossed out block icon

В модели Simulink, в Параметрах конфигурации, параметр Model Verification block enabling позволяет вам включить или отключить все блоки верификации модели в модели, независимо от установки этой опции в блоке.

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

Параметр: enabled
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'on'

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

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

Зависимости

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

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

Параметр: callback
Ввод: символьный вектор
Значение: Выражение MATLAB
Значение по умолчанию: ''

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

Если при запуске симуляцию от окна модели Simulink, окно Simulation Diagnostics открывается, чтобы отобразить сообщение об ошибке. Блок, где связанное нарушение происходит, подсвечен в модели.

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

Зависимости

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

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

Параметр: stopWhenAssertionFail
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Выведите булев сигнал, который, на каждом временном шаге:

  • Верный (1) если утверждение успешно выполняется, то есть, входной сигнал удовлетворяет всем границам

  • Ложь (0) если утверждение перестало работать, то есть, входной сигнал нарушает связанное

Тип данных выходного сигнала является двойным по умолчанию. Чтобы установить тип выходных данных как Boolean для всех блоков, которые генерируют логические сигналы в вашей модели Simulink, выберите сигналы логики Implement как булевы данные в Параметрах конфигурации.

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

Используйте этот параметр, чтобы спроектировать комплексную логику утверждения. Для примера смотрите, Проверяют Модель Используя Simulink Control Design и Блоки Верификации Simulink (Simulink Control Design).

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

Параметр: export
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

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

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

Представленный в R2011b