Автоматическое заглушение позволяет вам анализировать модель, которая содержит объекты, которые Simulink® Design Verifier™ не поддерживает.
Когда вы включаете опцию автоматического упругости (он включен по умолчанию), программное обеспечение рассматривает только интерфейс неподдерживаемых объектов, а не их фактическое поведение. Этот метод позволяет программному обеспечению завершить анализ. Однако анализ может достичь только частичных результатов, если любой неподдерживаемый элемент модели влияет на результат симуляции.
Если вы включаете автоматическое упругость, когда анализ Simulink Design Verifier приходит к неподдерживаемому блоку, программное обеспечение «заглушает» этот блок. Анализ игнорирует поведение блока, и в результате выход блока может взять любое значение.
Simulink Design Verifier не поддерживает блоки Trigonometric Function, когда параметру Function задано значение acos
, например, на следующей графике.
При упрямстве этого блока во время анализа out_signal
может принять любое значение со следующими результатами.
Модель анализа | Результат упрямства out_signal |
---|---|
Поиск ошибок проектирования |
|
Генерация теста |
|
Проверка свойств |
|
Пример модели Simulink sfcndemo_sfun_fcncall
имеет блок S-Function. S-функция sfun_fcncall
инициирует выполнение подсистем вызова функций f1 subsys1 и f2 subsys2 на первом и втором элементах первого выходного порта.
Если вы не включите поддержку S-функции в Simulink Design Verifier и включена автоматическая упругость, анализ игнорирует поведение S-функции. В результате код, который запускает две подсистемы вызова функций, игнорируется, что приводит к двум неудовлетворительным целям. Поскольку вызовы функций игнорируются, содержимое этих подсистем эффективно исключается из анализа.
Чтобы включить поддержку S-функции в Simulink Design Verifier, смотрите Ограничения поддержки и факторов для S-функций и кода C/C + +
В этом разделе описывается рабочий процесс для использования автоматического упругости с простой моделью Simulink в качестве примера.
Следующая модель содержит блок Discrete State-Space, который не совместим с Simulink Design Verifier.
Из Редактор существует два способа проверить, совместима ли модель с Simulink Design Verifier: с помощью проверки совместимости Simulink Design Verifier или путем выполнения анализа Simulink Design Verifier.
Чтобы запустить проверку совместимости Simulink Design Verifier:
На вкладке Design Verifier нажмите Check Compatibility.
Выберите анализ, который необходимо выполнить.
Чтобы запустить анализ Simulink Design Verifier, на вкладке Design Verifier, в разделе Mode, выберите любую из следующих опций:
Выберите Design Error Detection, затем нажмите Detect Design Errors.
Выберите Test Generation, затем нажмите Generate Tests.
Выберите Property Proving, затем нажмите Prove Properties.
Программное обеспечение сначала проверяет совместимость модели. Если сама модель несовместима, например, если она использует решатель с переменным шагом, анализ не может продолжаться.
Если он находит несовместимые элементы в модели, программное обеспечение анализирует модель и, по умолчанию, заглушает несовместимые элементы. Откроется также Средство Просмотра, в котором будут перечислены несовместимости.
Примечание
Для получения дополнительной информации см. Раздел «Просмотр диагностики».
Автоматическое заглушение включено по умолчанию. Чтобы изменить настройку автоматического упругости, в диалоговом окне Параметров конфигурации, на основной панели Design Verifier, выберите Automatic stubbing of unsupported block and functions. Когда вы запускаете анализ, программное обеспечение сообщает вам, что упрямство включено, и анализ продолжается.
Если при запуске анализа включена автоматическая упругость, обязательно проверьте результаты. В этом отчете, сгенерированном после анализа генерации тестов, отображается таблица неподдерживаемых блоков, с которыми столкнулось программное обеспечение.
Неподдерживаемые блоки
Сгенерированный отчет анализа для модели примера показывает, что цели не определены из-за упрямства. Программа не может сгенерировать тесты, потому что не понимает операцию блока Discrete State-Space.
Цель не определилась из-за упрямства
Если ваш анализ не достигает полных результатов из-за упрямства, можно задать пользовательский блок замены, чтобы дать более точное определение неподдерживаемых блоков. Для получения дополнительной информации выполните действия в разделе «Замена блоков для неподдерживаемых блоков».