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           

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

Приложение

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

Введенный в R2017b