Задайте опции для нахождения блоков в моделях и подсистемах
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.