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