В то время как ваш Stateflow® график находится в режиме отладки, можно изучить состояние диаграммы путем проверки значений данных, сообщений и временных логических выражений. Можно также протестировать проект графика путем изменения значений данных и отправки локальных и выходных сообщений. В этой таблице представлены интерфейсы, которые можно использовать для выполнения этих задач отладки. Для получения дополнительной информации см. «Отладка диаграмм Stateflow».
Задача отладки | Редактор Stateflow | Панель символов | Окна точек по оси Х и часы | MATLAB® Командное окно |
---|---|---|---|---|
Осмотрите значения данных и сообщений | Да | Да | Да | Да |
Смотрите временные логические выражения | Да | Нет | Нет | Нет |
Изменение значений данных и сообщений | Нет | Да | Нет | Да |
Отправка сообщений | Нет | Нет | Нет | Да |
В то время как симуляция приостановлена в точке останова, можно изучить значения данных, указав на состояние, переход или функцию на графике. Подсказка отображает значение данных и сообщений, которые использует выбранный объект.
Тип объекта | Информация о подсказке |
---|---|
Состояния и переходы | Значения данных, сообщений и временных логических выражений, которые использует объект |
Графические, таблицы истинности и функции MATLAB | Значения локальных данных, сообщений, входов и выходов в возможности функции |
Например, точка останова на этом графике останавливает симуляцию, когда second
состояние оценивает его during
действия. Указание на суперштатную gear
отображает всплывающую подсказку, в которой показаны значения:
Временные логические выражения duration(speed >= up_threshold)
и duration(speed <= down_threshold)
.
Данные, включая speed
, up_threshold
, и up
.
Примечание
Если вы выбираете свойства графика Export chart level functions и Treat exported functions as globally visible, подсказка не отображает временные логические данные.
Пока график находится в режиме отладки, на панели «Символы» отображается значение каждого объекта данных и сообщений на графике. Для примера, когда этот график пауз в точке останова, можно увидеть значения всех данных графиков, перечисленных в столбце Value. Подсвеченные значения изменились во время последнего временного шага.
На панели «Символы» можно изменить значение:
Память хранилища данных, локальные и выходные данные.
Локальные и выходные сообщения.
Щелкните поле Value для объекта данных или сообщения, чтобы ввести новое значение.
Вы не можете изменять значения констант, параметров или входных данных и сообщений во время симуляции.
Для получения дополнительной информации см. раздел «Управление данными, событиями и сообщениями» на панели символов.
В окне Stateflow Breakpoints and Watch можно просмотреть текущие данные и значения сообщений во время паузы симуляции в точке останова. Чтобы открыть окно Breakpoints and Watch, на вкладке Debug, нажмите Breakpoints List. Также откройте диалоговое окно Breakpoints и щелкните ссылку Breakpoints List.
Чтобы просмотреть список всех точек по оси Х и связанных с ними условий, выберите вкладку Breakpoints. Для получения дополнительной информации см. Раздел «Управление точками по оси Х» и «Окно просмотра».
Для просмотра данных и значений сообщений выберите вкладку Watch.
Вы можете использовать окна Breakpoints и Watch, чтобы:
Добавьте объекты данных и сообщений в список часов.
Отслеживайте значения, которые изменились с момента последнего временного шага.
Разверните сообщение, чтобы просмотреть очередь сообщений и значения данных сообщений.
Для примера можно добавить speed
, up_threshold
, и up
в список часов и отслеживать их значения во время шага симуляции. Подсветка указывает, что значения speed
и up_threshold
изменен во время последнего временного шага.
Чтобы добавить объект данных или сообщения в список часов, откройте Property Inspector или Model Explorer. Выберите данные или объект сообщения, который вы хотите просмотреть, и щелкните ссылку Add to Watch Window.
Кроме того, в редакторе Stateflow щелкните правой кнопкой мыши состояние или переход, который использует данные или сообщение. Выберите Add to Watch Window и выберите имя переменной из раскрывающегося списка.
Чтобы изменить формат, используемый для отображения данных о часах, выберите значок передачи в верхней части окна. Используйте раскрывающиеся списки, чтобы выбрать формат MATLAB для каждого типа данных.
Чтобы удалить объект данных или сообщения из списка часов, укажите путь для данных часов и щелкните значок Remove this watch, который появляется слева от имени переменной.
Данные просмотра сохраняются во время сеанса работы с MATLAB. Когда вы закрываете модель, ее список данных о часах остается в окне Breakpoints и Watch Window. Если вы снова открываете модель во время того же сеанса работы с MATLAB, список данных часов для этой модели восстанавливается.
Можно сохранить точку останова и просмотреть списки данных и перезагрузить их в более позднем сеансе работы с MATLAB. Чтобы сохранить снимок точки останова и просмотреть списки данных, в верхней части окна Breakpoints and Watch Window щелкните значок Save current breakpoints and watches. Чтобы восстановить снимок, щелкните значок Load breakpoints and watches.
В то время как симуляция приостановлена в точке останова, командная строка MATLAB изменяется на debug>>
. В этой подсказке можно просматривать и изменять значения данных Stateflow, отправлять локальные и выходные сообщения и взаимодействовать с рабочим пространством MATLAB.
Например, предположим, что предыдущий график достиг точки останова. Чтобы просмотреть данные, которые видны в текущих возможностях, используйте whos
команда.
whos
Name Size Bytes Class Attributes TWAIT 1x1 1 uint8 down 1x1 1 logical down_th 1x1 8 double down_threshold 1x1 8 double gear 1x1 4 gearType speed 1x1 8 double throttle 1x1 8 double up 1x1 1 logical up_th 1x1 8 double up_threshold 1x1 8 double
Для проверки значений speed
и up_threshold
, введите:
speed
speed = 26.3383
up_threshold
up_threshold = 41.3601
В приглашении отладки можно изменить значение памяти хранилища данных, локальных и выходных данных. Для примера на предыдущем графике можно изменить значение up_threshold
, up
, и gear
:
up_threshold = 25;
up = true;
gear = gearType.third;
Чтобы изменить векторы и матрицы, используйте синтаксис MATLAB для индексации, независимо от свойства языка действий вашего графика. См. Раздел «Индексация обозначения»
Для примера изменить элемент диагонали матрицы 2 на 2 u
, введите:
u(1,1) = 6.022e23; u(2,2) = 6.626e-34
Можно изменять размерности данных переменного размера, пока новый размер находится в пределах размерных границ, заданных для данных. Например, предположим, что v
- массив переменного размера с максимальным размером [16 16]
. Изменение значения v
в массив единиц 5 на 7 введите:
v = ones(5,7);
Чтобы изменить перечисленные данные, явным образом укажите перечисляемый тип с помощью префиксных идентификаторов. Для перечисленных значений смотрите обозначение.
Например, предположим, что w
имеет перечисленный тип данных Colors
. Изменение значения w
к перечисленному значению Red
, введите:
w = Colors.Red
Чтобы изменить числовые данные, приведите к явному типу данных с помощью функции преобразования типа MATLAB. Явное литье не требуется для данных типа double
. См. Раздел Операций приведения типов»
Например, предположим, что x
имеет тип single
, y
имеет тип int32
, и z
имеет тип fixdt(1,16,12)
. Чтобы изменить значение этих объектов данных, введите:
x = single(98.6); y = int32(100); z = fi(0.5413,1,16,12);
Вы не можете изменить значения констант, параметров или входных данных в приглашении отладки.
Примечание
Изменение данных типа int64
или uint64
, используйте функцию fi
(Fixed-Point Designer), чтобы привести новое значение к типу с фиксированной точкой.
В приглашении отладки можно отправлять локальные и выходные сообщения. Для примера в этом графике локальное сообщение M
определяет, какое состояние становится активным после состояния DecisionPoint
. Если график получает сообщение M
при положительном значении состояние Received
становится активным, и график выводит значение true
. В противном случае состояние Missed
становится активным, и график выводит значение false
.
Начальное значение сообщения равняется нулю. Чтобы изменить значение поля данных на положительное число и отправить сообщение в локальную очередь, введите:
M = 5; send(M);
Received
. Для получения дополнительной информации смотрите Управление выполнением диаграммы после точки останова.Следуйте следующим правилам при отправке сообщений из приглашения отладки:
Для чтения или записи в поле данных сообщения действительного сообщения используйте имя объекта сообщения. Не используйте синтаксис записи через точку.
Вы можете отправить сообщение из приглашения отладки, только когда график явным образом отправляет сообщение, вызывая send
оператор.
Вы не можете отправить входные сообщения из приглашения отладки.
Для получения дополнительной информации смотрите Действие Управляющего сообщения в Диаграммах Stateflow.
В приглашение отладки можно ввести другие команды MATLAB, но результаты выполняются в рабочей области Stateflow. Например, можно сохранить все переменные графики в MAT-файле с помощью save
функция:
save(chartVars)
Чтобы ввести команду в базовом рабочем пространстве MATLAB, используйте evalin
команда с первым аргументом 'base'
. Для примера, чтобы перечислить переменные в рабочем пространстве MATLAB, используйте команду:
evalin('base','whos')