Zastosowanie informatyki w elektrotechnice Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr V, studia niestacjonarne Rok akademicki 2006/2007 Wykład nr 5 (19.01.2007) dr inż. Jarosław Forenc Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Plan wykładu nr 5 Stan ustalony i nieustalony obwodu elektrycznego Metody analizy stanów nieustalonych układów elektrycznych: metoda klasyczna metoda operatorowa metoda zmiennych stanu Metoda zmiennych stanu 2/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 3/74 Stan ustalony i nieustalony obwodu elektrycznego Stan ustalony: układy elektryczne zazwyczaj pracują w tzw. stanie ustalonym - taki stan pracy występuje w chwili czasu nieskończenie odległej od momentu jego powstania Definicja: „W przypadku układów liniowych w stanie ustalonym, jeśli wymuszenia mają charakter stały, sinusoidalny lub okresowy, to odpowiedzi mają także taki sam charakter” powyższa definicja stanu ustalonego nie jest na ogół prawdziwa w przypadku układów parametrycznych i nieliniowych Komutacja: jeśli w obwodzie w chwili t = t0 (lub t = 0) zachodzą zmiany dotyczące: parametrów źródeł modyfikacji jego struktury wartości elementów obwodu to w obwodzie występuje zjawisko nazywane komutacją komutacja stanowi zaburzenie względem stanu obwodu występującego przed czasem t = t0 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 4/74 Stan ustalony i nieustalony obwodu elektrycznego Stan nieustalony: po komutacji, napięcia i prądy w obwodzie nie osiągają natychmiast wartości ustalonych, ale dopiero po pewnym czasie zjawiska występujące w tym czasie w obwodzie nazywane są stanem nieustalonym obwód znajduje się w stanie nieustalonym przy przejściu od jednego stanu ustalonego do drugiego Warunki początkowe: stan obwodu w chwili, w której następuje komutacja (t = t0 lub t = 0), nazywany jest stanem początkowym, zaś wartości napięć na elementach i prądów płynących przez elementy obwodu - warunkami początkowymi jeśli wszystkie powyższe napięcia i prądy mają wartości równe zeru, to warunki początkowe nazywane są zerowymi, w przeciwnym przypadku mamy niezerowe warunki początkowe Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 5/74 Stan ustalony i nieustalony obwodu elektrycznego Prawa komutacji: występowanie stanu nieustalonego związane jest ze zmianami w czasie energii pola magnetycznego i elektrycznego magazynowanej w elementach L, M i C energia ta nie może zmieniać się w sposób skokowy, gdyż moc chwilowa w obwodzie osiągnęłaby wtedy wartość nieskończoną, co jest fizycznie niemożliwe wynika z tego: zasada ciągłości w chwili komutacji strumienia ψ skojarzonego z cewką, równoważna zasadzie ciągłości prądu elektrycznego płynącego przez cewkę: ψ (0 − ) = ψ (0 + ) (1) zasada ciągłości ładunku elektrycznego kondensatora, równoważna zasadzie ciągłości napięcia na jego zaciskach: q (0 − ) = q (0 + ) iL ( 0 − ) = iL ( 0 + ) uC ( 0 − ) = uC ( 0 + ) powyższe dwie zasady nazywane są prawami komutacji (2) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 6/74 Metody analizy stanów nieustalonych w analizie stanów nieustalonych w obwodach elektrycznych stosowane są: metody numeryczne: - stosowane do analizy układów wysokiego rzędu i/lub układów nieliniowych, - umożliwiają efektywne rozwiązywanie wielu problemów dynamiki, lecz otrzymywane wyniki analizy nie mają postaci jawnych wzorów analitycznych metody analityczne: - stosowane do obwodów liniowych niskich rzędów - pozwalają na otrzymanie wyników analizy w postaci jawnych wzorów, co umożliwia badanie wpływu parametrów obwodu na jego dynamikę przeprowadzenie analizy stanu nieustalonego zazwyczaj wymaga wykonania trzech kroków: określenia równań różniczkowych lub różniczkowo-całkowych opisujących obwód na podstawie praw Kirchhoffa i równań definicyjnych elementów R, L, M i C określenia warunków komutacji rozwiązania otrzymanych równań różniczkowych stosując jedną z poniższych metod: - metodę klasyczną - metody operatorowe - metodę zmiennych stanu Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 7/74 Metoda klasyczna analizy stanów nieustalonych Opis metody: metoda klasyczna analizy stanów nieustalonych polega na rozwiązywaniu równań różniczkowych przy zastosowaniu metod typowo matematycznych znając parametry obwodu można napisać dla niego równania napięciowe, zgodnie z drugim prawem Kichhoffa, oraz równania prądowe, zgodnie z pierwszym prawem Kirchhoffa otrzymuje się w ten sposób układ równań różniczkowych lub różniczkowocałkowych - w ogólnym przypadku jest to niejednorodne równanie różniczkowe liniowe n-tego rzędu o stałych współczynnikach: d n x(t ) d n −1 x(t ) dx(t ) + a + L + a + a0 x(t ) = f (t ) 1 n −1 n n −1 dt dt dt gdzie: - współczynniki an-1,...,a1,a0 zawierają parametry obwodu R, L, C i M - x(t) jest niewiadomą funkcją (odpowiedzią układu) określającą najczęściej wybrany prąd lub napięcie - f(t) jest wymuszeniem będącym najczęściej źródłem napięcia lub prądu (3) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 8/74 Metoda klasyczna analizy stanów nieustalonych Opis metody: jeśli dla równania (3) określony jest warunek początkowy: x0 = x(t 0 ), t 0 ∈ 0, ∞ ) (4) to równanie to ma zawsze jednoznaczne rozwiązanie na podstawie teorii równań różniczkowych liniowych rozwiązanie ogólne równania (3) można przedstawić w postaci sumy algebraicznej dwóch składowych: x(t ) = x p (t ) + xu (t ) (5) gdzie: xp(t) - całka ogólna równania jednorodnego nazywana składową przejściową lub swobodną (opisuje stan nieustalony obwodu), xu(t) - całka szczególna równania (3) nazywana składową wymuszoną lub ustaloną (opisuje stan ustalony obwodu) składową przejściową określa się rozwiązując równanie jednorodne: d n x p (t ) dt n + an −1 d n −1 x p (t ) dt n −1 + L + a1 dx p (t ) dt + a0 x p (t ) = 0 całka szczególna xu(t) wyznaczana jest poprzez rozwiązanie obwodu w stanie ustalonym (6) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 9/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RL): szeregowy obwód RL przy wymuszeniu stałym zakładamy zerowe warunki początkowe: t=0 W i (0) = iL (0) = 0 w chwili t = 0 zamykamy wyłącznik W z II prawa Kirchhoffa: uR (t ) + uL (t ) = E R i(t) uR(t) E Ri (t ) + L di (t ) =E dt u L (t ) = L wartość prądu: i = iu + i p w stanie ustalonym L stanowi zwarcie: iu = składową przejściową otrzymujemy rozwiązując równanie jednorodne: Ri p + L di p dt E R =0 L uL(t) di (t ) dt Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 10/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RL): rozwiązanie równania jednorodnego ma postać: gdzie: i p = A1e s1t A1 - stała całkowania s1 - pierwiastek równania charakterystycznego równanie charakterystyczne: Ls1 + R = 0 s1 = − stąd po dokonaniu odpowiednich podstawień otrzymujemy: i = iu + i p R L R − t E i = + A1e L R w celu wyznaczenia stałej A1 korzystamy z warunku początkowego i praw komutacji dla obwodu z indukcyjnością w chwili t = 0- prąd i = 0, ponieważ i(0-) = i(0+), to dla t = 0+ powyższe równanie ma postać: R − ⋅0 E 0 = + A1e L R 0= E + A1 R A1 = − E R Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 11/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RL): prąd w obwodzie: R R − t⎞ E E −Lt E ⎛ i = − e = ⎜⎜1 − e L ⎟⎟ R R R⎝ ⎠ napięcie na rezystancji R: R − t⎞ ⎛ u R = R ⋅ i = E ⎜⎜1 − e L ⎟⎟ ⎝ ⎠ napięcie na indukcyjności L: stała czasowa: R R − t ⎞⎞ − t di d ⎛⎜ E ⎛ ⎜1 − e L ⎟ ⎟ = Ee L uL = L = L ⎟⎟ dt dt ⎜⎝ R ⎜⎝ ⎠⎠ τ= L R Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 12/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RLC): szeregowy obwód RLC przy wymuszeniu e(t) = E zakładamy zerowe warunki początkowe: i (0) = 0, uC (0) = 0 w chwili t = 0 zamykamy wyłącznik W z II prawa Kirchhoffa: u R (t ) + u L (t ) + uC (t ) = e(t ) duC (t ) = i (t ) dt u L (t ) = L di (t ) dt po uwzględnieniu zależności określających prąd kondensatora i napięcie cewki: du (t ) u R (t ) = Ri (t ) = RC C dt iC (t ) = C di(t ) d ⎛ duC (t ) ⎞ d 2uC (t ) u L (t ) = L = LC ⎜ ⎟ = LC dt dt ⎝ dt ⎠ dt 2 otrzymujemy równanie różniczkowe liniowe, niejednorodne, drugiego rzędu o stałych współczynnikach: 2 LC duC (t ) d uC (t ) + + uC (t ) = e(t ) = E RC 2 dt dt Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 13/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RLC): d 2uC R duC 1 E + + = u C dt 2 L dt LC LC dzielimy równanie obustronnie przez LC: napięcie na kondensatorze wynosi: uC = uCu + uCp składowa ustalona: uCu = E składowa przejściowa jest całką ogólną równania jednorodnego drugiego rzędu: d 2uCp dt 2 + R duCp 1 + uCp = 0 L dt LC równaniu temu odpowiada równanie charakterystyczne drugiego stopnia: s2 + R 1 s+ =0 L LC pierwiastki równania: 2 s1, 2 R 1 ⎛ R ⎞ =− ± ⎜ ⎟ − = −α ± β 2L ⎝ 2 L ⎠ LC R gdzie: α = 2L 2 1 1 ⎛ R ⎞ β= ⎜ ⎟ − = α2 − LC ⎝ 2 L ⎠ LC Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 14/74 Metoda klasyczna analizy stanów nieustalonych Przykład (szeregowy obwód RLC): rozwiązanie równania oraz typ zjawisk zachodzących w obwodzie zależny jest od wartości parametrów R, L i C: a) b) c) R>2 R=2 R<2 L C - ładowanie aperiodyczne (nieokresowe) kondensatora L C - ładowanie aperiodyczne krytyczne (nieokresowe krytyczne) L C - ładowanie oscylacyjne tłumione (sinusoidalne tłumione) (β jest rzeczywiste, obydwa pierwiastki są rzeczywiste, ujemne) (β = 0, oba pierwiastki są sobie równe: s1 = s2 = -α) (β jest liczbą urojoną, β = jω, s1 = -α + jω, s2 = -α - jω) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 15/74 Metoda klasyczna analizy stanów nieustalonych Zalety metody klasycznej: otrzymane rozwiązanie ma postać wzoru analitycznego rozkład otrzymanego rozwiązania na składową ustaloną (wymuszoną) i przejściową (swobodną) umożliwia interpretację fizyczną zjawisk w stanie nieustalonym Wady metody klasycznej: stosowana jest do układów liniowych niskich rzędów (np. obwody RL, RC, RLC składające się z jednej gałęzi), gdyż rozwiązanie układów wyższych rzędów przy jej zastosowaniu jest dość trudne w przypadku układów nieliniowych umożliwia otrzymanie rozwiązania analitycznego tylko w nielicznych przypadkach Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 16/74 Metoda operatorowa analizy stanów nieustalonych Opis metody: metoda operatorowa analizy stanów nieustalonych polega na algebraizacji równań różniczkowo-całkowych opisujących układ za pomocą przekształcenia Laplace’a można wyróżnić dwa algorytmy analizy stanów nieustalonych w obwodach elektrycznych metodą operatorową (rysunek obok) Algorytm 1 Algorytm 2 Schemat obwodu, wartości elementów, parametry źródeł, warunki początkowe Schemat obwodu, wartości elementów, parametry źródeł, warunki początkowe Określenie równań różniczkowych obwodu w oparciu o prawa obwodów Schemat obwodu i jego równania w dziedzinie transformat Przekształcenie Laplace’a równań różniczkowych Rozwiązanie równań w dziedzinie transformat Rozwiązanie równań operatorowych obwodu Odwrotna transformacja Laplace’a - obliczenie przebiegów czasowych Odwrotna transformacja Laplace’a - obliczenie przebiegów czasowych Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 17/74 Metoda operatorowa analizy stanów nieustalonych Opis metody: przedstawiając schemat obwodu w dziedzinie transformat stosuje się modele operatorowe elementów obwodu: opis rezystora w dziedzinie czasu i dziedzinie transformat jest taki sam w przypadku elementów L i C, mających niezerowe warunki początkowe, ich modele operatorowe uwzględniają te warunki w postaci dodatkowych źródeł napięciowych lub prądowych dla cewek sprzężonych magnetycznie w zastępczym schemacie operatorowym pojawiają się źródła sterowane w analizie stanów nieustalonych metodą operatorową słuszne są wszystkie twierdzenia dotyczące analizy obwodów metodą symboliczną: zasada połączenia szeregowego i równoległego elementów obwodu przekształcenia gwiazda-trójkąt i trójkąt-gwiazda zasada superpozycji metoda prądów oczkowych i metoda potencjałów węzłowych twierdzenia Thevenina i twierdzenie Nortona Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 18/74 Metoda operatorowa analizy stanów nieustalonych Opis metody: oryginały funkcji operatorowych można wyznaczyć kilkoma sposobami: używając tablic transformat i ich oryginałów: metodą residuów: metoda stosowana dla prostych przykładów, w których transformaty przedstawiane są w postaci występującej w tablicy transformat i ich oryginałów, stosowana w przypadkach, gdy transformata ma postać ułamka (funkcji wymiernej), którego licznik i mianownik są wielomianami zmiennej zespolonej s, na podstawie wzorów Heaviside’a: metoda stosowana, gdy funkcja operatorowa ma bieguny jednokrotne i można ją rozłożyć na ułamki proste Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 19/74 Metoda operatorowa analizy stanów nieustalonych Zalety metody operatorowej: rozwiązanie równań algebraicznych jest pojęciowo prostsze i szybciej prowadzi do otrzymania wyniku Wady metody operatorowej: stosowana tylko do układów liniowych, zawierających niewielką liczbę równań nie może być stosowana do układów nieliniowych problemem może być wyznaczenie transformat odwrotnych, gdy opis wymuszeń określających ich postać jest dowolny Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 20/74 Metoda zmiennych stanu Opis metody: metoda zmiennych stanu (nazywana także metodą równań stanu lub metodą przestrzeni stanów) ogólnie polega na: 1. Formułowaniu równań różniczkowych, tzw. równań stanu, będących modelem matematycznym badanego układu 2. Rozwiązaniu równań stanu: metodami algebry liniowej dla układów liniowych metodami numerycznymi dla układów liniowych i nieliniowych 3. Opcjonalnym określeniu wniosków jakościowych dotyczących otrzymanych rozwiązań równań stanu metoda zmiennych stanu została pierwotnie sformalizowana w ramach teorii sterowania, ale od końca lat 50-tych jest powszechnie stosowana w teorii obwodów elektrycznych, szczególnie w analizie układów nieliniowych Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 21/74 Metoda zmiennych stanu Stan układu: stanem układu (procesu) nazywamy zbiór liniowo niezależnych wielkości x1,x2,...,xn, określających w pełni skutki przeszłych oddziaływań na układ, który jest wystarczający do wyznaczenia przebiegów chwilowych dowolnych wielkości w tym układzie dla t > t0, gdy znane są wymuszenia i parametry tego układu wielkości wchodzące w skład zbioru x1,x2,...,xn nazywane są zmiennymi stanu lub współrzędnymi stanu wektor będący zbiorem tych zmiennych nazywany jest wektorem stanu zbiór wszystkich możliwych wartości wektora stanu x(t) tworzy przestrzeń stanów za zmienne stanu można wybrać różne wielkości w układzie: w liniowych obwodach elektrycznych najczęściej za zmienne stanu przyjmuje się napięcia na kondensatorach i prądy w cewkach w nieliniowych obwodach elektrycznych za zamienne stanu wygodnie jest przyjąć ładunki na kondensatorach i strumienie skojarzone cewek Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 22/74 Metoda zmiennych stanu Inna definicja stanu układu: stanem układu nazywany jest zbiór funkcji x1(t),x2(t),...,xn(t) pozwalających określić dynamikę układu dla czasu t ∈ <0,∞), gdzie t0 jest to umownie przyjęty czas początkowy przy takiej definicji wektor stanu będzie wektorem x(t) złożonym z funkcji x1(t),x2(t),...,xn(t) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 23/74 Metoda zmiennych stanu Model zmiennych stanu - układy liniowe: modelem opartym na zmiennych stanu nazywamy model opisany następującymi równaniami różniczkowymi: dx = Ax(t ) + Bu (t ) dt gdzie: gdzie: gdzie: gdzie: (7) x(t) - wektor stanu, u(t) - wektor wymuszeń, A - macierz stanu (obwodu, układu) o wymiarze n × n (n - liczba zmiennych stanu), B - macierz wymuszeń o wymiarze n × m (m - liczba wymuszeń) równanie (7) nazywane jest równaniem stanu rozwiązanie powyższego równania wymaga znajomości wektora stanu w chwili początkowej t0 (znajomości warunków początkowych): x(t0 ) = x 0 (8) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 24/74 Metoda zmiennych stanu Budowa modelu zmiennych stanu układu liniowego: ogólna procedura konstrukcji modelu zmiennych stanu ma następującą postać: Krok 1: Wypisanie równań wynikających z wewnętrznej struktury obiektu i praw fizycznych jego funkcjonowania sprecyzowanie założeń upraszczających prawa fizyki: podstawowe prawa mechaniki, prawa obwodów elektrycznych, równania bilansu masy i energii Krok 2: Wybranie wielkości odgrywających rolę zmiennych stanu wybrane wielkości muszą być powiązane ze sobą zależnością różniczkową wybór ten nie jest jednoznaczny Krok 3: Uporządkowanie otrzymanych równań w celu wyróżnienia elementów opisanych w modelu zmiennych stanu proste przekształcenia algebraiczne Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 25/74 Metoda zmiennych stanu Przykład (szeregowy obwód RLC): Krok 1: z II prawa Kirchhoffa, równanie oczka: u R (t ) + u L (t ) + uC (t ) = e(t ) di (t ) + uC (t ) = e(t ) dt duC (t ) prąd płynący w oczku: i (t ) = C dt Krok 2: Ri (t ) + L zmiennymi stanu analizowanego układu powinny być wielkości fizyczne jednoznacznie opisujące układ i powiązane ze sobą zależnością różniczkową za zmienne stanu przyjmuje się prąd w oczku oraz napięcie na kondensatorze x1 (t ) = i (t ), x2 (t ) = uC (t ) znajomość zmiennych stanu pozwala obliczyć wszystkie pozostałe napięcia w obwodzie Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 26/74 Metoda zmiennych stanu Przykład (szeregowy obwód RLC): Krok 3: porządkujemy równania tak, aby po lewej stronie znaku równości mieć tylko pochodne wielkości, które zostały wybrane jako zmienne stanu: di (t ) R 1 1 = − i (t ) − uC (t ) + e(t ) dt L L L duC (t ) 1 = i (t ) dt C ostateczna postać równań stanu: ⎡ R ⎡ x&1 ⎤ ⎢− L ⎢ x& ⎥ = ⎢ 1 ⎣ 2⎦ ⎢ ⎣ C 1⎤ ⎡1⎤ − ⎥ ⎡x ⎤ ⎢ ⎥ L ⋅ 1 + L ⋅ e(t ) ⎥ ⎢ ⎥ ⎢ ⎥ 0 ⎥ ⎣ x2 ⎦ ⎢ 0 ⎥ ⎣ ⎦ ⎦ dx1 (t ) R 1 1 = − x1 (t ) − x2 (t ) + e(t ) dt L L L dx2 (t ) 1 = x1 (t ) dt C x& (t ) = Ax(t ) + Bu (t ) ⎡ R ⎢− L A=⎢ 1 ⎢ ⎣ C 1⎤ − ⎥ L ⎥ 0 ⎥ ⎦ ⎡1⎤ ⎢ ⎥ B = ⎢L⎥ ⎢0⎥ ⎣ ⎦ ⎡x ⎤ x(t ) = ⎢ 1 ⎥ ⎣ x2 ⎦ u (t ) = e(t ) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 27/74 Metoda zmiennych stanu Równanie wyjścia modelu zmiennych stanu: równanie stanu opisuje ewolucję zmiennych stanu układu dynamicznego, natomiast nie daje żadnych informacji na temat sygnałów wydostających się na zewnątrz modelu do opisania sygnałów wyjściowych modelu zmiennych stanu służy dodatkowe równanie, które nazywa się równaniem wyjścia: y (t ) = Cx(t ) + Du (t ) gdzie: y(t) - wektor wyjść układu, gdzie: C - macierz wyjścia (odpowiedzi) o wymiarze p × n (p - liczba wyjść), gdzie: D - macierz przenoszenia (transmisyjna) układu o wymiarze p × m budowa równania wyjścia modelu zmiennych stanu polega na swobodnym wyborze macierzy C oraz macierzy D pod warunkiem, że fizyczna struktura obiektu nie wprowadza ograniczeń w tworzonych modelach zakłada się, że D = 0, co oznacza, że wyjście modelu nie oddziałuje bezpośrednio na wyjście (9) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 28/74 Metoda zmiennych stanu Przykład (obwód RLC): R i jako zmienne wyjściowe przyjmujemy prądy w poszczególnych gałęziach układu: i, iL, iC1, iC2 iC2 iC1 e C1 uC1 na podstawie pierwszego i drugiego prawa Kirchhoffa możemy zapisać: i = C1 duC1 dt + iL e = Ri + uC1 C2 iL L duC 2 dt = iL + j uC2 uC1 = L jako zmienne stanu wybieramy prąd iL oraz napięcia uC1, uC2 po przekształceniach otrzymujemy równanie stanu i równanie wyjścia: 1 L 1 − RC1 0 ⎡ 1⎤ 0 − ⎥ L ⎥ ⎡ i ⎤ ⎢⎢ L ⎢ ⎥ ⎢ 1 ⎥ 0 ⋅ ⎢ uC1 ⎥ + ⎢ RC1 ⎥ ⎥ ⎢⎣uC 2 ⎥⎦ ⎢ ⎢ 0 0 ⎥ ⎢⎣ ⎥⎦ ⎤ 0⎥ ⎥ ⎡e ⎤ 0 ⎥⋅⎢ ⎥ ⎥ ⎣ j⎦ 1⎥ ⎥ C2 ⎥⎦ 1 ⎡ ⎡i ⎤ ⎢0 − R ⎢i ⎥ ⎢ ⎢ C1 ⎥ = ⎢− 1 − 1 ⎢ iL ⎥ ⎢ R 0 ⎢ ⎥ ⎢1 ⎣⎢iC 2 ⎦⎥ ⎢ 1 0 ⎣ j diL + uC 2 dt ⎡ diL ⎤ ⎡ ⎢ dt ⎥ ⎢ 0 ⎢ du ⎥ ⎢ ⎢ C1 ⎥ = ⎢− 1 ⎢ dt ⎥ ⎢ C1 ⎢ duC 2 ⎥ ⎢ 1 ⎢ ⎥ ⎢ ⎣ dt ⎦ ⎢⎣ C2 C2 ⎤ ⎡1 0⎥ ⎢R ⎥ ⎡⎢ iL ⎤⎥ ⎢ 1 0⎥ ⋅ ⎢uC ⎥ + ⎢ ⎥ ⎢ 1 ⎥ ⎢R 0⎥ ⎣uC 2 ⎦ ⎢ 0 ⎢0 0⎥⎦ ⎣ ⎤ 0⎥ ⎥ ⎡e ⎤ 0⎥ ⋅ ⎢ ⎥ ⎥ ⎣ j⎦ 0⎥ 1⎥⎦ Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 29/74 Metoda zmiennych stanu Metoda zmiennych stanu dla układów nieliniowych: nie została wymyślona żadna uniwersalna metoda analizy wszystkich nieliniowych układów dynamicznych analiza układów nieliniowych jest bardzo trudna zapis równania stanu dla układu nieliniowego: dx = f (x(t ), u (t ), t ) dt (10) zapis równania wyjścia dla układu nieliniowego: y (t ) = g ( x(t ), u (t ), t ) (11) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Metoda zmiennych stanu Metoda zmiennych stanu w badaniach innych zjawisk: równaniami różniczkowymi (stanu) może być opisywana nie tylko dynamika układów (obwodów) elektrycznych, ale także: mechanicznych hydraulicznych pneumatycznych biologicznych ekonomicznych 30/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 31/74 Metoda zmiennych stanu Układ mechaniczny: układ mechaniczny składający się z dwóch ciał o masach odpowiednio m1 i m2 i dwóch sprężyn o współczynnikach sprężystości k1 i k2 na ciało o masie m2 działa siła zewnętrzna f(t) opory tarcia ciał są proporcjonalne do prędkości, przy czym r1 i r2 są współczynnikami tarcia odpowiednio ciała o masie m1 i m2 źródło: Kaczorek T., Dzieliński A., Dąbrowski W., Łopatka R.: „Podstawy Teorii Sterowania”. WNT, Warszawa, 2005. Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 32/74 Metoda zmiennych stanu Układ mechaniczny: współczynnik sprężystości k: k= F x gdzie: k - współczynnik sprężystości [N/m] gdzie: F - siła [N], x - przesunięcie (odkształcenie) [m] współczynnik tarcia r: r= T N gdzie: r - współczynnik tarcia (wielkość niemianowana), T - siła tarcia posuwistego [N], gdzie: N - siła dociskająca trące powierzchnie [N] oznaczmy zmienne stanu: x1 x2 x3 x4 - współrzędna określająca położenie(*) ciała o masie m1 prędkość ciała o masie m1 (x2 = x1) współrzędna określająca położenie(*) ciała o masie m2 prędkość ciała o masie m2 (x4 = x3) . . (*) - przemieszczenie od położenia równowagi Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 33/74 Metoda zmiennych stanu Układ mechaniczny: biorąc pod uwagę siły działające na poszczególne ciała na podstawie drugiego prawa Newtona możemy zapisać równania: m1 x& 2 + r1 x2 + k1 x1 + k 2 ( x1 − x3 ) = 0 m2 x& 4 + r2 x4 + k 2 ( x3 − x1 ) = f (t ) po prostych przekształceniach otrzymujemy układ 4 równań: x&1 = x2 x& 2 = − k r k1 + k 2 x1 − 1 x2 + 2 x3 m1 m1 m1 x&3 = x4 k k r 1 x& 4 = 2 x1 − 2 x3 − 2 x4 + f (t ) m2 m2 m2 m2 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 34/74 Metoda zmiennych stanu Układ mechaniczny: postać macierzowa równania stanu: x& (t ) = Ax(t ) + Bu (t ) ⎡ 0 ⎡ x&1 ⎤ ⎢ k1 + k 2 ⎢ x& ⎥ ⎢− m1 ⎢ 2⎥ = ⎢ ⎢ x&3 ⎥ ⎢ 0 ⎢ ⎥ ⎢ k2 ⎣ x&4 ⎦ ⎢ m 2 ⎣ 1 r − 1 m1 0 0 0 k2 m1 0 k − 2 m2 0 ⎤ ⎡ 0 ⎤ ⎥ ⎡ x1 ⎤ ⎢ ⎥ 0 ⎥ ⎢ ⎥ 0 ⎥ x ⎢ 2 ⋅ f (t ) ⎥⋅⎢ ⎥ + 1 ⎥ ⎢ x3 ⎥ ⎢ 0 ⎥ ⎢ 1 ⎥ r − 2 ⎥ ⎢⎣ x4 ⎥⎦ ⎢ ⎥ ⎣ m2 ⎦ m2 ⎥⎦ gdzie: ⎡ 0 ⎢ k1 + k 2 ⎢− m 1 A=⎢ 0 ⎢ ⎢ k2 ⎢⎣ m2 1 r − 1 m1 0 0 0 k2 m1 0 k − 2 m2 0 ⎤ ⎥ 0 ⎥ ⎥ 1 ⎥ r − 2 ⎥ m2 ⎥⎦ ⎡ 0 ⎤ ⎢ 0 ⎥ ⎢ ⎥ B=⎢ 0 ⎥ ⎢ 1 ⎥ ⎢m ⎥ ⎣ 2⎦ Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 35/74 Metoda zmiennych stanu Układ mechaniczny: postać macierzowa równania wyjścia: y (t ) = Cx(t ) + Du (t ) ⎡ x1 ⎤ ⎢ ⎥ ⎡1 0 0 0 ⎤ ⎢ x 2 ⎥ y=⎢ ⎥ ⋅ ⎢x ⎥ 0 0 1 0 ⎣ ⎦ 3 ⎢ ⎥ ⎣ x4 ⎦ gdzie: ⎡1 0 0 0 ⎤ C=⎢ ⎥ ⎣0 0 1 0 ⎦ D=0 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 36/74 Metoda zmiennych stanu Zalety metody zmiennych stanu: możliwość zastosowania do szerokiej klasy układów, a więc zarówno obwodów liniowych, jak i nieliniowych oraz niestacjonarnych; w odniesieniu do układów nieliniowych jest w zasadzie jedyną możliwą do stosowania w sposób efektywny względnie prosta algorytmizacja metod formułowania i rozwiązywania równań stanu układów o dużej liczbie elementów dynamicznych (L, M, C) możliwość zastosowania technik komputerowych do analizy dużych układów elektrycznych łatwość oprogramowania, mała złożoność obliczeniowa i duża dokładność algorytmów analizy bardzo duża liczba metod i algorytmów numerycznych rozwiązywania równań stanu możliwość jednoczesnego wyznaczania zmienności w czasie wielkości będących zmiennymi stanu Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Metoda zmiennych stanu Wady metody zmiennych stanu: niejednoznaczność opisu za pomocą równań stanu trudności z formułowaniem równań stanu w przypadku niektórych układów nieliniowych 37/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 38/74 Metoda zmiennych stanu Metoda rozwiązywania równań stanu: metody numeryczne: (dzisiaj !!!) ponieważ równanie stanu jest to układ równań różniczkowych zwyczajnych pierwszego rzędu, więc metody te są to metody rozwiązywania tzw. zagadnień początkowych równań różniczkowych zwyczajnych metody numeryczne mogą być stosowane do rozwiązywania liniowych i nieliniowych równań stanu dowolnego rzędu metody algebry liniowej: (następny wykład !!!) mogą być stosowane do układów liniowych niskich rzędów w przypadku ogólnym rozwiązanie równania: x& (t ) = Ax(t ) + Bu (t ) ma postać: x(t ) = e A ( t −t0 ) (12) t x 0 + ∫ e A ( t −τ ) Bu (τ )dτ 0 podstawowym problemem jest w tym przypadku obliczenia macierzy eAt do obliczenia macierzy eAt stosowane jest m.in. rozwinięcie w szereg nieskończony, metoda przekształcenia Laplace’a, wzór interpolacyjny Sylvestera, rozwinięcie w szereg skończony, metoda wektorów własnych (13) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 39/74 Metody numeryczne rozwiązywania równań stanu Wstęp: Metody numeryczne rozwiązywania równań stanu są to metody rozwiązywania układów równań różniczkowych zwyczajnych (ang. ODEs - Ordinary Differential Equations) o postaci: x&1 = f1 ( x1 , x2 , K , xN , t ) x&2 = f 2 ( x1 , x2 , K , xN , t ) L x& N = f N ( x1 , x2 , K , xN , t ) (14) z zadanym warunkiem początkowym w punkcie t0: x1 (t0 ) = x10 , x2 (t0 ) = x20 , K, xN (t0 ) = xN 0 przedstawiając metody numeryczne ograniczymy się tylko do jednego równania, gdyż upraszcza to znacznie zapis i jest powszechnie stosowaną praktyką w literaturze (15) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 40/74 Metody numeryczne rozwiązywania równań stanu Wstęp: rozwiązywane jest zatem równanie: dx = f ( x, t ), a ≤ t ≤ b, x(a) = x0 dt (16) gdzie x0 jest znanym warunkiem początkowym w punkcie a = t0 zakładając, że: funkcja f(x,t) jest określona i ciągła w obszarze a ≤ t ≤ b, -∞ < x < ∞, gdzie a i b są skończone istnieje stała L > 0 taka, że dla każdego t ∈ <a,b> i dowolnych liczb x1 i x2 zachodzi nierówność (warunek Lipschitza): f ( x1 , t ) − f ( x2 , t ) ≤ L x1 − x2 to można udowodnić, że w przedziale <a,b> istnieje dokładnie jedna funkcja ciągła różniczkowalna x(t) spełniająca równanie (16) z danym warunkiem początkowym (17) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 41/74 Metody numeryczne rozwiązywania równań stanu Wstęp: numeryczne rozwiązanie równania (16) przy zadanym warunku początkowym nazywane jest także numerycznym rozwiązaniem zagadnienia początkowego (ang. IVP - Initial Value Problem) lub numerycznym całkowaniem zagadnienia początkowego ogólna idea numerycznego całkowania zagadnienia początkowego jest następująca: rozpoczynając od znanej wartości x0 w punkcie t0 przechodzimy przez cały przedział <a,b> obliczając wartości przybliżone rozwiązania dokładnego w wybranych punktach, t1,t2,t3,... aż do osiągnięcia końca przedziału obliczenie wartości przybliżonej xn+1 w kolejnym punkcie tn+1 nazywane jest jednym krokiem obliczeń sposób obliczenia wartości przybliżonej xn+1 w kolejnym punkcie tn+1 (wyrażony najczęściej wzorem) w jednym kroku nazywany jest metodą numeryczną Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 42/74 Metody numeryczne rozwiązywania równań stanu Krok całkowania: odległość pomiędzy dwoma kolejnymi punktami tn,tn+1, n = 0,1,2,... nazywana jest długością kroku całkowania i oznaczana przez hn jeśli odległości pomiędzy wszystkimi punktami tn,tn+1 są takie same (h = const.), to mówimy, że obliczenia wykonywane są ze stałą długością kroku całkowania jeśli zaś odległości te zmieniają się, to mamy obliczenia ze zmienną długością kroku całkowania Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 43/74 Metody numeryczne rozwiązywania równań stanu Metody jednokrokowe i metody wielokrokowe: do obliczenia wartości przybliżenia xn+1 w punkcie tn+1 wykorzystywane są przybliżenia obliczone we wcześniejszych punktach jeśli do wykonania jednego kroku obliczeń wykorzystywane jest tylko jedno przybliżenie z poprzedniego kroku, to mówimy, że metoda numeryczna jest metodą jednokrokową (ang. onestep method) oznacza to, że do obliczenia x1 wykorzystujemy warunek początkowy x0, do obliczenia x2 - uprzednio obliczoną wartość x1, do obliczenia x3 - wartość x2, do obliczenia x4 - wartość x3, itd. przykłady: metoda Eulera xn +1 = xn + h ⋅ f ( xn , tn ) (18) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 44/74 Metody numeryczne rozwiązywania równań stanu Metody jednokrokowe i metody wielokrokowe: w przypadku, gdy do wykonania jednego kroku obliczeń wykorzystywanych jest klika przybliżeń z poprzednich kroków, to metodę taką nazywamy metodą wielokrokową (ang. multistep method) jeśli będzie to k przybliżeń, to mówimy, że jest to metoda k-krokowa przykłady: dwukrokowa metoda Adamsa-Bashfortha: xn +1 = xn + h ⋅ [3 f ( xn , tn ) − f ( xn −1 , tn −1 )] / 2 (19) trzykrokowa metoda wstecznego różniczkowania: xn +1 = −3xn / 2 + 3 xn −1 − − xn − 2 / 2 + h ⋅ 3 f ( xn , t n ) (20) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 45/74 Metody numeryczne rozwiązywania równań stanu Metody jawne i niejawne: metody, w których podany wzór pozwala od razu wyznaczyć wartość xn+1 nazywane są metodami jawnymi, ekstrapolacyjnymi lub otwartymi (ang. explicit methods) przykład: trzykrokowa jawna metoda Adamsa-Bashfortha: xn +1 = xn + h ⋅ [23 f ( xn , t n ) − 16 f ( xn −1 , t n −1 ) + 5 f ( xn − 2 , t n − 2 )] / 12 (21) metody, w których obliczenie xn+1 wymaga dodatkowo rozwiązania nieliniowego równania algebraicznego (prawa strona wzoru metody zawiera zmienne występujące po lewej stronie), nazywane są metodami niejawnymi, interpolacyjnymi lub zamkniętymi (ang. implicit methods) przykład: dwukrokowa niejawna metoda Adamsa-Moultona: xn +1 = xn + h ⋅ [5 f ( xn +1 , t n +1 ) + 8 f ( xn , t n ) − f ( xn −1 , t n −1 )] / 12 (22) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 46/74 Metody numeryczne rozwiązywania równań stanu Metody predyktor-korektor: praktyczną realizacją metod wielokrokowych niejawnych są tzw. metody predyktor-korektor (ang. predictor-corrector methods) metody tego typu składają się z dwóch etapów: pierwszy etap obliczeń nazywany jest predykcją, następuje w nim obliczenie przybliżenia początkowego za pomocą metody jawnej drugi etap obliczeń nazywany jest korekcją, następuje w nim wykonanie kilku iteracji za pomocą metody niejawnej (najczęściej jest to od 1 do 3 iteracji) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 47/74 Metody jednokrokowe - metoda Taylora metoda Taylora (metoda rozwinięcia w szereg Taylora) powstaje poprzez rozwinięcie rozwiązania dokładnego x(t) w szereg Taylora w otoczeniu punktu t = tn i obliczeniu rozwinięcia dla t = tn+1 po zastąpieniu rozwiązania dokładnego przez rozwiązanie przybliżone otrzymujemy wzór ogólny metody Taylora: xn+1 h h 2 (1) h p ( p−1) = xn + f ( xn , t n ) + f ( xn , t n ) + K + f ( xn , tn ) 1! 2! p! (23) równanie (23) jest często przedstawiane w następującej postaci: xn +1 = xn + h ⋅ Tp ( xn , tn ; h) (24) h (1) h p −1 ( p −1) f ( xn , tn ) Tp ( xn , tn ; h) = f ( xn , tn ) + f ( xn , tn ) + K + 2! p! (25) gdzie: Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 48/74 Metody jednokrokowe - metoda Taylora ograniczając liczbę członów rozwinięcia do p otrzymujemy metodę p-tego rzędu dla p = 1 jest to jedna z najprostszych metod - metoda Eulera xn +1 = xn + h ⋅ f ( xn , tn ) przyjmując natomiast p = 2 otrzymujemy metodę Taylora rzędu drugiego, tzw. ulepszoną metodę Eulera: h2 xn +1 = xn + h ⋅ f ( xn , t n ) + [ f x ( xn , t n ) f ( xn , t n ) + f t ( xn , t n )] 2 gdzie: fx i ft są pochodnymi cząstkowymi, odpowiednio, po x i t. (26) konieczność obliczania pochodnych cząstkowych jest największą wadą tej metody i z tego względu metoda Taylora nie jest praktycznie stosowana zaletą metody Taylora jest prostota i możliwa do osiągnięcia wysoka dokładność (o ile można obliczyć analitycznie pochodne wysokich rzędów funkcji f) (27) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 49/74 Metody jednokrokowe - metoda Eulera ekstrapolacyjna metoda Eulera (metoda łamanych) jest najprostszą metodą całkowania zagadnień początkowych wykorzystuje ona tylko dwa pierwsze wyrazy rozwinięcia w szereg Taylora: xn +1 = xn + h ⋅ f ( xn , tn ) powyższy wzór można otrzymać także w inny sposób, np. poprzez aproksymację pochodnej w punkcie (tn,xn) za pomocą ilorazu różnicowego (xn+1-xn)/h w praktyce metoda Eulera jest rzadko stosowana, gdyż: jest bardzo wolno zbieżna otrzymanie dobrej dokładności obliczeń wymaga bardzo małego kroku h zwiększenie liczby kroków powoduje narastanie błędów zaokrągleń (28) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 50/74 Metody jednokrokowe - metoda Eulera Przykład 1: dx 2 =t dt warunek początkowy: t0 = 0, równanie: wzór ogólny metody Eulera: xn +1 = xn + h ⋅ f ( xn , tn ) rozwiązanie: x0 = 1 x1 = x0 + h ⋅ f ( x0 , t0 ) = x0 + h ⋅ t02 = 1,0 + 0,1 ⋅ 0,0 2 = 1,0 t1 = t0 + h = 0,0 + 0,1 = 0,1 x2 = x1 + h ⋅ f ( x1 , t1 ) = x1 + h ⋅ t12 = 1,0 + 0,1 ⋅ 0,12 = 1,0001 t 2 = t1 + h = 0,1 + 0,1 = 0,2 x3 = x2 + h ⋅ f ( x2 , t 2 ) = x2 + h ⋅ t 22 = 1,0001 + 0,1 ⋅ 0,2 2 = 1,0005 t3 = t 2 + h = 0,2 + 0,1 = 0,3 L krok: h = 0,1 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 51/74 Metody jednokrokowe - metoda Eulera Przykład 1 - program w języku C (1/2): /* Name: t2_Euler.cpp Copyright: Politechnika Białostocka Author: Jaroslaw Forenc ([email protected]) Date: 26-12-06 10:42 Description: Rozwiązanie równania: dx/dt = t^2, x(0) = 1.0, */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double int FILE h, tp, tk, x0, t, x, x_new, t_print, delta_t; print; *plik = fopen("t2_euler.dat","w+"); h = 1.0e-6; tp = 0.0; tk = 2.0; x0 = 1.0; print = 200; fprintf(plik,"%g /* /* /* /* /* krok całkowania */ początek przedziału obliczeń */ koniec przedziału obliczeń */ warunek początkowy */ liczba zapamiętywanych punktów */ %1.7f\n",tp,x0); Metoda Eulera Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 52/74 Metody jednokrokowe - metoda Eulera Przykład 1 - program w języku C (2/2): delta_t = (tk-tp)/print; t_print = delta_t; t = tp; x = x0; do { x_new = x + h * (t * t); x = x_new; t = t + h; if (fabs(t-t_print)<h*0.4) { fprintf(plik,"%g %1.7f\n",t,x); t_print = t_print + delta_t; } } while (t<=tk); fclose(plik); system("pause"); return 0; } dx 2 =t dt Zastosowanie informatyki w elektrotechnice Wykład nr 5 Metody jednokrokowe - metoda Eulera Przykład (szeregowy obwód RLC): zakładamy zerowe warunki początkowe: i (0) = 0, uC (0) = 0 w chwili t = 0 zamykamy wyłącznik W równania stanu mają postać: 1 1 dx1 (t ) R = − x1 (t ) − x2 (t ) + e(t ) dt L L L dx2 (t ) 1 = x1 (t ) dt C te same równania w zapisie macierzowym: ⎡ R ⎡ x&1 ⎤ ⎢− L ⎢ x& ⎥ = ⎢ 1 ⎣ 2⎦ ⎢ ⎣ C 1⎤ ⎡1⎤ − ⎥ ⎡x ⎤ ⎢ ⎥ L ⋅ 1 + L ⋅ e(t ) ⎥ ⎢ ⎥ ⎢ ⎥ 0 ⎥ ⎣ x2 ⎦ ⎢ 0 ⎥ ⎣ ⎦ ⎦ dr inż. Jarosław Forenc 53/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 54/74 Metody jednokrokowe - metoda Eulera Przykład 2 - program w języku C (1/3): /* Name: RLC_Euler.cpp Copyright: Politechnika Białostocka Author: Jaroslaw Forenc ([email protected]) Date: 26-12-06 10:42 Description: Rozwiązanie układu równań: dx1/dt = -(R/L)x1(t) - (1/L)x2 + (1/L)e(t) dx2/dt = (1/C)x1(t) x1(0) = 0 x2(0) = 0 dla L = 1.0e-3 [H], C = 1.0e-6 [F] --> Rk = 63.24555 [Om] Metoda Eulera */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double double double int FILE h, tp, tk, t, t_print, delta_t; x1_0, x2_0, x1, x2, x1_new, x2_new; R, L, C, E; print; *plik = fopen("rlc_euler.dat","w+"); Zastosowanie informatyki w elektrotechnice Wykład nr 5 Metody jednokrokowe - metoda Eulera Przykład 2 - program w języku C (2/3): h = 1.0e-8; tp = 0.0; tk = 1.0e-3; print = 1000; /* /* /* /* x1_0 = 0; x2_0 = 0; /* warunek początkowy dla x1 */ /* warunek początkowy dla x2 */ R L C E /* /* /* /* = = = = 100.0; 1.0e-3; 1.0e-6; 10; fprintf(plik,"%g %1.7f delta_t = (tk-tp)/print; t_print = delta_t; t = tp; x1 = x1_0; x2 = x2_0; krok całkowania */ początek przedziału obliczeń */ koniec przedziału obliczeń */ liczba zapamiętywanych punktów */ rezystancja [Om] */ indukcyjność [H] */ pojemność [F] */ napięcie źródła [V] */ %1.7f\n",tp,x1_0,x2_0); dr inż. Jarosław Forenc 55/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 56/74 Metody jednokrokowe - metoda Eulera Przykład 2 - program w języku C (3/3): do { x1_new = x1 + h * (-(R/L)*x1 - (1/L)*x2 + (1/L)*E); x2_new = x2 + h * ((1/C)*x1); x1 = x1_new; x2 = x2_new; t = t + h; if (fabs(t-t_print)<h*0.4) { fprintf(plik,"%g %1.7f %1.7f\n",t,x1,x2); t_print = t_print + delta_t; } } while (t<=tk); fclose(plik); system("pause"); return 0; } x&1 (t ) = − x&2 (t ) = R 1 1 x1 (t ) − x2 (t ) + e(t ) L L L 1 x1 (t ) C Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 57/74 Metody jednokrokowe - metody Rungego-Kutty metody Rungego-Kutty powstają z rozwinięcia w szereg Taylora, poprzez zastąpienie Tp(xn,tn;h) z równania (25) inną funkcją Kp(xn,tn;h): dla której nie jest wymagana znajomość pochodnych cząstkowych f(x,t) która zapewni ten sam rząd wartości błędu odcięcia co odpowiedni algorytm Taylora metody Rungego-Kutty określane są wzorem ogólnym: p xn +1 = xn + ∑ wi ki i =1 i −1 k1 = h ⋅ f ( xn , t n ), ki = h ⋅ f ( xn + ∑ aij k j , t n + ci h) dla i > 1 j =1 gdzie: p - rząd metody Rungego-Kutty (p ≥ 1) wi, aij, ci - odpowiednie współczynniki liczbowe powyższe współczynniki liczbowe mogą być określane w różny sposób, toteż istnieją różne metody Rungego-Kutty tego samego rzędu (29) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 58/74 Metody jednokrokowe - metody Rungego-Kutty dla p = 1 otrzymujemy metodę Eulera określoną wzorem: xn +1 = xn + h ⋅ f ( xn , tn ) (30) dla p = 2 otrzymujemy metodę drugiego rzędu (metodę Heuna, zmodyfikowany algorytm trapezów): k1 = h ⋅ f ( xn , tn ) k 2 = h ⋅ f ( xn + k1 , t n + h) (31) xn+1 = xn + (k1 + k 2 ) / 2 dla p = 3 otrzymujemy metodę trzeciego rzędu: k1 = h ⋅ f ( xn , tn ) k2 = h ⋅ f ( xn + k1 / 2, tn + h / 2) k3 = h ⋅ f ( xn − k1 + 2k2 , tn + h) xn +1 = xn + (k1 + 4k2 + k3 ) / 6 (32) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 59/74 Metody jednokrokowe - metody Rungego-Kutty dla p = 4 otrzymujemy najpopularniejszą i najczęściej stosowaną metodę Rungego-Kutty - metodę czwartego rzędu (RK4): k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + k1 / 2, t n + h / 2) k3 = h ⋅ f ( xn + k 2 / 2, t n + h / 2) k 4 = h ⋅ f ( xn + k 3 , t n + h ) xn+1 = xn + (k1 + 2k 2 + 2k3 + k 4 ) / 6 (33) metoda ta zapewnia dobrą dokładność obliczeń przy stosunkowo dużych wartościach kroku h wadą tej metody jest konieczność czterokrotnego obliczania wartości funkcji f(x,t) w czasie każdego kroku, dodatkowo wartości te nie są wykorzystywane w żadnych następnych obliczeniach wzór (33) jest klasycznym wzorem metody Rungego-Kutty czwartego rzędu oprócz niego można spotkać także inne wzory metody tego samego rzędu, np. wzór „trzech ósmych”, Gilla, Ralstona Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 60/74 Metody jednokrokowe - metody Rungego-Kutty k1 = h ⋅ f ( xn , tn ) k2 = h ⋅ f ( xn + k1 / 3, tn + h / 3) wzór „trzech ósmych”: k3 = h ⋅ f ( xn − k1 / 3 + k2 , tn + 2h / 3) (34) k4 = h ⋅ f ( xn + k1 − k2 + k3 , tn + h) xn +1 = xn + (k1 + 3k2 + 3k3 + k 4 ) / 8 k1 = h ⋅ f ( xn , tn ) k2 = h ⋅ f ( xn + k1 / 2, tn + h / 2) wzór Gilla: k3 = h ⋅ f ( xn + ( 2 − 1)k1 / 2 + (1 − 1 / 2 )k2 , tn + h / 2) (35) k4 = h ⋅ f ( xn − (1 / 2 )k2 + (1 + 1 / 2 )k3 , tn + h) xn +1 = xn + (k1 + 2 ⋅ (1 − 1 / 2 )k2 + 2 ⋅ (1 + 1 / 2 )k3 + k4 ) / 6 k1 = h ⋅ f ( xn , t n ) wzór Ralstona: k 2 = h ⋅ f ( xn + 0.4 ⋅ k1 , t n + 0.4 ⋅ h) k3 = h ⋅ f ( xn + 0.29697760 ⋅ k1 + 0.15875966 ⋅ k 2 , t n + 0.45573726 ⋅ h) k 4 = h ⋅ f ( xn + 0.21810038 ⋅ k1 − 3.0509647 ⋅ k 2 + 3.83286432 ⋅ k3 , t n + h) xn +1 = xn + (0.17476028 ⋅ k1 − 0.55148053 ⋅ k 2 + 1.20553547 ⋅ k3 + 0.17118478 ⋅ k 4 ) (36) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 61/74 Metody jednokrokowe - metody Rungego-Kutty Przykład 1 - fragmenty programów w języku C: /* Metoda Eulera */ /* Metoda RK4 */ do { do { x_new = x + h*(t*t); x = x_new; t = t + h; k1 k2 k3 k4 /* ... */ x_new = x + (k1+2*k2+2*k3+k4)/6; } while (t<=tk); = = = = h*(t*t); h*((t+h/2)*(t+h/2)); h*((t+h/2)*(t+h/2)); h*((t+h)*(t+h)); x = x_new; t = t + h; /* ... */ Metoda RK4: k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + k1 / 2, t n + h / 2) k3 = h ⋅ f ( xn + k 2 / 2, t n + h / 2) k 4 = h ⋅ f ( xn + k 3 , t n + h ) xn+1 = xn + (k1 + 2k 2 + 2k3 + k 4 ) / 6 } while (t<=tk); Metoda Eulera: xn +1 = xn + h ⋅ f ( xn , tn ) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 62/74 Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - fragment programu w języku C: do { k11 = h * (-(R/L)*x1 - (1/L)*x2 + (1/L)*E); k12 = h * ((1/C)*x1); k21 = h * (-(R/L)*(x1+k11/2) - (1/L)*(x2+k12/2) + (1/L)*E); k22 = h * ((1/C)*(x1+k11/2)); k31 = h * (-(R/L)*(x1+k21/2) - (1/L)*(x2+k22/2) + (1/L)*E); k32 = h * ((1/C)*(x1+k21/2)); k41 = h * (-(R/L)*(x1+k31) - (1/L)*(x2+k32) + (1/L)*E); k42 = h * ((1/C)*(x1+k31)); x1_new = x1 + (k11 + 2*k21 + 2*k31 + k41)/6; x2_new = x2 + (k12 + 2*k22 + 2*k32 + k42)/6; x1 = x1_new; x2 = x2_new; t = t + h; /* ... */ } while (t<=tk); x&1 (t ) = − x&2 (t ) = R 1 1 x1 (t ) − x2 (t ) + e(t ) L L L 1 x1 (t ) C Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 63/74 Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (1/6): /* Name: RLC_RK4_Uniw.cpp Copyright: Politechnika Białostocka Author: Jaroslaw Forenc ([email protected]) Date: 26-12-06 10:42 Description: Rozwiązanie układu równań: dx1/dt = -(R/L)x1(t) - (1/L)x2 + (1/L)e(t) x1(0) = 0 dx2/dt = (1/C)x1(t) x2(0) = 0 Metoda RK4 (Program uniwersalny) dla L = 1.0e-3 [H], C = 1.0e-6 [F] --> Rk = 63.24555 [Om] #include <stdio.h> #include <stdlib.h> #include <math.h> #define N 2 /* liczba równań */ /* Struktura przechowująca wyniki obliczeń */ typedef struct IterationStruct { double T; /* T - krok czasowy */ double D[N]; /* D – dane */ } ITERATION; /* Parametry ukladu */ double R, L, C, Em; */ Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 64/74 Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (2/6): /* Funkcje wymuszające double e1(double t) { return Em; } */ /* wymuszenie stale */ double e2(double t) /* wymuszenie sinusoidalne */ { return Em*sin(2*3.13*5000*t); } double { if if if if } e3(double t) /* impuls prostokątny */ (t>=0 && t<2.5e-5) return (Em/2.5e-5)*t; (t>=2.5e-5 && t<2.25e-4) return Em; (t>=22.5e-5 && t<25e-5) return (-Em/2.5e-5)*t+10*Em; (t>25e-5) return 0; Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (3/6): /* Określenie warunków początkowych */ void InitialConditions(ITERATION* X0) { X0->T=0.0; X0->D[0]=0.0; X0->D[1]=0.0; } /* Funkcja prawej strony równania */ void Function(ITERATION* DX, ITERATION X, double t) { DX->D[0] = -(R/L)*X.D[0] - (1/L)*X.D[1] + (1/L)*e3(t); DX->D[1] = (1/C)*X.D[0]; } /* Mnożenie macierzy przez liczbę */ void Mul(ITERATION* X, double K, int StatesNumber) { for (int i=0; i<StatesNumber; i++) X->D[i] = X->D[i] * K; } 65/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 66/74 Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (4/6): /* Funkcja realizująca jeden krok metody RK4 - zwraca nową wartość X w punkcie t_old+h */ void RKMethodStep(ITERATION* X, double* OldTime, double H, int StatesNumber) { ITERATION X1, K1, K2, K3, K4; /* zmienne dla metody RK4 */ double Time; /* czas */ int i; Function(&K1,*X,*OldTime); Mul(&K1,H,StatesNumber); Time = *OldTime + H / 2; for (i=0; i<StatesNumber; i++) X1.D[i] = X->D[i] + K1.D[i] / 2; Function(&K2,X1,Time); Mul(&K2,H,StatesNumber); for (i=0; i<StatesNumber; i++) X1.D[i] = X->D[i] + K2.D[i] / 2; Function(&K3,X1,Time); Mul(&K3,H,StatesNumber); Time = *OldTime + H; for (i=0; i<StatesNumber; i++) X1.D[i] = X->D[i] + K3.D[i]; Function(&K4,X1,Time); Mul(&K4,H,StatesNumber); for (i=0; i<StatesNumber; i++) X->D[i] = X->D[i] + (K1.D[i] + 2 * K2.D[i] + 2 * K3.D[i] + K4.D[i]) / 6; *OldTime = X->T = Time; } Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (5/6): int main () { double int ITERATION h, tp, tk, t, t_print, delta_t; print; X; FILE *plik = fopen("rlc_rk4_uniw.dat","w+"); h = 1.0e-8; tp = 0.0; tk = 1.0e-3; print = 1000; /* /* /* /* krok całkowania */ początek przedziału obliczeń */ koniec przedziału obliczeń */ liczba zapamiętywanych punktów */ R = 100.0; L = 1.0e-3; C = 1.0e-6; Em = 10; /* /* /* /* rezystancja [Om] */ indukcyjność [H] */ pojemność [F] */ amplituda źródła napięcia [V] */ delta_t = (tk-tp)/print; t_print = delta_t; t = tp; InitialConditions(&X); 67/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc Metody jednokrokowe - metody Rungego-Kutty Przykład 2 - program w języku C - uniwersalny (5/5): fprintf(plik,"%g",t); for (int i=0; i<N; i++) fprintf(plik," %1.7f",X.D[i]); fprintf(plik,"\n"); do { RKMethodStep(&X,&t,h,N); if (fabs(t-t_print)<h*0.4) { fprintf(plik,"%g",t); for (int i=0; i<N; i++) fprintf(plik," %1.7f",X.D[i]); fprintf(plik,"\n"); t_print = t_print + delta_t; } } while (t<=tk); system("pause"); fclose(plik); return 0; } 68/74 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 69/74 Metody jednokrokowe - metody Rungego-Kutty Zmienny krok całkowania: zastosowanie zmiennego kroku całkowania wymaga sprawdzenia po każdym kroku obliczeniowym, czy dla przyjętego kroku h otrzymane rozwiązanie jest wystarczająco dokładne najczęściej stosowanym sposobem szacowania błędu i rozstrzygania o dokładności obliczeń jest ekstrapolacja nazywana także zasadą Rungego idea tego sposobu polega na wykonaniu obliczeń z krokiem h, a następnie wykonaniu dwukrotnie obliczeń z krokiem h/2 i porównaniu otrzymanych wyników w takim przypadku oszacowanie błędu ma postać: R= gdzie: xn+1,h/2 xn+1,h p (x n +1, h / 2 p − xn +1, h ) 2 −1 - wartość otrzymana podczas dwukrotnych obliczeń z krokiem h/2 - wartość otrzymana podczas obliczeń z krokiem h - rząd metody (dla RK4 Æ p = 4) (37) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 70/74 Metody jednokrokowe - metody Rungego-Kutty Zmienny krok całkowania (metoda RK4): w metodzie RK4 (p = 4) oszacowanie błędu ma postać: R= 1 (xn +1,h / 2 − xn +1,h ) 15 następnie przyjmujemy kryterium błędu względnego: R xmax gdzie: (38) < eps (39) eps - założona tolerancją błędu xmax - największa co do modułu z dotychczas obliczonych wartości rozwiązania jeśli powyższe kryterium jest spełnione, to długość kroku h jest zaakceptowana i jako wartość końcową przyjmuje się: xn +1 = 16 xn +1, h / 2 − xn +1, h 15 (40) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 71/74 Metody jednokrokowe - metody Rungego-Kutty Zmienny krok całkowania (metoda RK4): jeśli stosunek błędu R do xmax jest dużo mniejszy od eps to krok h jest zwiększany jeśli kryterium błędu nie jest spełnione, to następuje zmniejszenie długości kroku całkowania i powtórzenie obliczeń dla nowej, odpowiednio mniejszej, wartości h metoda 1: w najprostszym przypadku przy zwiększaniu kroku, jako nowy krok przyjmuje się 2⋅h zaś przy zmniejszaniu kroku, jako nowy krok przyjmuje się h/2 Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 72/74 Metody jednokrokowe - metody Rungego-Kutty-Fehlberga w 1969 r. Fehlberg opracował sposób szacowania błędu realizowany za pomocą metod włożonych (ang. embedding methods): zaproponował stosowanie metody RK rzędu czwartego, wymagającej obliczania pięciu wartości funkcji, i metody rzędu piątego, w której trzeba oblicza sześć takich wartości współczynniki obu metod zostały tak dobrane, aby występowały w obu metodach i zamiast jedenastu współczynników obliczanych jest tylko sześć: k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + k1 / 4, t n + h / 4) k3 = h ⋅ f ( xn + 3k1 / 32 + 9k 2 / 32, t n + 3h / 8) k 4 = h ⋅ f ( xn + 1932k1 / 2197 − 7200k 2 / 2197 + 7296k3 / 2197, t n + 12h / 13) (41) k5 = h ⋅ f ( xn + 439k1 / 216 − 8k 2 + 3680k3 / 513 − 845k 4 / 4104, t n + h) k 6 = h ⋅ f ( xn − 8k1 / 27 + 2k 2 − 3544k3 / 2565 + 1859k 4 / 4104 − 11k5 / 40, t n + h / 2) otrzymywane są dwa rozwiązania przybliżone - metody RK rzędu czwartego: 1408 2197 1 ⎞ ⎛ 25 4) xn( RK x k k k k5 ⎟ = + + + − ⎜ +1 n 1 3 4 2565 4104 5 ⎠ ⎝ 216 (42) 6656 28561 9 2 ⎞ ⎛ 16 5) = xn + ⎜ xn( RK k1 + k3 + k 4 − k5 + k 6 ⎟ +1 12825 56430 50 55 ⎠ ⎝ 135 (43) i metody RK rzędu piątego: Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 73/74 Metody jednokrokowe - metody Rungego-Kutty-Fehlberga różnica rozwiązań przybliżonych, rzędu piątego i czwartego: 5) 4) R = x (nRK − x (nRK = +1 +1 1 128 2197 1 2 k1 − k3 − k 4 + k5 + k 6 360 4275 75240 50 55 (44) jest błędem rozwiązania przybliżonego rzędu czwartego i może być używana do sterowania krokiem h jako rozwiązanie przybliżone przyjmuje się rozwiązanie rzędu piątego: 6656 28561 9 2 ⎞ ⎛ 16 5) = + + + − + xn( RK x k k k k k6 ⎟ ⎜ +1 n 1 3 4 5 135 12825 56430 50 55 ⎝ ⎠ (45) para metod włożonych pierwszego i drugiego rzędu: k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + k1 / 2, t n + h / 2) k3 = h ⋅ f ( xn + k1 / 256 + 255k 2 / 256, t n + h) R = (−k1 + k3 ) / 512 xn +1 = xn + (k1 + 510k 2 + k3 ) / 512 (46) Zastosowanie informatyki w elektrotechnice Wykład nr 5 dr inż. Jarosław Forenc 74/74 Metody jednokrokowe - metody Rungego-Kutty-Fehlberga para metod włożonych drugiego i trzeciego rzędu: k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + k1 / 4, t n + h / 4) k3 = h ⋅ f ( xn − 189k1 / 800 + 729k 2 / 800, t n + 27 h / 40) k 4 = h ⋅ f ( xn + 214k1 / 891 + k 2 / 33 + 650k3 / 891, t n + h) (47) R = 23k1 / 1782 − k 2 / 33 + 350k3 / 11583 − k 4 / 78 xn +1 = xn + (533k1 + 1600k3 − 27 k 4 ) / 2106 para metod włożonych trzeciego i czwartego rzędu: k1 = h ⋅ f ( xn , t n ) k 2 = h ⋅ f ( xn + 2k1 / 7, t n + 2h / 7) k3 = h ⋅ f ( xn + 77 k1 / 900 + 343k 2 / 900, t n + 7h / 15) k 4 = h ⋅ f ( xn + 805k1 / 1444 − 77175k 2 / 54872 + 97125k3 / 54872, t n + 35h / 38) k5 = h ⋅ f ( xn + 79k1 / 490 + 2175k3 / 3626 + 2166k 4 / 9065, t n + h) R = 4k1 / 735 − 75k3 / 3626 + 5776k 4 / 81585 − k5 / 18 xn +1 = xn + 229k1 / 1470 + 1125k3 / 1813 + 13718k 4 / 81585 + k5 / 18 (48)