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

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

  • 'AllVariants' — Ищите все варианты.

  • 'ActiveVariants' — Ищите только активные варианты.

  • 'ActivePlusCodeVariants' — Ищите все варианты с 'Generate preprocessor conditionals' активный. В противном случае ищите только активные варианты.

Примечание

Это поисковое ограничение применяется только к различным подсистемам. Чтобы работать над всеми другими различными блоками, используйте Варианты опция MatchFilter.

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

Указатель на функцию, чтобы совпадать с элементами в поиске, такими как блоки, система, линии, порты и аннотации. Используйте MatchFilter определить, должны ли элементы быть выбраны или пропущены в поиске.

Пример: используйте MatchFilter найти весь Gain блокирует со значением усиления промежуточные 5 - 10.

blks = Simulink.FindOptions('ModelName', 'MatchFilter', @gainFiveToTen)
function match = gainFiveToTen(el)
match = false;

if strcmp(get_param(el,'Type'),'block') ...
     && strcmp(get_param(el,'BlockType'),'Gain')
     gainValue = str2double(get_param(el, 'Gain'));
     match = gainValue >= 5 && gainValue <= 10;
  end
end
end

В этом примере показано, как использовать MatchFilter со вторым выходным аргументом prune.

 [match, prune] = fcn(element)
 where
  element - Handle of the block being processed.
  match   - Logical. If false, skip the element.
  prune   - Optional logical (default false). If true, do not look in subsystems.

Варианты: Simulink обеспечивает Simulink.match.activeVariants и Simulink.match.codeCompileVariants совпадайте с функциями filter для различных блоков, которые можно использовать, чтобы найти, что активные варианты или код компилируют различные блоки. Для этого скомпилируйте модель и примените соответствующий MatchFilter опции:

  • Simulink.match.activeVariants - Блоки соответствий, которые активны в симуляции после компиляции модели

  • Simulink.match.codeCompileVariants - Блоки соответствий, которые являются частью сгенерированного кода после компиляции модели

Пример: используйте Simulink.match.activeVariants опция, чтобы найти активные варианты в модели:

set_param(model, 'SimulationCommand', 'update');
activeBlks = simulink.FindOptions(model, 'MatchFilter', @Simulink.match.activeVariants);

Пример: используйте Simulink.match.codeCompileVariants опция, чтобы найти варианты, которые являются частью сгенерированного кода C:

 MODEL([],[],[],'compileForRTW')
 F = Simulink.FindOptions('MatchFilter', @Simulink.match.codeCompileVariants);
 Simulink.findBlocks(SYSTEM, F);
 MODEL([],[],[],'term'))

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

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

Уровни в модели, чтобы искать в виде положительного целого числа. Значение по умолчанию (-1) должен искать все уровни. Задайте:

  • 1 — Поиск в системе верхнего уровня.

  • 2 — Ищите систему верхнего уровня и ее дочерние элементы, 3 искать дополнительный уровень, и так далее.

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

Примеры

свернуть все

Создайте Simulink.FindOptions объект, который задает поисковую глубину 1.

f = Simulink.FindOptions('SearchDepth',1);

Используя FindOptions объект, ищите все блоки в подсистеме под названием Unlocked, но не в любом из его дочерних элементов.

load_system('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'                         }
Введенный в R2018a