Check Custom Bounds

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

  • Библиотека:
  • Оптимизация проекта Simulink/верификация модели

    Оптимизация проекта Simulink/Ограничения сигнала

  • Check Custom Bounds block

Описание

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

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

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

    • Вычислите выражение MATLAB.

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

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

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

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

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

  • Одна граница с одним ребром

  • Одна граница с несколькими ребрами

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

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

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

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

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

Порты

Вход

расширить все

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

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

Выход

расширить все

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

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

  • Ложный (0) если утверждение прекращает работать, то есть сигнал нарушает ограничение

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

Зависимости

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

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

Параметры

расширить все

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

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

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

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

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

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

  • Для открытия диалогового окна Параметров блоков щелкнитеOpen block parameters dialog icon или выберите Edit.

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

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

  • Добавление легенды на график характеристики линейной системы щелчком мыши.Insert legend icon

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

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

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

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

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

Откройте Response Optimizer, чтобы оптимизировать реакцию модели проекта чтобы соответствовать требованиям, заданным на вкладке Bounds.

См. также

Вкладка Границы

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

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

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

Чтобы просмотреть только границы и входной сигнал на графике, очистите 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.

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

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

    Для примера, чтобы создать две границы во времени 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
Тип: Вектор символов
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек
По умолчанию: [0 5; 5 10]

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

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

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

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

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

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

    Для примера, чтобы создать две границы во времени 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
Тип: Вектор символов
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек
По умолчанию: [1.1 1.1; 1.01 1.01]

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

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

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

Чтобы просмотреть только границы и входной сигнал на графике, очистите 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.

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

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

    Для примера, создать две границы в моменты времени 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
Тип: Вектор символов
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек
По умолчанию: []

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

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

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

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

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

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

    Для примера, создать две границы в моменты времени 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
Тип: Вектор символов
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек
По умолчанию: []

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

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

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

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

Вкладка Значения

Включите блок, чтобы проверить, что ограничения, заданные и включенные для утверждения на вкладке Bounds, выполняются во время симуляции. Ошибка проверки типа «assertion», если граница не удовлетворена. Предупреждение, сообщающее о отказе утверждения, появляется в подсказку 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, выполняемое в случае непрохождения проверки типа «assertion».

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

Зависимости

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

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

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

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

.
Введенный в R2011b