exponenta event banner

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 expression или label. Используйте Simulink.FindOptions объект с MatchFilter для работы со всеми типами блоков исполнения.

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

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

Параметр для обработки текста поиска как регулярного выражения, указанного как 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