slTuner

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

Синтаксис

st = slTuner(mdl,tuned_blocks)
st = slTuner(mdl,tuned_blocks,pt)
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)

Описание

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);

Система управления состоит из двух обратной связи, внутреннего цикла с контроллером PI 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 port 1 of scdcascade/setpoint
Point 2: Signal "y1m", located at port 1 of scdcascade/Sum
Point 3: 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, заданного как:

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

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

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

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

Аналитическая точка, которая будет добавлена к списку аналитических точек для st, заданного как:

  • Вектор символов или строка — Аналитический идентификатор точки, который может быть любым следующим:

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

    • Блок path для блока с одним выходным портом, например, pt = 'Motor/PID'

    • Блок path и порт, порождающий сигнал, например, 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, заданного как:

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

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

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

    Например, отличайтесь значение параметра 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 System, задайте param и установите st.Options.StoreOffsets на true. Можно затем возвратить дополнительную информацию о линеаризации при вызывании функций линеаризации, таких как getIOTransfer и извлечь смещения с помощью getOffsetsForLPV.

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

Если вы конфигурируете st.Parameters, то задаете op как одно из следующего:

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

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

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

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

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

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

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

Замените линеаризацией блок, заданный как одно из следующего:

  • Дважды — Задают линеаризацию блока SISO как усиление.

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

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

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

    • Отличайтесь параметры модели с помощью param и задайте Value как образцовый массив, размерности Value должны совпадать с размером сетки параметра.

    • Замены блока Define на несколько блоков, и задают Value как массив моделей LTI больше чем для одного блока, размерности массивов должны соответствовать.

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

    Поле Описание
    Specification

    Блокируйте линеаризацию, заданную как вектор символов, который содержит одно из следующих

    Заданное выражение или функция должны возвратить одно из следующего:

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

    • Объект модели LTI Control System Toolbox™

    • Неопределенная модель в пространстве состояний или неопределенный действительный объект (требует программного обеспечения Robust 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Добавьте сигнал в список открытий для интерфейса slTuner или slLinearizer
addPointДобавьте сигнал в список аналитических точек для интерфейса slTuner или slLinearizer
getPointsПолучите список аналитических точек для интерфейса slTuner или slLinearizer
getOpeningsПолучите список открытий для интерфейса slTuner или slLinearizer
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Удалите точку из списка аналитических точек в интерфейсе slTuner или slLinearizer
removeAllPointsУдалите все точки из списка аналитических точек в интерфейсе slTuner или slLinearizer
removeAllOpeningsУдалите все открытия из списка постоянных открытий в интерфейсе slTuner или slLinearizer
refreshРесинхронизируйте slLinearizer или интерфейс slTuner с состоянием текущей модели

Больше о

свернуть все

Аналитические точки

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

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

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

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

Также можно использовать команду addPoint.

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

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

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

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

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

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

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

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

  • Объект модели LTI Control System Toolbox

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

Например, следующая функция умножает текущую линеаризацию блока по умолчанию задержкой секунд Td = 0.5. Задержка представлена фильтром Thiran с шагом расчета 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