Рабочая точка является снимком состояния Simulink® модель в определенное время во время симуляции. For a Stateflow® график, рабочая точка включает в себя:
Активность состояний графика
Значения локальных данных графика
Значения выходных данных графика
Значения стойких данных в MATLAB® функции и блоки таблицы истинности
Для получения дополнительной информации смотрите Использование рабочих точек в Stateflow.
Предположим, что вы хотите протестировать ответ sf_aircraft
модель одного или нескольких отказов привода в системе лифта. Для получения дополнительной информации о том, как эта модель работает, смотрите Обнаружение неисправностей в системе управления лифтом самолета.
Блок Mode Logic графика контролирует состояние приводов для двух лифтов. Каждый лифт имеет внешний (первичный) привод и внутренний (вторичный) привод. При нормальной операции внешние приводы активны, а внутренние приводы находятся в режиме ожидания.
Когда четыре привода работают правильно, левый и правый лифты достигают устойчивого положения за 3 секунды.
Предположим, что вы хотите увидеть, что происходит при t = 3, когда по крайней мере один привод отказывает. Можно симулировать модель, сохранить рабочую точку при t = 3, загрузить и изменить рабочую точку, а затем снова симулировать между t = 3 и 10.
Шаг | Задача | Ссылка |
---|---|---|
1 | Определите рабочую точку для графика. | Определите рабочую точку |
2 | Загрузите рабочую точку и измените значения для одного отказа привода. | Изменение значений рабочих точек для отказа одного привода |
3 | Протестируйте измененную рабочую точку, запустив модель. | Тестируйте рабочую точку на один отказ |
4 | Измените значения рабочих точек для двух отказов привода. | Измените значения рабочей точки для двух отказов привода |
5 | Протестируйте измененную рабочую точку, запустив модель снова. | Проверяйте рабочую точку на два отказов |
Откройте sf_aircraft
модель.
Включите сохранение рабочей точки.
Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.
Установите флажок Final states.
Введите имя, например xFinal
.
Установите флажок Save final operating point.
Нажмите Apply.
Задайте время остановки для этого сегмента симуляции.
В диалоговом окне Model Configuration Parameters перейдите к панели Solver.
Для Stop time введите 3
.
Нажмите OK.
Запустите симуляцию.
Когда вы симулируете модель, вы сохраняете полную рабочую точку при t = 3 в переменной xFinal
в базовом рабочем пространстве MATLAB.
Отключите сохранение рабочей точки.
Этот шаг препятствует перезаписи рабочей точки, сохраненной на предыдущем шаге.
Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.
Снимите флажок Save final operating point.
Снимите флажок Final states.
Нажмите OK.
Включите загрузку рабочей точки.
Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.
Установите флажок Initial state.
Введите переменную, которая содержит рабочую точку вашего графика: xFinal
.
Нажмите OK.
Задайте указатель на объект для значений рабочих точек логического графика Mode.
В командной строке введите:
blockpath = 'sf_aircraft/Mode Logic'; c = xFinal.get(blockpath);
Совет
Если график появляется подсвеченным в окне модели, можно задать путь блока используя gcb
(Simulink):
c = xFinal.get(gcb);
Проверьте содержимое рабочей точки.
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]
Рабочая точка вашего графика содержит список состояний, функций и данных в иерархическом порядке.
Подсветите состояния, которые активны на графике при t = 3.
В командной строке введите:
c.highlightActiveStates;
Активные состояния подсвечиваются. По умолчанию два внешних привода являются активными, а два внутренних привода находятся в режиме ожидания.
Совет
Чтобы проверить, является ли одно состояние активным, можно использовать isActive
способ. Для примера введите:
c.Actuators.LI.L1.Standby.isActive
Эта команда возвращает true (1), когда состояние активно, и false (0) в противном случае. Для получения информации о других методах смотрите Методы взаимодействия с рабочей точкой графика.
Измените активность состояния на графике, чтобы отразить один отказ привода.
Предположим, что левый внешний привод (LO) выходит из строя. Чтобы изменить состояние, используйте эту команду:
c.Actuators.LO.Isolated.setActive;
Новое активное подсостояние отображается на графике.
setActive
метод обеспечивает выход графика и переход в соответствующие состояния для поддержания согласованности состояний. Однако метод не выполняет entry
действия для нового активного подсостояния. Точно так же метод не выполняет exit
действия для ранее активного подсостояние.
Сохраните измененную рабочую точку с помощью этой команды:
xFinal = xFinal.set(blockpath, c);
Определите новое время остановки для тестируемого сегмента симуляции.
Перейдите на панель Solver диалогового окна Параметры конфигурации модели (Model Configuration Parameters).
Для Stop time введите 10
.
Нажмите OK.
Вы не должны вводить новое время запуска, потому что симуляция продолжается с того места, где оно остановилось.
Запустите симуляцию.
Анимация на графике показывает, что другие три привода соответствующим образом реагируют на отказ левого внешнего привода (LO).
Этот привод... | Переключатели с... | Потому что... |
---|---|---|
Внутренний слева (LI) | Переход в режим ожидания к активному режиму | Левый лифт должен компенсировать отказ левого внешнего привода (LO). |
Правый внутренний (RI) | Переход в режим ожидания к активному режиму | Одна и та же гидравлическая линия соединяет оба внутренних привода. |
Правая внешняя (RO) | Активно в режиме ожидания | Только один привод на лифт может быть активным. |
Оба лифта продолжают сохранять установившиеся позиции.
Измените активность состояния на графике, чтобы отразить два отказа привода.
Предположим, что левый внутренний привод (LI) также выходит из строя. Чтобы изменить состояние, используйте эту команду:
c.Actuators.LI.Isolated.setActive;
Сохраните измененную рабочую точку с помощью этой команды:
xFinal = xFinal.set(blockpath, c);
В диалоговом окне Model Configuration Parameters проверьте, что время остановки составляет 10.
Перезапустите симуляцию.
Из-за отказов обоих приводов левый лифт перестает работать. Правый лифт поддерживает установившееся положение.
Если вы измените рабочую точку вашего графика, чтобы проверить реакцию правого лифта на отказы привода, вы получите аналогичные результаты.