find_mdlrefs

Найти модели-ссылки и блоки Model в иерархии модели

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

Описание

пример

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

пример

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

Примеры

свернуть все

Найдите модели-ссылки и блоки Model для всех моделей, на которые ссылается заданная модель.

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, блоком Model или блоком Subsystem.

Если вы задаете имя файла, не добавляйте расширение файла.

Типы данных: 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 - Поиск всех блоков Model в иерархии модели заданной system.

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

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

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

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

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

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

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

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

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

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

  • 'ActiveVariants' - Включите активные модели вариантов в блок Variant Subsystem.

  • 'AllVariants' - Включите все модели вариантов в блок Variant Subsystem.

Примечание

Это ограничение поиска применяется только к Variant Subsystem блокам, для которых установлено Variant control mode 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 определяется с помощью функции filter, 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 соответствовать функциям filter, которые можно использовать, чтобы найти активные варианты или кодировать варианты блоков. Для этого скомпилируйте модель и примените соответствующую 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 аргумент. Если вы задаете блок, последним элементом является содержащая его модель, библиотека или файл подсистемы.

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

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

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

Не рекомендуемый запуск в R2020b

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

Поведение изменено в R2021a

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