slreportgen.finder.ModelVariableFinder class

Пакет: slreportgen.finder
Суперклассы: mlreportgen.finder.Finder

Находит переменные, используемые моделью Simulink

Описание

Найдите переменные, используемые Simulink® модель.

The slreportgen.finder.ModelVariableFinder класс является handle класс.

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

HandleCompatible
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Создание

Описание

пример

finder = slreportgen.finder.ModelVariableFinder(container) создает средство поиска, которое находит переменные, используемые в заданной container, которая может быть моделью Simulink или подсистемой. См. свойство Container. Можно ограничить поиск, задав свойства искателя. Используйте методы поиска для выполнения поиска.

Примечание

Этот поисковик предоставляет два способа получить результаты поиска:

  1. Чтобы вернуть результаты поиска в виде массива, используйте find способ. Добавьте результаты непосредственно к отчету или обработайте результаты в for цикл.

  2. Чтобы повторить результаты по одному, используйте hasNext и next методы в while цикл.

Опция не имеет преимущества эффективности.

finder = slreportgen.finder.ModelVariableFinder(Name,Value) устанавливает свойства с помощью пар "имя-значение". Можно задать несколько аргументы пары "имя-значение" в любом порядке. Заключайте каждое имя свойства в одинарные или двойные кавычки.

Свойства

расширить все

Моделируйте или подсистему для поиска, заданную как строковый скаляр или вектор символов, который содержит путь к модели или подсистеме или как указатель к модели или подсистеме.

Регулярное совпадение выражений, заданное как «off» или «on». Если Regexp является "off", регулярное соответствие выражений не включено. Если Regexp является "on", регулярное совпадение выражений включено для значений Name, SourceType, и Users свойства. Например, этот код находит переменные, которые начинаются с vehicle.

finder = slreportgen.finder.ModelVariableFinder('slrgex_sf_car');
finder.Regexp = "on";
finder.Name = "^vehicle";

См. раздел Регулярные выражения.

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

ЗначениеОписание
"compiled"Обновите результаты путем компиляции моделей перед поиском. (по умолчанию)
"cached"Получите результаты быстрее при помощи данных, кэшированных во время предыдущей компиляции.

Является ли поиск переменных в ссылочных моделях, задается как одно из значений в таблице.

ЗначениеОписание
"on"Поиск переменных в ссылочных моделях. (по умолчанию)
"off"Не искать переменные в ссылочных моделях.

Имя переменной, которую нужно искать, заданное как вектор символов или строковый скаляр. Если на Regexp для свойства задано значение "on", значение Name может быть регулярным выражением. Если на Name свойство пусто, поисковик не выполняет поиск на основе имени переменной.

Пример: "vehicledata"

Пример: "^vehicle"

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

  • "base workspace"

  • "model workspace"

  • "mask workspace"

  • "data dictionary"

Если вы задаете SourceTypeпоиск возвращает переменные только из заданного источника. Если на Regexp для свойства задано значение "on", значение SourceType может быть регулярным выражением. Если на SourceType свойство пусто, поисковик не фильтрует результаты поиска по источнику.

Пример: finder.SourceType = "model workspace" возвращает все переменные, определенные в рабочем пространстве модели.

Пример: finder.SourceType = "(base|mask) workspace" возвращает все переменные, определенные в базовом рабочем пространстве или рабочей области маски, если Regexp для свойства задано значение "On".

Пример: finder.SourceType = "\w* workspace" Возвраты все переменные, определенные в основе, маске или рабочем пространстве модели, если Regexp для свойства задано значение "On".

Имена блоков для поиска переменных. Задайте один блок как вектор символов или строковый скаляр. Задайте несколько блоков как массив векторов символов или строковые массивы. Поисковик возвращает переменные, используемые одним или несколькими указанными блоками. Если вы не устанавливаете Users свойство, искатель ищет всю модель или подсистему. Если на Regexp для свойства задано значение true, можно задать Users свойство регулярному выражению.

Например, чтобы найти все переменные в MyModel которые используются любым из Gain1 блок или Gain2 блок, можно задать оба блока в Users свойство.

myFinder.Users = ["myModel/Gain1", "myModel/Gain2"];

Кроме того, можно использовать регулярное выражение, которое совпадает с именами обоих блоков.

myFinder.Regexp = "on";
myFinder.Users = "Gain(1|2)";

Будет ли поиск переменных в маскированных подсистемах в виде одного из значений в таблице.

ЗначениеОписание
"all"Поиск переменных в маскированных подсистемах. (по умолчанию)
"none"Не искать переменные в маскированных подсистемах.

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

ЗначениеОписание
"on"Перейдите по ссылкам в библиотечные блоки. Библиотечные ссылки рассматриваются как подсистемы. (по умолчанию)
"off"Не переходите по ссылкам в библиотечных блоках. Библиотечные ссылки рассматриваются как блоки.

Будет ли включать переменные неактивных вариантных систем, заданные в качестве одного из значений в таблице.

ЗначениеОписание
"off"Не включать переменные, используемые неактивными вариантными системами. (по умолчанию)
"on"

Включите переменные, используемые неактивными вариантными системами. Переменные в неактивных вариантах найдены, только если для параметра конфигурации Variant activation time блока, содержащего Variant Subsystem или Variant Model, задано значение code compile или update diagram analyze all choices. Чтобы включить переменные в блоки Model , которые являются неактивными системами, SearchReferencedModels свойство этого искателя также должно быть установлено в "on".

Свойства Simulink.VariableUsage объекты для поиска, заданные как массив ячеек из пар "имя-значение". Искатель возвращает только переменные, чьи сопоставленные Simulink.VariableUsage объект имеет заданные значения свойств.

Пример: finder.Properties = {'SourceType', 'base workspace'}

Методы

расширить все

Примеры

свернуть все

Найдите переменные в модели и добавьте результаты непосредственно в отчет. Укажите, что поисковик включает переменные в маскированных системах.

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

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

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

% Create a variable finder and set its properties
finder = slreportgen.finder.ModelVariableFinder(model_name);
finder.LookUnderMasks = "all";

% Find variables used by the model
results = find(finder);

% Add the results to the chapter
add(chapter,results);

% Add chapter to the report
add(rpt,chapter);

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

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

% 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);
Введенный в R2019b