systune

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

Описание

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

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

пример

[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 = 100

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

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

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

stepplot(CL)

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

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

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

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

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

viewGoal([Rtrack,Rreject],CL)

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

Каскадная система управления следующим рисунком включает два настраиваемых контроллера, ПИ-контроллер для внутреннего цикла, 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.97704, Iterations = 114

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

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

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

figure;
viewGoal(HardReqs,CL)

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

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

figure;
stepplot(CL,20)

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

figure;
viewGoal(Rtrack,CL)

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

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

свернуть все

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

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

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

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

Для устойчивой настройки системы управления против набора моделей объекта управления (требует Robust Control Toolbox™), задайте массив настраиваемого genss модели, которые имеют те же настраиваемые параметры. Чтобы сделать контроллер устойчивым против неопределенности параметра, используйте модель неопределенными действительными параметрами, заданными с ureal или uss. В этом случае, 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) модель. Эта модель имеет тот же номер и тип настраиваемых элементов (Блоки Системы управления) как 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] Bruisma, Н.Э. и М. Стейнбач, "Алгоритм FAST, чтобы Вычислить -норму H Матрицы Передаточной функции", Системные Буквы Управления, Издание 14, нет, 4 (1990), стр 287–293.

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

Введенный в R2016a