exponenta event banner

find_mdlrefs

Поиск ссылочных моделей и блоков модели в иерархии моделей

Variants параметр будет удален. Использовать MatchFilter вместо этого. Дополнительные сведения см. в разделе Вопросы совместимости.

Описание

пример

[models,blocks] = find_mdlrefs(system) находит все ссылочные модели и блоки модели в иерархии моделей ниже указанной системы. find_mdlrefs функция временно загружает модели.

пример

[models,blocks] = find_mdlrefs(system,Name,Value) предоставляет дополнительные параметры поиска, использующие одну или несколько пар имя-значение. Например, чтобы сохранить загруженные модели вместо временной загрузки, установите KeepModelsLoaded кому true.

Примеры

свернуть все

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

load_system('sldemo_mdlref_basic');
[myModels,myModelBlks] = find_mdlrefs('sldemo_mdlref_basic')
myModels = 2x1 cell
    {'sldemo_mdlref_counter'}
    {'sldemo_mdlref_basic'  }

myModelBlks = 3x1 cell
    {'sldemo_mdlref_basic/CounterA'}
    {'sldemo_mdlref_basic/CounterB'}
    {'sldemo_mdlref_basic/CounterC'}

По умолчанию find_mdlrefs функция загружается, а затем закрывает модели, которые еще не были загружены. Чтобы определить, какие модели загружены, используйте find_system функция.

find_mdlrefs('sldemo_mdlref_depgraph');
find_system('type','block_diagram')
ans =

  0x1 empty cell array

Чтобы найти и загрузить все модели в иерархии моделей, задайте KeepModelsLoaded кому true.

find_mdlrefs('sldemo_mdlref_depgraph','KeepModelsLoaded',true);
find_system('type','block_diagram')
ans = 7x1 cell
    {'sldemo_mdlref_thermostat'  }
    {'sldemo_mdlref_heater'      }
    {'sldemo_mdlref_F2C'         }
    {'sldemo_mdlref_outdoor_temp'}
    {'sldemo_mdlref_house'       }
    {'sldemo_mdlref_heat2cost'   }
    {'sldemo_mdlref_depgraph'    }

Верхняя модель и все ссылочные модели остаются загруженными. Если открыть sldemo_mdlref_depgraph, можно перемещаться по иерархии моделей, не дожидаясь загрузки ссылочных моделей при их открытии.

Входные аргументы

свернуть все

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

Система должна быть SLX-файлом, MDL-файлом, блоком модели или блоком подсистемы.

Если указано имя файла, не включайте расширение файла.

Типы данных: double | char | string

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: refModels = find_mdlrefs(topmodel,'KeepModelsLoaded',true,'ReturnTopModelAsLastElement',false)

Уровни для поиска, указанные как разделенная запятыми пара, состоящая из 'AllLevels' и числовой или логический 1 (true) или 0 (false).

  • true - Поиск всех блоков модели в иерархии модели указанного system.

  • false - Поиск только по системе верхнего уровня.

Типы данных: logical

Опция для сохранения загруженных моделей, заданная как разделенная запятыми пара, состоящая из 'KeepModelsLoaded' и числовой или логический 1 (true) или 0 (false).

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

Типы данных: logical

Опция для включения защищенных моделей в результаты поиска, указанная как разделенная запятыми пара, состоящая из 'IncludeProtectedModels' и числовой или логический 1 (true) или 0 (false).

Эта настройка влияет только на возвращаемый список ссылочных моделей; Он не влияет на возвращаемый список блоков модели.

Типы данных: logical

Опция для включения исполнительных моделей в результаты поиска, указанная как разделенная запятыми пара, состоящая из 'Variants' и 'ActivePlusCodeVariants', 'ActiveVariants', или 'AllVariants'.

  • 'ActivePlusCodeVariants' - Включить все исполнительные модели в исполнительную подсистему, которые активны в моделировании и являются частью созданного кода.

  • 'ActiveVariants' - включение активных исполнительных моделей в блок «Исполнительная подсистема».

  • 'AllVariants' - Включение всех исполнительных моделей в блок «Исполнительная подсистема».

Примечание

Это ограничение поиска применяется только к блокам Variant Subsystem, для которых установлен режим управления Variant expression или label. Используйте find_mdlrefs функции с помощью MatchFilter для работы со всеми типами блоков исполнения.

Типы данных: char | string

Параметр для сопоставления регистра при поиске, указанный как true для поиска с учетом регистра или false для поиска без учета регистра.

Типы данных: logical

Параметр поиска по ссылкам библиотеки, указанный как true или false. Если trueпоиск следует за ссылками на библиотечные блоки.

Типы данных: logical

Параметр поиска для включения блоков с комментариями, указанный как true или false.

Типы данных: logical

Параметры поиска маскированных блоков, указанные как:

  • 'all' - Поиск во всех маскированных блоках.

  • 'none' - Запретить поиск в маскированных системах.

  • 'functional' - Включить маскированные подсистемы, не имеющие диалоговых окон.

  • 'graphical' - Включить маскированные подсистемы, не имеющие рабочих областей или диалоговых окон.

Типы данных: char | string

Функциональный дескриптор для сопоставления элементов в поиске, таких как блоки, система, линии, порты и аннотации. Использовать MatchFilter чтобы определить, следует ли включать или пропускать элементы при поиске.

Именованная функция должна быть определена в файле программы MATLAB ®. Функция принимает за вход ручку элемента и возвращает два выхода.

 function [match, prune] = func(element)
 
  • Вход element является дескриптором обрабатываемого блока.

  • Первый выход, match, является логическим значением. Если false, поиск пропускает элемент.

  • Второй выход, prune, является необязательным логическим значением, которое применяется только тогда, когда element является подсистемой. Значение по умолчанию: false. Если это значение равно true, вся подсистема опущена из поиска.

Пример: Использование MatchFilter для поиска всех блоков модели в модели, для которой InitFcn определяется с помощью функции фильтра, initFcnMdlBlocks:

function match = initFcnMdlBlocks(handle)
  match = ~isempty(get_param(handle, 'InitFcn'));
end
addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
model='slexVariantMdlRefCondProp';
load_system(model);
[models,blocks] = find_mdlrefs(model, 'MatchFilter', @initFcnMdlBlocks)

Варианты: Simulink предоставляет Simulink.match.activeVariants и Simulink.match.codeCompileVariants соответствуют функциям фильтра, которые можно использовать для поиска активных вариантов или блоков вариантов компиляции кода. Для этого скомпилируйте модель и примените соответствующие MatchFilter опции:

  • Simulink.match.activeVariants - соответствует блокам, активным в моделировании после компиляции модели;

  • Simulink.match.codeCompileVariants - Соответствует блокам, которые являются частью созданного кода после компиляции модели

    Например, использовать Simulink.match.activeVariants для поиска активных вариантов в модели:

    addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
    model='slexVariantMdlRefCondProp';
    load_system(model);
    set_param(model, 'SimulationCommand', 'update');
    [models,blocks] = find_mdlrefs(model, 'MatchFilter', @Simulink.match.activeVariants);

    Например, использовать Simulink.match.codeCompileVariants для поиска вариантов, являющихся частью сгенерированного кода C:

    addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
    load_system('slexVariantMdlRefCondProp');
    assignin('base','VSS_MODE',2);
    slexVariantMdlRefCondProp([], [], [], 'compileForRTW');
    [models,blocks]=find_mdlrefs('slexVariantMdlRefCondProp', 'MatchFilter', @Simulink.match.codeCompileVariants);
    slexVariantMdlRefCondProp([], [], [], 'term');

Параметр для включения блоков с комментариями в результаты поиска, указанный как пара, разделенная запятыми, состоящая из 'IncludeCommented' и числовой или логический 1 (true) или 0 (false).

Типы данных: logical

Параметр для включения указанной системы в результаты поиска,, указанный как разделенная запятыми пара, состоящая из 'ReturnTopModelAsLastElement' и числовой или логический 1 (true) или 0 (false).

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

Типы данных: logical

Выходные аргументы

свернуть все

Имена моделей, возвращаемые в виде массива ячеек векторов символов.

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

Имена блоков модели, возвращаемые в виде массива ячеек векторов символов.

Вопросы совместимости

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

Не рекомендуется начинать с R2020b

Предупреждает, начиная с R2021a

В R2021a изменилось поведение

Представлен до R2006a