find

Найдите блоки в результатах линеаризации, которые совпадают с определенными критериями

Описание

Когда вы линеаризуете модель Simulink®, можно создать LinearizationAdvisor объект, который содержит диагностическую информацию об отдельной линеаризации блока. Чтобы найти линеаризацию блока, которая удовлетворяет определенным критериям, можно использовать find функция с объектами пользовательского запроса. В качестве альтернативы можно анализировать диагностику линеаризации с помощью Советника по вопросам Линеаризации в Model Linearizer. Для получения дополнительной информации о нахождении определенных блоков в результатах линеаризации смотрите, Находят Блоки в Результатах Линеаризации, Совпадающих с Определенными Критериями.

пример

result = find(advisor,query) возвращает подмножество диагностики блока в advisor то соответствие критерии поиска задано в query.

Примеры

свернуть все

Модель Load Simulink.

mdl = 'scdspeed';
load_system(mdl)

Линеаризуйте модель и получите LinearizationAdvisor объект.

opts = linearizeOptions('StoreAdvisor',true);
io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
[sys,~,info] = linearize(mdl,io,opts);
advisor = info.Advisor;

Создайте объект запроса для нахождения блоков на пути к линеаризации.

query = linqueryIsOnPath;

Найдите блоки с помощью объекта запроса.

advOnPath = find(advisor,query)
advOnPath = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x26 linearize.advisor.BlockDiagnostic]
           QueryType: 'On Linearization Path'

Загрузите модель Simulink.

mdl = 'scdspeed';
load_system(mdl)

Линеаризуйте модель и получите LinearizationAdvisor объект.

opts = linearizeOptions('StoreAdvisor',true);
io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
[sys,op,info] = linearize(mdl,io,opts);
advisor = info.Advisor;

Создайте составной объект запроса для нахождения всех блоков с одним входом и одним выходом.

qSISO = linqueryHasInputs(1) & linqueryHasOutputs(1);

Найдите все блоки SISO с помощью составного объекта запроса.

advSISO = find(advisor,qSISO)
advSISO = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x10 linearize.advisor.BlockDiagnostic]
           QueryType: '(Has 1 Inputs & Has 1 Outputs)'

Входные параметры

свернуть все

Диагностическая информация для линеаризации блока в виде LinearizationAdvisor возразите или массив LinearizationAdvisor объекты.

Критерии поиска в виде одного из следующего запроса возражают или логическая комбинация объектов запроса (CompoundQuery объект.

Объект запросаНайдите блоки этим...
linqueryAdviseПотенциально проблематичны для линеаризации.
linqueryAllBlocksНаходятся в advisor объект.
linqueryContributesToLinearizationЧисленно способствуйте результату линеаризации модели.
linqueryHasDiagnosticsИмейте диагностические сообщения относительно их линеаризации.
linqueryHasInputsИмейте конкретное количество входных параметров.
linqueryHasOrderИмейте конкретное количество состояний.
linqueryHasOutputsИмейте конкретное количество выходных параметров.
linqueryHasSampleTimeИмейте заданный шаг расчета.
linqueryHasZeroIOPairИмейте по крайней мере одну пару ввода/вывода, которая линеаризует, чтобы обнулить.
linqueryIsBlockSubstitutedЗадайте линеаризацию пользовательского блока.
linqueryIsBlockTypeИмеют заданный тип.
linqueryIsExactЛинеаризуются с помощью их заданной точной линеаризации.
linqueryIsNumericallyPerturbedЛинеаризуются с помощью числового возмущения.
linqueryIsOnPathНаходятся на пути к линеаризации.
linqueryIsZeroЛинеаризуйте, чтобы обнулить.

Чтобы создать составной запрос, объедините эти запросы с помощью AND (&), ИЛИ (|), и НЕ (~Логические операции. Например, чтобы найти все блоки на пути к линеаризации, которые не способствуют результату линеаризации модели, используйте:

compundQuery = linqueryIsOnPath & ~linqueryContributesToLinearization

Выходные аргументы

свернуть все

Диагностическая информация для блоков, которые совпадают с критериями поиска, заданными в query, возвращенный как:

  • LinearizationAdvisor возразите если advisor один LinearizationAdvisor объект.

  • LinearizationAdvisor объект с теми же размерностями как advisor если advisor массив.

Введенный в R2017b