Поиск ссылочных моделей и блоков модели в иерархии моделей
Variants параметр будет удален. Использовать MatchFilter вместо этого. Дополнительные сведения см. в разделе Вопросы совместимости.
[ предоставляет дополнительные параметры поиска, использующие одну или несколько пар имя-значение. Например, чтобы сохранить загруженные модели вместо временной загрузки, установите 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, можно перемещаться по иерархии моделей, не дожидаясь загрузки ссылочных моделей при их открытии.
system - Имя системы, путь блока или дескрипторИмя системы, путь блока или дескриптор, указанный как символьный вектор, строковый скаляр или числовой скаляр.
Система должна быть SLX-файлом, MDL-файлом, блоком модели или блоком подсистемы.
Если указано имя файла, не включайте расширение файла.
Типы данных: double | char | string
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
refModels = find_mdlrefs(topmodel,'KeepModelsLoaded',true,'ReturnTopModelAsLastElement',false)'AllLevels' - Уровни для поискаtrue или 1 (по умолчанию) | false или 0Уровни для поиска, указанные как разделенная запятыми пара, состоящая из 'AllLevels' и числовой или логический 1 (true) или 0 (false).
true - Поиск всех блоков модели в иерархии модели указанного system.
false - Поиск только по системе верхнего уровня.
Типы данных: logical
'KeepModelsLoaded' - Возможность сохранения загруженных моделейfalse или 0 (по умолчанию) | true или 1Опция для сохранения загруженных моделей, заданная как разделенная запятыми пара, состоящая из 'KeepModelsLoaded' и числовой или логический 1 (true) или 0 (false).
По умолчанию функция загружается, а затем закрывает модели, которые еще не были загружены. Чтобы сохранить загруженные модели, задайте для этого аргумента значение true. Сохранение загруженных моделей может оказаться полезным при планировании взаимодействия с моделями после их поиска.
Типы данных: logical
'IncludeProtectedModels' - Возможность включения защищенных моделейfalse или 0 (по умолчанию) | true или 1Опция для включения защищенных моделей в результаты поиска, указанная как разделенная запятыми пара, состоящая из 'IncludeProtectedModels' и числовой или логический 1 (true) или 0 (false).
Эта настройка влияет только на возвращаемый список ссылочных моделей; Он не влияет на возвращаемый список блоков модели.
Типы данных: logical
'Variants' - Опция для включения исполнительных моделей'ActivePlusCodeVariants' (по умолчанию) | 'ActiveVariants' | 'AllVariants'Опция для включения исполнительных моделей в результаты поиска, указанная как разделенная запятыми пара, состоящая из 'Variants' и 'ActivePlusCodeVariants', 'ActiveVariants', или 'AllVariants'.
'ActivePlusCodeVariants' - Включить все исполнительные модели в исполнительную подсистему, которые активны в моделировании и являются частью созданного кода.
'ActiveVariants' - включение активных исполнительных моделей в блок «Исполнительная подсистема».
'AllVariants' - Включение всех исполнительных моделей в блок «Исполнительная подсистема».
Примечание
Это ограничение поиска применяется только к блокам Variant Subsystem, для которых установлен режим управления Variant expression или label. Используйте find_mdlrefs функции с помощью MatchFilter для работы со всеми типами блоков исполнения.
Типы данных: char | string
'CaseSensitive' - Параметр для сопоставления регистра при поискеtrue (по умолчанию) | falseПараметр для сопоставления регистра при поиске, указанный как true для поиска с учетом регистра или false для поиска без учета регистра.
Типы данных: logical
'FollowLinks' - Возможность поиска по ссылкам на библиотекиfalse (по умолчанию) | trueПараметр поиска по ссылкам библиотеки, указанный как true или false. Если trueпоиск следует за ссылками на библиотечные блоки.
Типы данных: logical
'IncludeCommented' - Параметр поиска для включения блоков с комментариямиtrue (по умолчанию) | falseПараметр поиска для включения блоков с комментариями, указанный как true или false.
Типы данных: logical
'LookUnderMasks' - Параметры поиска маскированных блоков'all' (по умолчанию) | 'none' | 'functional' | 'graphical'Параметры поиска маскированных блоков, указанные как:
'all' - Поиск во всех маскированных блоках.
'none' - Запретить поиск в маскированных системах.
'functional' - Включить маскированные подсистемы, не имеющие диалоговых окон.
'graphical' - Включить маскированные подсистемы, не имеющие рабочих областей или диалоговых окон.
Типы данных: char | string
'MatchFilter' - Функциональная ручка для подбора элементовФункциональный дескриптор для сопоставления элементов в поиске, таких как блоки, система, линии, порты и аннотации. Использовать 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' - Возможность включения блоков с комментариямиfalse или 0 (по умолчанию) | true или 1Параметр для включения блоков с комментариями в результаты поиска, указанный как пара, разделенная запятыми, состоящая из 'IncludeCommented' и числовой или логический 1 (true) или 0 (false).
Типы данных: logical
'ReturnTopModelAsLastElement' - Параметр для включения указанной системыtrue или 1 (по умолчанию) | false или 0Параметр для включения указанной системы в результаты поиска,, указанный как разделенная запятыми пара, состоящая из 'ReturnTopModelAsLastElement' и числовой или логический 1 (true) или 0 (false).
По умолчанию последним элементом в возвращенном списке ссылочных моделей является имя модели, библиотеки или файла подсистемы, указанного с помощью system аргумент. Если указан блок, последний элемент является именем файла, который его содержит.
Типы данных: logical
models - Названия моделейИмена моделей, возвращаемые в виде массива ячеек векторов символов.
По умолчанию последним элементом является имя файла модели, библиотеки или подсистемы, указанное с помощью system аргумент. Если указан блок, последним элементом является содержащий его файл модели, библиотеки или подсистемы.
blocks - Наименования блоков моделиИмена блоков модели, возвращаемые в виде массива ячеек векторов символов.
find_mdlrefs не поощряетсяНе рекомендуется начинать с R2020b
find_mdlrefs функция предоставляет два способа определения необходимости поиска на всех уровнях иерархии модели. Оба метода дают одинаковые результаты, но только метод пары имя-значение позволяет указать дополнительные опции.
Вместо указания, выполнять ли поиск на всех уровнях иерархии модели со вторым логическим аргументом, используйте AllLevels пара имя-значение.
Variants будет удаленПредупреждает, начиная с R2021a
Variants параметр будет удален из find_mdlrefs в будущем выпуске. Сценарии, использующие Variants продолжить работу с предупреждением.
Чтобы найти блоки модели, которые активны во время моделирования или генерации кода, скомпилируйте модель и используйте find_mdlrefs функции с помощью MatchFilter вариант.
find_mdlrefs с Variants и MatchFilter опции в модели с блоками исполненияВ R2021a изменилось поведение
Варианты: Использование find_mdlrefs функция без Variants параметр включает только блоки модели, которые активны при моделировании или генерации кода в поиске по умолчанию.
Рассмотрим модель с блоком «Исполнение модели», имеющим два варианта: Mdl_Linear_ Controller и Mdl_NonLinear_Controller.
Эта команда возвращает только активные блоки модели в модели.
[myModels,myModelBlks] = find_mdlrefs... ('sldemo_variant_subsystems_modelblocks')
myModels =
2×1 cell array
{'mdlref_nonlinear_controller' }
{'sldemo_variant_subsystems_modelblocks'}
myModelBlks =
1×1 cell array
{'sldemo_variant_subsystems_modelblocks/Controller/Mdl_NonLinear_Controller'}MatchFilter: Использование find_mdlrefs функции с помощью MatchFilter применяет фильтры к активным и неактивным вариантам исполнения по умолчанию.
Рассмотрим модель с блоком «Исполнение модели», имеющим два варианта: Mdl_Linear_ Controller и Mdl_NonLinear_Controller. Функция фильтра initFcnMdlBlocks находит все блоки модели, для которых InitFcn установлен обратный вызов.
function match = initFcnMdlBlocks(handle) match = ~isempty(get_param(handle, 'InitFcn')); end
Эта команда возвращает как активный, так и неактивный блоки модели в модели.
[myModels,myModelBlks] = find_mdlrefs('sldemo_variant_subsystems_modelblocks',... 'MatchFilter', @initFcnMdlBlocks)
myModels =
3×1 cell array
{'mdlref_linear_controller' }
{'mdlref_nonlinear_controller' }
{'sldemo_variant_subsystems_modelblocks'}
myModelBlks =
2×1 cell array
{'sldemo_variant_subsystems_modelblocks/Controller/Mdl_Linear_Controller' }
{'sldemo_variant_subsystems_modelblocks/Controller/Mdl_NonLinear_Controller'}find_mdlrefs не поддерживает использование MatchFilter вместе с Variants вариант.
Эта команда приводит к ошибке:
find_mdlrefs(bdroot,'MatchFilter',@Simulink.match.activeVariants,... 'Variants','ActiveVariants');
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.