exponenta event banner

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 является свойством, доступным только для чтения.

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

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

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

  • Точки анализа и проемы контура slLinearizer или slTuner интерфейс.

Дополнительные сведения о точках анализа см. в разделе Задание части модели для линеаризации.

AnalysisPoints является свойством, доступным только для чтения.

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

OperatingPoint является свойством, доступным только для чтения.

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

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

  • Структура - значение для одного параметра, заданного как структура со следующими полями:

    • Name - Имя параметра

    • 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 объект

Примеры

свернуть все

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

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

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

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

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

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

Приложение

Результаты линеаризации можно в интерактивном режиме устранить с помощью помощника по линеаризации в линеаризаторе модели. Пример см. в разделе Устранение неполадок результатов линеаризации в линеаризаторе модели.

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