POLITECHNIKA LUBELSKA w LUBLINIE |
LABORATORIUM |
---|---|
Nazwisko : Kilijanek |
Imię: Łukasz |
Temat ćwiczenia: Równania różniczkowe |
Data wykonania: 23.01.2009r. |
Stan RC
1.Skrypt
clc;//czyszczenie konsoli
xdel;//czyszczenie okien graficznych
clear;//czyszczenie czyszczenie pamięci
wybGen = input("wybór generatora: 1-pradu stalego, 2-sinusoidalny,3-prostokatny,4-piloksztaltny");
select wybGen
case 1 then
function pochodna=stany(t,x)
pochodna=(E-x)/(R*C);
endfunction
E=6
R=2
C=0.00045
uC0=5;
t0=0;
t=[0:0.0001:0.04];
roz=ode(uC0,t0,t,stany);
ur=E-roz;
i=ur/R;
plot2d(t,[roz' i' ur'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
case 2 then
function pochodna=stany(t,x)
pochodna=(E*sin(2*%pi*40*sin(t))-x)/(R*C);
endfunction
E=6
R=2
C=0.00045
uC0=5;
t0=0;
t=[0:0.0001:0.04];
roz=ode(uC0,t0,t,stany);
ur=E*sin(2*%pi*40*sin(t))-roz;
i=ur/R;
plot2d(t,[roz' i' ur'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
case 3 then
function pochodna=stany1(t,x)
pochodna=(E-x)/(R*C);
endfunction
function pochodna=stany2(t,x)
pochodna=(-E-x)/(R*C);
endfunction
E=6
R=2
C=0.00045
uC0=0;
t0=0;
a=[0:0.0001:0.01];
for i=2:11 do
a(i,:)=a((i-1),:)+0.01;
end
roz(1,:)=ode(uC0,t0,(a(1,:)),stany1);
ur(1,:)=E-roz(1,:);
ir(1,:) = ur(1,:)/R;
plot2d(a(1,:),[roz(1,:)' ir(1,:)' ur(1,:)' (a(1,:)-a(1,:)+E)'],style=[3,5,6,1],leg="uC(t)@i(t)@uR(t)",axesflag=5);
for j=1:5 do
roz((2*j),:)=ode(roz((2*j-1),$),a((2*j-1),$),(a(2*j,:)),stany2);
roz((2*j+1),:)=ode(roz((2*j),$),a((2*j),$),(a(2*j+1,:)),stany1);
ur((2*j),:)=-E-roz((2*j),:);
ir((2*j),:)=ur((2*j),:)/R;
ur((2*j+1),:)=E-roz((2*j+1),:);
ir((2*j+1),:)=ur((2*j+1),:)/R;
plot2d(a((2*j),:),[roz((2*j),:)' ir((2*j),:)' ur((2*j),:)'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
plot2d(a((2*j+1),:),[roz((2*j+1),:)' ir((2*j+1),:)' ur((2*j+1),:)'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
// rysowanie prostokatnego - tworzenie macierzy zerowej o odpowiedniej wielkosci
// poprzez dodanie i odjecie tego samego czlonu a(2*j,:) a nastepnie dodanie E badz -E
plot2d(a(2*j,:),(a(2*j,:)-a(2*j,:)-E)',style=1);
plot2d(a(2*j+1,:),(a(2*j,:)-a(2*j,:)+E)',style=1);
end
case 4 then
function pochodna=stany1(t,x)
pochodna=(E*700*t-x)/(R*C);
endfunction
E=6
R=2
C=0.00045
uC0=0;
t0=0;
a=[0:0.0001:0.01];
b=a;
for i=2:11 do
a(i,:)=a((i-1),:)+0.01;
end
roz(1,:)=ode(uC0,t0,(a(1,:)),stany1);
ur(1,:)=E*700*a(1,:)-roz(1,:);
ir(1,:) = ur(1,:)/R;
plot2d(a(1,:),[roz(1,:)' ir(1,:)' ur(1,:)'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
plot2d(a(1,:),(E*700*a(1,:))',style=1);
for j=2:11 do
roz(j,:)=ode(roz(j-1,$),t0,(a(1,:)),stany1);
ur(j,:)=E*700*a(1,:)-roz(j,:);
ir(j,:)=ur(1,:)/R;
plot2d(a(j,:),[roz(j,:)' ir(j,:)' ur(j,:)'],style=[3,5,6],leg="uC(t)@i(t)@uR(t)",axesflag=5);
//liniaur=[ur((j-1),$),ur(j,1)];
//liniair=[ir((j-1),$),ir(j,1)];
//plot2d([a((j-1),$),a(j,1)],[liniair' liniaur'],style=[5,6]);
//liniaE=[(E*700*a(1,$)),a(2,1)];
//plot2d([a((j-1),$),a(j,1)], liniaE',style=1);
plot2d(a(j,:),(E*700*a(1,:))',style=1);
end
end
2.Wyświetlenie z scilaba:
E =6.
R =2.
C =0.00045
Charakterystyka sygnału stałęgo
Charakterystyka sygnału sinusoidalnego
Charakterystyka sygnału prostokątnego
Charakterystyka sygnału piłokształtnego
Stan RL
1.Skrypt
clc;//czyszczenie konsoli
xdel;//czyszczenie okien graficznych
clear;//czyszczenie pamięci
wybGen = input("wybór generatora 1-pradu stalego, 2-sinusoidalny,3-prostokatny,4-piloksztaltny");
select wybGen
case 1 then
function pochodna=stany(t,x)
pochodna=(E-x)/(R*L);
endfunction
E=6
R=2
L=0.35
uL0=0;
t0=0;
t=[0:0.0001:0.04];
roz=ode(uL0,t0,t,stany);
ur=E-roz;
i=ur/R;
plot2d(t,[roz' i' ur'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
case 2 then
function pochodna=stany(t,x)
pochodna=(E*sin(2*%pi*40*sin(t))-x)/(R*L);
endfunction
E=6
R=2
L=0.35
uL0=0;
t0=0;
t=[0:0.0001:0.04];
roz=ode(uL0,t0,t,stany);
ur=E*sin(2*%pi*40*sin(t))-roz;
i=ur/R;
plot2d(t,[roz' i' ur'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
case 3 then
function pochodna=stany1(t,x)
pochodna=(E-x)/(R*L);
endfunction
function pochodna=stany2(t,x)
pochodna=(-E-x)/(R*L);
endfunction
E=6
R=2
L=0.35
uL0=0;
t0=0;
a=[0:0.0001:0.01];
for i=2:11 do
a(i,:)=a((i-1),:)+0.01;
end
roz(1,:)=ode(uL0,t0,(a(1,:)),stany1);
ur(1,:)=E-roz(1,:);
ir(1,:) = ur(1,:)/R;
plot2d(a(1,:),[roz(1,:)' ir(1,:)' ur(1,:)' (a(1,:)-a(1,:)+E)'],style=[3,5,6,1],leg="uL(t)@i(t)@uR(t)",axesflag=5);
for j=1:5 do
roz((2*j),:)=ode(roz((2*j-1),$),a((2*j-1),$),(a(2*j,:)),stany2);
roz((2*j+1),:)=ode(roz((2*j),$),a((2*j),$),(a(2*j+1,:)),stany1);
ur((2*j),:)=-E-roz((2*j),:);
ir((2*j),:)=ur((2*j),:)/R;
ur((2*j+1),:)=E-roz((2*j+1),:);
ir((2*j+1),:)=ur((2*j+1),:)/R;
plot2d(a((2*j),:),[roz((2*j),:)' ir((2*j),:)' ur((2*j),:)'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
plot2d(a((2*j+1),:),[roz((2*j+1),:)' ir((2*j+1),:)' ur((2*j+1),:)'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
// rysowanie prostokatnego - tworzenie macierzy zerowej o odpowiedniej wielkosci
// poprzez dodanie i odjecie tego samego czlonu a(2*j,:) a nastepnie dodanie E badz -E
plot2d(a(2*j,:),(a(2*j,:)-a(2*j,:)-E)',style=1);
plot2d(a(2*j+1,:),(a(2*j,:)-a(2*j,:)+E)',style=1);
end
case 4 then
function pochodna=stany1(t,x)
pochodna=(E*700*t-x)/(R*L);
endfunction
E=6
R=2
L=0.35
uL0=0;
t0=0;
a=[0:0.0001:0.01];
b=a;
for i=2:11 do
a(i,:)=a((i-1),:)+0.01;
end
roz(1,:)=ode(uL0,t0,(a(1,:)),stany1);
ur(1,:)=E*700*a(1,:)-roz(1,:);
ir(1,:) = ur(1,:)/R;
plot2d(a(1,:),[roz(1,:)' ir(1,:)' ur(1,:)'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
plot2d(a(1,:),(E*700*a(1,:))',style=1);
for j=2:11 do
roz(j,:)=ode(roz(j-1,$),t0,(a(1,:)),stany1);
ur(j,:)=E*700*a(1,:)-roz(j,:);
ir(j,:)=ur(1,:)/R;
plot2d(a(j,:),[roz(j,:)' ir(j,:)' ur(j,:)'],style=[3,5,6],leg="uL(t)@i(t)@uR(t)",axesflag=5);
//liniaur=[ur((j-1),$),ur(j,1)];
//liniair=[ir((j-1),$),ir(j,1)];
//plot2d([a((j-1),$),a(j,1)],[liniair' liniaur'],style=[5,6]);
//liniaE=[(E*700*a(1,$)),a(2,1)];
//plot2d([a((j-1),$),a(j,1)], liniaE',style=1);
plot2d(a(j,:),(E*700*a(1,:))',style=1);
end
end
2.Wyświetlenie z scilaba
E =6.
R =2.
L =0.35
Charakterystyka sygnału stałego
Charakterystyka sygnału sinusoidalnego
Charakterystyka sygnału prostokątnego
Charakterystyka sygnału piłokształtnego
Ćwiczenie nr 9
1.Skrypt
clc;//czyszczenie konsoli
clear;//czyszczenie pamięci
xdel(winsid());//czyszczenie okien graficznych
function [pochodne]=stany(t,x)
pochodne(1)=x(3)/C1;
pochodne(2)=(x(3)*R-x(2))/(C2*R);
pochodne(3)=(-x(1)-x(2))/L;
endfunction
// zmien sobie wartosci, twoje są nudne
E=200;
R=25;
L=0.15;
C1=0.0001;
C2=0.00002;
uC10=0;
uC20=E;
i10=E/R;
t0=0;
t=0:0.0001:0.15;
roz=ode([uC10;uC20;i10],t0,t,stany);
i1=roz(1,:);
uC1=roz(2,:);
uC2=roz(3,:);
plot2d(t,[i1' uC1' uC2'],style=[3,9,4], leg='i1@uC1@uC2',axesflag=5);
Charakterystyka
Ćwiczenie 10
Metoda Eulera
E=6
L=0,35
C=0,00045
uC(0)=5
iL(0)=0,1
R=55,7
Skrypt
clc;
clear;
xdel;
E=6;
R=55.7;
C=0.00045;
L=0.35;
function w=f1(t,y1,y2,y3)
w=(E-R*C*y1-y2)/(L*C);
endfunction
function w=f2(t,y1,y2,y3)
w=y3/C;
endfunction
function w=f3(t,y1,y2,y3)
w=(E-R*y3-y2)/L;
endfunction
function [t,y1,y2,y3]= Euler(t0,tk,h,y10,y20,y30)
N=(tk-t0)/h;
t(1)=t0;
y1(1)=y10;
y2(1)=y20;
y3(1)=y30;
for n=1:N
t(n+1)=t(n)+h;
y1(n+1)=y1(n)+h*f1(t(n),y1(n),y2(n),y3(n));
y2(n+1)=y2(n)+h*f2(t(n),y1(n),y2(n),y3(n));
y3(n+1)=y3(n)+h*f3(t(n),y1(n),y2(n),y3(n));
end
endfunction
t0=0;
tk=0.4;
h=0.0001;
duc0=0;
uc0=5;
i0=0.1;
[et,duc,uc,i]=Euler(t0,tk,h,duc0,uc0,i0);
uR=R*i;
uL=E-uR-uc;
plot2d(et,[duc uc uR uL i*200],style=[4,3,5,6,7],leg="duc@uc@uR@uL@i",axesflag=5);
Charakterystyka dla R=R
Charakterystyka dla R>>R
Charakterystyka dla R<<R
Metoda RK
E=6
L=0,35
C=0,00045
uC(0)=5
iL(0)=0,1
R=55,7
Skrypt
clc;
clear;
xdel;
E=6;
L=0.35;
R=55.7;
C=0.00045;
function w=f1(t,duc,uc,i)
w= (E-R*C*duc-uc)/(L*C);
endfunction
function w=f2(t,duc,uc,i)
w= i/C;
endfunction
function w=f3(t,duc,uc,i)
w= (E-R*i-uc)/L;
endfunction
t0=0;
tcal=0.3;
duC0=0;
uC0=5;
i0=0.1;
function [t,y1,y2,y3] = RK4(t0, tk, h, y10,y20,y30)
N=(tk-t0)/h;
t(1)=t0;
y1(1)=y10;
y2(1)=y20;
y3(1)=y30;
for n=1:N
t(n+1) = t(n) + h;
k11 = f1(t(n),y1(n),y2(n),y3(n));
k21 = f2(t(n),y1(n),y2(n),y3(n));
k31 = f3(t(n),y1(n),y2(n),y3(n));
k12 = f1(t(n) + h/2, y1(n)+h/2*k11,y2(n)+h/2*k21,y3(n)+h/2*k31);
k22 = f2(t(n) + h/2, y1(n)+h/2*k11,y2(n)+h/2*k21,y3(n)+h/2*k31);
k32 = f3(t(n) + h/2, y1(n)+h/2*k11,y2(n)+h/2*k21,y3(n)+h/2*k31);
k13 = f1(t(n)+h/2,y1(n)+h/2*k12,y2(n)+h/2*k22,y3(n)+h/2*k32);
k23 = f2(t(n)+h/2,y1(n)+h/2*k12,y2(n)+h/2*k22,y3(n)+h/2*k32);
k33 = f3(t(n)+h/2,y1(n)+h/2*k12,y2(n)+h/2*k22,y3(n)+h/2*k32);
k14= f1(t(n) + h, y1(n) +h*k13, y2(n) +h*k23, y3(n) +h*k33);
k24= f2(t(n) + h, y1(n) +h*k13, y2(n) +h*k23, y3(n) +h*k33);
k34= f3(t(n) + h, y1(n) +h*k13, y2(n) +h*k23, y3(n) +h*k33);
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);
y3(n+1)=y3(n) +h/6*(k31+2*k32+2*k33+k34);
end
endfunction
[rk4_t, rk4_duC,rk4_uc,rk4_i]=RK4(0,tcal, tcal/100, duC0,uC0,i0);
i=rk4_i;
uR=R*i;
uC=rk4_uc;
uL=E-uR-uC;
plot2d(rk4_t,[uC uR uL (i*30)], style=[4, 2, 5, 3],leg="uC@uR@uL@i",axesflag=5);
Charakterystyka R=R
Charakterystyka dla R>>R
Charakterystyka dla R<<R
Ćwiczenie nr 11
1.Schemat
Charakterystyka
Wnioski:
Charakterystyki w metodzie Eulera i RK dla tych samych parametrów obwodu różnią się od siebie. Może to być spowodowane dokładnością obliczeń tych metod. Charakterystyki dla ćwiczenia 9 i 10 wyglądają identycznie czyli schemat blokowy odwzorowuje dokładnie schemat narysowany w ćwiczeniu 9.