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