TuningGoal.ConicSector class

Пакет: TuningGoal

Граница сектора для настройки системы управления

Описание

Коническая граница сектора является ограничением на выходных траекториях системы. Если для всех ненулевых входных траекторий u (t), выходная траектория z (t) = (Hu) (t) линейной системы H удовлетворяет:

0Tz(t)TQz(t)dt<0,

для всех T ≥ 0, тогда выходные траектории H лежат в коническом секторе, описанном симметричной неопределенной матрицей Q. Выбор различных матриц Q накладывает различные условия на отклик системы.

При настройке системы управления с systune, использовать TuningGoal.ConicSector ограничение выходных траекторий отклика между заданными входами и выходами в заданный сектор. Для получения дополнительной информации об границах сектора смотрите О границах сектора и индексах сектора.

Конструкция

Req = TuningGoal.ConicSector(inputname,outputname,Q) создает цель настройки для ограничения H отклика (s) от входов inputname к выходам outputname к коническому сектору, заданному симметричной матрицей Q. Ограничения, накладываемые на цель настройки H таковы, что его траектории z (t) = (Hu) (t) удовлетворяют:

0Tz(t)TQz(t)dt<0,

для всех T ≥ 0. (См. «О секторных границах и секторных индексах».) Матрица Q должно иметь столько отрицательных собственных значений, сколько входные входы в H.

Чтобы задать частотно-зависимые границы сектора, задайте Q к модели LTI, которая удовлетворяет Q (s)T = Q (– s).

Входные параметры

inputname

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

  • Если вы используете цель настройки, чтобы настроить Simulink® модель системы управления, затем inputname может включать:

    • Любой вход модели.

    • Любая точка линейного анализа, отмеченная в модели.

    • Любая точка линейного анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

    Например, предположим, что slTuner интерфейс содержит точки анализа u1 и u2. Использование 'u1' обозначить эту точку как входной сигнал при создании целей настройки. Использование {'u1','u2'} для обозначения двухканального входа.

  • Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем inputname может включать:

    • Любой вход genss модель

    • Любой AnalysisPoint местоположение в системной модели управления

    Для примера, если вы настраиваете системную модель управления, T, затем inputname может быть любым входным именем в T.InputName. Кроме того, если T содержит AnalysisPoint блок с именем местоположение AP_u, затем inputname может включать 'AP_u'. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

    Если inputname является AnalysisPoint местоположение обобщенной модели, входной сигнал для цели настройки является подразумеваемым входом, сопоставленным со AnalysisPoint блок:

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

outputname

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

  • Если вы используете цель настройки, чтобы настроить модель Simulink системы управления, то outputname может включать:

    • Любая модель выхода.

    • Любая точка линейного анализа, отмеченная в модели.

    • Любая точка линейного анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

    Например, предположим, что slTuner интерфейс содержит точки анализа y1 и y2. Использование 'y1' обозначить эту точку как выход сигнал при создании целей настройки. Использование {'y1','y2'} для обозначения двухканального выхода.

  • Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем outputname может включать:

    • Любой выход genss модель

    • Любой AnalysisPoint местоположение в системной модели управления

    Для примера, если вы настраиваете системную модель управления, T, затем outputname может быть любым выходным именем в T.OutputName. Кроме того, если T содержит AnalysisPoint блок с именем местоположение AP_u, затем outputname может включать 'AP_u'. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

    Если outputname является AnalysisPoint местоположение обобщенной модели, выходной сигнал для цели настройки является подразумеваемым выходом, сопоставленным со AnalysisPoint блок:

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

Q

Геометрия сектора, заданная как:

  • Матрица, для постоянной секторной геометрии. Q - симметричная квадратная матрица, которая ny со стороны, где ny количество сигналов в outputname. Матрица Q должен быть неопределенным, чтобы описать четко определенный конический сектор. Неопределенная матрица имеет как положительные, так и отрицательные собственные значения. В частности, Q должно иметь столько отрицательных собственных значений, сколько вход каналов, заданных в inputname (размер векторного входного сигнала u (t )).

  • Модель LTI для частотно-зависимой геометрии сектора. Q удовлетворяет Q (s)T = Q (– s). Другими словами, Q (s) оценивает в эрмитову матрицу на каждой частоте.

Для получения дополнительной информации смотрите О секторных границах и секторных индексах.

Свойства

SectorMatrix

Секторная геометрия, заданная как матрица или модель LTI. The Q входной параметр устанавливает начальное значение SectorMatrix когда вы создаете цель настройки, и те же ограничения и характеристики применяются к SectorMatrix как применимо к Q.

Regularization

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

Учитывая неопределенную факторизацию матрицы сектора,

Q=W1W1TW2W2T,W1TW2=0

секторная граница

H(jω)TQH(jω)<0

эквивалентно

H1(jω)HH1(jω)<H2(jω)HH2(jω),

где H1=W1TH, H2=W2TH, и (•)H обозначает гермитову транспозицию. Применение этого условия может стать численно сложным, когда другие цели настройки приводят как H1 (jω), так и H2 () к нулю на некоторых частотах. Это условие эквивалентно управлению знаком выражения 0/0, которое неразрешимо при наличии ошибок округления. Чтобы избежать этого условия, можно regularize сектор, связанный с

H(jω)TQH(jω)<ε2I,

или эквивалентно,

H1(jω)HH1(jω)+ε2I<H2(jω)HH2(jω).

Эта регуляризация препятствует тому, чтобы H2 (jω) становились сингулярными, и помогает сохранить оценку цели настройки численно отслеживаемой. Используйте Regularization свойство устанавливать значение ε в небольшую (но не незначительную) долю типичной нормы исходного термина в H. Для примера, если вы предвидите, что норма кормового срока H будет порядка 1 во время настройки, попробуйте:

Req.Regularization = 1e-3;

По умолчанию: 0

Focus

Частота полосы в которой применяется цель настройки, задается как вектор-строка формы [min,max].

Установите Focus свойство для ограничения применения цели настройки к конкретной полосе частот. Выразите это значение в частотных модулях системной модели управления, которую вы настраиваете (рад/ TimeUnit). Например, предположим Req - цель настройки, которую вы хотите применить только между 1 и 100 рад/с. Чтобы ограничить цель настройки этой полосой, используйте следующую команду:

Req.Focus = [1,100];

По умолчанию: [0,Inf] на непрерывное время; [0,pi/Ts] для дискретного времени, где Ts является моделью шага расчета.

Input

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

Output

Выходы сигнала, заданные как массив ячеек из векторов символов. Имена выходного сигнала задают выходы ограниченного отклика, первоначально заполненные outputname аргумент.

Models

Модели, к которым применяется цель настройки, заданные как вектор индексов.

Используйте Models свойство при настройке массива системных моделей управления с systune, чтобы применить цель настройки для подмножества моделей в массиве. Например, предположим, что вы хотите применить цель настройки, Req, ко второй, третьей и четвертой моделям в массиве моделей перешли к systune. Чтобы ограничить применение цели настройки, используйте следующую команду:

Req.Models = 2:4;

Когда Models = NaN, цель настройки применяется ко всем моделям.

По умолчанию: NaN

Openings

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

Если вы используете цель настройки, чтобы настроить модель Simulink системы управления, то Openings может включать любую линейную точку анализа, отмеченную в модели, или любую линейную точку анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа и открытия цикла к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем Openings может включать в себя любой AnalysisPoint местоположение в системной модели управления. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

Для примера, если Openings = {'u1','u2'}, затем цель настройки оценивается с циклами, открытыми в точках анализа u1 и u2.

По умолчанию: {}

Name

Имя цели настройки, заданное как вектор символов.

Для примера, если Req является целью настройки:

Req.Name = 'LoopReq';

По умолчанию: []

Примеры

свернуть все

Создайте цель настройки, которая ограничивает ответ от входной или аналитической точки 'u' в выход или точку анализа 'y' в системе управления в следующий сектор:

S={(y,u):0.1u2<uy<10u2}.

Q- матрицы для этого сектора определяется:

a = 0.1;  
b = 10; 
Q = [1 -(a+b)/2 ; -(a+b)/2 a*b];

Используйте это Q- матрицы для создания цели настройки.

TG = TuningGoal.ConicSector('u','y',Q)
TG = 
  ConicSector with properties:

      SectorMatrix: [2x2 double]
    Regularization: 0
             Focus: [0 Inf]
             Input: {'u'}
            Output: {'y'}
            Models: NaN
          Openings: {0x1 cell}
              Name: ''

Установите свойства, чтобы дополнительно сконфигурировать цель настройки. Например, предположим, что в системной модели управления есть точка анализа, называемая 'OuterLoop', и вы хотите применить цель настройки, чтобы цикл был открыт в этой точке.

TG.Openings = 'OuterLoop';

До или после настройки используйте viewGoal чтобы визуализировать цель настройки.

viewGoal(TG)

Figure contains an axes. The axes is empty. This object represents Max.

Цель достигается, когда относительный индекс сектора R < 1 на всех частотах. Затененная область представляет область, в которой цель не достигнута. Когда вы используете это требование для настройки системы управления CL, viewGoal(TG,CL) показывает R для заданных входных и выходных входов на этом графике, что позволяет вам идентифицировать частотные области значений, в которых цель не достигнута, и насколько.

Рассмотрите следующую систему управления.

Предположим, что сигнал u помечен как точка анализа в модели Simulink или genss модель системы управления. Предположим также, что G является передаточной функцией с обратной связью от u до y. Создайте цель настройки, которая ограничивает все траектории ввода-вывода {u (t), y (t)} G, чтобы удовлетворить:

0T(y(t)u(t))TQ(y(t)u(t))dt<0,

для всех T0. В этом примере используйте матрицу сектора, которая накладывает входную пассивность с индексом 0,5.

nu = 0.5;
Q = [0 -1;-1 2*nu];

Ограничение траекторий ввода-вывода G эквивалентно ограничению выходных траекторий z(t) из H=[G;I] в сектор, определяемый:

0Tz(t)TQz(t)dt<0.

(Для получения дополнительной информации об этой эквивалентности смотрите о секторных границах и секторных индексах.) Чтобы задать это ограничение, создайте цель настройки, которая ограничивает передаточную функцию H=[G;I], что передаточная функция от входа u к выходам {y;u}.

TG = TuningGoal.ConicSector('u',{'y';'u'},Q);

Когда вы задаете тот же сигнал 'u' в качестве входных и выходных параметров коническая цель настройки сектора устанавливает соответствующую передаточную функцию в единичное целое. Поэтому передаточная функция ограничена TG является H=[G;I] по назначению. Эта обработка специфична для конической цели настройки сектора. Для других целей настройки, когда тот же самый сигнал появляется и во входах, и на выходах, результирующая передаточная функция равна нулю в отсутствии циклов обратной связи или дополнительной чувствительности в этом месте в противном случае. Этот результат возникает, потому что, когда программное обеспечение обрабатывает точки анализа, оно принимает, что вход вводится после выхода. Смотрите Интересующие Сигналы для Анализа и Проекта Системы Управления для получения дополнительной информации о том, как работают точки анализа.

Совет

  • Цель настройки конического сектора требует, чтобы W2TH(s) быть квадратной и минимальной фазой, где H (s) является передаточной функцией между заданными входами и выходами, и W 2 охватывает отрицательный инвариантный подпространство матрицы сектора, Q:

    Q=W1W1TW2W2T,W1TW2=0

    (См. Алгоритмы.) Это означает, что стабилизированная динамика для этой цели является не полюсами H, а скорее нулями передачи W2TH(s). The MinDecay и MaxRadius опции systuneOptions управляйте границами этой неявно ограниченной динамики. Если оптимизация не соответствует границам по умолчанию или если границы по умолчанию конфликтуют с другими требованиями, используйте systuneOptions для изменения этих значений по умолчанию.

Алгоритмы

Давайте

Q=W1W1TW2W2T,W1TW2=0

быть неопределенной факторизацией Q. Когда W2TH(s) является квадратной и минимальной фазой, затем сектор временной области, связанный траекториями z (t) = H u (t),

0Tz(t)TQz(t)dt<0,

эквивалентно условию сектора частотного диапазона,

H(jω)TQH(jω)<0

для всех частот. The TuningGoal.ConicSector цель использует эту эквивалентность, чтобы преобразовать характеристику временной области в условие частотного диапазона, которое systune может обрабатывать так же, как обрабатывает ограничения усиления. Чтобы защитить эту эквивалентность, TuningGoal.ConicSector также делает W2TH(s) минимальная фаза путем делая все ее нули стабильными.

Для секторных границ R-индекс играет ту же роль, что и пик усиления для ограничений усиления (см. О секторных границах и секторных индексах). Условие

H(jω)TQH(jω)<0

удовлетворяется на всех частотах тогда и только тогда, когда R -индекс меньше единицы. viewGoal график для TuningGoal.ConicSector показывает R индекс как функцию от частоты ( см.sectorplot).

Когда вы настраиваете систему управления, используя TuningGoal объект для задания цели настройки, программное обеспечение преобразует цель настройки в нормализованное скалярное значение f (x), где x является вектором свободных (настраиваемых) параметров в системе управления. Затем программа настраивает значения параметров, чтобы минимизировать f (x) или привести f (x) ниже 1, если цель настройки является жестким ограничением.

Для сектора, связанного

H(jω)TQH(jω)<0

TuningGoal.ConicSector использует целевую функцию, заданную как:

f(x)=R1+R/Rmax,Rmax=106.

R - связанный с сектором R -индекс ( см.getSectorIndex для получения дополнительной информации).

Динамика H, на которые влияет условие минимальной фазы, является stabilized dynamics для этой цели настройки. The MinDecay и MaxRadius опции systuneOptions управляйте границами этой неявно ограниченной динамики. Если оптимизация не соответствует границам по умолчанию или если границы по умолчанию конфликтуют с другими требованиями, используйте systuneOptions для изменения этих значений по умолчанию.

Введенный в R2016b