Поиск систем, блоков, линий, портов и аннотаций
Variants параметр будет удален. Использовать MatchFilter вместо этого. Дополнительные сведения см. в разделе Вопросы совместимости.
возвращает загруженные системы и объекты в тех системах, которые удовлетворяют критериям, указанным одним или несколькими Objects = find_system(Name,Value)Name,Value аргументы пары. Этот синтаксис можно использовать для задания ограничений поиска и поиска определенных значений параметров. Укажите ограничения поиска перед парами параметров и значений.
возвращает объекты в указанной системе, удовлетворяющие указанным критериям.Objects = find_system(System,Name,Value)
Возвращает имена всех загруженных систем и их блоков.
load_system('vdp')
find_systemans = 15x1 cell
{'vdp' }
{'vdp/Constant' }
{'vdp/More Info' }
{'vdp/More Info/Model Info'}
{'vdp/Mu' }
{'vdp/Mux' }
{'vdp/Product' }
{'vdp/Scope' }
{'vdp/Square' }
{'vdp/Sum' }
{'vdp/Sum1' }
{'vdp/x1' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out2' }
Возвращает загруженные системы и библиотеки, в том числе vdp.
Вернуть vdp система и ее блоки.
load_system({'vdp','ex_sldemo_clutch'})
find_system('vdp')ans = 15x1 cell
{'vdp' }
{'vdp/Constant' }
{'vdp/More Info' }
{'vdp/More Info/Model Info'}
{'vdp/Mu' }
{'vdp/Mux' }
{'vdp/Product' }
{'vdp/Scope' }
{'vdp/Square' }
{'vdp/Sum' }
{'vdp/Sum1' }
{'vdp/x1' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out2' }
Возвращает имена загруженных моделей, подсистем и библиотек. Имя подсистемы возвращается только в том случае, если подсистема может быть загружена независимо.
load_system('vdp'); find_system('type','block_diagram')
ans = 1x1 cell array
{'vdp'}
Возвращает имена всех блоков Goto, являющихся дочерними элементами подсистемы Unlocked в ex_sldemo_clutch система.
load_system('ex_sldemo_clutch'); find_system('ex_sldemo_clutch/Unlocked','SearchDepth',1,'BlockType','Goto')
ans = 2x1 cell
{'ex_sldemo_clutch/Unlocked/Goto' }
{'ex_sldemo_clutch/Unlocked/Goto1'}
Copyright 2020 The MathWorks, Inc.
Поиск в vdp и возвращает имена всех блоков усиления, для которых установлено значение усиления 1.
load_system('vdp'); find_system('vdp','BlockType','Gain','Gain','1')
ans = 1x1 cell array
{'vdp/Mu'}
Получение дескрипторов всех линий и аннотаций в vdp система. С 'FindAll'функция возвращает дескрипторы независимо от способа указания системы для поиска.
load_system('vdp'); L = find_system('vdp','FindAll','on','type','line')
L = 19×1
34.0044
33.0044
32.0044
31.0044
30.0044
29.0044
28.0044
27.0044
26.0044
25.0044
⋮
A = find_system('vdp','FindAll','on','type','annotation')
A = 2×1
36.0044
35.0044
Поиск любых параметров диалогового окна блока со значением 0 в vdp и ex_sldemo_clutch системы.
load_system({'vdp','f14'})
find_system({'vdp','f14'},'BlockDialogParams','0')ans =
32×1 cell array
{'vdp/More Info' }
{'vdp/More Info/Model Info' }
{'vdp/Scope' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out1' }
{'vdp/Out2' }
{'vdp/Out2' }
{'f14/Aircraft↵Dynamics↵Model' }
{'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
{'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
{'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
{'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
.
.
.Поиск всех блоков на верхнем уровне загруженных систем со значением параметра диалогового окна блоков, начинающегося с 3.
load_system({'ex_sldemo_clutch','vdp'});
find_system('SearchDepth','1','regexp','on','BlockDialogParams','^3')ans = 4x1 cell
{'vdp/Scope' }
{'vdp/Scope' }
{'vdp/Square' }
{'ex_sldemo_clutch/w'}
При поиске с помощью регулярных выражений можно указать часть вектора символов, которую требуется сопоставить, чтобы вернуть все объекты, содержащие этот вектор символов. Найдите все блоки ввода и вывода в ex_sldemo_clutch модель.
load_system('ex_sldemo_clutch'); find_system('ex_sldemo_clutch','regexp','on','blocktype','port')
ans = 39x1 cell
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction Mode Logic/Tin' }
{'ex_sldemo_clutch/Friction Mode Logic/Tfmaxs' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/lock' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/locked' }
{'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
{'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
{'ex_sldemo_clutch/Friction Mode Logic/locked' }
{'ex_sldemo_clutch/Friction Mode Logic/lock' }
{'ex_sldemo_clutch/Friction Mode Logic/unlock' }
{'ex_sldemo_clutch/Friction Mode Logic/Tf' }
{'ex_sldemo_clutch/Locked/Tin' }
{'ex_sldemo_clutch/Locked/w' }
{'ex_sldemo_clutch/Unlocked/Tfmaxk' }
{'ex_sldemo_clutch/Unlocked/Tin' }
{'ex_sldemo_clutch/Unlocked/we' }
⋮
В этом примере: myModel содержит одну подсистему, которая является ссылкой на библиотеку. После последнего открытия модели в соответствующую подсистему библиотеки был добавлен блок усиления.
Откройте модель. Использовать find_system с 'FollowLinks' установить в значение 'off'. Команда не следует по библиотечным ссылкам в подсистему и возвращает только подсистему верхнего уровня.
open_system('myModel') find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'off')
ans =
'myModel'
'myModel/Subsystem'
Использовать find_system с 'FollowLinks' установить в значение 'on'. find_system обновляет связи библиотеки и возвращает блок в подсистеме.
find_system(bdroot,'LookUnderMasks','on','FollowLinks','on')
Updating Link: myModel/Subsystem/Gain
Updating Link: myModel/Subsystem/Gain
ans =
'myModel'
'myModel/Subsystem'
'myModel/Subsystem/Gain'
Предоставление системы find_system в качестве ручки. Поиск параметров диалогового окна блока со значением 0. При выполнении нескольких вызовов в get_param для того же блока использование дескриптора блока более эффективно, чем указание полного пути блока в качестве символьного вектора.
load_system('vdp'); sys = get_param('vdp','Handle'); find_system(sys,'BlockDialogParams','0')
ans = 8×1
3.0046
4.0046
8.0046
13.0046
14.0046
14.0046
15.0046
15.0046
System - Система для поискаСистема для поиска, заданная как полное имя системного пути, массив ячеек имен системных путей, дескриптор или вектор дескрипторов.
Пример: 'MyModel/Subsystem1'
Пример: {'vdp','ex_sldemo_clutch'}
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'SearchDepth','0','LookUnderMasks','none','BlockType','Goto' выполняет поиск блоков Goto в загруженных системах, исключая маскированные подсистемы.При использовании find_system функция, Name,Value аргументы пары могут включать ограничения поиска и пары имен и значений параметров. Ограничения поиска можно задавать в любом порядке, но они должны предшествовать парам имен и значений параметров.
Список параметров блока см. в разделе Параметры блока.
'BlockDialogParams' - Опция поиска параметров диалогового окна блока для указанного значенияОпция поиска параметров диалогового окна блока для указанного значения, указанного как разделенная запятыми пара, состоящая из 'BlockDialogParams' и вектор символов или строковый скаляр. Эта пара должна следовать другим парам ограничений поиска.
'CaseSensitive' - Возможность учета случая при сопоставлении'on' (по умолчанию) | 'off'Параметр, учитывающий регистр при совпадении, указанный как разделенная запятыми пара, состоящая из 'CaseSensitive' и 'on' для поиска с учетом регистра или 'off'.
'FindAll' - Возможность включения линий, портов и аннотаций в системы'off' (по умолчанию) | 'on'Параметр для включения в поиск линий, портов и аннотаций в системах, указанный как разделенная запятыми пара, состоящая из 'FindAll' и 'on' или 'off'.Если для этой опции установлено значение 'on', find_system возвращает вектор дескрипторов независимо от способа указания System аргумент.
'FirstResultOnly' - Опция возврата только первого результата'off' (по умолчанию) | 'on'Опция, чтобы вернуть только первый результат, а затем остановить поиск, указанный как пара, разделенная запятыми, состоящая из 'FirstResultOnly' и 'on' или 'off'.
'LookInsideSubsystemReference' - Возможность заглянуть в подсистему, на которую имеется ссылка'on' (по умолчанию) | 'off'Опция для просмотра подсистемы, на которую имеется ссылка, в модели и списка дочерних блоков, указанных как разделенная запятыми пара, состоящая из 'LookInsideSubsystemReference' и 'on' или 'off'.
'FollowLinks' - Возможность перехода по ссылкам в библиотечные блоки'off' (по умолчанию) | 'on'Параметр для следования по ссылкам на блоки библиотеки, указанные как разделенная запятыми пара, состоящая из 'FollowLinks' и 'on' или 'off'. Если система для поиска не указана, find_system включает загруженные библиотеки в результаты, независимо от того, 'FollowLinks' кому 'on' или 'off'. Вы можете использовать 'FollowLinks' с 'LookUnderMasks' для обновления ссылок на библиотеки в подсистемах. См. раздел Обновление ссылок на библиотеки в подсистеме.
'IncludeCommented' - Возможность включения блоков с комментариями'off' (по умолчанию) | 'on'Параметр для включения в поиск блоков с комментариями, указанных как пара, разделенная запятыми, состоящая из 'IncludeCommented' и 'on' или 'off'.
'LoadFullyIfNeeded' - Опция для загрузки любых частично загруженных моделей'on' (по умолчанию) | 'off'Опция для загрузки любых частично загруженных моделей, указанных как пара, разделенная запятыми 'LoadFullyIfNeeded' и 'on' для загрузки моделей или 'off' для отключения загрузки. Эта опция используется, например, для предотвращения предупреждений о загрузке.
'LookUnderMasks' - Параметры поиска под масками'graphical' (по умолчанию) | 'none' | 'functional' | 'all' | 'on' | 'off'Параметры поиска в масках, указанные как разделенная запятыми пара, состоящая из 'LookUnderMasks' и один из следующих вариантов:
'graphical' - Поиск включает маскированные подсистемы, не имеющие рабочих областей и диалоговых окон.
'none' - Поиск пропускает маскированные подсистемы.
'functional' - Поиск включает маскированные подсистемы, не имеющие диалоговых окон.
'all' - Поиск включает все маскированные подсистемы.
'on' - Поиск включает все маскированные подсистемы.
'off' - Поиск пропускает маскированную подсистему.
'RegExp' - Параметр для обработки выражений поиска как регулярных выражений'off' (по умолчанию) | 'on'Параметр для обработки выражений поиска как регулярных выражений, указанных как пара, разделенная запятыми, состоящая из 'RegExp' и 'on' для обработки выражений поиска как регулярных выражений или 'off'. Дополнительные сведения о регулярных выражениях MATLAB ® см. в разделе Регулярные выражения.
'SearchDepth' - Параметр для ограничения глубины поискаПараметр, ограничивающий глубину поиска указанным уровнем, указанным как разделенная запятыми пара, состоящая из 'SearchDepth' и вектор положительных целых символов или строковый скаляр. Например, укажите '0' только для поиска загруженных систем, '1' для блоков и подсистем системы верхнего уровня, '2' для системы верхнего уровня и ее дочерних систем и т.д. По умолчанию выполняется поиск на всех уровнях.
'Variants' - Опции для поиска вариантов'ActiveVariants' (по умолчанию) | 'AllVariants' | 'ActivePlusCodeVariants'Опции для поиска вариантов, указанные как разделенная запятыми пара, состоящая из 'Variants' и один из следующих вариантов:
'ActiveVariants' - Поиск только активного варианта в подсистеме вариантов.
'AllVariants' - поиск всех вариантов в подсистеме вариантов.
'ActivePlusCodeVariants' - поиск всех вариантов в подсистеме вариантов, которые активны в моделировании и являются частью созданного кода.
Примечание
Это ограничение поиска применяется только к блокам Variant Subsystem, для которых установлен режим управления Variant expression или label. Используйте find_system функции с помощью MatchFilter для работы со всеми типами блоков исполнения.
'MatchFilter' - Функциональная ручка для подбора элементовФункциональный дескриптор для сопоставления элементов в поиске, таких как блоки, система, линии, порты и аннотации. Использовать MatchFilter чтобы определить, следует ли включать или пропускать элементы при поиске.
Именованная функция должна быть определена в файле программы MATLAB. Функция принимает за вход ручку элемента и возвращает два выхода.
function [match, prune] = func(element)
Вход element является дескриптором обрабатываемого блока.
Первый выход, match, является логическим значением. Если false, поиск пропускает элемент.
Второй выход, prune, является необязательным логическим значением, которое применяется только тогда, когда element является подсистемой. Значение по умолчанию: false. Если это значение равно true, вся подсистема опущена из поиска.
Пример: Использование MatchFilter для поиска всех блоков, не являющихся блоками ввода и вывода, в модели с помощью собственной определенной функции фильтра, nonInOutBlocks:
function match = nonInOutBlocks(handle) match = true; if strcmp(get_param(handle, 'Type'), 'block') blockType = get_param(handle, 'BlockType'); if strcmp(blockType, 'Inport') || ... strcmp(blockType, 'Outport') match = false; end end end
load_system('vdp'); blks = find_system('vdp', 'MatchFilter', @nonInOutBlocks)
Варианты: 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='sldemo_variant_subsystems'; load_system(model); assignin('base','VSS_MODE',2); set_param(model, 'SimulationCommand', 'update'); activeBlks = find_system(model, 'MatchFilter', @Simulink.match.activeVariants);
Пример: Использование Simulink.match.codeCompileVariants для поиска вариантов, являющихся частью сгенерированного кода C:
addpath(fullfile(matlabroot,'examples','simulink_variants','main')); load_system('sldemo_variant_subsystems'); assignin('base','VSS_MODE',2); sldemo_variant_subsystems([], [], [], 'compileForRTW'); activeBlks= find_system('sldemo_variant_subsystems', 'MatchFilter', @Simulink.match.codeCompileVariants); sldemo_variant_subsystems([], [], [], 'term');
Objects - Совпадающие объектыНайдены соответствующие объекты, возвращенные как:
Массив ячеек с именами путей, если указано System как имя пути или массив ячеек имен путей, или если система не указана
Вектор маркеров перемещения, если указан System в качестве дескриптора или вектора дескрипторов
Variants будет удаленПредупреждает, начиная с R2021a
Variants параметр будет удален из find_system в будущем выпуске. Сценарии, использующие Variants продолжить работу с предупреждением.
Чтобы найти в модели блоки вариантов, которые активны во время моделирования или генерации кода, скомпилируйте модель и используйте find_system функции с помощью MatchFilter вариант.
find_system с Variants и MatchFilter опции в модели с блоками исполненияВ R2021a изменилось поведение
Варианты: Использование find_system функция без Variants опция включает в поиск только активный вариант по умолчанию.
Рассмотрим модель с подсистемой исполнения, которая имеет два варианта выбора, Linear Controller и Non-Linear Controller.
Эта команда возвращает только активные блоки Add в модели.
add_blocks=find_system('sldemo_variant_subsystems/Controller',... 'BlockType','Sum')
add_blocks =
1×1 cell array
{'sldemo_variant_subsystems/Controller/Nonlinear Controller/Add'}MatchFilter: Использование find_system функции с помощью MatchFilter применяет фильтры к активным и неактивным вариантам исполнения по умолчанию.
Рассмотрим модель с подсистемой исполнения, которая имеет два варианта выбора, Linear Controller и Non-Linear Controller. Функция фильтра findAddBlocks находит все блоки Add в модели.
function match = findAddBlocks(handle) match = strcmp(get_param(handle, 'Type'), 'block') &&... strcmp(get_param(handle, 'BlockType'), 'Sum'); end
Эта команда возвращает как активный, так и неактивный блоки Add в модели.
add_blocks=find_system('sldemo_variant_subsystems','MatchFilter',... @findAddBlocks)
add_blocks =
2×1 cell array
{'sldemo_variant_subsystems/Controller/Linear Controller/Add' }
{'sldemo_variant_subsystems/Controller/Nonlinear Controller/Add'}
find_system не поддерживает использование MatchFilter вместе с Variants вариант.
Эта команда приводит к ошибке:
find_system(bdroot,'MatchFilter',@Simulink.match.activeVariants,... 'Variants','ActiveVariants');
find_mdlrefs | get_param | getSimulinkBlockHandle | Обозреватель моделей | set_param | Редактор Simulink | Simulink.allBlockDiagrams | Simulink.findBlocks | Simulink.findBlocksOfType
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.