lab_6a

Transkrypt

lab_6a
Laboratorium metod numerycznych
Laboratorium 8
Równania różniczkowe – analiza stanów nieustalonych w obwodach elektrycznych
1. Wprowadzenie
W określonej strukturze obwodu elektrycznego napięcia i prądy na poszczególnych elementach obwodu
nie uzyskują natychmiast wartości ustalonych, odpowiadającym danym warunkom pracy. Uzyskanie wartości
ustalonych poprzedzone jest stanem nieustalonym (przejściowym) w którym znajduje się obwód, w czasie
pomiędzy dwoma stanami ustalonymi.
Dynamikę zmian parametrów obwodu w stanie nieustalonym, opisuje się równaniami różniczkowymi.
Określenie funkcji opisujących przebiegi prądów i napięć w obwodzie, sprowadza się do rozwiązania układu
równań różniczkowych.
Analiza prostych układów elektrycznych RL lub RC nie jest zagadnieniem skomplikowanym, stosując
proste przekształcenia, można szybko uzyskać rozwiązanie zadania. Rozwiązanie złożonych układów RL, RC i
RLC może nastręczać trochę kłopotów, oraz wymaga umiejętności rozwiązywania równań różniczkowych
drugiego rzędu. Pomocne w tego typu zadaniach będzie zastosowanie SCILAB'a do rozwiązania równań
różniczkowych.
2. Stany nieustalone
Rozwiązanie każdego zadania ze stanami nieustalonymi w pierwszej kolejności wymaga określenia
warunków początkowych. Określić należy wartości początkowe, szukanych prądów i napięć.
i(t)
t=t0
E
R
L
uR(t)
uL(t)
i(t)
t=t0
E
R
C
uR(t)
uC(t)
i(0)=0 A
uC(0)=0 V
Drugim etapem jest zapisanie równania różniczkowego dla danego obwodu zgodnie z drugim prawem
Kirchhoffa.
d it 
d u C t 
E=R⋅C
u C  t
dt
dt
Następnie zapisujemy równanie różniczkowe w postaci jednorodnej i rozwiązujemy je.
E=R⋅i tL
R⋅i tL
d i t
=0
dt
R⋅C
d u C t
uC  t=0
dt
1
d it
dt
d i t
R
=−
i t⋅d t
L
d u C t
=−u C t
dt
d uC  t
1
=−
u C t ⋅d t
R⋅C
R⋅i t=−L
R⋅C
Całkujemy obie strony równania i przekształcamy równanie, do pożądanej postaci.
d i  t
d u C  t
1
=−∫

t⋅d
t
R⋅C
C
t
ln u C =−
K
R⋅C
∫ i t⋅d t =−∫ RL
∫u
R
ln i=− ⋅tK
L
R
− ⋅t K
L
i=e
−
uC =e
R
− ⋅t
L
i=eK⋅e
t
K
R⋅C
−
u C =e k⋅e
R
− ⋅t
L
i=K1⋅e
t
R⋅C
−
u C =K 1⋅e
t
R⋅C
Ostatnim etapem obliczeń jest wyznaczenie stałej K1, na podstawie warunków granicznych. W
zadaniach jako stany ustalone przyjmuje się wartości prądów i napięć wyznaczone dla t=0 i t=∞.
i0 =0 i∞=
u C 0=0 u C ∞=E
E
R
−
0=K 1⋅e
R
− ⋅0
L
E
E
0=K 1⋅e
 =K 1⋅1
R
R
E
K 1=−
R
0
R⋅C
E=K 1⋅1E
K1 =−E
−
t
u C t =E−E⋅e R⋅C
t
d u C t  E − R⋅C
it =C⋅
= ⋅e
dt
R
R
E E − ⋅t
i t= − ⋅e L
R R
u R t=R∗i t
R
− ⋅t
d i t
u L t=L⋅
=E⋅e L
dt
−
u R  t=R⋅i t=E⋅e
t
R⋅C
100
80
u_C(t)
u_R(t)
i(t)
60
100
40
80
i(t)
u_L(t)
u_R(t)
60
40
20
20
0
0,0
0,5
1,0
0
0,0
0,5
1,0
1,5
2,0
1,5
2,0
2,5
Definicja ukadu równań
różniczkowych
2,5
3. Równania różniczkowe w SCILAB
Rozwiązanie równania różniczkowego w SCILAB'ie realizuje funkcja
ode.
Definicja warunków
brzegowych i wartości
elementów
Wynikiem działania funkcji ode jest macierz zawierająca punkty
stanowiące rozwiązanie równania różniczkowego.
Skrypt obliczający zadanie ze stanów nieustalonych (równania
Rozwiązanie równania
różniczkowego
różniczkowe) składa się z czterech członów, jak pokazano na rysunku obok.
Układ równań różniczkowych definiowany jest jako funkcja Scilab'a
w postaci:
Prezentacja wyników
2
function [pochodna]=nazwa(t,x)
pochodna(1)=f1(x);
pochodna(2)=f2(x);
…
pochodna(n)=fn(x);
endfunction
W drugim bloku definiuje się stałe (R, L, C i E), funkcje niezależne (e(t)) występujące w
równaniach różniczkowych oraz parametry symulacji (warunki początkowe i wektor czasu obliczeń).
W trzecim bloku zdefiniowana jest funkcja rozwiązująca zdefiniowany wcześniej układ równań
różniczkowych:
roz=ode([warunki początkowe dla liczonych sygnałów],
warunek początkowy dla t,
t,
równanie różniczkowe)
gdzie roz jest macierzą zawierającą wyniki rozwiązania układu równań różniczkowych.
Ostatni blok to wizualizacja rozwiązania zadania, realizowana przy użyciu funkcji plot2d.
4. Przykład
Dany jest układ elektryczny pokazany na rysunku. Wyznaczyć przebiegi prądów i napięć w chwili
załączenia układu.
i(t)
t=t0
E
R
C
uR(t)
uC(t)
E=10 V
R=2 Ω
C=0,01 F
W pierwszym etapie trzeba zapisać równanie różniczkowe odpowiadające badanemu układowi.
E=R⋅C
d u C t
uC  t
dt
Następnie należy przekształcić równanie do postaci, w której po lewej stronie będzie różniczka szukanej
funkcji, a po prawej pozostałe elementy równania.
d u C t E−u C t 
=
dt
R⋅C
Na podstawie powyższego równania, można zdefiniować funkcje różniczkową w Scilab'ie.
function pochodna=stany(t,x)
pochodna=(E-x)/(R*C);
endfunction
gdzie x to szukany sygnał uC(t).
Następnie, definiujemy wartości elementów obliczanego obwodu:
E=10;
R=2;
C=0.01;
3
oraz parametry obliczeń:
uC0=0; //wartość początkowa napięcia na kondensatorze
t0=0; //wartość początkowa czasu
t=[0:0.0001:0.04]; //wektor czasu obliczeń
Następnym etapem jest zapisanie funkcji obliczającej funkcję różniczkująca:
roz=ode(uC0,t0,t,stany);
oraz obliczenia pozostałych napięć i prądów i(t) i uR(t):
ur=E-roz;
i=ur/R;
Następnie, generujemy wykresy wyliczonych funkcji:
plot2d(t,[roz' i' ur'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
10
9
8
7
6
5
4
3
2
1
0
0 .0 00
0 .0 05
0 .0 1 0
0 .0 1 5
0 .0 2 0
0 .0 25
0 .0 3 0
0 .0 3 5
0 .0 4 0
u C(t)
i (t)
u R(t)
5. Zadania
I. Zmodyfikować przykładowy skrypt, aby możliwy był wybór generatora zasilającego układ (sygnał
prostokątny, sygnał piłokształtny i sinusoidalny).
II. Dla wymuszenia sinusoidalnego sprawdzić zależność fazy napięcia zasilającego na proces
załączenia badanego obwodu RC (0o, 30o, 45o, 60o, 90o). Wyniki porównania przedstawić w postaci
wykresu.
III. Zaprogramować w Scilab'ie obliczanie stanów nieustalonych dla obwodu RL, przy załączeniu
napięcia stałego. Dane dobrać dowolnie. Wykreślić przebiegi prądu i napięć w modelowanym
układzie.
IV. Zmodyfikować przykładowy skrypt, aby możliwy był wybór generatora zasilającego układ (sygnał
prostokątny, sygnał piłokształtny i sinusoidalny).
V. Dla wymuszenia sinusoidalnego sprawdzić zależność fazy napięcia zasilającego na proces
załączenia badanego obwodu RL (0o, 30o, 45o, 60o, 90o), Wyniki porównania przedstawić w postaci
wykresu.
4