Тестируйте график с обнаружением отказа и избыточной логикой

Рабочая точка является снимком состояния Simulink® модель в определенное время во время симуляции. For a Stateflow® график, рабочая точка включает в себя:

  • Активность состояний графика

  • Значения локальных данных графика

  • Значения выходных данных графика

  • Значения стойких данных в MATLAB® функции и блоки таблицы истинности

Для получения дополнительной информации смотрите Использование рабочих точек в Stateflow.

Цель руководства

Предположим, что вы хотите протестировать ответ sf_aircraft модель одного или нескольких отказов привода в системе лифта. Для получения дополнительной информации о том, как эта модель работает, смотрите Обнаружение неисправностей в системе управления лифтом самолета.

Блок Mode Logic графика контролирует состояние приводов для двух лифтов. Каждый лифт имеет внешний (первичный) привод и внутренний (вторичный) привод. При нормальной операции внешние приводы активны, а внутренние приводы находятся в режиме ожидания.

Когда четыре привода работают правильно, левый и правый лифты достигают устойчивого положения за 3 секунды.

Предположим, что вы хотите увидеть, что происходит при t = 3, когда по крайней мере один привод отказывает. Можно симулировать модель, сохранить рабочую точку при t = 3, загрузить и изменить рабочую точку, а затем снова симулировать между t = 3 и 10.

ШагЗадачаСсылка
1Определите рабочую точку для графика.Определите рабочую точку
2Загрузите рабочую точку и измените значения для одного отказа привода.Изменение значений рабочих точек для отказа одного привода
3Протестируйте измененную рабочую точку, запустив модель.Тестируйте рабочую точку на один отказ
4Измените значения рабочих точек для двух отказов привода.Измените значения рабочей точки для двух отказов привода
5Протестируйте измененную рабочую точку, запустив модель снова.Проверяйте рабочую точку на два отказов

Определите рабочую точку

  1. Откройте sf_aircraft модель.

  2. Включите сохранение рабочей точки.

    1. Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.

    2. Установите флажок Final states.

    3. Введите имя, например xFinal.

    4. Установите флажок Save final operating point.

    5. Нажмите Apply.

     Программный эквивалент

  3. Задайте время остановки для этого сегмента симуляции.

    1. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

    2. Для Stop time введите 3.

    3. Нажмите OK.

     Программный эквивалент

  4. Запустите симуляцию.

    Когда вы симулируете модель, вы сохраняете полную рабочую точку при t = 3 в переменной xFinal в базовом рабочем пространстве MATLAB.

  5. Отключите сохранение рабочей точки.

    Этот шаг препятствует перезаписи рабочей точки, сохраненной на предыдущем шаге.

    1. Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.

    2. Снимите флажок Save final operating point.

    3. Снимите флажок Final states.

    4. Нажмите OK.

     Программный эквивалент

Изменение значений рабочих точек для отказа одного привода

  1. Включите загрузку рабочей точки.

    1. Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.

    2. Установите флажок Initial state.

    3. Введите переменную, которая содержит рабочую точку вашего графика: xFinal.

    4. Нажмите OK.

     Программный эквивалент

  2. Задайте указатель на объект для значений рабочих точек логического графика Mode.

    В командной строке введите:

    blockpath = 'sf_aircraft/Mode Logic';
    c = xFinal.get(blockpath);

    Совет

    Если график появляется подсвеченным в окне модели, можно задать путь блока используя gcb (Simulink):

    c = xFinal.get(gcb);

     Используйте get метод для рабочих точек

  3. Проверьте содержимое рабочей точки.

    c = 
    
      Block:    "Mode Logic"    (handle)    (active)
      Path:     sf_aircraft/Mode Logic
    
      Contains:
    
        + Actuators          "State (OR)"          (active)
        + LI_act             "Function"
        + LO_act             "Function"
        + L_switch           "Function"
        + RI_act             "Function"
        + RO_act             "Function"
        + R_switch           "Function"
        + LI_mode            "State output data"		sf_aircraft_ModeType [1,1]
        + LO_mode            "State output data"		sf_aircraft_ModeType [1,1]
        + RI_mode            "State output data"		sf_aircraft_ModeType [1,1]
        + RO_mode            "State output data"		sf_aircraft_ModeType [1,1]
    

    Рабочая точка вашего графика содержит список состояний, функций и данных в иерархическом порядке.

  4. Подсветите состояния, которые активны на графике при t = 3.

    В командной строке введите:

    c.highlightActiveStates;

    Активные состояния подсвечиваются. По умолчанию два внешних привода являются активными, а два внутренних привода находятся в режиме ожидания.

    Совет

    Чтобы проверить, является ли одно состояние активным, можно использовать isActive способ. Для примера введите:

    c.Actuators.LI.L1.Standby.isActive

    Эта команда возвращает true (1), когда состояние активно, и false (0) в противном случае. Для получения информации о других методах смотрите Методы взаимодействия с рабочей точкой графика.

  5. Измените активность состояния на графике, чтобы отразить один отказ привода.

    Предположим, что левый внешний привод (LO) выходит из строя. Чтобы изменить состояние, используйте эту команду:

    c.Actuators.LO.Isolated.setActive;

    Новое активное подсостояние отображается на графике.

    setActive метод обеспечивает выход графика и переход в соответствующие состояния для поддержания согласованности состояний. Однако метод не выполняет entry действия для нового активного подсостояния. Точно так же метод не выполняет exit действия для ранее активного подсостояние.

  6. Сохраните измененную рабочую точку с помощью этой команды:

    xFinal = xFinal.set(blockpath, c);

Тестируйте рабочую точку на один отказ

  1. Определите новое время остановки для тестируемого сегмента симуляции.

    1. Перейдите на панель Solver диалогового окна Параметры конфигурации модели (Model Configuration Parameters).

    2. Для Stop time введите 10.

    3. Нажмите OK.

    Вы не должны вводить новое время запуска, потому что симуляция продолжается с того места, где оно остановилось.

     Программный эквивалент

  2. Запустите симуляцию.

    Анимация на графике показывает, что другие три привода соответствующим образом реагируют на отказ левого внешнего привода (LO).

    Этот привод...Переключатели с...Потому что...
    Внутренний слева (LI)Переход в режим ожидания к активному режимуЛевый лифт должен компенсировать отказ левого внешнего привода (LO).
    Правый внутренний (RI)Переход в режим ожидания к активному режимуОдна и та же гидравлическая линия соединяет оба внутренних привода.
    Правая внешняя (RO)Активно в режиме ожиданияТолько один привод на лифт может быть активным.

    Оба лифта продолжают сохранять установившиеся позиции.

Измените значения рабочей точки для двух отказов привода

  1. Измените активность состояния на графике, чтобы отразить два отказа привода.

    Предположим, что левый внутренний привод (LI) также выходит из строя. Чтобы изменить состояние, используйте эту команду:

    c.Actuators.LI.Isolated.setActive;
  2. Сохраните измененную рабочую точку с помощью этой команды:

    xFinal = xFinal.set(blockpath, c);

Проверяйте рабочую точку на два отказов

  1. В диалоговом окне Model Configuration Parameters проверьте, что время остановки составляет 10.

  2. Перезапустите симуляцию.

    Из-за отказов обоих приводов левый лифт перестает работать. Правый лифт поддерживает установившееся положение.

Если вы измените рабочую точку вашего графика, чтобы проверить реакцию правого лифта на отказы привода, вы получите аналогичные результаты.

Похожие темы