Можно использовать MATLAB Function Block Editor, чтобы отладить блочный код MATLAB Function. MATLAB Function Block Editor включает некоторые из тех же средств отладки, доступных в MATLAB® редактор. Чтобы отладить блочный код MATLAB Function, установите по крайней мере одну точку останова и запустите симуляцию.
Этот пример использует модель call_stats_block2
, в котором вы создаете, Создают Пользовательскую Функциональность Используя блоки MATLAB function. Отлаживать блочный код MATLAB Function в этой модели:
Откройте call_stats_block2
модель. Дважды кликните блок MATLAB Function, чтобы открыть редактор.
В MATLAB Function Block Editor кликните по номеру строки слева от линии:
len = length(vals);
Номер строки подсвечен в красном, который указывает на точку останова.
Симулируйте модель.
Симуляция делает паузу, когда выполнение достигает точки останова. Зеленая стрелка показывает туда, где симуляция сделала паузу.
На вкладке Function нажмите Step Over, чтобы усовершенствовать выполнение.
Выполнение переходит к следующей строке stats
, который вызывает локальную функцию avg
.
На вкладке Function нажмите Step In.
Выполнение совершенствует к локальной функции avg
. Если вы находитесь в локальной функции, можно использовать Step Over или команды Step In, чтобы усовершенствовать выполнение. Если локальная функция вызывает другую локальную функцию, используйте Step In, чтобы ввести его. Если вы хотите выполнить остающиеся линии локальной функции, используйте Step Out.
Нажмите Step Over, чтобы выполнить единственную линию в avg
.
Нажмите Step Over, чтобы возвратиться к функциональному stats
.
Выполнение переходит к линии после вызова avg
.
Нажмите Step Over дважды, чтобы вычислить stdev
и выполнить plot
функция.
plot
функция выполняется в MATLAB:
Нажмите Continue, чтобы продолжить выполнять модель.
Если вы возвращаетесь к модели, вычисленным значениям mean
и stdev
появитесь в блоках Display.
В MATLAB Function Block Editor нажмите Stop, чтобы остановить симуляцию.
Примечание
Можно отладить блоки MATLAB Function в Нормальном и Режимах Accelerator. Однако, если вы симулируете модель в Режиме Accelerator, который использует блок MATLAB Function в модели - ссылке, симуляция родительской модели игнорирует точки останова.
Можно ввести выражение MATLAB как условие на точке останова в блоке MATLAB Function. Симуляция затем делает паузу на той точке останова только, когда условие верно. Чтобы установить условную точку останова, в MATLAB Function Block Editor, щелкают правой кнопкой по номеру строки слева от строки кода и выбирают Set Conditional Breakpoint и вводят условие в диалоговое окно. Можно использовать любое допустимое выражение MATLAB в качестве условия. Это выражение может включать численные значения и любые данные, которые находятся в осциллографе в точке останова.
Чтобы добавить или изменить условие на существующей точке останова, щелкните правой кнопкой по точке останова и выберите Set/Modify Condition.
Можно использовать несколько инструментов, чтобы отследить значения переменных функции, в то время как вы симулируете блок MATLAB function.
Отобразить значение переменной в функции блока MATLAB Function в процессе моделирования:
Добавьте точку останова в MATLAB Function Block Editor. Запустите модель.
Когда симуляция делает паузу, точка к имени переменной. Подсказка отображает текущее значение переменных.
Например, чтобы смотреть переменную len
в процессе моделирования укажите на len
в коде.
Можно просмотреть значения для функциональной переменной в Командном окне в процессе моделирования. Когда вы достигаете точки останова, вводите имя переменной в debug>> prompt
видеть его значение.
debug>> stdev 1.1180 debug>>
Можно также ввести эти команды в командном окне при отладке:
Команда | Описание |
---|---|
| Продолжите выполнение, чтобы затем установить точки останова. |
| Выйдите из отладки и отключите симуляцию. |
| Перейдите к следующему шагу программы после того, как с точкой останова столкнутся. Переступите или продвиньтесь в/из локальную функцию MATLAB. |
| Отобразите справку для отладки командной строки. |
| Отобразите значение переменной |
| Сохраняет все переменные в текущем осциллографе к заданному файлу. Следует за синтаксисом MATLAB |
| Эквивалентный |
| Отобразите переменные в текущем осциллографе. |
| Отобразите размер и класс (тип) всех переменных в текущем осциллографе. |
Если вы вводите другие команды в debug>>
подсказка, результаты выполняются в рабочей области блока MATLAB Function. Чтобы дать команду в базовом рабочем пространстве MATLAB, используйте evalin
команда с первым аргументом 'base'
сопровождаемый второй командой аргумента, например, evalin('base','whos')
. Чтобы возвратиться к базовому рабочему пространству MATLAB, используйте dbquit
команда.
MATLAB Function Block Editor не отображает содержимое матриц, которые имеют больше чем две размерности или больше, чем 200
элементы. Для матриц, которые превышают эти пределы, MATLAB Function Block Editor отображает форму и базовый тип только.
Блоки MATLAB Function проверяют вводы и выводы на нарушения области значений данных, когда значения ввода или вывода вводят или оставляют блоки. Чтобы включить проверку нарушения области значений данных, откройте окно Configuration Parameters, нажмите Diagnostics> Data Validity и установите Simulation range checking на error
или warning
.
Чтобы указать диапазон для входных и выходных данных, откройте MATLAB Function Block Editor, нажмите Ports & Data Manager и выберите ввод или вывод интереса. Во вкладке General настройте свойство Limit range путем ввода требуемых значений для Minimum и Maximum.
Редактор блока MATLAB function