exponenta event banner

linqueryAdvise

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

Описание

linqueryAdvise создает пользовательский объект запроса для поиска блоков в результате линеаризации, которые потенциально проблематичны для линеаризации.

При линеаризации модели Simulink ® можно создать LinearizationAdvisor объект, содержащий диагностическую информацию об отдельных блочных линеаризациях. Для поиска линеаризаций блоков, удовлетворяющих определенным критериям, можно использовать find с пользовательскими объектами запроса. Также можно проанализировать диагностику линеаризации с помощью помощника по линеаризации в линеаризаторе модели. Дополнительные сведения о поиске конкретных блоков в результатах линеаризации см. в разделе Поиск блоков в результатах линеаризации, соответствующих определенным критериям.

Использование find функция с linqueryAdvise эквивалентен использованию advise функция.

Создание

Синтаксис

Описание

пример

query = linqueryAdvise создает объект запроса для поиска всех блоков в LinearizationAdvisor объекты, которые потенциально проблематичны для линеаризации.

Свойства

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

Тип запроса, указанный как 'Linearization Advice'.

Описание запроса, указанное как 'Blocks that are Potentially Problematic for Linearization'. С помощью этого свойства можно добавить собственное описание к объекту запроса.

Использование

После создания linqueryAdvise объект запроса, можно:

  • Найти все блоки в LinearizationAdvisor объекты, которые потенциально проблематичны для линеаризации с помощью linqueryAdvise запрос непосредственно с помощью find команда.

  • Создать CompoundQuery путем логического объединения linqueryAdvise запрос с другими объектами запроса.

Функции объекта

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

Примеры

свернуть все

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

mdl = 'scdpendulum';
load_system(mdl)

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

opts = linearizeOptions('StoreAdvisor',true);
io = getlinio(mdl);
[sys,op,info] = linearize(mdl,io,opts);
advisor = info.Advisor;

Создайте объект запроса и найдите все линеаризованные блоки, имеющие потенциально проблемные линеаризации.

qAdvise = linqueryAdvise;
advAdvise = find(advisor,qAdvise)
advAdvise = 
  LinearizationAdvisor with properties:

               Model: 'scdpendulum'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x3 linearize.advisor.BlockDiagnostic]
           QueryType: 'Linearization Advice'

Алгоритмы

Создание linqueryAdvise эквивалентен созданию следующего пользовательского запроса:

qPath     = linqueryIsOnPath;
qZero     = linqueryIsZero;
qBlkRep   = linqueryIsBlockSubstituted;
qDiags    = linqueryHasDiagnostics;
  
q = qPath & (qZero | qDiags | qBlkRep);
 
advisor_new = find(advisor,q);

Альтернативная функциональность

Приложение

Можно также создавать пользовательские запросы для поиска определенных блоков в результатах линеаризации с помощью помощника по линеаризации в линеаризаторе модели. Дополнительные сведения см. в разделе Поиск блоков в результатах линеаризации, соответствующих определенным критериям.

Представлен в R2017b