Проверяйте, что сигнал модели удовлетворяет границам во время симуляции
Оптимизация проекта Simulink/верификация модели
Оптимизация проекта Simulink/Ограничения сигнала
Проверяйте, что сигнал удовлетворяет заданным верхним и нижним границам во время симуляции.
Если сигнал удовлетворяет всем границам, блок ничего не делает.
Если сигнал не удовлетворяет границам, в MATLAB появляется предупреждающее сообщение® командное окно. Можно также задать, что блок:
Вычислите выражение MATLAB.
Остановите симуляцию и верните сообщение об ошибке.
Во время симуляции блок может также вернуть логический сигнал утверждения.
Если сигнал удовлетворяет всем границам, сигнал утверждения равен true (1
).
Если сигнал не удовлетворяет границе, сигнал утверждения является ложным (0
).
Используя блок, можно создать:
Одна граница с одним ребром
Одна граница с несколькими ребрами
Несколько границ
Можно добавить Check Custom Bounds блоки к нескольким сигналам, чтобы проверить, что они удовлетворяют границам. Можно также построить график границ временного графика, чтобы графически проверить, что сигнал удовлетворяет границам.
Этот блок и другие блоки в библиотеке Верификации модели проверяют, что сигнал остается в пределах заданных границ характеристики временной области. Когда модель не нарушает никаких ограничений, можно отключить блок, очистив опцию assertion. Если вы изменяете модель, можно повторно включить проверку типа «assertion», чтобы убедиться, что ваши изменения не заставляют модель нарушать границу.
Если сигнал не удовлетворяет границам, можно оптимизировать параметры модели, чтобы удовлетворить границам. Если у вас есть Simulink® Программное обеспечение Control Design™, можно добавить границы частотного диапазона, такие как величина Боде, и оптимизировать ответ модели, чтобы удовлетворить как требования временной области, так и требования частотного диапазона.
Блок может использоваться во всех режимах симуляции для контроля сигналов, но только в Normal
или Accelerator
режим симуляции для оптимизации отклика.
Port_1 (u)
- Сигнал для проверки на соответствие заданным границамСигнал для проверки на соответствие верхним и нижним границам, указанным в Amplitudes и Times во время симуляции.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
| bus
Port_1 (out)
- Выходной сигнал установления1
| 0
Выходной сигнал, указывающий, находится ли входной сигнал внутри границ заданного сигнала утверждения. На каждом временном шаге выход возвращается как один из следующих:
True (1
), если утверждение успешно, то есть сигнал удовлетворяет всем границам
Ложный (0
) если утверждение прекращает работать, то есть сигнал нарушает ограничение
Тип данных выходного сигнала по умолчанию двойной. Чтобы задать тип выходных данных как Boolean для всех блоков, которые генерируют логические сигналы в вашей модели Simulink, выберите Implement logic signals as Boolean data в Параметры Конфигурации.
Чтобы включить этот порт, на вкладке Assertion выберите параметр Output assertion signal.
Типы данных: Boolean
| double
Show Plot
- Открытие окна графикаbutton
Используйте график, чтобы просмотреть следующее.
Характеристики системы и сигналы, вычисленные во время симуляции - Нажмите эту кнопку, прежде чем моделировать модель, чтобы просмотреть характеристики системы или сигнал.
Можно отобразить дополнительные характеристики, такие как время максимальной чувствительности, щелкнув правой кнопкой мыши график и выбрав Characteristics.
Границы - можно задать границы на вкладке Bounds или щелчком правой кнопкой мыши на графике и выбором Bounds > New Bound.
Можно изменить границы путем перетаскивания связанного сегмента или щелчка правой кнопкой мыши по графику и выбора Bounds > Edit Bound. Прежде чем моделировать модель, нажмите Update Block, чтобы обновить связанное значение в параметрах блоков.
Типичные задачи, которые вы выполняете в окне вывода на график, включают:
Для открытия диалогового окна Параметров блоков щелкните или выберите Edit.
Найдите блок, которому соответствует окно вывода на график, нажав или выбрав View > Highlight Simulink Block. Это действие делает окно модели активным и подсвечивает блок.
Симуляция модели щелчком мыши. Это действие также линеаризирует фрагмент модели между заданным входом линеаризации и выходом.
Добавление легенды на график характеристики линейной системы щелчком мыши.
Show plot on block open
- Дважды кликните блок, чтобы открыть графикoff
(по умолчанию) | on
Откройте окно plot вместо параметров блоков, когда вы дважды кликнете блок в модели Simulink.
Используйте этот параметр, если вы предпочитаете открывать и выполнять задачи, такие как добавление или изменение границ, в окне plot вместо параметров блоков. Если вы хотите получить доступ к параметрам блоков из окна графика, выберите Edit или нажмите.
Для получения дополнительной информации о графике смотрите параметр Show plot.
Параметр:
LaunchViewOnOpen |
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off' |
Response Optimization
- Оптимизатор открытого откликаbutton
Откройте Response Optimizer, чтобы оптимизировать реакцию модели проекта чтобы соответствовать требованиям, заданным на вкладке Bounds.
Include upper bound in assertion
- Проверяйте, что сигнал удовлетворяет верхней границеon
(по умолчанию) | off
Проверяйте, что сигнал меньше или равен верхним границам, указанным в верхних границах Times и Amplitudes, во время симуляции. Программа отображает предупреждение, если сигнал нарушает верхние границы.
Границы также появляются на временном графике.
Когда вы отключаете этот параметр, программное обеспечение перестает проверять, что входной сигнал удовлетворяет верхним границам во время симуляции. Связанные сегменты также выделены серым цветом на графике.
Чтобы просмотреть только границы и входной сигнал на графике, очистите Enable assertion.
Чтобы использовать этот параметр, на вкладке Assertion, выберите Enable assertion. Если вы Enable assertion очистите, программа не использует границы для утверждения, но они продолжают появляться на графике.
Параметр:
EnableUpperBound
|
Тип: Вектор символов |
Значение:
'on' | 'off'
|
По умолчанию:
'on'
|
Times
- Верхний ограниченный временной вектор[0 5; 5 10]
(по умолчанию) | двухэлементный вектор | двухколоночная матрица | массив ячеекВременной вектор для одного или нескольких верхних связанных сегментов, заданный в секундах.
Задайте соответствующие значения амплитуды в 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]
|
Amplitudes
- Верхняя граница значений амплитуды[1.1 1.1; 1.01 1.01]
(по умолчанию) | двухэлементный вектор | двухколоночная матрица | массив ячеекЗначения амплитуды для одного или нескольких верхних связанных сегментов.
Задайте соответствующее время начала и конца в 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]
|
Include lower bound in assertion
- Проверяйте, что сигнал удовлетворяет нижней границеoff
(по умолчанию) | on
Проверяйте, что сигнал больше или равен нижним границам, заданным в нижних границах Times и Amplitudes, во время симуляции. Программа отображает предупреждение, если сигнал нарушает нижние границы.
Границы также появляются на временном графике.
Когда этот параметр отключен, нижние границы отключаются, и программное обеспечение перестает проверять, что ограничения выполняются во время симуляции. Связанные сегменты также выделены серым цветом на графике.
Чтобы просмотреть только границы и входной сигнал на графике, очистите Enable assertion.
Чтобы использовать этот параметр, на вкладке Assertion, выберите Enable assertion. Если вы Enable assertion очистите, программа не использует границы для утверждения, но они продолжают появляться на графике.
Параметр:
EnableLowerBound
|
Тип: Вектор символов |
Значение:
'on' | 'off'
|
По умолчанию:
'off'
|
Times
- Нижняя граница временного вектора[]
(по умолчанию) | двухэлементный вектор | двухколоночная матрица | массив ячеекВременной вектор для одного или нескольких нижних связанных сегментов, заданный в секундах.
Задайте соответствующие значения амплитуды в 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
|
Тип: Вектор символов |
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек |
По умолчанию:
[]
|
Amplitudes
- Нижняя граница значений амплитуды[]
(по умолчанию) | двухэлементный вектор | двухколоночная матрица | массив ячеекЗначения амплитуды для одного или нескольких нижних связанных сегментов.
Задайте соответствующее время начала и конца в 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
|
Тип: Вектор символов |
Значение: двухэлементный вектор | двухколоночная матрица | массив ячеек |
По умолчанию:
[]
|
Enable zero-crossing detection
- Вычислите модель на связанных ребрахon
(по умолчанию) | off
Убедитесь, что программа моделирует модель, чтобы получить выход на связанных ребрах. Симуляция модели на связанных ребрах препятствует тому, чтобы решатель симуляции пропустил утверждение, что сигнал удовлетворяет тому, что связан на его ребре.
Для получения дополнительной информации смотрите Обнаружение пересечения нулем.
Параметр:
ZeroCross |
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on' |
Enable assertion
- Включить или отключить проверкуon
(по умолчанию) | off
Включите блок, чтобы проверить, что ограничения, заданные и включенные для утверждения на вкладке Bounds, выполняются во время симуляции. Ошибка проверки типа «assertion», если граница не удовлетворена. Предупреждение, сообщающее о отказе утверждения, появляется в подсказку MATLAB.
Если установка прекращается, можно опционально задать, что блок:
Выполните выражение MATLAB, указанное в Simulation callback when assertion fails (optional).
Остановите симуляцию и верните сообщение об ошибке, выбрав Stop simulation when assertion fails.
Этот параметр не влияет, если вы не задаете никаких границ.
Когда вы отключаете этот параметр, блок больше не проверяет, чтобы входной сигнал удовлетворял заданным границам. Значок блока также обновляется, чтобы указать, что установка отключена.
В модели Simulink, в Параметрах конфигурации, параметр Model Verification block enabling позволяет включать или отключать все блоки верификации модели в модели, независимо от настройки этой опции в блоке.
Параметр:
enabled |
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on' |
Simulation callback when assertion fails (optional)
- Выражение, которое вычисляется, когда утверждение не удается''
(по умолчанию) | выражение MATLABВыражение MATLAB, выполняемое в случае непрохождения проверки типа «assertion».
Поскольку выражение оценивается в рабочем пространстве MATLAB, сначала задайте все переменные, используемые в выражении в рабочей области.
Чтобы включить этот параметр, выберите Enable assertion.
Параметр:
callback |
Тип: Вектор символов |
Значение: выражение MATLAB |
По умолчанию:
'' |
Stop simulation when assertion fails
- Остановите симуляцию, когда установка прекращает работатьoff
(по умолчанию) | on
Остановите симуляцию, когда сигнал нарушает границу, заданную на вкладке Bounds во время симуляции, то есть, когда сбой проверки типа «assertion».
Если вы запускаете симуляцию из окна модели Simulink, откроется окно Simulation Diagnostics, чтобы отобразить сообщение об ошибке. Блок, где происходит связанное нарушение, подсвечивается в модели.
Поскольку выбор этой опции останавливает симуляцию, как только утверждение прекращается, программное обеспечение не сообщает о отказах в утверждении, которые могут произойти позже во время симуляции. Если необходимо сообщить обо всех отказах в проверке, не выбирайте эту опцию.
Чтобы включить этот параметр, выберите Enable assertion.
Параметр:
stopWhenAssertionFail |
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off' |
Output assertion signal
- Создайте выходной сигналoff
(по умолчанию) | on
Выводит логический сигнал, который на каждом временном шаге:
True (1
) если утверждение успешно, то есть входной сигнал удовлетворяет всем границам
Ложный (0
) если утверждение прекращается, то есть входной сигнал нарушает ограничение
Тип данных выходного сигнала по умолчанию двойной. Чтобы задать тип выходных данных как Boolean для всех блоков, которые генерируют логические сигналы в вашей модели Simulink, выберите Реализуйте логические сигналы как Логические данные в Параметрах конфигурации.
Выбор этого параметра добавляет к блоку выхода порт, который можно соединить с любым блоком в модели.
Используйте этот параметр для разработки сложной логики утверждения. Для получения примера смотрите Проверьте модель используя Simulink Control Design и Блоки верификации Simulink (Simulink Control Design).
Параметр:
export |
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off' |
Генерация кода доступна только, когда включен параметр Output assertion signal.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.