systune

Настройка систем управления с фиксированной структурой, смоделированных в MATLAB

Описание

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

Эта команда настраивает системы управления, смоделированные в MATLAB®. Для настройки Simulink® модели, использование slTuner (Simulink Control Design), чтобы создать интерфейс к вашей модели Simulink. Затем можно настроить систему управления с systune (Simulink Control Design) для slTuner.

пример

[CL,fSoft] = systune(CL0,SoftReqs) настраивает свободные параметры системной модели управления, CL0, чтобы наилучшим образом соответствовать мягким требованиям настройки. Наилучшие достигнутые значения мягких ограничений возвращаются следующим fSoft. Для устойчивой настройки против неопределенности реального параметра используйте системную модель управления с неопределенными реальными параметрами. Для устойчивой настройки относительно набора моделей объекта управления используйте массив системных моделей управления CL0. (См. «Входные параметры».)

пример

[CL,fSoft,gHard] = systune(CL0,SoftReqs,HardReqs) настраивает систему управления так, чтобы она наилучшим образом соответствовала требованиям мягкой настройки, удовлетворяющим требованиям жесткой настройки (ограничениям). Это возвращает наилучшие достигнутые значения для мягких и жестких ограничений.

[CL,fSoft,gHard] = systune(CL0,SoftReqs,HardReqs,options) задает опции для оптимизации.

[CL,fSoft,gHard,info] = systune(___) также возвращает подробную информацию о каждом запуске оптимизации. Здесь также применяются все входные параметры, описанные для предыдущих синтаксисов.

Примеры

свернуть все

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

Каскадная система управления на следующем рисунке включает два настраиваемых контроллера, ПИ-контроллер для внутреннего цикла, C2и ПИД-регулятор для внешнего контура, C1.

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

Настройте свободные параметры этой системы управления так, чтобы они соответствовали следующим требованиям:

  • Выходной сигнал, y1, отслеживает опорный сигнал, r, со временем отклика 10 секунд и установившейся ошибкой 1%.

  • Нарушение порядка, впрыскиваемое в x2 подавляется в y1 в 10 раз.

Создайте настраиваемые блоки Системы управления, чтобы представлять контроллеры, и числовые модели LTI, чтобы представлять объекты. Кроме того, создайте AnalysisPoint блоки, чтобы отметить интересующие точки в каждом цикле обратной связи.

G2 = zpk([],-2,3);
G1 = zpk([],[-1 -1 -1],10);

C20 = tunablePID('C2','pi');
C10 = tunablePID('C1','pid');

X1 = AnalysisPoint('X1');
X2 = AnalysisPoint('X2');

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

InnerLoop = feedback(X2*G2*C20,1);
CL0 = feedback(G1*InnerLoop*C10,X1);
CL0.InputName = 'r';
CL0.OutputName = 'y';

CL0 является настраиваемым genss модель. Определение имен для входа и выхода каналов позволяет вам идентифицировать их, когда вы задаете требования настройки для системы.

Укажите требования к настройке для отслеживания уставки и подавления помех.

Rtrack = TuningGoal.Tracking('r','y',10,0.01);
Rreject = TuningGoal.Gain('X2','y',0.1);

The TuningGoal.Tracking требование задает, что сигнал при 'y' отслеживать сигнал в 'r' со временем отклика 10 секунд и ошибкой отслеживания 1%.

The TuningGoal.Gain требование ограничивает коэффициент усиления от неявного входа, связанного со AnalysisPoint блок, X2, в 'y'. (См. AnalysisPoint.) Ограничение этого усиления значением менее 1 гарантирует, что нарушение порядка впрыснуто в X2 подавляется на выходе.

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

[CL,fSoft] = systune(CL0,[Rtrack,Rreject]);
Final: Soft = 1.24, Hard = -Inf, Iterations = 110

systune преобразует каждое требование настройки в нормированное скалярное значение, f. Команда настраивает настраиваемые параметры CL0 чтобы минимизировать значения f. Для каждого требования требование удовлетворяется, если f < 1 и нарушается, если f > 1. fSoft - вектор минимизированных значений f. Самое большое из минимизированных значений f отображается следующим Soft.

Модель выхода CL является настроенной версией CL0. CL содержит те же Блоки Системы управления что и CL0, с текущими значениями, равными настроенным значениям параметров.

Проверьте, что настроенная система управления соответствует требованию отслеживания, исследуя переходную характеристику из 'r' на 'y'.

stepplot(CL)

Figure contains an axes. The axes with title From: r To: y contains an object of type line. This object represents CL.

График шага показывает, что в настроенной системе управления CL, выход отслеживает вход примерно с желаемым временем отклика.

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

CLdist = getIOTransfer(CL,'X2','y');
stepplot(CLdist);

Figure contains an axes. The axes with title From: X2 To: y contains an object of type line. This object represents CLdist.

getIOTransfer извлекает ответ с обратной связью из заданных входов в выходы. В целом, getIOTransfer и getLoopTransfer полезны для проверки системы управления, настроенной с помощью systune.

Можно также использовать viewGoal для сравнения характеристик настроенной системы управления непосредственно с требованиями настройки, Rtrack и Rreject.

viewGoal([Rtrack,Rreject],CL)

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Tracking error, Max error, Effective bound. Axes 2 contains 2 objects of type line. These objects represent Principal gains, Max gain, Effective bound.

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

Каскадная система управления на следующем рисунке включает два настраиваемых контроллера, ПИ-контроллер для внутреннего цикла, C2и ПИД-регулятор для внешнего контура, C1.

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

Настройте свободные параметры этой системы управления так, чтобы они соответствовали следующим требованиям:

  • Выходной сигнал, y1, отслеживает опорный сигнал в r со временем отклика 5 секунд и установившейся ошибкой 1%.

  • Нарушение порядка, впрыскиваемое в x2 подавляется на выходе, y1, в 10 раз.

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

Создайте настраиваемые блоки Системы управления, чтобы представлять контроллеры и числовые модели LTI, чтобы представлять объекты. Кроме того, создайте AnalysisPoint блоки, чтобы отметить интересующие точки в каждом цикле обратной связи.

G2 = zpk([],-2,3);
G1 = zpk([],[-1 -1 -1],10);

C20 = tunablePID('C2','pi');
C10 = tunablePID('C1','pid');

X1 = AnalysisPoint('X1');
X2 = AnalysisPoint('X2');

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

InnerLoop = feedback(X2*G2*C20,1);
CL0 = feedback(G1*InnerLoop*C10,X1);
CL0.InputName = 'r';
CL0.OutputName = 'y';

CL0 является настраиваемым genss модель. Определение имен для входа и выхода каналов позволяет вам идентифицировать их, когда вы задаете требования настройки для системы.

Укажите требования к настройке для отслеживания уставки и подавления помех.

Rtrack = TuningGoal.Tracking('r','y',5,0.01);
Rreject = TuningGoal.Gain('X2','y',0.1);

The TuningGoal.Tracking требование задает, что сигнал при 'y' отслеживает сигнал в 'r' со временем отклика 5 секунд и ошибкой отслеживания 1%.

The TuningGoal.Gain требование ограничивает коэффициент усиления от неявного входа, связанного со AnalysisPoint блочное X2 на выход, 'y'. (См. AnalysisPoint.) Ограничение этого усиления значением менее 1 гарантирует, что нарушение порядка впрыснуто в X2 подавляется на выходе.

Задайте требования настройки для усиления и запасов по фазе.

RmargOut = TuningGoal.Margins('X1',18,60);
RmargIn = TuningGoal.Margins('X2',18,60);
RmargIn.Openings = 'X1';

RmargOut устанавливает минимальный запас по амплитуде 18 дБ и минимальный запас по фазе 60 степеней. Определение X1 налагает это требование на внешний контур. Точно так же RmargIn накладывает те же требования на внутренний цикл, определяемые X2. Чтобы убедиться, что поля внутреннего контура оцениваются с открытым внешним контуром, включите расположение точки анализа внешнего контура, X1, в RmargIn.Openings.

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

SoftReqs = [Rtrack,Rreject];
HardReqs = [RmargIn,RmargOut];
[CL,fSoft,gHard] = systune(CL0,SoftReqs,HardReqs);
Final: Soft = 1.13, Hard = 0.97702, Iterations = 110

systune преобразует каждое требование настройки в нормированное скалярное значение, f для мягких ограничений и g для жестких ограничений. Команда настраивает настраиваемые параметры CL0 чтобы минимизировать значения f, при условии ограничения, что каждый g < 1.

Отображаемое значение Hard является самым большим из минимизированных значений g в gHard. Это значение меньше 1, что указывает на то, что оба жестких ограничения удовлетворены.

Проверьте настроенную систему управления в соответствии с требованиями по запасу устойчивости.

figure;
viewGoal(HardReqs,CL)

Figure contains 4 axes. Axes 1 contains an object of type line. These objects represent Required margins, Stability margins. Axes 2 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound. Axes 3 contains an object of type line. These objects represent Required margins, Stability margins. Axes 4 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound.

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

Исследуйте, соответствует ли настроенная система управления требованию отслеживания, исследуя переходную характеристику от 'r' на 'y'.

figure;
stepplot(CL,20)

Figure contains an axes. The axes with title From: r To: y contains an object of type line. This object represents CL.

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

figure;
viewGoal(Rtrack,CL)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Tracking error, Max error, Effective bound.

Фактическая ошибка отслеживания переходит в заштрихованную область между 1 и 10 рад/с, что указывает на то, что требование не удовлетворяется в этом режиме. Таким образом, настроенная система управления не может удовлетворить требования мягкого отслеживания, время, удовлетворяющее жестким ограничениям запасов устойчивости. Чтобы достичь желаемой эффективности, вам может потребоваться ослабить одно из ваших требований или преобразовать одно или несколько жестких ограничений в мягкие ограничения.

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

свернуть все

Система управления для настройки, заданная как обобщенное пространство состояний (genss) модель или массив моделей с настраиваемыми параметрами. Чтобы создать CL0:

  1. Параметризируйте настраиваемые элементы системы управления. Можно использовать предопределенные структуры, такие как tunablePID, tunableGain, и tunableTF. Также можно создать собственную структуру из элементарных настраиваемых параметров (realp).

  2. Создайте модель системы управления с обратной связью как взаимосвязи фиксированных и настраиваемых компонентов. Для этого используйте команды соединения моделей, такие как feedback и connect. Использование AnalysisPoint блоки для маркировки дополнительных интересующих сигналов для определения и оценки требований к настройке.

Дополнительные сведения о создании моделей для настройки см. в разделе Setup для настройки системы управления, Смоделированной в MATLAB.

Для устойчивой настройки системы управления относительно набора моделей объекта управления (требует Toolbox™ Robust Control) задайте массив настраиваемых genss модели, которые имеют одинаковые настраиваемые параметры. Чтобы сделать контроллер устойчивым к неопределенности параметра, используйте модель с неопределенными вещественными параметрами, заданными с ureal (Robust Control Toolbox) или uss (Robust Control Toolbox). В этом случае CL0 является genss модель, которая содержит как настраиваемые, так и неопределенные блоки системы управления. Для получения дополнительной информации об устойчивой настройке см. Раздел «Подходы к робастной настройке» (Robust Control Toolbox).

Цели (задачи) мягкой настройки для настройки системы управления, заданные как вектор TuningGoal объекты. Эти объекты захватывают ваши требования к проекту, такие как TuningGoal.Tracking, TuningGoal.StepTracking, или TuningGoal.Margins.

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

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

Жесткие цели настройки (ограничения) для настройки системы управления, заданные как вектор TuningGoal объекты. Эти объекты захватывают ваши требования к проекту, такие как TuningGoal.Tracking, TuningGoal.StepTracking, или TuningGoal.Margins.

systune преобразует каждую жесткую цель настройки в нормированное скалярное значение. systune затем оптимизирует свободные параметры, чтобы минимизировать эти нормированные значения. Жесткая цель удовлетворяется, если нормированное значение меньше 1.

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

Опции алгоритма настройки, заданные как набор опций, который вы создаете с systuneOptions. Доступные опции включают:

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

  • Допуск для завершения оптимизации.

  • Флаг для использования параллельной обработки.

См. systuneOptions Страница с описанием для получения дополнительной информации обо всех доступных опциях.

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

свернуть все

Настроенная система управления, возвращенная как обобщенное пространство состояний (genss) модель. Эта модель имеет то же количество и тип настраиваемых элементов (Система Управления Blocks), что и CL0. Текущие значения этих элементов являются настроенными параметрами. Использовать getBlockValue или showTunable для доступа к значениям настроенных элементов.

Если вы предоставляете массив системных моделей управления, чтобы настроить как входной параметр, CL0, systune настраивает параметры всех моделей одновременно. В этом случае CL - массив настроенных genss модели. Для получения дополнительной информации см. Раздел «Подходы к робастной настройке» (Robust Control Toolbox).

Наилучшие достигнутые значения мягких ограничений, возвращенные как вектор. systune преобразует мягкие требования в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать эту функцию, удовлетворяющую жестким ограничениям. (См. Алгоритмы.) fSoft содержит лучшее достигнутое значение для каждого из мягких ограничений. Эти значения появляются в fSoft в том же порядке, в котором ограничения заданы в SoftReqs. fSoft значения значимы только тогда, когда жесткие ограничения удовлетворены.

Наилучшим образом достигнутые значения жестких ограничений, возвращенные как вектор. systune преобразует жесткие требования в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы привести эти значения ниже 1. (См. Алгоритмы.) gHard содержит лучшее достигнутое значение для каждого из жестких ограничений. Эти значения появляются в gHard в том же порядке, в котором ограничения заданы в HardReqs. Если все значения меньше 1, жесткие ограничения выполняются.

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

ОбластьЗначение
Run

Номер запуска, возвращенный как скаляр. Если вы используете RandomStart опция systuneOptions чтобы выполнить несколько запусков оптимизации, info является массивом структур, и info.Run - индекс.

Iterations

Общее количество итераций, выполненных во время запуска, возвращенных в виде скаляра. Если вы используете RandomStart, info.Iterations(j) - количество итераций, выполненных в j-м запуске перед завершением .

f

Лучшее общее значение мягкого ограничения, возвращаемое как скаляр. systune преобразует цели мягкой настройки в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать эту функцию, удовлетворяющую жестким целям. (См. Алгоритмы.) info.f - максимальное значение мягкой цели при окончательной итерации. Это значение имеет значение только тогда, когда жесткие цели удовлетворены. Если значение меньше 1, то мягкие цели также достигаются.

g

Лучшее общее значение жесткого ограничения, возвращаемое как скаляр. systune преобразует цели жесткой настройки в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы привести эти значения ниже 1. (См. Алгоритмы.) info.g - самое большое значение жесткой цели при окончательной итерации. Если это значение меньше 1, то жесткие цели выполняются.

x

Настроенные значения параметров, возвращенные как вектор. Этот вектор содержит значения настраиваемых параметров в конце запуска. info.x могут также включать значения дополнительных переменных, таких как цикл масштабирований, если systune использует их (см. info.LoopScaling).

MinDecay

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

info.MinDecay(1) - минимальная скорость затухания полюсов с обратной связью.

info.MinDecay(2) - минимальная скорость распада динамики настроенных блоков с ограничениями устойчивости. Для получения дополнительной информации о стабилизированной динамике и скорости распада, смотрите MinDecay опция systuneOptions.

fSoft

Отдельные значения мягких ограничений, возвращенные как вектор. systune преобразует каждую цель мягкой настройки в нормированное значение, которое является функцией от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать это значение, удовлетворяющее жестким целям. (См. Алгоритмы.) info.fSoft содержит отдельные значения мягких целей в конце каждого запуска. Эти значения появляются в fSoft в том же порядке, в котором вы задаете цели в SoftReqs входной параметр в systune.

gHard

Отдельные значения жестких ограничений, возвращенные как вектор. systune преобразует каждую жесткую цель настройки в нормированное значение, которое является функцией от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать эти значения. Жесткая цель удовлетворяется, если ее значение меньше 1. (См. Алгоритмы.) info.gHard содержит отдельные значения жестких целей в конце каждого запуска. Эти значения появляются в gHard в том же порядке, в котором вы задаете цели в HardReqs входной параметр в systune.

Blocks

Настроенные значения настраиваемых блоков и параметров в настроенной системе управления, возвращенные как структура, поля которой являются именами настраиваемых элементов и значения которой являются соответствующими настроенными значениями.

Когда вы выполняете несколько запуски путем установки RandomStart опция положительного значения, можно использовать это поле для исследования производительности системы управления с результатами других запусков. Например, используйте следующий код, чтобы применить настроенные значения из j-го запуска.

CLj = setBlockValue(CL0,info(j).Blocks)

LoopScaling

Оптимальное диагональное масштабирование для оценки требований настройки MIMO, возвращаемое как модель пространства состояний.

При применении к многоуровневым системам управления цели настройки, которые включают отклик без разомкнутого контура, могут быть чувствительны к масштабированию передаточных функций цикла, к которым они применяются. Эта чувствительность может привести к плохим результатам оптимизации. systune автоматически исправляет проблемы масштабирования и возвращает оптимальную диагональную матрицу масштабирования D как модель пространства состояний в info.LoopScaling.

Циклические каналы, сопоставленные с каждым диагональным элементом D перечислены в info.LoopScaling.InputName. Масштабированная передача цикла D\L*D, где L передача без разомкнутого контура измеряется в местоположениях info.LoopScaling.InputName.

Цели настройки, затронутые таким масштабированием цикла, включают:

  • TuningGoal.LoopShape

  • TuningGoal.MinLoopGain и TuningGoal.MaxLoopGain

  • TuningGoal.Sensitivity

  • TuningGoal.Rejection

  • TuningGoal.Margins

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

ОбластьЗначение
wcPert

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

wcf

Худшее значение мягкой цели, возвращаемое как скаляр. Это значение является самым большим значением мягкой цели (f) в области значений неопределенностей при использовании настроенного контроллера.

wcg

Худшее значение жесткой цели, возвращаемое как скаляр. Это значение является самым большим значением жесткой цели (g) в области значений неопределенностей при использовании настроенного контроллера.

wcDecay

Наименьшая скорость распада замкнутой системы в области значений неопределенностей при использовании настроенного контроллера, возвращенная в виде скаляра. Положительное значение указывает на устойчивую стабильность. Для получения дополнительной информации о стабилизированной динамике и скорости распада, смотрите MinDecay опция systuneOptions.

Алгоритмы

x - вектор настраиваемых параметров в системе управления, для настройки. systune преобразует каждое требование мягкой и жесткой настройки SoftReqs(i) и HardReqs(j) в нормированные значения fi (x) и gj (x) соответственно. systune затем решает ограниченную задачу минимизации:

Минимизировать maxifi(x) при условии, что maxjgj(x)<1, для xmin<x<xmax.

xmin и xmax являются минимальным и максимальным значениями свободных параметров системы управления.

Когда вы используете как мягкие, так и жесткие цели настройки, программное обеспечение приближается к этой задаче оптимизации, решая последовательность без ограничений подпрограмм формы:

minxmax(αf(x),g(x)).

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

systune возвращает систему управления с параметрами, настроенными на значения, которые лучше всего решают задачу минимизации. systune также возвращает наилучшие достигнутые значения fi (x) и gj (x), как fSoft и gHard соответственно.

Для получения информации о функциях fi (x) и gj (x) для каждого типа ограничения, смотрите страницы с описанием для каждого TuningGoal объект требования.

systune использует нескончаемые алгоритмы оптимизации, описанные в [1], [2], [3], [4]

systune вычисляет норму H∞ с помощью алгоритма [5] и сохраняющих структуру собственных преобразователей из библиотеки SLICOT. Дополнительные сведения о библиотеке SLICOT см. в разделе http://slicot.org.

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

Приложение

Приложение Control System Tuner предоставляет графический интерфейс для управления настройкой системы.

Вопросы совместимости

расширить все

Поведение изменено в R2016a

Ссылки

[1] Apkarian, P. and D. Noll, «Nonsmooth H-infinity Synthesis», Транзакции IEEE по автоматическому управлению, том 51, № 1, (2006), стр. 71-86.

[2] Apkarian, P. and D. Noll, «Nonsmooth Optimization for Multiband Frequency-Domain Control Design», Automatica, 43 (2007), pp. 724-731.

[3] Apkarian, P., P. Gahinet, and C. Buhr, «Мультимодель, multi-объективная настройка контроллеров с фиксированной структурой», Proceedings ECC (2014), pp. 856-861.

[4] Apkarian, P., M.-N. Dao, and D. Noll, «Parametric Robust Structured Control Design», Транзакции IEEE по автоматическому управлению, 2015.

[5] Bruisma, N.A. and M. Steinbuch, «A Fast Algorithm to Compute the H∞-Norm of a Передаточная Функция Matrix», System Control Letters, Vol. 14, No, 4 (1990), pp. 287-293.

Расширенные возможности

Введенный в R2016a