Когда вы симулируете, обновляете или генерируете код из модели Simulink®, которая содержит блоки MATLAB Function или графики Stateflow® с функциями MATLAB®, Simulink генерирует отчет для каждой функции MATLAB в вашей модели. Используйте отчет отладить ваши функции MATLAB и проверить, что они подходят для генерации кода. Отчет предоставляет информацию о типе для переменных и выражений в ваших функциях, которые могут помочь вам найти источники сообщений об ошибке и изучить правила распространения типа.
Stateflow представляет один отчет для каждой диаграммы Stateflow, независимо от количества функций MATLAB, которые это содержит.
Если у вас есть идентичные блоки MATLAB Function в вашей модели, один отчет сгенерирован для идентичных блоков.
Чтобы открыть отчет функции MATLAB, используйте один из этих методов:
Откройте функцию MATLAB. Во вкладке Editor нажмите View Report.
Симулируйте или обновите модель. Если ошибка компиляции происходит в окне Diagnostic Viewer, выберите report
ссылка.
Вызовите openReport
функция на MATLABFunctionConfiguration
объект для блока. Для получения дополнительной информации смотрите Программно доступ к Отчетам функции MATLAB.
Примечание
Первый раз, когда вы открываете отчет функции MATLAB, Simulink автоматически, обновляет вашу модель. Если вы вносите последующие изменения в код MATLAB в блоке, необходимо обновить модель, прежде чем вы вновь откроете отчет. В противном случае отчет не отражает ваши изменения. От вкладки Modeling выберите Update Model или нажмите Ctrl+D. Для получения дополнительной информации смотрите Симуляцию Схемы и Запуска Обновления.
В панели MATLAB Source представление Function List организует функции файлом, который содержит их. Чтобы визуализировать функции согласно структуре вызова, используйте представление Call Tree.
Отчет функции MATLAB только для чтения. Чтобы отредактировать функцию, выберите имя функции в MATLAB Source, разделяют на области и нажимают Edit in MATLAB.
Чтобы просмотреть функцию MATLAB в панели кода, кликните по имени функции в панели MATLAB Source. В панели кода, когда вы делаете паузу на переменной или выражении, подсказка отображает информацию о своем размере, введите, и сложность. Кроме того, подсветка синтаксиса помогает вам идентифицировать элементы синтаксиса MATLAB и определенные атрибуты генерации кода, такой как, является ли функция значением внешних параметров или является ли аргумент постоянным.
Отчет идентифицирует внешнюю функцию с фиолетовым текстом. Подсказка указывает, что функция является значением внешних параметров.
Оранжевый текст указывает на аргумент константы времени компиляции к функции точки входа или специализированной функции. Подсказка включает постоянное значение.
Знание значения аргумента константы помогает вам изучить сгенерированные функциональные подписи. Это также помогает вам видеть, когда генерация кода создает функциональные специализации для различных значений аргумента константы.
Чтобы экспортировать значение в переменную в рабочей области, кликните по Значку экспорта.
Чтобы просмотреть ошибки и предупреждения, в нижней области отчета, открывают вкладку All Messages. Чтобы подсветить исходный код для ошибки или предупреждения, кликните по сообщению. Это - лучшая практика обратиться к первому сообщению в списке, потому что последующие ошибки и предупреждения часто связываются с первым сообщением.
Чтобы просмотреть информацию о переменных для выбранной функции MATLAB, в нижней области отчета, открывают вкладку Variables.
Таблица переменных показывает:
Класс, размер и сложность
Свойства фиксированных точек
Эта информация помогает вам отладить ошибки, такие как ошибки несоответствия типов, и изучить распространение типа.
Эта таблица описывает символы, значки и другие индикаторы в таблице переменных.
Столбец в таблице переменных | Индикатор | Описание |
---|---|---|
Имя | расширитель | Переменная имеет элементы или свойства, которые вы видите путем нажатия на расширитель. |
Имя | {:} | Неоднородный массив ячеек (все элементы имеют те же свойства). |
Имя | {n} | n элемент th неоднородного массива ячеек. |
Класс | v > n | v снова используется с различным классом, размером и сложностью. Номер n идентифицирует повторное использование с уникальным набором свойств. Когда вы делаете паузу на переименованной переменной, отчет подсвечивает только экземпляры этой переменной, которые совместно используют класс, размер и сложность. Смотрите Повторное использование Та же Переменная с Различными Свойствами. |
Размер | :n | Массив переменного размера с верхней границей n . |
Размер | :? | Массив переменного размера без верхней границы. |
Размер | курсив | Массив переменного размера, размерности которого не изменяют размер во время выполнения. |
Класс | sparse префикс | Разреженный массив. |
Класс | complex префикс | Комплексное число. |
Класс | Фиксированная точка. Чтобы видеть свойства фиксированной точки, кликните по значку. |
Можно получить доступ к отчетам функции MATLAB путем вызывания этих функций на MATLABFunctionConfiguration
объекты:
openReport
открывает отчет функции MATLAB для блока.
closeReport
закрывает отчет функции MATLAB для блока.
getReport
возвращает MATLABFunctionReport
объект для блока. Вы можете информация об отчете о запросах от этого объекта путем доступа к его Functions
свойство, которое является массивом coder.Function
объекты. См. coder.Function Свойства (MATLAB Coder).
Например, чтобы создать пользовательский отчет, который перечисляет функции и переменные в блоке MATLAB Function в модели call_stats_block1
описанный в Создают Пользовательскую Функциональность Используя блок MATLAB function, выполняют эти шаги:
Доступ к MATLABFunctionConfiguration
объект для блока MATLAB Function.
config = get_param('call_stats_block1/MATLAB Function', ... 'MATLABFunctionConfiguration');
Создайте MATLABFunctionReport
объект для блока MATLAB Function.
report = getReport(config);
Доступ к coder.Function
объекты в отчете.
functions = report.Functions;
Создайте пользовательский отчет.
for i = 1:numel(functions) fprintf('Function %s uses these variables:\n',functions(i).Name) variables = functions(i).Variables; for j = 1:numel(variables) fprintf('%d. %s -- %s\n',j,variables(j).Name,variables(j).Scope) end fprintf('\n') end
Function stats uses these variables: 1. mean -- Output 2. stdev -- Output 3. vals -- Input 4. len -- Local Function avg uses these variables: 1. mean -- Output 2. array -- Input 3. size -- Input
closeReport
| getReport
| MATLABFunctionConfiguration
| MATLABFunctionReport
| openReport