В этом примере показано, как осуществить абсолютную устойчивость, когда линейная независимая от времени система находится в соединении обратной связи со статической нелинейностью, которая принадлежит коническому сектору.
Рассмотрите соединение обратной связи как показано в рисунке 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.8247
С тех пор система с обратной связью не устойчива. Чтобы видеть эту нестабильность, используйте следующую модель 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