exponenta event banner

linqueryHasInputs

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

Описание

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

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

Создание

Описание

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

qIn = linqueryHasInputs(2);
advIn = find(advisor,qIn)
advIn = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x13 linearize.advisor.BlockDiagnostic]
           QueryType: 'Has 2 Inputs'

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