Ćw8 metody jednokrokowe

Politechnika Lubelska

w Lublinie

Laboratorium Metod Numerycznych
Ćwiczenie nr 9
Imię i Nazwisko: Semestr: III

Temat:

Metody jednokrokowe rozwiązywania równań różniczkowych.

Data wyk.:

25.01.2014r.

Cel ćwiczenia:

Celem ćwiczenia jest wykorzystanie programu Scilab do obliczania rozwiązań równań różniczkowych zwyczajnych w stanach nieustalonych obwodów elektrycznych.

Schemat układu:

Wartości przyjęte do wykonania skryptu:

Napięcie: 100

Pojemność kondensatora: 0.0001 F

Indukcyjność cewki: 0.8 H

Początkowe napięcie na kondensatorze uc(0): 15

Początkowy prąd w obwodzie i(0): 0.1

Skrypt SciLab:

clear; //czyszczenie pamieci

clc; //czyszczenie konsoli

lines(0);

E=input("podaj wartosc napiecia: "); //pobranie wartości napięcia

C=input("podaj pojemnosc kondensatora: ");//pobranie wartości pojemności

L=input("podaj indukcyjnosc cewki: ");//pobranie wartości indukcyjnsci

Rk=(2*sqrt(L/C)); // obliczanie rezystancji krytycznej

uc0=input("podaj poczatkoe napiecie na kondensatorze uc(0): "); //pobranie wartosci napiecia poczatkowego

il0=input("podaj poczatkowy prad w obwodzie i(0): "); //pobranie wartosci prądu poczatkowego

wybmet=input(" Wybierz metode.. // wybór metody

1 - METODA KLASYCZNA 2 - METODA EULERA..

3 - ROZWIAZANIE METODA RK4")

select wybmet;

case 1 then

function uc=udokladnie(t)

uc=E+A1*exp(s1*t)+A2*exp(s2*t)

endfunction

function il=idokladnie(t)

il=C*(A1*s1*exp(s1*t)+A2*s2*exp(s2*t))

endfunction

R=Rk*5;

a=R/(2*L);

wn=1/(sqrt(L*C));

s1=-a-sqrt(a*a-wn*wn);

s2=-a+sqrt(a*a-wn*wn);

A1=(il0-uc0*s2+E*s2)/(s1-s2);

A2=(il0-uc0*s1+E*s1)/(s2-s1);

t=linspace(0,-(5/s1)-5/s2,200);

xset("window",0);

plot2d(t, udokladnie(t),3);

plot2d(t, idokladnie(t),4);

xtitle('przebiegi dla przypadku aperiodycznego','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

function w=uakdokladnie(t)

w=E+(A1+(A2*t)).*(exp(-a*t))

endfunction

function z=iakdokladnie(t)

z=-C*(A2-a*A1+A2*t).*exp(-a*t)

endfunction

R=Rk;

a=R/(2*L);

wn=1/(sqrt(L*C));

s=-a;

A1=uc0-E;

A2=il0+a*(uc0-E);

t=linspace(0,6/a,200);

xset("window",1)

plot2d(t, uakdokladnie(t),3);

plot2d(t, iakdokladnie(t),4);

xtitle('przebiegi dla przypadku aperiodycznego krytycznego','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

R=Rk/5;

a=R/(2*L);

wn=1/(sqrt(L*C));

s1=-a-sqrt(a*a-wn*wn);

s2=-a+sqrt(a*a-wn*wn);

A1=(il0-uc0*s2+E*s2)/(s1-s2);

A2=(il0-uc0*s1+E*s1)/(s2-s1);

t=linspace(0,5/a,200);

xset("window",2)

plot2d(t, udokladnie(t),3);

plot2d(t, idokladnie(t),4);

xtitle('przebiegi dla przypadku oscylacyjnego','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=6)

case 2 then

function w=f1(t, y1, y2)

w=y2;

endfunction

function w=f2(t, y1, y2)

w=-y1/(L*C)-(R*y2)/L+E/(L*C);

endfunction

function [t, y1, y2]=Euler(t0, tk, h, uc0, il0)

N=(tk-t0)/h;

t(1)=t0;

y1(1)=uc0;

y2(1)=il0;

for n=1:N

t(n+1)=t(n)+h;

y1(n+1)=y1(n)+h*f1(t(n),y1(n),y2(n));

y2(n+1)=y2(n)+h*f2(t(n),y1(n),y2(n));

end

endfunction

R=Rk;

tau=(2*L)/R;

[eu_t, eu_y1, eu_y2]=Euler(0, 6*tau, tau/2, uc0, il0);

uC=eu_y1;

i=eu_y2*C;

xset("window",0)

plot2d(eu_t, [uC,i],[3,4] );

xtitle('Metoda Eulera przypadek aperiodyczny krytyczny','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

R=Rk*5;

tau=(2*L)/R;

[rk4_t, rk4_y1, rk4_y2]=Euler(0, 6*tau, tau/2, uc0, il0);

uC=eu_y1;

i=eu_y2*C;

xset("window",1)

plot2d(eu_t, [uC,i],[3,4] );

xtitle('Metoda Eulera przypadek aperiodyczny','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

R=Rk/5;

tau=(2*L)/R;

[rk4_t, rk4_y1, rk4_y2]=Euler(0, 6*tau, tau/2, uc0, il0);

uC=eu_y1;

i=eu_y2*C;

xset("window",2)

plot2d(eu_t, [uC,i],[3,4] );

xtitle('Metoda Eulera przypadek oscylacyjny','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=4)

case 3 then

function w=f1(t, y1, y2)

w=y2;

endfunction

function w=f2(t, y1, y2)

w=-y1/(L*C)-(R*y2)/L+E/(L*C);

endfunction

function [t, y1, y2]=RK4(t0, tk, h, uc0, il0)

N=(tk-t0)/h;

t(1)=t0;

y1(1)=uc0;

y2(1)=il0;

for n=1:N

t(n+1)=t(n)+h;

k11=f1(t(n), y1(n), y2(n));

k21=f2(t(n), y1(n), y2(n));

k12=f1(t(n)+ h/2, y1(n)+h/2*k11, y2(n)+h/2*k21);

k22=f2(t(n)+ h/2, y1(n)+h/2*k11, y2(n)+h/2*k21);

k13=f1(t(n)+ h/2, y1(n)+h/2*k12, y2(n)+h/2*k22);

k23=f2(t(n)+ h/2, y1(n)+h/2*k12, y2(n)+h/2*k22);

k14=f1(t(n)+ h, y1(n)+h*k13, y2(n)+h*k23);

k24=f2(t(n)+ h, y1(n)+h*k13, y2(n)+h*k23);

y1(n+1)=y1(n)+h/6*(k11+2*k12+2*k13+k14);

y2(n+1)=y2(n)+h/6*(k21+2*k22+2*k23+k24);

end

endfunction

R=Rk;

tau=(2*L)/R;

[rk4_t, rk4_y1, rk4_y2]=RK4(0, 6*tau, tau/2, uc0, il0);

uC=rk4_y1;

i=rk4_y2*C;

xset("window",0)

plot2d(rk4_t, [uC,i],[3,4] );

xtitle('Metoda RK4 przypadek aperiodyczny krytyczny','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

R=Rk*5;

tau=(2*L)/R;

[rk4_t, rk4_y1, rk4_y2]=RK4(0, 6*tau, tau/2, uc0, il0);

uC=rk4_y1;

i=rk4_y2*C;

xset("window",1)

plot2d(rk4_t, [uC,i],[3,4] );

xtitle('Metoda RK4 przypadek aperiodyczny ','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=2)

R=Rk/5;

tau=(2*L)/R;

[rk4_t, rk4_y1, rk4_y2]=RK4(0, 6*tau, tau/2, uc0, il0);

uC=rk4_y1;

i=rk4_y2*C;

xset("window",2)

plot2d(rk4_t, [uC,i],[3,4] );

xtitle('Metoda RK4 przypadek oscylacyjny','t','uC i',boxed=1)

legends(['uC','i'],[3,4],opt=4)

end;

Wyniki:

Napięcia - metoda RK4

Aperiodyczny kryt. Aperiodyczny Oscylacyjny

15.

22.747666

37.545596

52.651035

65.533949

75.606519

83.08689

88.456205

92.218037

94.806353

96.562385

97.74046

98.523584

15.

15.318452

15.966822

16.734725

17.542606

18.360415

19.176834

19.98763

20.791255

21.587173

22.37523

23.15542

23.927788

15.

75.872629

98.915818

102.3643

101.22477

100.2868

99.987416

99.960088

99.982994

99.99686

100.00056

100.00064

100.00023

Metoda Eulera

Aperiodyczny kryt. Aperiodyczny Oscylacyjny

15.

15.000447

36.250447

57.500335

73.437724

84.06264

90.703209

94.687549

97.011747

98.339859

99.086923

99.501958

99.730227

15.

15.000447

36.250447

57.500335

73.437724

84.06264

90.703209

94.687549

97.011747

98.339859

99.086923

99.501958

99.730227

15.

15.000447

36.250447

57.500335

73.437724

84.06264

90.703209

94.687549

97.011747

98.339859

99.086923

99.501958

99.730227

Wykresy wykreślone przez SciLab:

Metoda klasyczna:

Metoda Eulera RK4:

Metoda RK4

Wnioski:


Wyszukiwarka

Podobne podstrony:
Metody jednokrokowe rozwiązywania równań różniczkowych, aaa, studia 22.10.2014, całe sttudia, III se
T 3[1] METODY DIAGNOZOWANIA I ROZWIAZYWANIA PROBLEMOW
10 Metody otrzymywania zwierzat transgenicznychid 10950 ppt
metodyka 3
organizacja i metodyka pracy sluzby bhp
metodyka, metody proaktywne metodyka wf
epidemiologia metody,A Kusińska,K Mitręga,M Pałka,K Orszulik 3B
GMO metody wykrywania 2
Metody i cele badawcze w psychologii
E learning Współczesne metody nauczania
Tradycyjne metody nauczania w medycynie 2
Fwd dydaktyka, Metody alternatywne
FORMY I METODY REHABILITACJI(1)
Zaawansowane metody udrażniania dród oddechowych
metody redukcji odpadów miejskich ćwiczenia

więcej podobnych podstron