exponenta event banner

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(___) также возвращает подробную информацию о каждом прогоне оптимизации. Здесь также применяются все входные аргументы, описанные для предыдущих синтаксисов.

Примеры

свернуть все

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

Каскадная система управления по следующей иллюстрации включает в себя два настраиваемых контроллера, PI-контроллер для внутреннего контура, C2, и PID-контроллер для внешнего контура, 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);

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

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.

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

Каскадная система управления по следующей иллюстрации включает в себя два настраиваемых контроллера, PI-контроллер для внутреннего контура, C2, и PID-контроллер для внешнего контура, 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);

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

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.

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 блоки для маркировки дополнительных сигналов, представляющих интерес для задания и оценки требований настройки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Если предоставляется массив моделей системы управления для настройки в качестве входного аргумента, CL0, systune одновременно настраивает параметры всех моделей. В этом случае CL является массивом настроенных genss модели. Дополнительные сведения см. в разделе Подходы к надежной настройке (Rustive 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 затем решает задачу ограниченной минимизации:

Минимизируйте максифи (x) в зависимости от maxjgj (x) < 1, для xmin < x < xmax.

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

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

minx max (α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] Апкарян, П. и Д. Нолл, «Nonsmooth H-infinity Synthesis», IEEE Transactions on Automatic Control, том 51, № 1, (2006), стр. 71-86.

[2] Апкарян, П. и Д. Нолл, «Nonsmooth Optimization for Multiband Frequency-Domain Control Design», Automatica, 43 (2007), pp. 724-731.

[3] Апкарян, П., П. Гахинет и К. Бюр, «Мультимодельная, многообъектная настройка контроллеров фиксированной структуры», Proceedings ECC (2014), стр. 856-861.

[4] Апкарян, П., М.-Н. Дао и Д. Нолл, «Параметрический надежный структурированный дизайн управления», IEEE Transactions on Automatic Control, 2015.

[5] Bruisma, N.A. и M. Steinbuch, «Быстрый алгоритм для вычисления H∞-Norm матрицы передаточной функции», System Control Letters, Vol. 14, No, 4 (1990), стр. 287-293.

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

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