ИДЕНТИФИКАЦИЯ ДИНАМИЧЕСКИХ СИСТЕМ

Идентифицировать означает различать. Если идентифицируемый объект подвижен и описывается математической моделью, то речь идет об определении ее структуры и параметров по тем или иным элементам движения. Параметрическая идентификация при заданной структуре уравнений выполняется проще, поэтому чаще всего имеют в виду именно параметрическую идентификацию систем. Интерес к этой связанной с вычислениями обширной области знаний естественным образом возник на заре развития компьютерных технологий.

Допустим, техническая система ведет себя отлично от того, как это предполагалось при проектировании, и отклонения существенны для эксплуатации. Компьютеры открывают заманчивую перспективу исправить ситуацию на ходу дополнительным изучением объекта и внесением корректив в законы управления им. В этом процессе видят прямую аналогию тому, как живые системы приспосабливаются к изменяющимся условиям существования. Такие системы называют еще адаптивными. Идентификация - это часть процесса адаптации.

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

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

Практики двух близких наук разительно отличаются, хотя, можно успокоить, только на бумаге. Бумага все стерпит, но не реальное употребление. Когда за рост ошибок приходится платить развалом адаптивного управления, расхождение во взглядах на предмет заканчивается. В связи с распространением знаний и ростом общей культуры вычислений появились и более правильные рекомендации в идентификации. Но тогда, опять таки, речь идет об очередном оформлении материала под бутафорную науку. Такой комуфляж немногого стоит. Он даже мешает добавлением ненужной терминологии, двойным толкованием одного и того же, паразитированием на уже созданных и достаточно глубоко изученных вещах. В отличие от теории всемирного тяготения, хотя всюду есть свои сложности, новая наука рыхла и самостоятельной областью знаний не является.

Есть только одно но: знания редко развиваются поступательно и обязательно в рамках особо выделенных элитарных направлений.

Как правило, идет перекличка, и сложившиеся уже области многое взяли в свое время от таких же ровно синтетических представляющих живой интерес занятий, как идентификация. Эту сторону предмета стоить выпятить, пояснив, что умы, которые разбирают предмет по косточкам, вовсе не обязательно кучкуются и публикуются только исключительно в "правильных" рубриках. Разбор задачи идентификации, богатой своим внутренним содержанием, дает импульсы развития и иных значительно более развитых фундаментальных дисциплин. Фундаментальная дисциплина может не все учитывать. Действенная аргументация, зачем нужно такое именно решение, идет от конкретных потребностей. Вычислительная математика задохнулась бы, оставайся она один на один со своим абстрагированным предметом.

Обзор теории идентификации хотелось бы начать с вопроса, не нашедшего еще достаточного освещения.

По умолчанию предполагается, что идентификация систем связана с однозначным решением вопроса о построении математической модели объекта. Тот простой факт, что это далеко не всегда возможно, да отнюдь и не всегда целесообразно, нередко игнорируется. Итерационным алгоритмам потому положено быть сходящимися. Тому подобная чепуха, взятая, как раз, из совсем других наук, прилежно приводится, предположительно, для придания веса всегда и всюду сходящимся алгоритмам. Как же иначе, ведь мы занимаемся различением.

Почему, допустим, если из заданного класса систем не одна, а две и более моделей могут адекватно описать движения объекта, это может нас не устроить? Разумного ответа нет. Более того, тот случай, когда объект неидинтифицируем, то есть, описывается не одной, а многими моделями, видится намного более интересным скучного случая, когда выбора нет. Он скучен, поскольку по жизни так редко бывает, это раз. А два, если нас интересует новое, то зачем же повторять старое? Для однозначно находимых моделей существует своя литература, ведущая к тем самым раздутым и перегретым всеобщим употреблением разделам вычислительной математики, о которых уже говорилось. Переписывать ее новым языком не имеет особого практического смысла. Добавлять же полноценно можно только исследуя случаи-исключения. Но не такие уж они и исключения. Актуальным, пожалуй, при зрелом рассуждении, однозначно идентифицируемый случай не назовешь.

Систем, однозначно идентифицируемых, не большинство, а меньшинство. Многие практические системы как раз скрывают свои параметры. Ведя автомобиль по шоссе, мы не дергаем за все ручки управления сразу, это абсурд. Откуда же мы узнаем полную модель автомобиля, если едем, как правило, строго по прямой? И что, модель при этом, если она неверна, невозможна к коррекции? Возможна, но сходимость, в этой дисциплине, не главное качество. Это желательно, но необязательно. Прежде чем вплотную заняться вопросом об идентифицируемости и (особыми) алгоритмами идентификации, стоит это пояснить, что неидентифицируемость не рассматривается как препятствующее для проведения адаптации системы обстоятельство. Наоборот, неидентифицируемость трактуется как несомненно более важный к изучению вариант развития событий в адаптивном управлении.

Построение моделей никак не увязывается с однозначной идентификацией. Далее нас в первую очередь заинтересуют некие тестовые условия, когда неидентифицируемость проявляется и что бывает, когда итерационные алгоритмы оказываются в таких условиях. Очевидно, что они ведут себя по разному и имеет смысл их поведение на тестовых задачах изучить и классифицировать. Тогда перспективы "поправить" вычислительную математику реально появляются, поскольку при всей ее строгости, она чрезвычайно зависима от мотивации. Еще Беллман отметил, что при всей простоте системы линейных алгебраических уравнений, они ведут к чрезвычайно обширному кругу методов их решений. И это принципиально важно пояснить.

ПРИМЕРЫ

Возьмем из справочника Камке линейную автономную нестационарную динамическую систему dX/dt=A(t)X с матрицей

A(t)=[0 10 c s; -10 0 s -c; -c -s 0 10; -s c -10 0],

где c=10cos(t), s=10sin(t), с решением X(t)=CF(t), где F(t)=[f1 f2 f3 f4]', гармонические составляющие f1=sin(15t), f2=cos(15t), f3=sin(14t), f4=cos(14t) и

C=[1 -1 1 1; -1 -1 -1 1; -0.4 0.4 2.5 2.5; 0.4 0.4 -2.5 2.5].

Как видно, параметры системы изменяются более чем в 10 раз медленнее вариации динамического процесса, на малом интервале времени эта система почти стационарная. Причем ее можно сделать сколь угодно 'стационарной' простым уменьшением времени наблюдения t. Посмотрим, отслеживают ли традиционные алгоритмы метода наименьших квадратов такие весьма 'слабо меняющиеся параметры'.


if tick=0, t=time(0.1), x=0, end, 

% dX/dt=A(t)X (solution),
Y=derivationX(t[tick]), X=solutionX(t[tick]), x={[x X[0]]}, x=?, 

alg=1, % ALGORITHM,
if tick=0, if alg=0, tolerance=0.000000000000001, 
call A=InitXLSM(Y X), else, call A=InitXRLSM(Y X), A=?, end,
else, if alg=0, 
call A=XLSM(Y X), r=rank(P), r=?, else, call A=XRLSM(Y X), end, 
end,

At=matrixA(t[tick]), twoA={[A At]}, mesh(twoA), A=?, ball(x),
if tick<size(t), ticker(100), end,

% LIBRARY (SOLUTIONS),

function: matrixA(t),
var c s, c=10*cos(t), s=10*sin(t), 
At=[0 10 c s; -10 0 s -c; -c -s 0 10; -s c -10 0], 
return At,
end,

function: solutionX(t),
var x1 x2 x3 x4 C, 
C=[1 -1 1 1; -1 -1 -1 1; -0.4 0.4 2.5 2.5; 0.4 0.4 -2.5 2.5], 
x1=sin(15*t), x2=cos(15*t), x3=sin(14*t), x4=cos(14*t), 
X=[x1 x2 x3 x4],
X={C*X},
return X,
end,

function: derivationX(t), 
var y1 y2 y3 y4 C, % берем производные,
C=[1 -1 1 1; -1 -1 -1 1; -0.4 0.4 2.5 2.5; 0.4 0.4 -2.5 2.5], 
y1=15*cos(15*t), y2=-15*sin(15*t), y3=14*cos(14*t), y4=-14*sin(14*t), 
Y=[y1 y2 y3 y4], Y={C*Y},
return Y,
end, 

% LIBRARY LSM,

function: InitXLSM(Y X),
var n, n=rows(X), 
P=zeros(n), R=zeros(n), call A=XLSM(Y X), 
return A, 
end, 

function: XLSM(Y X),
% solution AP=R, 
P=res(P+X*X), R=res(R+Y*X), A={R/P}, 
return A, 
end,

% RLSM,

function: InitXRLSM(Y X),
var n, n=rows(X), 
P=eye(n), R=zeros(n), P={10000*P}, A={R}, call A=XRLSM(Y X), 
return A, 
end,

function: XRLSM(Y X), 
var L T k e, L={P*X}, k={X'*L}, k=1+k, T={L/k}, 
P=res(P-L*T), e={A*X}, e={Y-e}, e={e/k}, 
A=res(A+e*L), 
return A,
end,

Сопоставим разместив рядом оценку A и варьируемую матрицу A(t), которая на малом интервале времени меняется относительно мало, тогда как процесс x (первая переменная вектора состояния) меняется существенно. Эта система почти стационарна, но в том то и дело, что почти. Метод наименьших квадратов (МНК) сходится - но сходится упорно не к значениям элементов A(t)!

Некоторые выводы. В этой задаче матрица МНК имеет полный ранг на любом ненулевом интервале времени, хотя и плохо обусловлена при малых t: прямой и рекуррентный методы (МНК и РМНК) устойчиво сходятся к оценке вида

A=[ 0 -11 0 10 ; 11 0 -10 0 ; 0 10 0 10 ; -10 0-10 0 ],

существенно отличающейся, как видно, от матрицы 'замороженных параметров'

A(t)=[ 0 10 10 0 ; -10 0 0 -10 ; -10 0 0 10 ; 0 10 -10 0 ].

Подстановкой известного заранее аналитического решения X(t) в дифференциальное уравнение нетрудно проверить, что найденная стационарная система порождает при том же начальном условии тот же самый динамический процесс, что и нестационарная. Поскольку МНК с накапливаемой выборкой в принципе ориентирован на стационарные системы, именно такую систему он и находит. Нет никакого отслеживания нестационарных параметров. Следовательно, сами соображения про 'отслеживание' являются ошибкой, чрезвычайно распространенной в литературе.

Далее, матрица P системы нормальных уравнений МНК - это, при переходе к интегральной форме записи, грамиан Калмана. Невырожденность его по прежнему гарантирует разрешимость задачи, на этот раз - идентификации, но в другом, указанном выше смысле. Им гарантируется, что стационарная система, отвечающая нестационарной модели, будет одна. Этот критерий квазиидентифицируемости, найденный в этих именно исследованиях в 1979-1980 годах, опубликован в издательстве журнала Приборостроение. В данном уникальном примере матрица A аппроксимирующей движение системы вообще не зависит от длительности интервала времени идентификации. Иными словами, никакими средствами этот процесс невозможно свести к отслеживанию.

Есть еще ряд важных деталей. РМНК ведет себя заметно стабильнее. Объясняется это тем, что в рекуррентном методе априори учитывается дополнительная информация: невырожденность матрицы системы нормальных уравнений. Это преимущество однако спорное, в том случае, когда задача идентификации на самом деле недоопределена. Прямой метод МНК значительно менее консервативен, следовательно, и при плохой обусловленности нестабильность получаемых им оценок параметров заметна даже с учетом тех небольших искажений, которые вызванны ошибками, получаемыми ввиду ограниченной разрядной сетки вычислителя.

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

ПОВЕДЕНИЕ АЛГОРИТМОВ ПРИ НЕИДЕНТИФИЦИРУЕМОСТИ

Упростим задачу, рассмотрим линейную автономную стационарную динамическую систему dX/dt=AX с матрицей

A=[1 4; 3 2],

при начальном условии X0=[1 1]', возбуждающем только одно собственное движение, поскольку X(t)=[e5t e5t]'. Теоретически оценки элементов матрицы A в этих условиях получить нельзя. Но как поведут себя прямой и рекуррентный методы наименьших квадратов?


if tick=0, t=time(1), x=1, end, 

% dX/dt=AX (solution),  

X=[exp(5*t[tick]) exp(5*t[tick])], 
Y=[5*exp(5*t[tick]) 5*exp(5*t[tick])], 

s=rand(2), s={0.001*s}, X={X+s},  

alg=1, % ALGORITHM,
if tick=0, As=[1 4; 3 2],
if alg=0, tolerance=0.000000000000001, 
call A=InitXLSM(Y X), else, call A=InitXRLSM(Y X), A=?, end,
else, if alg=0, 
call A=XLSM(Y X), r=rank(P), r=?, else, call A=XRLSM(Y X), end, 
end,

twoA={[A As]}, mesh(twoA), A=?, x={[x X[0]]}, ball(x),
if tick<size(t), ticker(100), end,

% LIBRARY LSM,

function: InitXLSM(Y X),
var n, n=rows(X), 
P=zeros(n), R=zeros(n), call A=XLSM(Y X), 
return A, 
end, 

function: XLSM(Y X),
% solution AP=R, 
P=res(P+X*X), R=res(R+Y*X), A={R/P}, 
return A, 
end,

% RLSM,

function: InitXRLSM(Y X),
var n, n=rows(X), 
P=eye(n), R=zeros(n), P={10000*P}, A={R}, call A=XRLSM(Y X), 
return A, 
end,

function: XRLSM(Y X), 
var L T k e, L={P*X}, k={X'*L}, k=1+k, T={L/k}, 
P=res(P-L*T), e={A*X}, e={Y-e}, e={e/k}, 
A=res(A+e*L), 
return A,
end,

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

При повышении уровня шума оценки РМНК на старте тоже приобретают нестабильный характер, поскольку мало информации для фильтрации шумов осреднением. Дополнительное исследование показывает, что 'броски оценок' имеют то свойство (сумма элементов строки равна 5, а таких решений несчетное множество), что все полученные на их основе стационарные динамические системы имеют тот же самый динамический процесс (с точностью до отклонений, вызываемых влиянием шума, естественно), что и исходная система. В этом проявляется сродство с рассмотренным ранее случаем. Аналогичной РМНК и даже большей нечувствительности процесса идентификации можно добиться и прямым методом при огрублении порога инверсии обращения матрицы. Именно это соображение приобретает, тем самым, решающий характер при выборе алгоритма, особенно, если дополнить идею понижения ранга введением дополнительной информации об оценках в виде некоторой матрицы притяжения. Возможны и модификации РМНК формальным изменением задачи оценивания переносом начала координат в уравениях для оценок параметров в притягивающую решение точку.

Как видно, получаемые оценки далеки от истинных значений параметров и задача нуждается в доопределении. Приведенные выше результаты, при всей их простоте, мало известны в литературе, поскольку вырожденные задачи недостаточно хорошо еще изучены.



Rambler's Top100