Персистентные переменные проекта (переменные, которые присваиваются в одном временном шаге и используются в более позднем временном шаге в процессе моделирования) влияют на сложность анализа почти таким же способом как входная сложность. Можно использовать один или несколько следующих методов, чтобы упростить сложность пространства состояний, которое вы хотите искать:
Примените ограничения к входным сигналам, которые задерживаются.
Ограничьте входные параметры к состояниям, которые содержатся в условно выполняемых подсистемах.
Ограничьте количество шагов теста путем установки параметра Maximum test case step на 20
.
Увеличьте шаг расчета для части или всей модели. (Эта процедура похожа на сокращение порогов таймера, как описано в Счетчиках и Таймерах.) Тест, который вы генерируете на уровне более низкой частоты дискретизации часто, имеет общие черты тесту с высокой частотой дискретизации, что необходимо достигнуть цели.
Используйте высокие типы переменных, где когда-либо возможно. Например, если флаг со значениями 0 или 1 только задан как double
, ограничьте тип Boolean
.
Состояния, которые вычисляются из предыдущих значений состояния, представляют собой специальную проблему. Например, если вы хотите ограничить значение интегратора в ПИД-регуляторе, можно только использовать множество значений, которое включает все достижимые значения от начального значения. В противном случае вход должен быть обеспечен к 0
. Ни одно из этих ограничений не практично и вероятно сделало бы анализ меньше завершенный.
В качестве альтернативы можно использовать существующие данные моделирования, чтобы помочь удовлетворить потребностям тестирования. Если вы имеете существующие тестовые данные, запускаете его на вашей модели и собираете покрытие модели. Для примера расширения существующего тестового набора, чтобы достигнуть недостающего покрытия модели, смотрите, Расширяют Существующий Тестовый набор.