exponenta event banner

Отладка функционального блока MATLAB

Отладка функции в моделировании

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

Для отладки функции MATLAB в этой модели:

  1. Откройте окно call_stats_block2 модель и дважды щелкните функциональный блок MATLAB stats для открытия редактора.

  2. В редакторе функциональных блоков MATLAB щелкните на тире (-) в левом поле строки:

    len = length(vals);

    В поле строки появляется красная точка, указывающая точку останова.

  3. Моделирование модели.

    Моделирование приостанавливается, когда выполнение достигает точки останова. На поле отображается зеленая стрелка.

  4. На панели инструментов щелкните Шаг (Step), чтобы ускорить выполнение.

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

  5. На панели инструментов щелкните Шаг в (Step In).

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

  6. Нажмите Step для выполнения единственной строки в локальной функции. avg. Когда локальная функция avg завершает выполнение, под последней строкой функции появляется зеленая стрелка, указывающая вниз.

  7. Щелкните Шаг (Step), чтобы вернуться к функции stats.

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

  8. Дважды щелкните Шаг (Step), чтобы вычислить stdev и для выполнения plot функция.

    Функция графика выполняется в MATLAB ®:

    В редакторе функциональных блоков MATLAB зеленая стрелка указывает вниз под последней строкой кода, указывая на завершение функции. stats.

  9. Щелкните Продолжить (Continue), чтобы продолжить выполнение модели.

    Вычисленные значения mean и stdev отображаются в блоках отображения.

  10. В редакторе функциональных блоков MATLAB щелкните Выход из отладки, чтобы остановить моделирование.

Установка условий для точек останова

Чтобы облегчить отладку кода, можно ввести выражение MATLAB в качестве условия точки останова в блоке функции MATLAB. Затем моделирование приостанавливается в этой точке останова только в том случае, если условие является истинным. Чтобы задать условную точку останова, в редакторе блоков функции MATLAB щелкните правой кнопкой мыши рядом со строкой кода и выберите «Задать условную точку останова». Введите условие во всплывающем окне. В качестве условия можно использовать любое допустимое выражение MATLAB. Это выражение условия может включать числовые значения и любые данные, находящиеся в области в точке останова.

Чтобы добавить или изменить условие в существующей точке останова, щелкните правой кнопкой мыши точку останова и выберите Задать/изменить условие. Эти действия также можно выполнить в меню Точки останова.

Просмотр переменных функций во время моделирования

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

Просмотр с помощью интерактивного дисплея

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

  1. В редакторе функциональных блоков MATLAB наведите курсор мыши на текст переменной и просмотрите всплывающее окно.

    Например, для просмотра переменной len во время моделирования наведите курсор мыши на текст len в коде. Значение len рядом с курсором, как показано на рисунке:

Просмотр с помощью отладчика командной строки

Значения для переменной функции можно сообщить с помощью утилиты Отладчик командной строки (Command Line Debugger) в окне MATLAB во время моделирования. При достижении точки останова выводится запрос отладчика командной строки: debug>>, появляется. В этой подсказке можно просмотреть значение переменной, определенной для блока MATLAB Function, введя его имя:

debug>> stdev
 
	1.1180

debug>> 

Отладчик командной строки также предоставляет следующие команды во время моделирования:

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

ctrl-c

Закройте отладку и завершите моделирование.

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

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

Можно выполнить любую другую команду MATLAB в debug>> , но результаты выполняются в рабочей области блока MATLAB Function. Чтобы выполнить команду в базовой рабочей области MATLAB в debug>> , используйте evalin команда с первым аргументом 'base' за которой следует вторая команда аргумента, например, evalin('base','whos'). Чтобы вернуться в базовое рабочее пространство MATLAB, используйте dbquit команда.

Предельные размеры отображения

Редактор функциональных блоков MATLAB не отображает содержимое матриц, имеющих более двух измерений или более 200 элементы. Для матриц, которые превышают эти пределы, редактор функциональных блоков MATLAB отображает только форму и базовый тип.

Проверка нарушений диапазона данных

Функциональные блоки MATLAB проверяют входы и выходы на наличие нарушений диапазона данных при вводе или выходе входных или выходных значений из блоков. Чтобы включить проверку нарушений диапазона данных, установите для параметра Simulation range check на панели Diagnostics: Data Validity диалогового окна Configuration Parameters значение error.

Задание диапазона

Чтобы задать диапазон входных и выходных данных, выполните следующие действия.

  1. В окне Ports and Data Manager выберите интересующий ввод или вывод.

    Откроется диалоговое окно свойств данных.

  2. В диалоговом окне свойств данных перейдите на вкладку «Общие» и введите предельный диапазон, как описано в разделе «Настройка общих свойств».

Инструменты отладки

Во время сеанса отладки функционального блока MATLAB используйте следующие инструменты:

Кнопка инструментаОписаниеСочетание клавиш

Построить

Откройте этот инструмент на вкладке «Редактор», выбрав команду «Построить модель» > «Построить».

Проверьте наличие ошибок и создайте приложение моделирования (если ошибок не обнаружено) для модели, содержащей этот функциональный блок MATLAB.

Ctrl + B

Схема обновления

Откройте этот инструмент на вкладке «Редактор», выбрав команду «Построить модель» > «Обновить схему».

Проверьте наличие ошибок на основе последних изменений, внесенных в функциональный блок MATLAB.

Ctrl + D

Обновить порты

Откройте этот инструмент на вкладке «Редактор», выбрав команду «Построить модель» > «Обновить порты».

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

Ctrl + Shift + A

Выполнить модель

Начните моделирование модели, содержащей функциональный блок MATLAB. Если выполнение приостановлено в точке останова, продолжает отладку.

F5

Остановить модель

Остановите моделирование модели, содержащей функциональный блок MATLAB. Либо на вкладке Редактор выберите Выход из отладки, если выполнение приостановлено в точке останова.

Shift + F5

Установить/очистить

Откройте этот инструмент, выбрав пункты Точки останова > Установить/Очистить.

Установите новую точку останова или очистите существующую точку останова для выбранной строки кода в блоке MATLAB Function. При наличии текстового курсора или выделенного текста линия выбирается. На выбранной строке появится индикатор точки останова.

Либо щелкните символ дефиса (-) рядом с номером строки. Вместо дефиса появится индикатор точки останова. Щелкните индикатор точки останова, чтобы очистить точку останова.

F12

Включить/отключить

Откройте этот инструмент, выбрав пункты Точки останова > Включить/Отключить.

Включение или отключение существующей точки останова для выбранной строки кода в блоке MATLAB Function. Если точка останова отключена, на выбранной строке появляется индикатор.

Ничего

Задать условие

Для доступа к этому инструменту выберите Точки останова > Задать условие.

Установите условие в точке останова для выбранной строки кода в блоке MATLAB Function. Если с точкой останова связано условие, на выбранной строке появляется индикатор.

 

Очистить все

Для доступа к этому инструменту выберите «Точки останова» > «Очистить все».

Очистите все существующие точки останова в коде функционального блока MATLAB.

Ничего

Шаг

Выполните следующую строку кода в блоке MATLAB Function. Этот инструмент выполняет шаги после вызовов функций и не вводит вызываемые функции для выполнения по строкам. Этот инструмент можно использовать только после остановки выполнения в точке останова.

F10

Шаг в

Выполните следующую строку кода в блоке MATLAB Function. Если линия вызывает локальную функцию, перейдите в первую строку локальной функции. Этот инструмент можно использовать только после остановки выполнения в точке останова.

F11

Выйти

Выйдите из линейного выполнения текущей функции или локальной функции. Если используется локальная функция, отладчик продолжает работу по линии, следующей за вызовом этой локальной функции. Этот инструмент можно использовать только после остановки выполнения в точке останова.

Shift + F11

Продолжить

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

F5

Выйти из отладки

Выход из режима отладки. Этот инструмент можно использовать только после остановки выполнения в точке останова.

Shift + F5

Связанные темы