Simulink.FindOptions

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

Описание

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

Создание

Описание

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

пример

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

Свойства

развернуть все

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

Типы данных: логический

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

Типы данных: логический

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

Типы данных: логический

Опции, чтобы искать маскированные блоки в виде:

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

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

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

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

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

Примечание

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

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

  • '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([], [], [], 'compileForCodegen');
findOptObj = Simulink.FindOptions('MatchFilter', @Simulink.match.codeCompileVariants);
blks=getfullname((Simulink.findBlocks('sldemo_variant_subsystems',findOptObj)));
sldemo_variant_subsystems([], [], [], 'term');

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

Типы данных: логический

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

Чтобы получить блок path, используйте 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