Równanie Lapunowa

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Równanie Lapunowa – w teorii sterowania to jedno z następujących równań:

  • dyskretne równanie Lapunowa:
AXAHX+Q=0,
gdzie Q jest macierzą hermitowską, a AH jest transpozycją sprzężoną macierzy A;
  • dyskretne równanie Lapunowa w postaci:
AX+XAH+Q=0.

Równania Lapunowa występują w wielu zagadnieniach teorii sterowania takich jak analiza stabilności Lapunowa i sterowanie optymalne (zob. algebraiczne równanie Riccatiego).

Zastosowanie do stabilności

W poniższych twierdzeniach A,P,Qn×n, i P oraz Qsymetryczne. Notacja P>0 oznacza, że macierz P jest macierzą dodatnio określoną.

Twierdzenie dla przypadku czasu ciągłego

Jeśli istnieje P>0 i Q>0 spełniająca ATP+PA+Q=0, wówczas układ liniowy x˙=Ax jest globalnie asymptotycznie stabilny. Funkcja kwadratowa V(z)=zTPz jest funkcją Lapunowa, która może być użyta do weryfikacji stabilności.

Twierdzenie dla przypadku czasu dyskretnego

Jeśli istnieje P>0 i Q>0 spełniająca ATPAP+Q=0, wówczas układ liniowy x(t+1)=Ax(t) jest globalnie asymptotycznie stabilny. Podobnie jak w twierdzeniu powyżej zTPz jest funkcją Lapunowa.

Aspekty obliczeniowe rozwiązań

Korzystając z uzupełnienia Schura, dyskretne równanie Lapunowa można zapisać w postaci:

[X1AAHXQ]=0

lub równoważnie:

[XXAAHXXQ]=0.

Przy rozwiązywaniu równań Lapunowa można posłużyć się dostępnym specjalistycznym oprogramowaniem. W przypadku dyskretnym często stosuje się metodę Schura podaną przez Kitagawa (1977). W przypadku ciągłym można posłużyć się metodą Bartelsa i Stewarta (1972).

Rozwiązanie analityczne

Dla równań dyskretnych czasu dyskretnego istnieje rozwiązanie analityczne. Definiuje się operator vec(A) jako złożenie kolumn macierzy A (zob. wektoryzacja). Ponadto definiuje się kron(A,B) jako iloczyn Kroneckera macierzy A i B. Korzystając z następującego wyniku:

vec(ABC)=kron(CT,A)vec(B),

otrzymuje się:

(Ikron(AT,AT))vec(X)=vec(Q),

gdzie I jest zgodną macierzą jednostkową.

Można wówczas znaleźć rozwiązanie vec(X) przez odwrócenie lub przez rozwiązanie równań liniowych. Aby uzyskać X wystarczy odpowiednio przekształcić vec(X).

Zobacz też