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

Основная диаграмма Stateflow RedundantSensors состоит из двух "соединенных атомарных подграфиков" под названием Sensor1 и Sensor2.

По умолчанию, Sensor1 активно. Это читает вход u1 и устанавливает выход y. Когда это перестало работать, мы переключаемся на Sensor2 который читает вход u2 и устанавливает выход y. Когда они оба перестали работать, мы попадаем в Alarm утвердите и произведите номинальный нулевой выход.
Sensor1 и Sensor2 "соединяются атомарные подграфики". Они смотрят и ведут себя точно так же, как нормальные состояния Stateflow за исключением того, что содержимое соединенного атомарного подграфика находится в графике в другой модели библиотеки. В этом случае оба из соединенных атомарных подграфиков соответствуют графику библиотеки sf_atomic_sensor_lib/SingleSensor.
График SingleSensor моделирует один датчик, который принимает вход u датчика и предоставляет отфильтрованному датчику выход y. Это содержит логику, чтобы обнаружить ошибки из области значений. По умолчанию датчик принят, чтобы быть в OK состояния. Если чтение датчика выходит из области значений (который моделируется переходом от OK к FailOnce) и остается дефектным в течение 0,5 секунд, затем мы переходим к Fail. В этом случае датчик выводит постоянный 0. Это позволяет датчик отказам модели, но проигнорируйте очень переходные скачки в чтении датчика.
Переход от OK к FailOnce использует два параметра диаграммы Stateflow LOW и HIGH.
Существует функция верхнего уровня под названием inFailed это используется, чтобы передать контейнерному графику, является ли датчик в состоянии отказа.

Основной график RedundantSensors имеет два входных параметров u1 и u2, в то время как график библиотеки, соответствующий соединенным атомарным подграфикам, имеет только один вход u. В этом случае мы хотим соединенный подграфик Sensor1 получить доступ к входу u1 графика и соединенный подграфик Sensor2 получить доступ к входу u2 графика. Для того, чтобы выполнить это, мы должны задать отображение для каждого экземпляра соединенного атомарного подграфика. Чтобы отредактировать отображения подграфика, щелкните правой кнопкой по атомарному подграфику и выберите Subchart Mappings из контекстного меню.

В этом диалоговом окне вы сопоставляете символы (входные параметры, выходные параметры и параметры) от основного графика до символов в графике библиотеки. Точно так же параметрам, заданным в графике библиотеки, можно дать различные значения среди различных экземпляров подграфика. Например, эта таблица приводит отображения для Sensor1 и Sensor2.

Если вы симулируете модель, вы заметите следующее поведение:
Первоначально, оба входных параметров к основному графику являются нулем. Следовательно произведенный выход является нулем.
Когда вход u1 варьируется между-75 и 75, выход отследит u1.
Как только u1 вне этих границ, выход начинает отслеживать u2.
Когда u2 выходит за пределы области значений между-100 и 100, выход начинает производить номинальный нулевой выход.
Можно открыть эту модель и запустить симуляцию, чтобы видеть это поведение. Чтобы изменить входные параметры в график, дважды щелкают по блокам усиления и перетащить ползунки.