Операционная точка - это снимок состояния модели Simulink ® в определенное время во время моделирования. Для диаграммы Stateflow ® операционная точка включает:
Активность состояний диаграммы
Значения локальных данных диаграммы
Значения выходных данных диаграммы
Значения постоянных данных в блоках MATLAB ® и таблицы истинности
Дополнительные сведения см. в разделе Использование операционных точек в Stateflow.
Операционная точка не включает информацию о следующих элементах:
Машинно-зависимые данные
Постоянные данные в пользовательском коде C
Постоянные данные во внешнем коде MATLAB
Поэтому изменять значения этих элементов нельзя.
При изменении значений данных применяются следующие правила:
Изменить тип или размер данных невозможно. Скалярные данные должны оставаться скалярными. Векторные и матричные данные должны иметь одинаковые размеры. Единственным исключением из этого правила являются данные потока состояний ml (для получения более подробной информации см. ml Тип данных).
Для перечисляемых типов данных можно выбрать только перечисляемые значения из определения типа. Для других типов данных новые значения должны находиться в диапазоне, указанном в параметрах Минимум (Minimum) и Максимум (Maximum).
Используйте индексирование по одному для определения строк и столбцов матрицы.
Предположим, что требуется изменить значение элемента в матрице 21 на 12. Чтобы изменить элемент в первой строке и втором столбце, введите:
c.state_name.data_name.Value(1,2) = newValue;
Эти правила применяются при использовании setActive метод для исключающего (OR) состояния листа:
Локальные данные, подчиненные состоянию, не инициализируются повторно.
Новое активное состояние не выполняет никаких действий входа. Аналогично, ранее активное состояние не выполняет никаких действий выхода.
Если необходимо выполнить эти действия состояния, их необходимо выполнить отдельно. Например, если действия состояния присваивают значения данным, необходимо назначить значения явно.
setActive метод пытается поддерживать непротиворечивость состояний посредством:
Обновление активности штата для родительских, бабушкиных и однородных состояний
Сброс временных счетчиков для новых активных состояний
Обновление значений выходных данных состояния (только для чтения)
Включение или отключение подсистем вызова функций и функций Simulink, связанных с состояниями
highlightActiveStates метод также выполняется, когда выполняются следующие условия:
Модель открыта.
Диаграмма видна.
highlightActiveStates метод выполнен, по крайней мере, один раз, но не removeHighlighting способ.
После загрузки рабочей точки для диаграммы непрерывного времени можно перезапустить моделирование с ненулевого времени. Однако изменение активности состояния или каких-либо значений данных невозможно, поскольку рабочая точка для диаграммы непрерывного времени доступна только для чтения. Дополнительные сведения см. в разделе Непрерывное моделирование времени в Stateflow.
При загрузке операционной точки полная операционная точка становится доступной в качестве переменной в базовом рабочем пространстве MATLAB. Невозможно выполнить частичную загрузку рабочей точки для подмножества объектов диаграммы.
Используйте clone метод копирования всей рабочей точки в новую переменную (см. раздел Методы взаимодействия с рабочей точкой диаграммы). Невозможно скопировать подмножество значений рабочих точек, поскольку clone метод работает только на уровне диаграммы.
Предположим, что вы получаете маркер перемещения к рабочей точке диаграммы с помощью следующих команд:
blockpath = 'model/chart'; c = xFinal.get(modelOperatingPoint, blockpath);
Операторы назначения, такие как stateCopy = c.state, dataCopy = c.data, и operatingPointCopy = c не работают. Эти назначения создают копии дескрипторов объектов, а не значения рабочих точек.