Задайте опции для нахождения блоков в моделях и подсистемах
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 Subsystem блокам, для которых установлено Variant control mode expression или label. Используйте Simulink.FindOptions объект со MatchFilter опция для работы со всеми типами вариантов блоков.
Типы данных: char | string
MatchFilter - Указатель на функцию, чтобы соответствовать элементамУказатель на функцию, соответствующий элементам поиска, таким как блоки, система, линии, порты и аннотации. Использование MatchFilter чтобы определить, должны ли элементы быть включены или пропущены в поиск.
Именованная функция должна быть определена в MATLAB® программный файл. Функция принимает указатель на элемент как вход и возвращает два выхода.
function [match, prune] = func(element)
Область входа element - указатель на обрабатываемый блок.
Первый выход, match, является логическим значением. Если falseпоиск пропускает элемент.
Второй выход, prune, является необязательным логическим значением, которое применяется только тогда, когда element является подсистемой. Значение по умолчанию false. Если для этого значения задано значение trueвся подсистема опущена из поиска.
Пример: Используйте MatchFilter чтобы найти все блоки Gain в модели 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 соответствовать функциям filter для вариантов блоков, которые можно использовать, чтобы найти активные варианты или кодировать скомпилировать варианты блоков. Для этого скомпилируйте модель и примените соответствующую 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
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.