Dyskretyzacja (matematyka)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

W matematyce dyskretyzacja dotyczy procesu transformowania modeli i równań funkcji ciągłych na ich dyskretne odpowiedniki. Jest to zwykle pierwszy krok w procesie przygotowywania tych modeli (i równań) do ewaluacji numerycznej i implementacji na komputerach cyfrowych. Do przetwarzania na komputerze cyfrowym ponadto potrzebne jest wykonanie kwantyzacji.

Szczególnie istotne są tu  :

Rozwiązanie zdyskretyzowanego cząstkowego równania różniczkowego, uzyskane za pomocą metody elementów skończonych.

Dyskretyzacja związana jest także z matematyką dyskretną i jest ważną częścią (komputerowych) obliczeń ziarnistych (ang. granular computing) stosowanych w mechanice komputerowej. W tym kontekście dyskretyzacja odnosi się także do modyfikacji zmiennej w kategorii ziarnistości gdy agreguje się wiele zmiennych dyskretnych albo dokonuje się fuzji wielu kategorii dyskretnych.

Dyskretyzacja równań różniczkowych metodą Eulera[edytuj | edytuj kod]

Information icon.svg Osobny artykuł: Metoda Eulera.

Można wykonać projekt układu sterowania ciągłego i zaimplementować go w układzie dyskretnym stosując metody aproksymacji równań różniczkowych. Pewnym szczególnym sposobem realizacji aproksymaty dla komputera cyfrowego w celu rozwiązania równania różniczkowego jest metoda Eulera. Metoda ta może być wyprowadzona z następującej definicji różniczki:

\dot{x}=\lim_{\delta t \to 0} \frac{\delta x}{\delta t}\,

gdzie \delta x\, jest zmianą zmiennej x\, w czasie \delta t\,. \delta t\, nie musi być całkiem równe zero by zależność ta mogła być prawdziwa po zastosowaniu podanych niżej aproksymat. W samej metodzie Eulera wyróżnić można dwie metody:

  • aproksymację prostokątną w przód (ang. forward rectangular rule) dla której:
\dot{x}(k)=\frac{x(k+1)-x(k)}{T}\,

gdzie k\, jest liczbą całkowitą, T=t_{k+1}-t_{k}\, jest okresem próbkowania i t_{k}=kT\,, x(k)\, i x(k+1)\, wartościami funkcji x\, w chwilach odpowiednio t_{k}\, i t_{k+1}\,

  • aproksymację prostokątną wstecz (ang. backward rectangular rule) dla której:
\dot{x}(k)=\frac{x(k)-x(k-1)}{T}\,

gdzie k\, jest liczbą całkowitą, T=t_{k}-t_{k-1}\, jest okresem próbkowania i t_{k}=kT\,, x(k)\, i x(k-1)\, wartościami funkcji x\, w chwilach odpowiednio t_{k}\, i t_{k-1}\,

Aproksymacje te mogą być zastosowane w miejscach wszystkich różniczek, które występują w równaniach różniczkowych regulatora. W ten sposób uzyskuje się zbiór równań algebraicznych, które mogą być rozwiązane przez komputer cyfrowy. Równania te znane są jako równania różnicowe i są rozwiązywane cyklicznie (z dyskretnym krokiem czasowym o długości T\,).

Dyskretne równoważniki transmitancji operatorowej[edytuj | edytuj kod]

W teorii sterowania, metodę projektowania układów dyskretnych polegająca na zaprojektowaniu kompensatora czasu ciągłego, a następnie zastąpieniu go równoważnikiem dyskretnym tak by można go zaimplementować w urządzeniu cyfowym nazywa się emulacją. Metoda ta jest bardzo szeroko używana przez inżynierów praktyków. Przydatne stają się wówczas dyskretne równoważniki transmitancji operatorowej.

Dyskretne równoważniki transmitancji operatorowej to transmitancje dyskretne, które aproksymują te same charakterystyki (w pewnym zakresie częstotliwości) jak dana transmitancja czasu ciągłego G(s)\,. Można w tym celu zastosować poniższe metody realizujące to zadanie:

  • całkowanie numeryczne - w metodzie tej przeprowadza się całkowanie numeryczne równań różniczkowych opisujących wykonany projekt czasu ciągłego. Istnieje wiele technik pozwalających na całkowanie numeryczne w tym metoda Eulera i techniki oparte na regułach prostokąta i trapezu.
  • dyskretyzacja odpowiedzi impulsowej - w metodzie tej wyznacza się dla transmitancji ciągłej G(s)\, odpowiedz impulsową, którą następnie dyskretyzuje się. Ostatecznie dla dyskretnej odpowiedzi impulsowej wyznacza się transmitancję dyskretną G(z) = Z[G(s)]\,.
  • przekształcenie zerowo-biegunowe - w metodzie tej porównuje się dziedzinę "s" oraz dziedzinę "z". Odpowiedź układu ciągłego z biegunem w pewnym punkcie s = s_{0}\, w układzie spróbkowanym z okresem próbkowania T\, reprezentowana jest przez odpowiedź układu dyskretnego z biegunem w punkcie z = e^{s_{0}T}\,. Ta własność może być wykorzystana do przekształcenia zer i biegunów, które aproksymują układ dyskretny.
  • równoważność ekstrapolacji - metoda ta polega na pobieraniu próbek sygnału wejściowego, następnie ekstrapolacji pomiędzy próbkami do postaci aproksymacji sygnału i przesyłaniu tych aproksymacji przez transmitancję układu.

Całkowanie numeryczne[edytuj | edytuj kod]

Całkowanie numeryczne jest zadaniem dość złożonym. Najbardziej elementarne techniki z tego zakresu to reguły o małej złożoności i ustalonym rozmiarze kroku. W metodzie tej daną transmitancję układu ciągłego G(s)\, zastępuje się przez równanie różniczkowe a następnie wyprowadza się równania różnicowe będące aproksymacją równań różniczkowych.

Niech dana będzie transmitancja integratora analogowego:

G(s)= \frac {U(s)}{E(s)}= \frac{1}{s}\,

gdzie E(s)\, oraz U(s)\, są odpowiednio transformatami wejścia i wyjścia integratora. Dla integratora tego można określić równoważne równanie różniczkowe

\frac {du(t)}{dt}= e(t)\,

które można zapisać w postaci całkowej:

u(t)=\int\limits_0^t e(\tau) d\tau\,

Wiele reguł opiera się na właściwej sobie metodzie aproksymacji składnika powiększania pola (pod krzywą funkcji, która w powyższym wzorze podlega całkowaniu). Należą do nich:

  • reguła prostokąta wprzód
  • reguła prostokata wstecz
  • reguła trapezu.

W regule prostokatnej wprzód obszar aproksymuje się przez prostokąt wyznaczany wprzód od chwili kT do chwili kT+T i bierze jako amplitudę prostokąta wartość napotkaną w kT. Szerokość takiego prostokąta wynosi T. Można więc zapisać równanie w pierwszej aproksymacji:

u_{1} (kT + T) = u_{1} (kT)+ Te(kT)\,

gdzie wyrażenie u_{1}(kT)\, reprezentuje obszar pod całkowaną krzywą e(t) w przedziale od t = 0 do t = kT. Po zastosowaniu transformaty Z do powyższej zależności otrzymuje się:

G_{F}(z)= \frac {U_{1}(z)}{E(z)}= \frac{T}{z-1} = \frac{1}{\frac{z-1}{T}}\,.

W regule prostokatnej wstecz obszar aproksymuje się przez prostokąt wyznaczany wstecz od chwili kT do kT-T i bierze jako amplitudę prostokąta wartość napotkaną w kT. Szerokość takiego prostokąta wynosi T. Można więc zapisać równanie w pierwszej aproksymacji:

u_{2} (kT) = u_{2} (kT-T)+ Te(kT)\,

Po zastosowaniu transformaty Z do powyższej zależności otrzymuje się:

H_{B}(z)= \frac {U_{2}(z)}{E(z)}= \frac{zT}{z-1} = \frac{1}{\frac{1}{T}\frac{z-1}{z}}\,

W regule trapezu obszar aproksymuje się przez pole trapezu umieszczonego pod całkowaną krzywą. Równanie aproksymacji ma wówczas postać :

u_{3} (kT+T) = u_{3} (kT)+ \frac {T}{2} [e(kT)+e(kT+1)]\,

Po zastosowaniu transformaty Z do powyższej zależności otrzymuje się:

H_{T}(z)= \frac {U_{3}(z)}{E(z)}= \frac{T}{2}\frac{z+1}{z-1} = \frac{1}{\frac{2}{T}\frac{z-1}{z+1}}\,

Metoda reguły trapezu jest również znana jako metoda Tustina lub pod nazwą transformacji biliniowej (zob. też płaszczyzna w). Metoda projektowania wykorzystująca tę regułę polega na tym, że daną transmitancję ciągłą, G(s)\,, równoważną transmitancja dyskretnej wyznacza się przez podstawienie:

G_{T}(z)=G(s)|_{s=\frac{2}{T}\frac{z-1}{z+1}}\,

Każda z powyższych aproksymacji może być potraktowana jako przekształcenie płaszczyzny s na płaszczyznę z.

Porównując transmitancje operatorowe z trzema aproksymacjami dyskretnymi można zauważyć, że transmitancję dyskretną można uzyskać bezpośrednio z transformaty operatorowej podstawiając za zmienną zespoloną "s" jej aproksymatę.

W przypadku reguły prostokąta wprzód jest to podstawienie  s \leftarrow \frac{z-1}{T}\,

W przypadku reguły prostokąta wstecz jest to podstawienie  s \leftarrow \frac{z-1}{Tz}\,

W przypadku reguły trapezu jest to podstawienie  s \leftarrow \frac{2}{T} \frac{z-1}{z+1}\,.

Szczególnie interesujące jest to, że reguła bilinearna odzworowuje stabilną półpłaszczyznę s dokładnie na stabilny obszar płaszczyzny z, przy tym cała oś j\omega\, płaszczyzny s jest skompresowana na długości obwodu okręgu jednostkowego.

Dyskretyzacja modelu układu liniowego w przestrzeni stanów[edytuj | edytuj kod]

Dyskretyzacja stosowana jest też przy transformacji ciągłych równań różniczkowych do dyskretnych równań różnicowych, odpowiednich dla analizy numerycznej.

Następujący model zmiennych stanu czasu ciągłego

\dot{\mathbf{x}}(t) = \mathbf A \mathbf{x}(t) + \mathbf B \mathbf{u}(t) + \mathbf{w}(t)
\mathbf{y}(t) = \mathbf C \mathbf{x}(t) + \mathbf D \mathbf{u}(t) + \mathbf{v}(t)

gdzie v\, i w\, to źródła ciągłego szumu białego o zerowej średniej z kowariancjami

\mathbf{w}(t) \sim N(0,\mathbf Q)
\mathbf{v}(t) \sim N(0,\mathbf R)

można zdyskretyzować, przyjmując ekstrapolator rzędu zerowego dla wejścia u\, i ciągłe całkowanie dla szumu v\,, do postaci:

\mathbf{x}[k+1] = \mathbf A_d \mathbf{x}[k] + \mathbf B_d \mathbf{u}[k] + \mathbf{w}[k]
\mathbf{y}[k] = \mathbf C_d \mathbf{x}[k] + \mathbf D_d \mathbf{u}[k] +  \mathbf{v}[k]

z kowariancjami

\mathbf{w}[k] \sim N(0,\mathbf Q_d)
\mathbf{v}[k] \sim N(0,\mathbf R_d)

gdzie:

\mathbf A_d = e^{\mathbf A T} = \mathcal{L}^{-1}\{(s\mathbf I - \mathbf A)^{-1}\}_{t=T}
\mathbf B_d = \left( \int_{\tau=0}^{T}e^{\mathbf A \tau}d\tau \right) \mathbf B = \mathbf A^{-1}(\mathbf A_d - I)\mathbf B , jeśli \mathbf A jest nieosobliwa
\mathbf C_d = \mathbf C
\mathbf D_d = \mathbf D
\mathbf Q_d = \int_{\tau=0}^{T} e^{\mathbf A \tau} \mathbf Q e^{\mathbf A^T \tau}  d\tau
\mathbf R_d = \mathbf R

a T\, jest czasem próbkowania.

Zręczne wyliczenie Ad\, i Bd\, w jednym kroku można wykonać korzystając z następującej własności:

\mathbf e^{\mathbf \begin{bmatrix} \mathbf{A} & \mathbf{B} \\
                 \mathbf{0} & \mathbf{0} \end{bmatrix} T} = \begin{bmatrix} \mathbf{M_{11}} & \mathbf{M_{12}} \\
                                                            \mathbf{0} & \mathbf{I} \end{bmatrix}

i wówczas mając:

\mathbf A_d = M_{11}
\mathbf B_d = M_{12}

Dyskretyzacja szumu procesu[edytuj | edytuj kod]

Numeryczna ewaluacja \mathbf{Q}_d jest nieco bardziej złożona z uwagi na całkę eksponenty macierzy. Można ją, jednakże, wyliczyć poprzez skonstruowanie najpierw macierzy a następnie wyliczenie na komputerze jej eksponenty:

 \mathbf{F} = 
\begin{bmatrix} -\mathbf{A} & \mathbf{Q} \\
                 \mathbf{0} & \mathbf{A}^T \end{bmatrix} T
 \mathbf{G} = e^\mathbf{F} =
\begin{bmatrix} \dots & \mathbf{A}_d^{-1}\mathbf{Q}_d \\
           \mathbf{0} & \mathbf{A}_d^T             \end{bmatrix}.

Zdyskretyzowany szum procesu jest wówczas wyliczany poprzez przemnożenie transponowanej dolnej, prawej partycji macierzy G z górną, prawą partycją macierzy G:

\mathbf{Q}_d = (\mathbf{A}_d^T)^T (\mathbf{A}_d^{-1}\mathbf{Q}_d).

Wyprowadzenie[edytuj | edytuj kod]

Rozpoczynając z modelem ciągłym

\mathbf{\dot{x}}(t) = \mathbf A\mathbf x(t) + \mathbf B \mathbf u(t)

wiadomo, że eksponenta macierzy jest następująca:

\frac{d}{dt}e^{\mathbf At} = \mathbf A e^{\mathbf At} = e^{\mathbf At} \mathbf A

i przez wcześniejsze przemnożenie modelu uzyskuje się:

e^{-\mathbf At} \mathbf{\dot{x}}(t) = e^{-\mathbf At} \mathbf A\mathbf x(t) + e^{-\mathbf At} \mathbf B\mathbf u(t)

co zapisać można jako

\frac{d}{dt}(e^{-\mathbf At}\mathbf x(t)) = e^{-\mathbf At} \mathbf B\mathbf u(t)

a następnie całkując:

e^{-\mathbf At}\mathbf x(t) - e^0\mathbf x(0) = \int_0^t e^{-\mathbf A\tau}\mathbf B\mathbf u(\tau) d\tau
\mathbf x(t) = e^{\mathbf At}\mathbf x(0) + \int_0^t e^{\mathbf A(t-\tau)} \mathbf B\mathbf u(\tau) d \tau

co jest rozwiązaniem analitycznym dla modelu ciągłego.

Teraz należy zdyskretyzować powyższe wyrażenie. Można przyjąć, że u\, jest stała podczas każdego kroku czasowego.

\mathbf x[k] \ \stackrel{\mathrm{def}}{=}\  \mathbf x(kT)
\mathbf x[k] = e^{\mathbf AkT}\mathbf x(0) + \int_0^{kT} e^{\mathbf A(kT-\tau)} \mathbf B\mathbf u(\tau) d \tau
\mathbf x[k+1] = e^{\mathbf A(k+1)T}\mathbf x(0) + \int_0^{(k+1)T} e^{\mathbf A((k+1)T-\tau)} \mathbf B\mathbf u(\tau) d \tau
\mathbf x[k+1] = e^{\mathbf AT} \left[  e^{\mathbf AkT}\mathbf x(0) + \int_0^{kT} e^{\mathbf A(kT-\tau)} \mathbf B\mathbf u(\tau) d \tau \right]+ \int_{kT}^{(k+1)T} e^{\mathbf A(kT+T-\tau)} \mathbf B\mathbf u(\tau) d \tau

Wyrażenie w nawiasie można zapisać jako \mathbf x[k] a drugie wyrażenie można uprościć przez podstawienie v = kT + T - \tau. Ponadto można przyjąć, że \mathbf u jest stałe podczas całkowania, co z koleii daje:

\mathbf x[k+1] = e^{\mathbf AT}\mathbf x[k] + \left( \int_0^T e^{\mathbf Av} dv \right) \mathbf B\mathbf u[k]=e^{\mathbf AT}\mathbf x[k] + A^{-1}\left(e^{\mathbf AT}-I \right) \mathbf B\mathbf u[k]

co stanowi dokładne rozwiązanie dyskretyzowanego problemu.

Aproksymacje[edytuj | edytuj kod]

Dokładna dyskretyzacja czasami może być trudna z uwagi na dużą eksponentę macierzy i związane z tym operacje całkowania. Znacznie łatwiej wyliczyć, w oparciu o nią, przybliżony model dyskretny dla małych kroków czasowych e^{\mathbf AT} \approx \mathbf I + \mathbf A T. Przybliżone rozwiązanie przyjmuje wówczas postać:

\mathbf x[k+1] \approx (\mathbf I + \mathbf AT) \mathbf x[k] + (\mathbf I T + \frac{1}{2} \mathbf A T^2 ) \mathbf B  \mathbf u[k]

co można dalej aproksymować jeśli \frac{1}{2} \mathbf A T^2 jest małe; co daje:

\mathbf x[k+1] \approx (\mathbf I + \mathbf AT) \mathbf x[k] + T\mathbf B \mathbf u[k]

Inne możliwe aproksymacje to: e^{\mathbf AT} \approx \left( \mathbf I - \mathbf A T \right)^{-1} i e^{\mathbf AT} \approx \left( \mathbf I +\frac{1}{2}  \mathbf A T \right) \left( \mathbf I - \frac{1}{2} \mathbf A T \right)^{-1}. Każda z nich ma inne własności związane ze stabilnością. Ostatnia znana jest jako transformacja Tustina (transformacja bilinearna) i zachowuje stabilność lub odpowiednio niestabilność układu czasu ciągłego.

Dyskretyzacja własności ciągłych[edytuj | edytuj kod]

Information icon.svg Osobny artykuł: Dyskretyzacja (statystyka).

W statystyce i w uczeniu maszynowym termin dyskretyzacja odnosi się do procesu konwersji ciągłych własności lub zmiennych na zdyskretyzowane lub nominalne własności. Może to być użyteczne przy tworzeniu masowych funkcji prawdopodobieństwa.

Zobacz też[edytuj | edytuj kod]