В разделе Создание пользовательских функциональных возможностей с помощью функционального блока MATLAB создается пример модели с функциональным блоком MATLAB, который вычисляет среднее и стандартное отклонения для набора входных значений. Программное обеспечение включает отладку для функции MATLAB при установке точки останова.
Для отладки функции MATLAB в этой модели:
Откройте окно call_stats_block2 модель и дважды щелкните функциональный блок MATLAB stats для открытия редактора.
В редакторе функциональных блоков MATLAB щелкните на тире (-) в левом поле строки:
len = length(vals);
В поле строки появляется красная точка, указывающая точку останова.

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

На панели инструментов щелкните Шаг (Step), чтобы ускорить выполнение.
Стрелка выполнения переходит к следующей строке stats, которая вызывает локальную функцию avg.
На панели инструментов щелкните Шаг в (Step In).
Выполнение переходит к вводу локальной функции avg. Находясь в локальной функции, можно использовать команды Шаг (Step) или Шаг в (Step In) для предварительного выполнения. Если локальная функция вызывает другую локальную функцию, введите ее с помощью команды «Шаг». Если требуется выполнить оставшиеся строки локальной функции, используйте команду Step Out.
Нажмите Step для выполнения единственной строки в локальной функции. avg. Когда локальная функция avg завершает выполнение, под последней строкой функции появляется зеленая стрелка, указывающая вниз.
Щелкните Шаг (Step), чтобы вернуться к функции stats.
Выполнение переходит на линию после вызова локальной функции avg.
Дважды щелкните Шаг (Step), чтобы вычислить stdev и для выполнения plot функция.
Функция графика выполняется в MATLAB ®:

В редакторе функциональных блоков MATLAB зеленая стрелка указывает вниз под последней строкой кода, указывая на завершение функции. stats.
Щелкните Продолжить (Continue), чтобы продолжить выполнение модели.
Вычисленные значения mean и stdev отображаются в блоках отображения.
В редакторе функциональных блоков MATLAB щелкните Выход из отладки, чтобы остановить моделирование.
Чтобы облегчить отладку кода, можно ввести выражение MATLAB в качестве условия точки останова в блоке функции MATLAB. Затем моделирование приостанавливается в этой точке останова только в том случае, если условие является истинным. Чтобы задать условную точку останова, в редакторе блоков функции MATLAB щелкните правой кнопкой мыши рядом со строкой кода и выберите «Задать условную точку останова». Введите условие во всплывающем окне. В качестве условия можно использовать любое допустимое выражение MATLAB. Это выражение условия может включать числовые значения и любые данные, находящиеся в области в точке останова.
Чтобы добавить или изменить условие в существующей точке останова, щелкните правой кнопкой мыши точку останова и выберите Задать/изменить условие. Эти действия также можно выполнить в меню Точки останова.
При моделировании функционального блока MATLAB можно использовать несколько инструментов для отслеживания значений переменных в функции.
Для отображения значения переменной в функции функционального блока MATLAB во время моделирования:
В редакторе функциональных блоков MATLAB наведите курсор мыши на текст переменной и просмотрите всплывающее окно.
Например, для просмотра переменной len во время моделирования наведите курсор мыши на текст len в коде. Значение len рядом с курсором, как показано на рисунке:

Значения для переменной функции можно сообщить с помощью утилиты Отладчик командной строки (Command Line Debugger) в окне MATLAB во время моделирования. При достижении точки останова выводится запрос отладчика командной строки: debug>>, появляется. В этой подсказке можно просмотреть значение переменной, определенной для блока MATLAB Function, введя его имя:
debug>> stdev 1.1180 debug>>
Отладчик командной строки также предоставляет следующие команды во время моделирования:
| Команда | Описание |
|---|---|
| Закройте отладку и завершите моделирование. |
| Продолжить выполнение до следующей точки останова. |
| Закройте отладку и завершите моделирование. |
| Переход к следующему шагу программы после обнаружения точки останова. Переход или переход к локальной функции MATLAB. |
| Отображение справки по отладке командной строки. |
| Отображение значения переменной |
| Сохранение всех переменных в текущей области в указанном файле. Следует синтаксису MATLAB |
| Эквивалентно «print < var >», если переменная находится в текущей области. |
| Отображение переменных в текущей области. |
| Отображение размера и класса (типа) всех переменных в текущей области. |
Можно выполнить любую другую команду 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.
Чтобы задать диапазон входных и выходных данных, выполните следующие действия.
В окне Ports and Data Manager выберите интересующий ввод или вывод.
Откроется диалоговое окно свойств данных.
В диалоговом окне свойств данных перейдите на вкладку «Общие» и введите предельный диапазон, как описано в разделе «Настройка общих свойств».
Во время сеанса отладки функционального блока 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 |