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