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

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 = 120

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

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

Подтвердите это, настроенная система управления удовлетворяет требование отслеживания путем исследования переходного процесса от 'r' к 'y'.

stepplot(CL)

Figure contains an axes object. The axes object 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 object. The axes object 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 objects. Axes object 1 contains 2 objects of type line. These objects represent Tracking error, Max error, Effective bound. Axes object 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);

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.97751, Iterations = 110

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

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

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

figure;
viewGoal(HardReqs,CL)

Figure contains 4 axes objects. Axes object 1 contains an object of type line. These objects represent Required margins, Stability margins. Axes object 2 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound. Axes object 3 contains an object of type line. These objects represent Required margins, Stability margins. Axes object 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 object. The axes object 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 object. The axes object 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.

Для устойчивой настройки системы управления против набора моделей объекта управления (требует Robust Control Toolbox™), задайте массив настраиваемого genss модели, которые имеют те же настраиваемые параметры. Чтобы сделать контроллер устойчивым против неопределенности параметра, используйте модель неопределенными действительными параметрами, заданными с ureal (Robust Control Toolbox) или uss (Robust Control Toolbox). В этом случае, CL0 isa 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) модель. Эта модель имеет тот же номер и тип настраиваемых элементов (Блоки Системы управления) как 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 th запуск перед завершением.

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 th запуск.

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] и сохранение структуры eigensolvers от библиотеки SLICOT. Для получения дополнительной информации о библиотеке SLICOT, см. http://slicot.org.

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

Приложение

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

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

развернуть все

Поведение изменяется в R2016a

Ссылки

[1] Apkarian, P. и Д. Нолл, "Несглаженный Синтез H-бесконечности", Транзакции IEEE на Автоматическом управлении, Издании 51, № 1, (2006), стр 71–86.

[2] Apkarian, P. и Д. Нолл, "Несглаженная Оптимизация для Многополосной Системы управления Частотного диапазона", Automatica, 43 (2007), стр 724–731.

[3] Apkarian, P., П. Гэхинет и К. Бахр, "Мультимодель, многоцелевая настройка контроллеров фиксированной структуры", ECC Продолжений (2014), стр 856–861.

[4] Apkarian, P. m, n . Дао и Д. Нолл, "параметрическая устойчивая структурированная система управления", транзакции IEEE на автоматическом управлении, 2015.

[5] Bruinsma, N.A., и М. Стейнбач. "Алгоритм FAST, чтобы Вычислить H Норма Матрицы Передаточной функции". Systems & Control Letters, 14, № 4 (апреля 1990): 287–93.

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

Введенный в R2016a