Параметризуйте расписания усиления

Как правило, запланированные на усиление системы управления в Simulink® используют интерполяционные таблицы или блоки MATLAB function, чтобы задать значения усиления как функцию переменных планирования. Для настройки вы заменяете эти блоки параметрическими поверхностями усиления. parametric gain surface является расширением основной функции, коэффициенты которого являются настраиваемыми. Например, можно смоделировать изменяющееся во времени усиление k (t) как кубический полином в t:

k (t) = k 0 + k 1t + k 2t2 + k 3t3.

Здесь, k 0..., k 3 является настраиваемыми коэффициентами. Когда вы параметризовали запланированные усиления таким образом, systune может настроить поверхностные усилением коэффициенты, чтобы достигнуть ваших целей управления в представительном наборе условий работы. Для приложений, где усиления отличаются гладко с переменными планирования, этот подход обеспечивает явные формулы для усилений, которые программное обеспечение может записать непосредственно в блоки MATLAB function. Когда вы используете интерполяционные таблицы, этот подход позволяет вам настроить несколько коэффициентов, а не много отдельных записей интерполяционной таблицы, решительно сокращая количество параметров и гарантируя плавные переходы между рабочими точками.

Параметризация основной функции

В запланированном на усиление контроллере запланированные усиления являются функциями переменных планирования, σ. Например, у запланированного на усиление контроллера PI есть форма:

C(s,σ)=Kp(σ)+Ki(σ)s.

Настройка этого контроллера требует определения функциональных форм Kp (σ) и Ki (σ), которые приводят к лучшей производительности системы в рабочем диапазоне значений σ. Однако настройка произвольных функций является трудной. Поэтому необходимо или рассмотреть значения функции только в конечном множестве точек или ограничить общность самих функций.

В первом подходе вы выбираете набор точек проекта, σ, и настраиваете усиления Kp и Ki независимо в каждой точке проекта. Получившийся набор значений усиления хранится в интерполяционной таблице, управляемой переменными планирования, σ. Недостаток этого подхода - то, что настройка может привести к существенно различным значениям для граничения с точками проекта, вызвав нежелательные скачки при переходе от одной рабочей точки до другого.

Также можно смоделировать усиления как сглаженные функции σ, но ограничить общность таких функций при помощи определенных расширений основной функции. Например, предположите, что σ является скалярной переменной. Можно смоделировать Kp (σ) как квадратичная функция σ:

Kp(σ)=k0+k1σ+k2σ2.

После настройки это параметрическое усиление может иметь профиль, такой как следующее (определенная форма кривой зависит от настроенных содействующих значений и области значений σ):

Или, предположите, что σ состоит из двух переменных планирования, α и V. Затем можно смоделировать Kp (σ) как билинейная функция α и V:

Kp(α,V)=k0+k1α+k2V+k3αV.

После настройки это параметрическое усиление может иметь профиль, такой как следующее. Здесь также, определенная форма кривой зависит от настроенных содействующих значений и областей значений значений σ:

Для настройки усиления планирует с systune, вы используете parametric gain surface, который является конкретным расширением усиления в основных функциях σ:

K(σ)=K0+K1F1(n(σ))++KMFM(n(σ)).

Основные функции F 1..., FM выбран пользователями и зафиксирован. Эти функции работают с n (σ), где n является функцией, которая масштабирует и нормирует переменные планирования к интервалу [–1,1] (или интервал, который вы задаете). Коэффициенты расширения, K 0..., KM, являются настраиваемыми параметрами поверхности усиления. K 0..., KM может быть скаляром или с матричным знаком, в зависимости от размера ввода-вывода усиления K (σ). Выбор основной функции зависим проблемой, но в целом, попробуйте полиномиальные расширения младшего разряда сначала.

Настраиваемые поверхности усиления

Используйте команду tunableSurface, чтобы создать настраиваемую модель поверхности усиления, выбранной по сетке точек проекта (значения σ). Например, рассмотрите усиление с билинейной зависимостью от двух переменных планирования, α и V:

Kp(α,V)=K0+K1α+K2V+K3αV.

Предположим, что α является углом падения, который колеблется от 0 ° до 15 °, и V является скоростью, которая колеблется от 300 м/с до 700 м/с. Создайте сетку точек проекта, которые порождают эти линейные оболочки столбцов. Эти точки проекта должны совпадать со значениями параметров, в которых вы выбираете свое варьирование или нелинейный объект. (См. Модели объекта управления для Запланированного на усиление Контроллера, Настраивающегося.)

[alpha,V] = ndgrid(0:5:15,300:100:700);
domain = struct('alpha',alpha,'V',V);

Задайте основные функции для параметризации этой поверхности, α, V и αV. Команда tunableSurface ожидает, что основные функции будут расположены как вектор функций двух входных переменных. Можно использовать анонимную функцию, чтобы выразить основные функции.

shapefcn = @(alpha,V)[alpha,V,alpha*V];

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

Создайте настраиваемую поверхность с помощью точек проекта и основных функций.

Kp = tunableSurface('Kp',1,domain,shapefcn);

Kp является настраиваемой моделью поверхности усиления. tunableSurface параметризовал поверхность как:

Kp(α,V)=K¯0+K¯1α¯+K¯2V¯+K¯3α¯V¯,

где

α¯=α7.57.5,V¯=V500200.

Поверхность выражается с точки зрения нормированных переменных, α¯,V¯[1,1]2 вместо с точки зрения α и V. Эта нормализация, которую tunableSurface выполняет по умолчанию, улучшает создание условий оптимизации, выполняемой systune. В случае необходимости можно изменить масштабирование по умолчанию и нормализацию. (См. tunableSurface).

Второй входной параметр к tunableSurface задает начальное значение постоянного коэффициента, K 0. По умолчанию K 0 является усилением, когда все переменные планирования находятся в центре своих областей значений. tunableSurface берет размерности ввода-вывода поверхности усиления от K 0. Поэтому можно создать настраиваемые усиления со знаком массива путем обеспечения массива для того входа.

Karr = tunableSurface('Karr',ones(2),domain,shapefcn);

Karr является матрицей 2 на 2, в которой каждая запись является билинейной функцией переменных планирования с независимыми коэффициентами.

Настраиваемое усиление с двумя независимыми переменными планирования

Этот пример показывает, как смоделировать скалярное усиление K с билинейной зависимостью от двух переменных планирования, и V. Предположим, что это - угол падения, который колеблется от 0 до 15 градусов, и V скорость, которая колеблется от 300 до 600 м/с. По умолчанию нормированные переменные:

Поверхность усиления моделируется как:

где настраиваемые параметры.

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

[alpha,V] = ndgrid(0:3:15,300:50:600);

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

domain = struct('alpha',alpha,'V',V);

Создайте основные функции, которые описывают билинейное расширение.

shapefcn = @(x,y) [x,y,x*y];  % or use polyBasis('canonical',1,2)

В массиве, возвращенном shapefcn, основные функции:

Создайте настраиваемую поверхность усиления.

K = tunableSurface('K',1,domain,shapefcn);

Можно использовать настраиваемую поверхность в качестве параметризации для блока интерполяционной таблицы или блока MATLAB function в модели Simulink. Или, используйте команды соединения моделей, чтобы включить его как настраиваемый элемент в системе управления, смоделированной в MATLAB. После того, как вы настроите коэффициенты, можно исследовать получившуюся поверхность усиления использование команды viewSurf. В данном примере вместо настройки, вручную устанавливает коэффициенты на ненулевые значения и просматривают получившееся усиление.

Ktuned = setData(K,[100,28,40,10]);
viewSurf(Ktuned)

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

Настраиваемые поверхности в Simulink

В вашей модели Simulink вы моделируете расписания усиления с помощью блоков интерполяционной таблицы, блоков MATLAB function или Матричных блоков Интерполяции, как описано в Образцовых Запланированных на усиление Системах управления в Simulink. Чтобы настроить эти поверхности усиления, используйте tunableSurface, чтобы создать поверхность усиления для каждого блока. В интерфейсе slTuner к модели определяйте каждое расписание усиления как блок настраивать, и устанавливать свою параметризацию на соответствующую поверхность усиления. Например, модель rct_CSTR включает запланированный на усиление контроллер PI, подсистему Concentration controller, в которой усиления Kp и Ki меняются в зависимости от переменной Cr планирования.

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

TuningGrid = struct('Cr',CrEQ);
ShapeFcn = @(Cr) [Cr , Cr^2];

Kp = tunableSurface('Kp',0,TuningGrid,ShapeFcn);
Ki = tunableSurface('Ki',-2,TuningGrid,ShapeFcn);

Предположим, что у вас есть массив Gd линеаризации подсистемы объекта, CSTR, в каждой из точек проекта в CrEQ. (См. Модели объекта управления для Запланированного на усиление Контроллера, Настраивающегося). Создайте интерфейс slTuner, который заменяет этим массивом подсистему объекта и определяет два блока интерполяционной таблицы для настройки.

BlockSubs = struct('Name','rct_CSTR/CSTR','Value',Gd);
ST0 = slTuner('rct_CSTR',{'Kp','Ki'},BlockSubs);

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

ST0.setBlockParam('Kp',Kp);
ST0.setBlockParam('Ki',Ki);

Когда вы настраиваете STO, systune настраивает коэффициенты настраиваемых поверхностей Kp и Ki, так, чтобы каждая настраиваемая поверхность представляла настроенное отношение между Cr и усилением. Когда вы записываете настроенные значения обратно к блоку для валидации, setBlockParam автоматически генерирует настроенные данные интерполяционной таблицы путем оценки настраиваемых поверхностей в точках останова, которые вы задаете в соответствующих блоках.

Для получения дополнительной информации об этом примере, смотрите Запланированное на усиление Управление Химического Реактора.

Настраиваемые поверхности в MATLAB

Для системы управления, смоделированной в MATLAB®, используйте настраиваемые поверхности, чтобы создать более комплексные запланированные на усиление элементы управления, такие как запланированные на усиление ПИД-регуляторы, фильтры или контроллеры пространства состояний. Например, предположите, что вы создаете две поверхности усиления Kp и Ki с помощью tunableSurface. Следующая команда создает настраиваемый запланированный на усиление контроллер PI.

C0 = pid(Kp,Ki);

Точно так же предположите, что вы создаете четыре поверхности усиления с матричным знаком A, B, C, D. Следующая команда создает настраиваемый запланированный на усиление контроллер пространства состояний.

C1 = ss(A,B,C,D);

Вы затем включаете запланированный на усиление контроллер в обобщенную модель вашей целой системы управления. Например, предположите, что G является массивом моделей вашего объекта, выбранного в точках проекта, которые заданы в Kp и Ki. Затем следующая команда создает настраиваемую модель запланированной на усиление одноконтурной системы управления ПИДа.

T0 = feedback(G*C0,1);

Когда вы соединяете настраиваемую поверхность с другими моделями LTI, получившаяся модель является массивом настраиваемых обобщенных моделей genss. Точки проекта на настраиваемой поверхности определяют размерности массива. Таким образом каждая запись в массиве представляет систему в соответствующем значении переменных планирования. Свойство SamplingGrid массива хранит те точки проекта.

T0 = feedback(G*Kp,1)
T0 =

  4x5 array of generalized continuous-time state-space models.
  Each model has 1 outputs, 1 inputs, 3 states, and the following blocks:
    Kp: Parametric 1x4 matrix, 1 occurrences.

Type "ss(T0)" to see the current value, "get(T0)" to see all properties, and
"T0.Blocks" to interact with the blocks.

Получившаяся обобщенная модель имеет настраиваемые блоки, соответствующие поверхностям усиления, используемым, чтобы создать модель. В этом примере система имеет одну поверхность усиления, Kp, который имеет четыре настраиваемых коэффициента, соответствующие K 0, K 1, K 2, и K 3. Поэтому настраиваемый блок является параметром realp с векторным знаком с четырьмя записями.

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

Для примера, иллюстрирующего целый рабочий процесс в MATLAB, смотрите раздел “Controller Tuning in MATLAB” в Запланированном на усиление Управлении Химического Реактора.

Смотрите также

Похожие темы