Докажите свойства уровня системы Используя модель верификации

Когда использовать модель верификации для доказательства свойства

Если ваша модель имеет свойства в масштабе всей системы, которые влияют на поведение модели, вы можете хотеть доказать свойства, не изменяя модель проекта. Для этого вы создаете verification model, который включает:

  • Блок Model это ссылается на модель проекта

  • Одна или несколько подсистем верификации, которые задают свойства и любые необходимые ограничения

Об этом Примере

Модели sldvdemo_sbr_design модели проекта логика для света напоминания о ремне безопасности. Если воспламенение включено, ремни безопасности откреплены, и автомобиль превышает определенную скорость, свет напоминания о ремне безопасности включает.

Модель sldvdemo_sbr_verification является моделью верификации, которая задает некоторые ограничения и проверяет свойства в модели sldvdemo_sbr_design. Блок Model в моделях - ссылках верификации модель проекта, так, чтобы логика верификации существовала только в модели верификации.

Модель sldvdemo_sbr_verification содержит свойство, которое сфальсифицировано, потому что ограничение отключено. В модели sldvdemo_sbl_verification_fixed включено ограничение, и все свойства доказаны допустимыми.

Поймите модель верификации

Сделайте эти шаги, чтобы понять, как модель верификации работает:

  1. Откройте модель верификации:

    Блок Design Model является блоком Model, это ссылается на sldvdemo_sbr_design. График SBR Stateflow® в модели проекта принимает, что вход KEY первоначально 0.

  2. Откройте подсистему Safety Properties, которая задает свойства модели проекта, которую вы хотите доказать.

    Эта подсистема содержит блок MATLAB function под названием MATLAB Property. Код в этом блоке задает свойство, что напоминание о ремне безопасности должно быть включено, когда воспламенение включено, ремень безопасности не закрепляется, и скорость - меньше чем 15:

  3. Закройте подсистему Safety Properties.

  4. Откройте Входную Ограничительную подсистему.

    Эта подсистема задает следующие ограничения:

    • Ключ может иметь три положения: 0, 1, 2

    • Скорость ограничивается упасть между 10 и 30.

    • Ключ должен запуститься в 0 и может только измениться одним шагом за один раз. Например, ключ может измениться с 0 до 1 или 1 - 2, но не с 0 до 2. В этой модели верификации не включено это ограничение.

  5. Закройте Входную Ограничительную подсистему, но сохраните модель sldvdemo_sbr_verification открытой.

Докажите свойства модели проекта

Анализируйте модель sldvdemo_sbr_verification, чтобы доказать свойства:

  1. В окне модели sldvdemo_sbr_verification, чтобы запустить анализ, дважды кликают кнопку Run, чтобы запустить анализ.

    Когда анализ завершается, логарифмическое окно Simulink® Design Verifier™ указывает, что одна цель сфальсифицирована - симуляция потребностей. Для получения дополнительной информации смотрите Сфальсифицированные Цели - Симуляция Потребностей.

  2. Чтобы видеть, какая цель была сфальсифицирована, нажмите Highlight analysis results on model.

    Подсистема Safety Properties подсвечена в оранжевом.

  3. Откройте подсистему Safety Properties и кликните по блоку MATLAB Property.

    Окно Simulink Design Verifier Results указывает что оператор

    sldv.prove(implies(activeCond,SeatBeltIcon))

    было ложным по крайней мере во время одного временного шага.

  4. Нажмите View counterexample, чтобы видеть значения сигналов, которые нарушили это свойство.

    Блок Signal Builder открывается контрпримером. Вход KEY равнялся первоначально 2, который недопустим.

Подтверждать свойство задало в подсистеме Safety Properties, необходимо убедиться, что начальное значение KEY 0.

Зафиксируйте модель верификации

Входная Ограничительная подсистема в модели верификации содержала три ограничения. Третье ограничение, которое требует, чтобы начальное значение KEY было 0, и что KEY может только измениться с шагом 1, отключено.

Чтобы видеть, как это свойство подтверждено, когда вы включаете третье ограничение:

  1. В модели sldvdemo_sbr_verification нажмите Open Fixed Model.

    Модель верификации sldvdemo_sbr_verification_fixed открывается.

  2. Откройте Входную Ограничительную подсистему.

    Это третье ограничение теперь включено так, чтобы KEY имел начальное значение 0 и изменился с шагом 1.

  3. Закройте Входную Ограничительную подсистему.

  4. В модели sldvdemo_sbr_verification_fixed, чтобы запустить анализ, дважды кликают блок Run.

    Анализ доказывает валидность свойства.

Похожие темы