exponenta event banner

linqueryHasOutputs

Объект запроса для поиска блоков с указанным количеством выходов

Описание

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

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

Создание

Описание

пример

query = linqueryHasOutputs(numOutputs) создает объект запроса для поиска всех блоков в LinearizationAdvisor объект, имеющий указанное количество выходов. Этот синтаксис задает NumOutputs свойства объекта запроса.

Свойства

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

Количество блочных выходов, указанное как неотрицательное целое число.

Тип запроса, указанный как символьный вектор формы 'Has <N> Outputs', где <N> равно NumOutputs.

Описание запроса, указанное как символьный вектор формы 'Blocks with <N> Outputs', где <N> равно NumOutputs. С помощью этого свойства можно добавить собственное описание к объекту запроса.

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

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

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

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

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

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;

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

qOut = linqueryHasOutputs(2);
advOut = find(advisor,qOut)
advOut = 
  LinearizationAdvisor with properties:

               Model: 'scdpendulum'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x1 linearize.advisor.BlockDiagnostic]
           QueryType: 'Has 2 Outputs'

Загрузите модель 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)'

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

Приложение

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

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