exponenta event banner

slTuner

Интерфейс настройки системы управления моделями Simulink

Описание

st = slTuner(mdl,tuned_blocks) создает slTuner интерфейс, st, для настройки блоков системы управления модели Simulink ® ,mdl. Интерфейс добавляет точки линейного анализа, отмеченные в модели как точки анализа st. Интерфейс также добавляет точки линейного анализа, которые подразумевают проем как постоянные проемы. Когда интерфейс выполняет линеаризацию, например, для настройки блоков, он использует исходное условие модели в качестве рабочей точки.

st = slTuner(mdl,tuned_blocks,pt) добавляет указанную точку в список точек анализа для st, игнорируя точки линейного анализа, отмеченные в модели.

st = slTuner(mdl,tuned_blocks,param) определяет параметры, значения которых необходимо изменять при настройке блоков модели.

st = slTuner(mdl,tuned_blocks,op) указывает рабочие точки для настройки блоков модели.

st = slTuner(mdl,tuned_blocks,blocksub) задает подстановочные линеаризации блоков и подсистем. Этот синтаксис используется, например, для задания пользовательской линеаризации блока. Этот синтаксис можно также использовать для блоков, которые не линеаризуются успешно, таких как блоки с разрывами или инициируемые подсистемы.

st = slTuner(mdl,tuned_blocks,options) конфигурирует параметры алгоритма линеаризации.

st = slTuner(mdl,tuned_blocks,pt,op,param,blocksub,options) использует любую комбинацию входных аргументов pt, op, param, blocksub, и options создать st. Например, можно использовать:

  • st = slTuner(mdl,tuned_blocks,pt,param)

  • st = slTuner(mdl,tuned_blocks,op,param).

Описание объекта

slTuner обеспечивает интерфейс между моделью Simulink и командами настройки systune и looptune. slTuner позволяет:

  • Укажите архитектуру управления.

  • Назначение и параметризация настраиваемых блоков.

  • Настройте систему управления.

  • Проверка конструкции путем вычисления (линеаризованных) откликов с разомкнутым и замкнутым контуром.

  • Запишите настроенные значения обратно в модель.

Потому что команды настройки, такие как systune работать на линейных моделях, slTuner интерфейс автоматически вычисляет и сохраняет линеаризацию модели Simulink. Эта линеаризация автоматически обновляется при изменении любых свойств slTuner интерфейс. Обновление происходит при вызове команд, которые запрашивают линеаризацию, сохраненную в интерфейсе. К таким командам относятся systune, looptune, getIOTransfer, и getLoopTransfer. Дополнительные сведения о линеаризации см. в разделе Что такое линеаризация?

Примеры

свернуть все

Создание и настройка slTuner интерфейс для модели Simulink ®, определяющий блоки для настройки systune или looptune.

Откройте модель Simulink.

mdl = 'scdcascade';
open_system(mdl);

Система управления состоит из двух контуров обратной связи, внутреннего контура с ПИ-контроллером C2и внешний контур с PI-контроллером C1. Предположим, что необходимо настроить эту модель для выполнения следующих задач управления:

  • Отслеживание изменений уставки в r на выходе системы y1m с нулевой установившейся ошибкой и заданным временем нарастания.

  • Отклонить возмущение, представленное d2.

systune команда может совместно настраивать блоки контроллеров в соответствии с этими проектными требованиями, которые задаются с помощью TuningGoal объекты. slTuner устанавливает эту задачу настройки.

Создание slTuner интерфейс для модели.

st = slTuner(mdl,{'C1','C2'});

Эта команда инициализирует slTuner и определяет два блока контроллера PI как настраиваемые. Каждый настраиваемый блок автоматически параметризуется в соответствии с его типом и инициализируется со значением в модели Simulink. Линеаризация оставшейся, не настраиваемой части модели вычисляется и сохраняется в slTuner интерфейс.

Конфигурирование slTuner укажите в качестве точек анализа любые местоположения сигналов, относящиеся к требованиям проекта. Добавьте выходные и ссылочные данные для требования отслеживания. Также добавьте местоположение отклонения возмущения.

addPoint(st,{'r','y1m','d2'});

Эти расположения в модели теперь доступны для ссылок в TuningGoal объекты, фиксирующие цели проектирования.

Отображение сводки slTuner конфигурирование интерфейса в окне команд.

st
 
slTuner tuning interface for "scdcascade":

2 Tuned blocks: (Read-only TunedBlocks property) 
--------------------------
Block 1: scdcascade/C1
Block 2: scdcascade/C2
 
3 Analysis points: 
--------------------------
Point 1: Signal "r", located at 'Output Port 1' of scdcascade/setpoint
Point 2: Signal "y1m", located at 'Output Port 1' of scdcascade/Sum
Point 3: 'Output Port 1' of scdcascade/d2
 
No permanent openings. Use the addOpening command to add new permanent openings.
Properties with dot notation get/set access:
      Parameters         : [] 
      OperatingPoints    : [] (model initial condition will be used.)
      BlockSubstitutions : []
      Options            : [1x1 linearize.SlTunerOptions]
      Ts                 : 0

На экране отображаются назначенные настраиваемые блоки, точки анализа и другая информация об интерфейсе. В окне команд щелкните любой выделенный сигнал, чтобы увидеть его местоположение в модели Simulink. Обратите внимание, что указание имени блока 'd2' в addPoint эквивалентна указанию одиночного выходного сигнала этого блока в качестве точки анализа.

Теперь вы можете зафиксировать цели проектирования с помощью TuningGoal объекты и использование systune или looptune настроить систему управления на выполнение этих проектных задач.

Помимо задания целей проектирования, можно использовать точки анализа для извлечения откликов системы. Например, извлеките и постройте график ответа на шаг между опорным сигналом 'r' и выходные данные 'y1m'.

T = getIOTransfer(st,'r','y1m');
stepplot(T)

Входные аргументы

свернуть все

Имя модели Simulink, указанное как символьный вектор или строка.

Пример: 'scdcascade'

Блоки, добавляемые в список настроенных блоков st, указано как:

  • Символьный вектор или строка - путь к блоку. Можно указать полный путь блока или частичный путь. Частичный путь должен соответствовать концу полного пути блока и однозначно идентифицировать блок для добавления. Например, можно ссылаться на блок по его имени при условии, что имя блока появляется только один раз в модели Simulink.

    Например, blk = 'scdcascade/C1'.

  • Массив ячеек символьных векторов или строковый массив - несколько путей блоков.

    Например, blk = {'scdcascade/C1','scdcascade/C2'}.

Точка анализа, добавляемая в список точек анализа для st, указано как:

  • Символьный вектор или строка - идентификатор точки анализа, который может быть любым из следующих:

    • Например, имя сигнала pt = 'torque'

    • Путь к блоку с одним портом вывода, например pt = 'Motor/PID'

    • Блокирование тракта и порта, инициирующего сигнал, например pt = 'Engine Model/1'

  • Массив ячеек символьных векторов или строкового массива - указывает несколько идентификаторов точек анализа. Например:

    pt = {'torque','Motor/PID','Engine Model/1'}
  • Вектор линеаризации объектов ввода-вывода - создание pt использование linio. Например:

    pt(1) = linio('scdcascade/setpoint',1,'input');
    pt(2) = linio('scdcascade/Sum',1,'output');

    Здесь, pt(1) задает входные данные, и pt(2) задает вывод.

    Интерфейс добавляет все точки, указанные pt и игнорирует их типы ввода-вывода. Интерфейс также добавляет все 'loopbreak' типовые сигналы как постоянные отверстия.

Образцы параметров для линеаризации mdl, указано как:

  • Структура (Structure) - изменение значения одного параметра путем указания param в виде структуры со следующими полями:

    • Name - имя параметра, указанное как символьный вектор или строка. Можно указать любой параметр модели, который является переменной в рабочей области модели, рабочей области MATLAB ® или словаре данных. Если переменная, используемая моделью, не является скалярной переменной, укажите имя параметра как выражение, разрешающее числовое скалярное значение. Например, для использования первого элемента вектораV в качестве параметра используйте:

      param.Name = 'V(1)';
    • Value - Значения выборки параметров, заданные как двойной массив.

    Например, можно изменить значение параметра A в диапазоне 10%:

    param.Name = 'A';
    param.Value = linspace(0.9*A,1.1*A,3);
  • Массив структуры - изменение значения нескольких параметров. Например, можно изменять значения параметров A и b в диапазоне 10%:

    [A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...
                             linspace(0.9*b,1.1*b,3));
    params(1).Name = 'A';
    params(1).Value = A_grid;
    params(2).Name = 'b';
    params(2).Value = b_grid;

Дополнительные сведения см. в разделе Определение образцов параметров для линеаризации партий.

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

Пример работы линеаризации партий с выборкой параметров см. в разделах Изменение значений параметров и Получение нескольких передаточных функций. В этом примере используется slLinearizer, но процесс тот же для slTuner.

Чтобы вычислить смещения, требуемые блоком системы LPV, укажите param, и установить st.Options.StoreOffsets кому true. Затем можно вернуть дополнительную информацию о линеаризации при вызове функций линеаризации, таких как getIOTransferи извлеките смещения с помощью getOffsetsForLPV.

Рабочая точка линеаризации mdl, указано как:

При настройке st.Parameters, затем укажите op в качестве одного из следующих:

  • Одна рабочая точка.

  • Массив объектов рабочих точек, размер которых соответствует размеру сетки параметров, заданной параметром Parameters собственность. При линеаризации партии mdl, программное обеспечение использует только одну компиляцию модели. Чтобы получить рабочие точки, соответствующие комбинациям значений параметров, выполните пакетную обрезку модели с помощью param перед линеаризацией. Для примера, в котором используется linearize см. раздел Пакетная линеаризация модели в нескольких рабочих точках, полученных из вариаций параметров.

  • Несколько моментальных снимков. При линеаризации партии mdl, программное обеспечение моделирует модель для каждой комбинации времени снимка и точки сетки параметров. Эта операция может быть дорогостоящей в вычислительном отношении.

Подстановка линеаризаций для блоков и подсистем модели, указанных как структура или массив структуры n-by-1, где n - количество блоков, для которых требуется задать линеаризацию. Использовать blocksub задание пользовательской линеаризации для блока или подсистемы. Например, можно задать линеаризации для блоков, не имеющих аналитических линеаризаций, таких как блоки с разрывами или инициируемые подсистемы.

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

При замене линеаризации временем выборки, отличающимся от времени исходного блока или подсистемы, рекомендуется установить общее время выборки линеаризации (options.SampleTime) для значения, не используемого по умолчанию.

Каждая заменяющая структура линеаризации имеет следующие поля.

Путь блока, для которого требуется задать линеаризацию, заданный как символьный вектор или строка.

Подстановка линеаризации для блока, указанного как одно из следующих значений:

  • Дважды (Double) - определение линеаризации блока SISO в качестве коэффициента усиления.

  • Массив двойных значений - задает линеаризацию блока MIMO как массив значений коэффициента усиления nu-by-ny, где nu - количество входов, а ny - количество выходов.

  • Модель LTI, модель неопределенного состояния-пространства или неопределенный реальный объект - конфигурация ввода-вывода указанной модели должна соответствовать конфигурации блока, указанной в Name. Для использования неопределенной модели требуется программное обеспечение Toolbox™ надежного управления.

  • Массив моделей LTI, неопределенные модели состояния-пространства или неопределенные реальные объекты - пакетная линеаризация модели с использованием нескольких блоковых замен. Конфигурация ввода-вывода каждой модели в массиве должна соответствовать конфигурации блока, для которого задана пользовательская линеаризация. Если вы:

    • Изменение параметров модели с помощью param и указать Value как массив модели, размеры Value должен соответствовать размеру сетки параметра.

    • Определение подстановок блоков для нескольких блоков и указание Value как массив моделей LTI для нескольких блоков, размеры массивов должны совпадать.

  • Структура со следующими полями:

    ОбластьОписание
    Specification

    Линеаризация блоков, заданная как символьный вектор, содержащий один из следующих элементов

    Указанное выражение или функция должны возвращать одно из следующих значений:

    • Линейная модель в виде D-матрицы

    • Система управления Toolbox™ объект модели LTI

    • Неопределенная модель состояния-пространства или неопределенный реальный объект (требуется программное обеспечение Rustive Control Toolbox)

    Конфигурация ввода-вывода возвращаемой модели должна соответствовать конфигурации блока, указанной в Name.

    Type

    Тип спецификации, указанный как одно из следующих значений:

    • 'Expression'

    • 'Function'

    ParameterNames

    Имена параметров функции линеаризации, заданные как массив ячеек символьных векторов. Определить ParameterNames только когда Type = 'Function' и функция линеаризации блоков требует входных параметров. Эти параметры влияют только на линеаризацию указанного блока.

    Необходимо также указать соответствующий blocksub.Value.ParameterValues поле.

    ParameterValues

    Значения параметров функции линеаризации, заданные как вектор двойников. Порядок значений параметров должен соответствовать порядку имен параметров в blocksub.Value.ParameterNames. Определить ParameterValues только когда Type = 'Function' и функция линеаризации блоков требует входных параметров.

slTuner опции, указанные как slTunerOptions набор опций.

Пример: options = slTunerOptions('IgnoreDiscreteStates','on')

Свойства

slTuner свойства объекта включают в себя:

TunedBlocks

Блоки для настройки mdl, задается как массив ячеек символьных векторов.

При создании slTuner интерфейс, TunedBlocks автоматически заполняется блоками, указанными в tuned_blocks входной аргумент. Задание дополнительных настраиваемых блоков в существующем slTuner интерфейс, использование addBlock.

Ts

Время отбора проб для анализа и настройки mdl, указано как неотрицательный скаляр.

Задайте это свойство с помощью точечной нотации (st.Ts = Ts).

По умолчанию: 0 (подразумевает непрерывное время)

Parameters

Образцы параметров для линеаризации mdl, задается как структура или массив структуры.

Задать это свойство с помощью param входной аргумент или точечная нотация (st.Parameters = param). param должен быть одним из следующих:

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

OperatingPoints

Рабочие точки линеаризации mdl, заданный как объект операционной точки, массив объектов операционной точки или массив положительных скаляров.

Задать это свойство с помощью op входной аргумент или точечная нотация (st.OperatingPoints = op). op должен быть одним из следующих:

При настройке st.Parameters, затем укажите op в качестве одного из следующих:

  • Одна рабочая точка.

  • Массив объектов рабочих точек, размер которых соответствует размеру сетки параметров, заданной параметром Parameters собственность. При линеаризации партии mdl, программное обеспечение использует только одну компиляцию модели. Чтобы получить рабочие точки, соответствующие комбинациям значений параметров, выполните пакетную обрезку модели с помощью param перед линеаризацией. Для примера, в котором используется linearize см. раздел Пакетная линеаризация модели в нескольких рабочих точках, полученных из вариаций параметров.

  • Несколько моментальных снимков. При линеаризации партии mdl, программное обеспечение моделирует модель для каждой комбинации времени снимка и точки сетки параметров. Эта операция может быть дорогостоящей в вычислительном отношении.

BlockSubstitutions

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

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

Задать это свойство с помощью blocksub входной аргумент или точечная нотация (st.BlockSubstitutions = blocksubs). Сведения о требуемой структуре см. в разделе blocksub.

Options

Опции алгоритма линеаризации, заданные как набор опций, созданный с помощью slTunerOptions.

Задать это свойство с помощью opt входной аргумент или точечная нотация (st.Options = opt).

Model

Имя линеаризуемой модели Simulink, определяемое входным аргументом как символьный вектор mdl.

TimeUnit

Единица измерения переменной времени. Это свойство задает единицы времени для линеаризованных моделей, возвращаемых getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity. Используйте любое из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

По умолчанию: 'seconds'

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

addBlockДобавить блок в список настроенных блоков для slTuner интерфейс
addOpeningДобавить сигнал в список проемов для slLinearizer или slTuner интерфейс
addPointДобавить сигнал в список точек анализа для slLinearizer или slTuner интерфейс
getPointsПолучить список точек анализа для slLinearizer или slTuner интерфейс
getOpeningsПолучить список проемов для slLinearizer или slTuner интерфейс
getBlockParamПолучение параметризации настроенного блока в slTuner интерфейс
getBlockValueПолучить текущее значение параметризации настроенного блока в slTuner интерфейс
getTunedValueПолучить текущее значение настроенной переменной в slTuner интерфейс
getBlockRateConversionПолучить параметры преобразования ставок для настроенного блока в slTuner интерфейс
setBlockParamЗадать параметризацию настроенного блока в slTuner интерфейс
setBlockValueЗадать значение параметризации настроенного блока в slTuner интерфейс
setBlockRateConversionУстановка параметров преобразования тарифов для настроенного блока в slTuner интерфейс
systuneНастройка параметров системы управления в Simulink с помощью slTuner интерфейс
looptuneНастройка циклов обратной связи MIMO в Simulink с помощью slTuner интерфейс
loopviewГрафический анализ результатов настройки системы управления с использованием slTuner интерфейс
looptuneSetupСоздать настройку настройки для looptune настройки настройки для systune использование slTuner интерфейс
showTunableПоказать значение параметризации перестраиваемых блоков slTuner интерфейс
getIOTransferФункция передачи для указанного набора ввода-вывода с помощью slLinearizer или slTuner интерфейс
getLoopTransferФункция передачи с разомкнутым контуром в указанной точке с использованием slLinearizer или slTuner интерфейс
getSensitivityФункция чувствительности в указанной точке с помощью slLinearizer или slTuner интерфейс
getCompSensitivityДополнительная функция чувствительности в указанной точке с помощью slLinearizer или slTuner интерфейс
writeBlockValueОбновление значений блоков в модели Simulink
writeLookupTableDataОбновить часть настроенной таблицы подстановки
removePointУдалить точку из списка точек анализа в slLinearizer или slTuner интерфейс
removeAllPointsУдалить все точки из списка точек анализа в slLinearizer или slTuner интерфейс
removeAllOpeningsУдалить все отверстия из списка постоянных в slLinearizer или slTuner интерфейс
refreshПовторно синхронизироваться slLinearizer или slTuner интерфейс с текущим состоянием модели

Подробнее

свернуть все

Точки анализа

Точки анализа, используемые slLinearizer и slTuner определение местоположений в модели, релевантных для линейного анализа и настройки системы управления. Точки анализа используются в качестве входных данных для команд линеаризации, таких как getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity. В качестве входных данных для команд линеаризации точки анализа могут задавать любую функцию переноса с разомкнутым контуром или с замкнутым контуром в модели. Точки анализа можно также использовать для задания требований к конструкции при настройке систем управления с помощью таких команд, как systune.

Местоположение относится к конкретному выходному порту блока в модели или к элементу шины в таком выходном порту. Для удобства можно использовать имя сигнала, исходящего из этого порта, для ссылки на точку анализа.

Можно добавить точки анализа в slLinearizer или slTuner интерфейс, s, при создании интерфейса. Например:

s = slLinearizer('scdcascade',{'u1','y1'});

Кроме того, можно использовать addPoint команда.

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

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

Постоянные отверстия

Постоянные отверстия, используемые slLinearizer и slTuner определите местоположения в модели, где программное обеспечение разрывает поток сигналов. Программное обеспечение обеспечивает эти отверстия для линеаризации и настройки. Используйте постоянные проемы для изоляции определенного компонента модели. Предположим, что имеется масштабная модель, отражающая динамику самолета, и требуется выполнить линейный анализ только на корпусе самолета. Постоянные проемы можно использовать для исключения всех других компонентов модели. Другим примером является случай, когда в модели имеются каскадные циклы и требуется проанализировать определенный цикл.

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

Можно добавить постоянные проемы в slLinearizer или slTuner интерфейс, s, при создании интерфейса или с помощью addOpening команда. Чтобы удалить расположение из списка постоянных проемов, используйте removeOpening команда.

Просмотр всех проемов s, тип s в командной строке для отображения содержимого интерфейса. Для каждого постоянного открытия s, дисплей включает в себя имя блока и номер порта, а также имя сигнала, который инициируется в этом местоположении. Можно также программно получить список всех постоянных проемов контура с помощью getOpenings.

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

Можно задать подстановочную линеаризацию для блока или подсистемы в модели Simulink с помощью пользовательской функции на пути MATLAB.

Пользовательская функция линеаризации должна иметь одну BlockData входной аргумент, представляющий собой структуру, создаваемую программой и передаваемую функции. BlockData имеет следующие поля:

ОбластьОписание
BlockNameИмя блока, для которого задается пользовательская линеаризация.
ParametersЗначения параметров блока, заданные как массив структуры с Name и Value поля. Parameters содержит имена и значения параметров, указанных в blocksub.Value.ParameterNames и blocksub.Value.ParameterValues поля.
Inputs

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

ОбластьОписание
BlockNameПолный путь блока, выход которого соединен с соответствующим входом блока.
PortIndexВыходной порт блока, указанного BlockName который подключается к соответствующему входу блока.
ValuesЗначение сигнала, указанного BlockName и PortIndex. Если этот сигнал является векторным, то Values - вектор с таким же размером.
nyКоличество выходных каналов блочной линеаризации.
nuКоличество входных каналов блочной линеаризации.
BlockLinearizationТекущая линеаризация блока по умолчанию, заданная как модель состояния-пространства. Можно задать линеаризацию блока, которая зависит от линеаризации по умолчанию, используя BlockLinearization.

Пользовательская функция должна возвращать модель с nu входные данные и ny выходы. Эта модель должна быть одной из следующих:

  • Линейная модель в виде D-матрицы

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

  • Неопределенная модель состояния-пространства или неопределенный реальный объект (требуется программное обеспечение Rustive Control Toolbox)

Например, следующая функция умножает текущую линеаризацию блоков по умолчанию на задержку Td = 0.5 секунд. Задержка представлена фильтром Тирэна с временем выборки Ts = 0.1. Задержка и время выборки - это параметры, хранящиеся в BlockData.

function sys = myCustomFunction(BlockData)
    Td = BlockData.Parameters(1).Value;
    Ts = BlockData.Parameters(2).Value;
    sys = BlockData.BlockLinearization*Thiran(Td,Ts);
end 

Сохраните эту функцию в местоположении на пути MATLAB.

Чтобы использовать эту функцию в качестве пользовательской линеаризации для блока или подсистемы, укажите blocksub.Value.Specification и blocksub.Value.Type поля.

blocksub.Value.Specification = 'myCustomFunction';
blocksub.Value.Type = 'Function';

Чтобы задать значения параметров задержки и времени выборки, укажите blocksub.Value.ParameterNames и blocksub.Value.ParameterValues поля.

blocksub.Value.ParameterNames = {'Td','Ts'};
blocksub.Value.ParameterValues = [0.5 0.1];

Алгоритмы

slTuner линеаризует модель Simulink с использованием алгоритмов, описанных в разделе Алгоритм точной линеаризации.

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