Абсолютная устойчивость для квантованной системы

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

Связь обратной связи

Рассмотрите связь обратной связи как показано в рисунке 1.

Рисунок 1: связь Обратной связи

линейная независимая от времени система и статическая нелинейность, которая принадлежит коническому сектору (где); то есть,

В данном примере следующая система дискретного времени.

addpath(fullfile(matlabroot,'examples','control','main')) % add example data


A = [0.9995, 0.0100, 0.0001;
    -0.0020, 0.9995, 0.0106;
          0,      0, 0.9978];
B = [0, 0.002, 0.04]';
C = [2.3948, 0.3303, 2.2726];
D = 0;
G = ss(A,B,C,D,0.01);

Сектор ограниченная нелинейность

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

где. Этот квантизатор принадлежит связанному сектору. Например, если, то квантизатор принадлежит коническому сектору [0.1818,1.8182].

% Quantizer parameter
rho = 0.1;
% Lower bound
alpha = 2*rho/(1+rho)
% Upper bound
beta = 2/(1+rho)
alpha =

    0.1818


beta =

    1.8182

Постройте границы сектора для квантизатора.

PlotSectorBound(rho)

представляет плотность квантования, где. Если больше, то квантованное значение более точно. Для получения дополнительной информации об этом квантизаторе, см. [1].

Коническое условие сектора для абсолютной устойчивости

Конической матрицей сектора для квантизатора дают

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

где, и ввод и вывод, соответственно.

Это условие может быть проверено путем проверки, ли индекс сектора, меньше, чем 1.

Задайте коническую матрицу сектора для квантизатора с.

Q = [1,-(alpha+beta)/2;-(alpha+beta)/2,alpha*beta];

Получите индекс сектора для Q и G.

R = getSectorIndex([1;-G],-Q)
R =

    1.8245

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

mdl = 'DTQuantization';
open_system(mdl)

Запустите модель Simulink.

sim(mdl)
open_system('DTQuantization/output')

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

Повысьте плотность квантования путем разрешения. Квантизатор принадлежит коническому сектору [0.4 1.6].

% Quantizer parameter
rho = 0.25;
% Lower bound
alpha = 2*rho/(1+rho)
% Upper bound
beta = 2/(1+rho)
alpha =

    0.4000


beta =

    1.6000

Постройте границы сектора для квантизатора.

PlotSectorBound(rho)

Задайте коническую матрицу сектора для квантизатора с.

Q = [1,-(alpha+beta)/2;-(alpha+beta)/2,alpha*beta];

Получите индекс сектора для Q и G.

R = getSectorIndex([1;-G],-Q)
R =

    0.9702

Квантизатор с удовлетворяет коническое условие сектора для устойчивости связи обратной связи с тех пор.

Запустите модель Simulink с.

sim(mdl)
open_system('DTQuantization/output')

Как обозначено индексом сектора, система с обратной связью стабильна.

Ссылка

[1] М. Фу и Л. Се, "Сектор связанный подход к квантованному управлению с обратной связью", Транзакции IEEE на Автоматическом управлении 50 (11), 2005, 1698-1711.

bdclose(mdl);
rmpath(fullfile(matlabroot,'examples','control','main')) % remove example data