Рабочая точка является снимком состояния Simulink® модель в определенное время во время симуляции. For a Stateflow® график, рабочая точка включает в себя:
Активность состояний графика
Значения локальных данных графика
Значения выходных данных графика
Значения стойких данных в MATLAB® функции и блоки таблицы истинности
Для получения дополнительной информации смотрите Использование рабочих точек в Stateflow.
Рабочая точка не включает информацию об этих элементах:
Машинно-родительские данные
Постоянные данные в пользовательском коде С
Постоянные данные во внешнем коде MATLAB
Поэтому вы не можете изменять значения этих элементов.
Эти правила применяются при изменении значений данных:
Вы не можете изменить тип или размер данных. Скалярные данные должны оставаться скалярными. Векторные и матричные данные должны сохранять одинаковые размерности. Единственным исключением из этого правила являются данные Stateflow ml
тип (для получения дополнительной информации см. ml Data Type).
Для перечисленных типов данных можно выбрать только перечисленные значения из определения типа. Для других типов данных новые значения должны попадать в область значений, который вы задаете в параметрах Minimum и Maximum.
Используйте индексацию на основе одного для определения строк и столбцов матрицы.
Предположим, что вы хотите изменить значение элемента в матрице 21 на 12. Чтобы изменить элемент в первой строке и втором столбце, введите:
c.state_name.data_name.Value(1,2) = newValue;
Эти правила применяются, когда вы используете setActive
метод при исключительном (ИЛИ) состоянии листа:
Родительские в состоянии локальные данные не инициализируются повторно.
Новое активное состояние не выполняет никаких действий входа. Точно так же ранее активное состояние не выполняет никаких выходных действий.
Если вы хотите, чтобы эти состояния активности произошли, вы должны выполнить их отдельно. Для примера, если ваши состояния активности присвоению значения данным, необходимо присвоить значения явно.
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
не работают. Эти назначения создают копии указателей на объекты, а не значения рабочих точек.