Чтобы повторно использовать алгоритм, вместо копирования и вставки блоков можно инкапсулировать их в отдельный файл модели. Затем можно неоднократно обращаться к модели с блоками Model. Каждый блок Model является автономным образцом алгоритма.
По умолчанию каждый образец вычисляет и хранит свою собственную копию сигналов, которые содержит модель. Поэтому образцы не взаимодействуют. Однако можно использовать хранилище данных для совместного использования части данных между образцами.
Этот пример показывает, как разделить индикацию отказа между всеми образцами переиспользуемого алгоритма управления. Любой образец может установить отказ, в результате чего все образцы предпримут действие, чтобы удалить его.
Откройте пример модели sldemo_shared_data
.
Подсистема Контроллера ссылается на модель алгоритма регулятора, sldemo_shared_data_alg
, несколько раз через три блока Model.
Откройте модель алгоритма.
Блок памяти хранилища данных fault_ind
представляет индикацию отказа. Выбраны параметры блоков Signal Attributes > Поделиться между образцами модели, поэтому все образцы sldemo_shared_data_alg
поделиться индикацией. Потому что блок существует в sldemo_shared_data_alg
, индикация является локальной для модели. Другие модели, которые ссылаются на sldemo_shared_data_alg
не удается считать или записать в индикатор.
Подсистема Алгоритма использует ПИД-регулятор, чтобы сгенерировать команду положения для привода (представленную блоком в sldemo_shared_data
).
Подсистема обработки отказов устанавливает и устраняет индикацию отказа. Каждый раз, когда образец алгоритма испытывает условие отказа (управляемый вход превышает 2,63), подсистема увеличивает значение хранилища данных на 1. Каждый раз, когда образец устраняет условие отказа, подсистема уменьшает значение на 1.
Симулируйте родительскую модель, sldemo_shared_data
.
Используйте Данные Моделирования Inspector, чтобы наблюдать команды положения и управляемые сигналы. На панели редакторов нажмите выделенную кнопку.
Partway через симуляцию, управляемый сигнал conc_mid
испытывает нарушение порядка.
Current plot held
Это нарушение порядка вызывает отказ в соответствующем образце алгоритма управления. Из-за отказа все три команды положения (vlv
сигналы) заблокировать в нуле.
Позже, когда условие отказа устраняется, все команды положения и управляемые сигналы возвращаются к номинальным значениям.