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

Основная диаграмма 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, вывод начинает производить номинальный нулевой вывод.
Можно открыть эту модель и запустить симуляцию, чтобы видеть это поведение. Чтобы изменить входные параметры на график, дважды щелкают по блокам усиления и перетащить ползунки.