exponenta event banner

класс slreportgen.report.ModelVariable

Пакет: slreportgen.report
Суперклассы: slreportgen.report.Reporter

Модельный репортер переменных

Описание

Репортер для переменной модели Simulink ® .

Примечание

Использование slreportgen.report.ModelVariable reporter в отчете, необходимо создать отчет с помощью slreportgen.report.Report класс или подкласс.

slreportgen.report.ModelVariable класс является handle класс.

Атрибуты класса

HandleCompatible
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Создание

Описание

Вы не создаете slreportgen.report.ModelVariable явно. Чтобы получить slreportgen.report.ModelVariable объект для найденной переменной модели:

  • Используйте find или next способ slreportgen.finder.ModelVariableFinder объект для получения slreportgen.finder.ModelVariableResult для найденной переменной.

  • Позвоните в getReporter способ slreportgen.finder.ModelVariableResult объект для получения slreportgen.report.ModelVariable объект.

Можно настроить отчеты переменной модели, задав свойства slreportgen.report.ModelVariable объект.

Свойства

развернуть все

Simulink.VariableUsage объект, соответствующий переменной для отчета. Объект содержит имя переменной, источник переменной и блоки, использующие переменную. Это свойство доступно только для чтения.

Путь к блоку «Модель», задающему значение переменной, определяемое как символьный вектор.

Предположим, что ссылочная модель использует аргумент модели для задания значения параметра блока. Если модель имеет несколько экземпляров ссылочной модели, средство поиска переменных модели возвращает несколько экземпляров переменной, связанной с аргументом модели. ModelBlockPath свойство уникально идентифицирует экземпляр переменной, предоставляя путь к блоку модели, который устанавливает его значение. Если переменная не связана с аргументом модели в ссылочной модели, ModelBockPath пуст. Дополнительные сведения о ссылочных моделях и специфичных для экземпляра параметрах см. в разделе Параметризация экземпляров повторно используемой ссылочной модели.

Включать ли список блоков, использующих эту переменную, указанный как true или false. Если FormatPolicy свойство имеет значение "Inline Text", список блоков не включен в отчет, независимо от значения ShowUsedBy собственность.

Если отчет включает содержимое, о котором сообщается для блока, в список «Используется», щелчок по гиперссылке на блок приведет к содержимому. См. раздел Создание отчета о переменных модели, диаграммах и блоках.

Включить ли рабочую область, в которой разрешена переменная, указанное как true или false. Если FormatPolicy свойство имеет значение "Inline Text", рабочая область не включается в отчет, независимо от значения ShowWorkspaceInfo собственность.

Средство форматирования списка, которое форматирует список блоков, использующих переменную, указанное как mlreportgen.dom.UnorderedList объект или mlreportgen.dom.OrderedList объект. Чтобы настроить форматирование списка, измените свойства объекта списка или замените его настраиваемым объектом списка, не содержащим элементов списка.

Формат значений переменных, указанных как одна из следующих строк или векторов символов:

  • "Auto" - форматирует значения переменных как таблицу или абзац в зависимости от типа данных значения.

    Типы данных, отформатированные как таблица, включают:

    • Массив ячеек

    • Логический массив

    • Числовой массив

    • Таблица MATLAB ®

    • Объект Simulink

    • Объект Stateflow ®

    • Графический объект

    • Структура или массив структуры MATLAB

    • Объект или массив объектов MATLAB

    Типы данных, отформатированные как абзац, включают:

    • Клеточный вектор

    • Логический скаляр или вектор

    • Числовой скаляр или вектор

    • Символьный или символьный массив

    • Последовательность

    • Вектор структуры MATLAB

    • Вектор объекта MATLAB

  • "Table" - форматирует значения переменных в таблице. Переменные, которые по умолчанию отображаются как абзацы, форматируются как записи таблицы. У переменных, которые иерархически структурированы объекты, такой как структуры MATLAB, объекты MATLAB, объекты Симулинка, объекты Стэтефлоу или графические объекты, могут быть свойства, которые являются самостоятельно объектами. В этом случае иерархия распрямляется, и значение свойства отображается как гиперссылка на таблицу свойств этого объекта. Таблица свойств объекта также имеет гиперссылку на исходную таблицу.

  • "Paragraph" - Форматирование значений переменной как абзаца. Переменные, которые по умолчанию форматируются как таблицы, распрямляются и форматируются как абзац.

  • "Inline Text" - форматирует переменную в соответствии с окружающим текстом.

Табличный репортер, используемый для форматирования значения переменной, указанного как mlreportgen.report.BaseTable объект. Чтобы настроить внешний вид таблицы, измените свойства отчета таблицы по умолчанию или замените его настраиваемым репортером таблицы. При добавлении содержимого в Title свойства по умолчанию или настраиваемого отчета таблицы, содержимое отображается перед заголовком таблицы в созданном отчете.

Формататор абзаца для форматирования значения переменной модели, указанного как mlreportgen.dom.Paragraph объект. Чтобы настроить внешний вид абзаца, измените свойства mlreportgen.dom.Paragraph объект или замените его настраиваемым mlreportgen.dom.Paragraph объект. При добавлении содержимого в объект абзаца по умолчанию или замены содержимое появляется перед содержимым переменной в созданном отчете.

Текстовый форматтер для форматирования имени и значения переменной модели, когда текст соответствует окружающему тексту, заданному как mlreportgen.dom.Text объект. Чтобы настроить внешний вид текста, измените свойства по умолчанию mlreportgen.dom.Text объект или замените его настраиваемым mlreportgen.dom.Text объект. При добавлении содержимого в текстовый объект по умолчанию или вместо него содержимое появляется перед переменным содержимым в созданном отчете.

Максимальное количество отображаемых столбцов таблицы, указанное как положительное целое число. Для переменных массива, сообщаемых с помощью таблицы, если количество столбцов больше значения MaxCols , таблица разделяется по вертикали. При разрезании таблица разделяется на несколько таблиц.

Максимальное количество уровней для отчета переменной, являющейся структурированным объектом или массивом структурированных объектов, указанных как неотрицательное целое число. Уровни, меньшие или равные значению DepthLimit сплющены в последовательность взаимосвязанных таблиц (см. FormatPolicy свойство). Уровни, превышающие предел глубины, не сообщаются. Если установить DepthLimit до 0, структурированные объекты не разворачиваются.

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

Включать ли заголовок, указанный как true или false. Заголовок содержит имя переменной и, при необходимости, тип данных. Если IncludeTitle является true, заголовок включен. По умолчанию заголовок включает только имя переменной. Чтобы включить тип данных переменной, установите значение ShowDataType свойство для true.

Заголовок переменной для отчета, указанный как символьный вектор, строковый скаляр, mlreportgen.dom.Text объект, mlreportgen.dom.InternalLink объект, или mlreportgen.dom.ExternalLink объект.

Если FormatPolicy свойство имеет значение "Inline Text" и Title свойство имеет значение:

  • Объект DOM, форматирование, указанное объектом DOM, игнорируется

  • Один mlreportgen.dom.InternalLink или mlreportgen.dom.ExternalLink объект, текст ссылки используется для заголовка, но заголовок не является ссылкой

В обоих случаях для форматирования заголовка используйте TextFormatter свойство этого ModelVariable репортер.

Если не указать Title свойство, заголовок - имя переменной.

Показывать ли тип данных переменной в заголовке, указанный как true или false.

Показывать ли свойства с пустыми значениями, указанными как true или false. ShowEmptyValues свойство применяется только к переменным объектов MATLAB, Simulink и Stateflow.

Показывать ли свойства, использующие значение по умолчанию, указанное как true или false. ShowDefaultValues свойство применяется только к переменным объектов MATLAB, Simulink и Stateflow.

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

Если предоставляется дескриптор функции, связанная функция должна:

  • Возьмем следующие аргументы:

    • variableName - имя сообщаемой переменной;

    • variableObject - Представляемая переменная

    • propertyName - имя свойства сообщаемой переменной;

  • Вернуть true для фильтрации указанного свойства из отчета или false для включения свойства в отчет.

Например, этот код предотвращает отображение Description и Complexity свойства Simulink.Parameter объект.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    varRptr.PropertyFilterFcn = @varPropertyFilter;
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

function tf = varPropertyFilter(~, variableObject,propertyName)
if isa(variableObject, 'Simulink.Parameter')
    tf = (propertyName == "Description") ||  ...
        (propertyName == "Complexity");
else
    tf = false;
end
end

Если предоставляется строковый скаляр или символьный вектор, он должен содержать выражение. Выражение:

  • Может использовать переменные variableName, variableObject, и propertyName

  • Необходимо задать переменную isFiltered кому true для фильтрации указанного свойства из отчета или false включение свойства в отчет

Например, этот код фильтрует CoderInfo свойство Simulink.Parameter объект из отчета.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    
    varRptr.PropertyFilterFcn = "isFiltered = " + ...
        "isa(variableObject, 'Simulink.Parameter') && " + ...
        "propertyName == 'CoderInfo';";
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

Формат или точность отображения неинтегрированных числовых значений.

Укажите формат в виде строкового скаляра или символьного вектора. См. раздел formatSpec аргумент на sprintf справочная страница.

Укажите точность как положительное целое число. См. раздел precision аргумент на num2str справочная страница.

Пример: "%.2f" отображает двойные значения с двумя цифрами справа от десятичного знака.

Пример: 2 отображает максимальное количество двух значащих цифр.

Источник шаблона для этого репортера, указанный одним из следующих способов:

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

  • Репортер или отчет, шаблон которого используется для этого репортера или библиотека шаблонов которого содержит шаблон для этого репортера

  • Документ DOM или деталь документа, шаблон которого используется для этого репортера или библиотека шаблонов которого содержит шаблон для этого репортера

Указанный шаблон должен быть того же типа, что и отчет, к которому добавлен этот репортер. Например, для отчета Microsoft ® Word :TemplateSrc должен быть шаблоном репортера Word. Если TemplateSrc пустое свойство, этот репортер использует шаблон репортера по умолчанию для типа вывода отчета.

Имя шаблона для этого репортера, указанного как вектор символов или скаляр строки. Шаблон для этого репортера должен находиться в библиотеке шаблонов источника шаблона (TemplateSrc) для этого репортера.

Цель гиперссылки для этого репортера, указанная как вектор символов или скаляр строки, указывающий идентификатор цели связи, или mlreportgen.dom.LinkTarget объект. Вектор символов или строковое скалярное значение преобразуется в LinkTarget объект. Цель ссылки непосредственно предшествует содержимому этого репортера в выходном отчете.

Методы

развернуть все

Примеры

свернуть все

Использование свойств slreportgen.report.ModelVariable для настройки форматирования переменной.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Create a Chapter
chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Reporter Example";

% Load the model
model_name = "slrgex_sf_car";
load_system(model_name);

% Find the variables in the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    
    % Get the ModelVariable reporter for the result
    % Customize the formatting of numbers
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";
    
    % Add the reporter to the chapter
    add(chapter,reporter);
end
% Add chapter to the report
add(rpt,chapter);

% Close the report and open the viewer
close(rpt);
rptview(rpt);

Создание отчета, включающего:

  • Глава для переменных модели

  • Глава для каждой схемы модели с разделом для блоков на схеме

Каждое имя блока в списке Используется переменной модели (Used By) является гиперссылкой на соответствующее содержимое блока.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Load the model
model_name = "slrgex_sf_car";
load_system(model_name);

% Create a Chapter for the Variables
chapter = mlreportgen.report.Chapter();
chapter.Title = sprintf("Model Variable Report for the %s model",model_name);

% Find the variables in the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Report on the variables
while hasNext(finder)
    result = next(finder);
    reporter = getReporter(result);
    add(chapter,reporter);
end
add(rpt,chapter);

% Add diagrams to the report
finder = slreportgen.finder.DiagramFinder(model_name);
while hasNext(finder)
    result = next(finder);
    ch = mlreportgen.report.Chapter(result.Name);
    add(ch, result);
    % Add a section for the blocks in the diagram
    sect = mlreportgen.report.Section("Title","Blocks");
    blFinder = slreportgen.finder.BlockFinder(result.Object);
    while hasNext(blFinder)
        blockresult = next(blFinder);
        add(sect,blockresult);
    end
    add(ch,sect);
    add(rpt, ch);
end

% Close and view the report
close(rpt);
rptview(rpt);
Представлен в R2019b