exponenta event banner

slreportgen.finder.ModelVariiveFinder класс

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

Поиск переменных, используемых моделью Simulink

Описание

Поиск переменных, используемых моделью Simulink ® .

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 Model установлено значение code compile или update diagram analyze all choices. Чтобы включить переменные в блоки модели, которые являются неактивными системами, 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