Simulink.FindOptions

Задайте опции для нахождения блоков в моделях и подсистемах

Variants опция будет удаляема. Использование MatchFilter вместо этого. Для получения дополнительной информации см. раздел Вопросов совместимости.

Описание

Simulink.FindOptions объекты позволяют вам ограничивать поиск с помощью Simulink.findBlocks и Simulink.findBlocksOfType функций.

Создание

Описание

f = Simulink.FindOptions создает FindOptions объект, который использует опции поиска по умолчанию.

пример

f = Simulink.FindOptions(Name,Value) устанавливает свойства с помощью пар "имя-значение". Для примера, Simulink.FindOptions('SearchDepth',1) создает FindOptions объект с глубиной поиска 1. Можно задать несколько пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.

Свойства

расширить все

Опция соответствия случая при поиске, заданная как true для чувствительного к регистру поиска или false для нечувствительного к регистру поиска.

Типы данных: logical

Опция поиска для перехода по библиотечным ссылкам, заданная как true или false. Если trueпоиск следует по ссылкам в библиотечных блоках.

Типы данных: logical

Опция поиска для включения комментируемых блоков, заданная как true или false.

Типы данных: logical

Опции для поиска маскированных блоков, заданные как:

  • 'all' - Поиск во всех маскированных блоках.

  • 'none' - Предотвратить поиск в маскированных системах.

  • 'functional' - Включить маскированные подсистемы, не имеющие диалоговых окон.

  • 'graphical' - Включить маскированные подсистемы, не имеющие рабочих областей или диалоговых окон.

Типы данных: char | string

Опции для поиска вариантов подсистем, заданные как:

  • 'AllVariants' - Поиск по всем вариантам выбора.

  • 'ActiveVariants' - Поиск только активных вариантов выбора.

  • 'ActivePlusCodeVariants' - Поиск всех вариантов вариантов в Variant Subsystem, которые активны в симуляции и являются частью сгенерированного кода.

Примечание

Это ограничение поиска применяется только к Variant Subsystem блокам, для которых установлено Variant control mode expression или label. Используйте Simulink.FindOptions объект со MatchFilter опция для работы со всеми типами вариантов блоков.

Типы данных: char | string

Указатель на функцию, соответствующий элементам поиска, таким как блоки, система, линии, порты и аннотации. Использование 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');

Опция для обработки поискового текста как регулярного выражения, заданная как true или false. Дополнительные сведения о регулярных выражениях MATLAB см. в разделе Регулярные выражения.

Типы данных: logical

Уровни в модели для поиска, заданные как положительное целое число. Значение по умолчанию (-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'                         }

Вопросы совместимости

расширить все

Предупреждает, начиная с R2021a

Введенный в R2018a