exponenta event banner

slLinearizer

Интерфейс для пакетной линеаризации моделей Simulink

Описание

пример

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

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

sllin = slLinearizer(mdl,param) определяет параметры, значения которых необходимо изменять при линеаризации модели.

sllin = slLinearizer(mdl,op) указывает рабочие точки для линеаризации модели.

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

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

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

Например, используйте любое из следующих действий:

  • sllin = slLinearizer(mdl,pt,param)

  • sllin = slLinearizer(mdl,op,param).

Если не указать pt, интерфейс добавляет точки линейного анализа, отмеченные в модели как точки анализа. Интерфейс также добавляет точки линейного анализа, которые подразумевают проем как постоянные проемы.

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

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

Если после последней линеаризации были изменены какие-либо свойства интерфейса, команды, извлекающие линеаризации из slLinearizer перекомпилируйте модель Simulink. Если после последней линеаризации выполнялись вызовы определенных функций, команды также перекомпилируют модель Simulink. Эти функции включают addPoint, addOpening, removePoint, removeOpening, removeAllPoints, и removeAllOpenings.

Примеры

свернуть все

Создание slLinearizer интерфейс для scdcascade модель. Добавление точек анализа к интерфейсу для извлечения функций передачи с разомкнутым или замкнутым контуром из модели. Сконфигурируйте интерфейс для изменения параметров и рабочих точек.

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

mdl = 'scdcascade';
open_system(mdl);

Создание slLinearizer интерфейс для модели. Добавление сигналов r, u1, |u2 |, y1, |y2 |, y1m, и y2m к интерфейсу.

sllin = slLinearizer(mdl,{'r','u1','u2','y1','y2','y1m','y2m'});

scdcascade содержит два блока контроллера PID, C1 и C2. Предположим, что вы хотите изменить пропорциональные и интегральные коэффициенты усиления C2, Kp2 и Ki2, в диапазоне 10%. Создайте структуру для задания вариаций параметров.

Kp2_range = linspace(0.9*Kp2,1.1*Kp2,3);
Ki2_range = linspace(0.9*Ki2,1.1*Ki2,5);

[Kp2_grid,Ki2_grid]=ndgrid(Kp2_range,Ki2_range);

params(1).Name = 'Kp2';
params(1).Value = Kp2_grid;

params(2).Name = 'Ki2';
params(2).Value = Ki2_grid;

params задает сетку параметров 3x5. Каждая точка в этой сетке соответствует комбинации Kp2 и Ki2 значения параметров.

Определить params в качестве Parameters имущество sllin.

sllin.Parameters = params;

Теперь при использовании таких команд, как getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity, программа возвращает линеаризацию для каждого параметра точки сетки, указанной sllin.Parameters.

Предположим, что требуется линеаризовать модель в несколько моментальных снимков, например в t = {0,1,2}. Для этого настройте OperatingPoints имущество sllin.

sllin.OperatingPoints = [0 1 2];

При необходимости можно настроить опции линеаризации и указать подстановочные линеаризации для блоков и подсистем в модели. После полной настройки sllin, используйте getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity команды линеаризации модели по мере необходимости.

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

свернуть все

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

Пример: 'scdcascade'

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

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

    • Например, имя сигнала 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 задает только настраиваемые параметры, затем программный пакет линеаризует модель с помощью одной компиляции. Если также выполняется настройка sllin.OperatingPoints только для объектов рабочих точек программа использует компиляцию одной модели.

Пример работы линеаризации партий с выборкой параметров см. в разделах Изменение значений параметров и Получение нескольких передаточных функций.

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

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

При настройке sllin.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' и функция линеаризации блоков требует входных параметров.

Параметры алгоритма линеаризации, заданные как linearizeOptions набор опций.

Свойства

Parameters

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

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

  • Структура (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 задает только настраиваемые параметры, затем программный пакет линеаризует модель с помощью одной компиляции. Если также выполняется настройка sllin.OperatingPoints только для объектов рабочих точек программа использует компиляцию одной модели.

OperatingPoints

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

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

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

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

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

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

BlockSubstitutions

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

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

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

Options

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

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

Model

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

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

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

addPointДобавить сигнал в список точек анализа для slLinearizer или slTuner интерфейс
addOpeningДобавить сигнал в список проемов для slLinearizer или slTuner интерфейс
addPointДобавить сигнал в список точек анализа для slLinearizer или slTuner интерфейс
getPointsПолучить список точек анализа для slLinearizer или slTuner интерфейс
getOpeningsПолучить список проемов для slLinearizer или slTuner интерфейс
getIOTransferФункция передачи для указанного набора ввода-вывода с помощью slLinearizer или slTuner интерфейс
getLoopTransferФункция передачи с разомкнутым контуром в указанной точке с использованием slLinearizer или slTuner интерфейс
getSensitivityФункция чувствительности в указанной точке с помощью slLinearizer или slTuner интерфейс
getCompSensitivityДополнительная функция чувствительности в указанной точке с помощью slLinearizer или slTuner интерфейс
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];
Представлен в R2013b