Отладьте блоки MATLAB function

Можно использовать MATLAB Function Block Editor, чтобы отладить блочный код MATLAB Function. MATLAB Function Block Editor включает некоторые из тех же средств отладки, доступных в MATLAB® редактор. Чтобы отладить блочный код MATLAB Function, установите по крайней мере одну точку останова и запустите симуляцию.

Отладьте функцию, взятую в качестве примера,

Этот пример использует модель call_stats_block2, в котором вы создаете, Создают Пользовательскую Функциональность Используя блоки MATLAB function. Отлаживать блочный код MATLAB Function в этой модели:

  1. Откройте call_stats_block2 модель. Дважды кликните блок MATLAB Function, чтобы открыть редактор.

  2. В MATLAB Function Block Editor кликните по номеру строки слева от линии:

    len = length(vals);

    Номер строки подсвечен в красном, который указывает на точку останова.

    MATLAB function code with a breakpoint set on the line 7.

  3. Симулируйте модель.

    Симуляция делает паузу, когда выполнение достигает точки останова. Зеленая стрелка показывает туда, где симуляция сделала паузу.

    This image shows the debugging breakpoint and where the execution paused with the highlighted line.

  4. На вкладке Function нажмите Step Over, чтобы усовершенствовать выполнение.

    Выполнение переходит к следующей строке stats, который вызывает локальную функцию avg.

  5. На вкладке Function нажмите Step In.

    Выполнение совершенствует к локальной функции avg. Если вы находитесь в локальной функции, можно использовать Step Over или команды Step In, чтобы усовершенствовать выполнение. Если локальная функция вызывает другую локальную функцию, используйте Step In, чтобы ввести его. Если вы хотите выполнить остающиеся линии локальной функции, используйте Step Out.

  6. Нажмите Step Over, чтобы выполнить единственную линию в avg.

  7. Нажмите Step Over, чтобы возвратиться к функциональному stats.

    Выполнение переходит к линии после вызова avg.

  8. Нажмите Step Over дважды, чтобы вычислить stdev и выполнить plot функция.

    plot функция выполняется в MATLAB:

    This shows a plot of the input values and a line drawn through the values.

  9. Нажмите Continue, чтобы продолжить выполнять модель.

    Если вы возвращаетесь к модели, вычисленным значениям mean и stdev появитесь в блоках Display.

  10. В 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.

Смотрите Function Variables During Simulation

Можно использовать несколько инструментов, чтобы отследить значения переменных функции, в то время как вы симулируете блок MATLAB function.

Смотрите Function Variables с интерактивным отображением

Отобразить значение переменной в функции блока MATLAB Function в процессе моделирования:

  1. Добавьте точку останова в MATLAB Function Block Editor. Запустите модель.

  2. Когда симуляция делает паузу, точка к имени переменной. Подсказка отображает текущее значение переменных.

    Например, чтобы смотреть переменную len в процессе моделирования укажите на len в коде.

    The cursor points to the variable len, and the value of the variable populates during simulation.

Наблюдение функциональных переменных с отладчиком командной строки

Можно просмотреть значения для функциональной переменной в Командном окне в процессе моделирования. Когда вы достигаете точки останова, вводите имя переменной в debug>> prompt видеть его значение.

debug>> stdev
 
	1.1180

debug>> 

Можно также ввести эти команды в командном окне при отладке:

КомандаОписание

dbcont

Продолжите выполнение, чтобы затем установить точки останова.

dbquit

Выйдите из отладки и отключите симуляцию.

dbstep [in|out]

Перейдите к следующему шагу программы после того, как с точкой останова столкнутся. Переступите или продвиньтесь в/из локальную функцию MATLAB.

help

Отобразите справку для отладки командной строки.

print <var>

Отобразите значение переменной var в текущем осциллографе. Если var вектор или матрица, можно также индексировать в var. Например, var(1,2).

save

Сохраняет все переменные в текущем осциллографе к заданному файлу. Следует за синтаксисом MATLAB save команда. Чтобы получить переменные из базового рабочего пространства MATLAB, использовать load команда после симуляции завершается.

<var>

Эквивалентный print <var> если переменная находится в текущем осциллографе.

who

Отобразите переменные в текущем осциллографе.

whos

Отобразите размер и класс (тип) всех переменных в текущем осциллографе.

Если вы вводите другие команды в 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.

Смотрите также

Похожие темы