LinearizationAdvisor

Диагностическая информация для поиска и устранения неисправностей результатов линеаризации

Описание

Когда вы линеаризуете модель Simulink®, можно создать LinearizationAdvisor объект, который содержит диагностическую информацию об отдельной линеаризации блока. Можно диагностировать результаты линеаризации путем рассмотрения этой диагностической информации.

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

Создание

Существует несколько способов создать LinearizationAdvisor возразите при линеаризации модели Simulink. Когда вы линеаризуете использование модели:

  • linearize функция, сначала создайте linearizeOptions набор опции, устанавливая StoreAdvisor опция к true. Затем линеаризуйте модель с помощью linearize, возврат info аргумент.

  • slLinearizer интерфейс, сначала создайте linearizeOptions набор опции, устанавливая StoreAdvisor опция к true. Затем создайте slLinearizer интерфейс. Когда вы получаете линейную модель из интерфейса с помощью функции линеаризации, такой как getIOTransfer, возвратите info аргумент.

  • slTuner интерфейс, сначала создайте slTunerOptions набор опции, устанавливая StoreAdvisor опция к true. Затем создайте slTuner интерфейс. Когда вы получаете линейную модель из интерфейса с помощью функции линеаризации, такой как getIOTransfer, возвратите info аргумент.

Можно затем получить доступ к LinearizationAdvisor объект с помощью info.Advisor. Если вы линеаризуете модель в нескольких рабочих точках или изменении параметра использования, info.Advisor массив LinearizationAdvisor объекты.

Кроме того, advise и find функции возвращают LinearizationAdvisor объект, который содержит диагностическую информацию для блоков, которые удовлетворяют соответствующим критериям поиска.

Свойства

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

Модель Simulink сопоставлена с информацией о диагностике линеаризации, возвращенной как вектор символов.

Model свойство только для чтения.

Линейные аналитические точки, включая входные параметры, выходные параметры, и открытия, возвратились как объект I/O линеаризации или вектор объектов ввода-вывода линеаризации.

AnalysisPoints соответствует:

  • io входной параметр linearize команда.

  • Аналитические точки и открытия цикла slLinearizer или slTuner интерфейс.

Для получения дополнительной информации об аналитических точках смотрите, Задают Фрагмент Модели, чтобы Линеаризовать.

AnalysisPoints свойство только для чтения.

Рабочая точка, в которой модель линеаризовалась в виде объекта рабочей точки.

OperatingPoint свойство только для чтения.

Выборки параметра для линеаризации в виде одного из следующего:

  • [] — Результат линеаризации не имеет никаких связанных значений параметров.

  • Структура — Значение для одного параметра в виде структуры со следующими полями:

    • Name 'ParameterName'

    • Value — Значение параметров

  • Массив структур — Значения для нескольких параметров.

Для получения дополнительной информации об изменении параметра смотрите, Задают Выборки Параметра для Пакетной Линеаризации.

Parameters свойство только для чтения.

Опции алгоритма линеаризации в виде linearizeOptions объект.

LinearizationOptions соответствует options входной параметр linearize, slLinearizer, или slTuner.

LinearizationOptions свойство только для чтения.

Диагностическая информация для каждого блока, который совпадает с критериями поиска, раньше создавала LinearizationAdvisor объект в виде BlockDiagnostic возразите или вектор BlockDiagnostic объекты.

Можно получить доступ к этой диагностике блока с помощью getBlockInfo команда. Чтобы получить список блоков, используйте getBlockPaths команда.

BlockDiagnostics свойство только для чтения.

Тип запроса раньше получал диагностику линеаризации в виде одного из следующего:

  • 'All Blocks' когда вы первоначально создаете LinearizationAdvisor объект с помощью линеаризации функционирует, такие как linearize или getIOTransfer.

  • 'Linearization Advice' когда вы создаете LinearizationAdvisor объект с помощью advise команда.

  • Вектор символов, совпадающий с QueryType свойство соответствующего пользовательского запроса возражает, когда вы создаете LinearizationAdvisor объект с помощью find команда.

QueryType свойство только для чтения.

Описание запроса раньше получало диагностику линеаризации в виде одного из следующего:

  • 'All Linearized Blocks' когда вы первоначально создаете LinearizationAdvisor объект с помощью линеаризации функционирует, такие как linearize или getIOTransfer.

  • 'Blocks that are Potentially Problematic for Linearization' когда вы создаете LinearizationAdvisor объект с помощью advise команда.

  • Вектор символов, совпадающий с Description свойство соответствующего пользовательского запроса возражает, когда вы создаете LinearizationAdvisor объект с помощью find команда.

Description свойство только для чтения.

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

adviseНайдите блоки, которые потенциально проблематичны для линеаризации
highlightПодсветите путь к линеаризации в модели Simulink
findНайдите блоки в результатах линеаризации, которые совпадают с определенными критериями
getBlockInfoПолучите диагностическую информацию для линеаризации блока
getBlockPathsПолучите список блоков в LinearizationAdvisor объект

Примеры

свернуть все

Модель Load Simulink.

mdl = 'scdpendulum';
load_system(mdl)

Создайте набор опции линеаризации, включив StoreAdvisor опция.

opt = linearizeOptions('StoreAdvisor',true);

Линеаризуйте модель с помощью этого набора опции, возвращая info аргумент.

io = getlinio(mdl);
[linsys,~,info] = linearize(mdl,io,opt);

Извлеките LinearizationAdvisor объект от info.

advisor = info.Advisor
advisor = 
  LinearizationAdvisor with properties:

               Model: 'scdpendulum'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x11 linearize.advisor.BlockDiagnostic]
           QueryType: 'All Blocks'

Модель Load Simulink.

mdl = 'scdspeed';
load_system(mdl)

Создайте набор опции линеаризации, включив StoreAdvisor опция.

opt = linearizeOptions('StoreAdvisor',true);

Задайте аналитические точки ввода и вывода и создайте slLinearizer интерфейс с помощью этой опции установлен.

io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
SL = slLinearizer(mdl,io,opt);

Найдите передаточную функцию от входа до выхода, возвратив info аргумент.

[linsys,info] = getIOTransfer(SL,'scdspeed/throttle (degrees)','scdspeed/rad//s to rpm');

Извлеките LinearizationAdvisor объект от info.

advisor = info.Advisor
advisor = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x27 linearize.advisor.BlockDiagnostic]
           QueryType: 'All Blocks'

Модель Load Simulink.

mdl = 'scdspeed';
load_system(mdl)

Создайте slTunerOptions набор опции, включая StoreAdvisor опция.

opt = slTunerOptions('StoreAdvisor',true);

Задайте аналитические точки ввода и вывода и создайте slTuner интерфейс с помощью этой опции установлен.

io(1) = linio('scdspeed/throttle (degrees)',1,'input');
io(2) = linio('scdspeed/rad//s to rpm',1,'output');
ST = slTuner(mdl,io,opt);

Как правило, вы настроили бы свою систему управления с помощью systune функция. Затем можно найти передаточную функцию от входа до выхода, возвратив info аргумент.

[linsys,info] = getIOTransfer(ST,'scdspeed/throttle (degrees)','scdspeed/rad//s to rpm');

Извлеките LinearizationAdvisor объект от info.

advisor = info.Advisor
advisor = 
  LinearizationAdvisor with properties:

               Model: 'scdspeed'
      OperatingPoint: [1x1 opcond.OperatingPoint]
    BlockDiagnostics: [1x27 linearize.advisor.BlockDiagnostic]
           QueryType: 'All Blocks'

Модель Load Simulink.

mdl = 'scdpendulum';
load_system(mdl)

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

io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;

Найдите потенциально проблематичные блоки для линеаризации.

result = advise(advisor)
result = 
  LinearizationAdvisor with properties:

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

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

Модель Load Simulink.

mdl = 'scdpendulum';
load_system(mdl)

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

io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;

Найдите блоки, которые потенциально проблематичны для линеаризации.

blocks = advise(advisor);

Получите диагностику для этих блоков.

diags = getBlockInfo(blocks)
diags = 
Linearization Diagnostics for the Blocks:

Block Info:
-----------
Index   BlockPath                                           Is On Path   Contributes To Linearization   Linearization Method   
1.      scdpendulum/pendulum/Saturation                     Yes          No                             Exact                  
2.      scdpendulum/angle_wrap/Trigonometric Function1      Yes          No                             Perturbation           
3.      scdpendulum/pendulum/Trigonometric Function         Yes          No                             Perturbation           

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

Приложение

Можно в интерактивном режиме диагностировать результаты линеаризации с помощью Советника по вопросам Линеаризации в Model Linearizer. Для примера смотрите Результаты Линеаризации Поиска и устранения неисправностей в Model Linearizer.

Введенный в R2017b