Этот пример показывает, как обеспечить абсолютную стабильность, когда линейная инвариантная по времени система находится в соединении обратной связи со статической нелинейностью, которая принадлежит коническому сектору.
Рассмотрим подключение обратной связи, как показано на рис. 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 Transactions on Automatic Control 50 (11), 2005, 1698-1711.
bdclose(mdl); rmpath(fullfile(matlabroot,'examples','control','main')) % remove example data