Укажите опции для поиска блоков в моделях и подсистемах
Variants параметр будет удален. Использовать MatchFilter вместо этого. Дополнительные сведения см. в разделе Вопросы совместимости.
Simulink.FindOptions объекты позволяют ограничить поиск с помощью Simulink.findBlocks и Simulink.findBlocksOfType функции.
создает f = Simulink.FindOptionsFindOptions объект, использующий параметры поиска по умолчанию.
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
Variants - Опции для поиска подсистем вариантов'AllVariants' (по умолчанию) | 'ActiveVariants' | 'ActivePlusCodeVariants'Опции поиска подсистем вариантов, указанные как:
'AllVariants' - поиск всех вариантов.
'ActiveVariants' - поиск только активных вариантов.
'ActivePlusCodeVariants' - поиск всех вариантов в подсистеме вариантов, которые активны в моделировании и являются частью созданного кода.
Примечание
Это ограничение поиска применяется только к блокам Variant Subsystem, для которых установлен режим управления Variant expression или label. Используйте Simulink.FindOptions объект с MatchFilter для работы со всеми типами блоков исполнения.
Типы данных: char | string
MatchFilter - Функциональная ручка для подбора элементовФункциональный дескриптор для сопоставления элементов в поиске, таких как блоки, система, линии, порты и аннотации. Использовать MatchFilter чтобы определить, следует ли включать или пропускать элементы при поиске.
Именованная функция должна быть определена в файле программы MATLAB ®. Функция принимает за вход ручку элемента и возвращает два выхода.
function [match, prune] = func(element)
Вход element является дескриптором обрабатываемого блока.
Первый выход, match, является логическим значением. Если false, поиск пропускает элемент.
Второй выход, prune, является необязательным логическим значением, которое применяется только тогда, когда element является подсистемой. Значение по умолчанию: false. Если это значение равно true, вся подсистема опущена из поиска.
Пример: Использование MatchFilter поиск всех блоков усиления в модели vdp со значением коэффициента усиления от 1 до 10.
function match = gainOneToTen(blk) match = false; if strcmp(get_param(blk,'Type'),'block') ... && strcmp(get_param(blk,'BlockType'),'Gain') gainValue = str2double(get_param(blk, 'Gain')); match = gainValue >= 1 && gainValue <= 10; end end
load_system('vdp'); findOptObj = Simulink.FindOptions('MatchFilter', @gainOneToTen); blks=getfullname((Simulink.findBlocks('vdp',findOptObj)));
Варианты: 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'); findOptObj= Simulink.FindOptions('MatchFilter', @Simulink.match.activeVariants); blks=getfullname((Simulink.findBlocks(model,findOptObj)))
Пример: Используйте 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'); findOptObj = Simulink.FindOptions('MatchFilter', @Simulink.match.codeCompileVariants); blks=getfullname((Simulink.findBlocks('sldemo_variant_subsystems',findOptObj))); sldemo_variant_subsystems([], [], [], 'term');
RegExp - Параметр для обработки текста поиска как регулярного выраженияfalse (по умолчанию) | trueПараметр для обработки текста поиска как регулярного выражения, указанного как true или false. Дополнительные сведения о регулярных выражениях MATLAB см. в разделе Регулярные выражения.
Типы данных: logical
SearchDepth - Уровни в модели для поиска-1 (по умолчанию) | положительное целое числоУровни в модели для поиска, заданные как положительное целое число. Значение по умолчанию (-1) - поиск на всех уровнях. Укажите:
1 - Поиск в системе верхнего уровня.
2 - Поиск системы верхнего уровня и ее потомков, 3 для поиска на дополнительном уровне и т.д.
Типы данных: int32
Создать Simulink.FindOptions объект, определяющий глубину поиска 1.
f = Simulink.FindOptions('SearchDepth',1);Использование FindOptions объект, поиск всех блоков в подсистеме с именем Unlocked, но не в его детях.
openExample('sldemo_clutch'); bh = Simulink.findBlocks('sldemo_clutch/Unlocked',f);
Simulink.findBlocks функция возвращает дескрипторы блоков.
Чтобы получить путь к блоку, используйте getfullname функция.
bp = getfullname(bh)
bp =
20×1 cell array
{'sldemo_clutch/Unlocked/Tfmaxk' }
{'sldemo_clutch/Unlocked/Tin' }
{'sldemo_clutch/Unlocked/Enable' }
{'sldemo_clutch/Unlocked/E_Sum' }
{'sldemo_clutch/Unlocked/Engine↵Damping' }
{'sldemo_clutch/Unlocked/Engine↵Inertia' }
{'sldemo_clutch/Unlocked/Engine↵Integrator' }
{'sldemo_clutch/Unlocked/Goto' }
{'sldemo_clutch/Unlocked/Goto1' }
{'sldemo_clutch/Unlocked/Max↵Dynamic↵Friction↵Torque'}
{'sldemo_clutch/Unlocked/V_Sum' }
{'sldemo_clutch/Unlocked/Vehicle↵Damping' }
{'sldemo_clutch/Unlocked/Vehicle↵Inertia' }
{'sldemo_clutch/Unlocked/Vehicle↵Integrator' }
{'sldemo_clutch/Unlocked/W_Slip' }
{'sldemo_clutch/Unlocked/slip direction' }
{'sldemo_clutch/Unlocked/w0' }
{'sldemo_clutch/Unlocked/w0 ' }
{'sldemo_clutch/Unlocked/we' }
{'sldemo_clutch/Unlocked/wv' }
Variants будет удаленПредупреждает, начиная с R2021a
Variants параметр будет удален из Simulink.FindOptions в будущем выпуске. Сценарии, использующие Variants продолжить работу с предупреждением.
Чтобы найти в модели блоки вариантов, которые активны во время моделирования или генерации кода, можно скомпилировать модель и использовать Simulink.FindOptions объект с MatchFilter вариант.
Simulink.FindOptions не поддерживает использование MatchFilter вместе с Variants вариант.
Эта команда приводит к ошибке:
f = Simulink.FindOptions('MatchFilter',... @Simulink.match.activeVariants, 'Variants', 'ActiveVariants'); blocks=Simulink.findBlocks('sldemo_variant_subsystems',f)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.