Politechnika Lubelska w Lublinie |
Laboratorium Metod Numerycznych |
||
|
Ćwiczenie nr 8 |
||
Imię i Nazwisko: Jakub Machometa
|
Semestr: III |
Grupa: 3.3 |
Rok akademicki: 2009/2010 |
Temat: Równania różniczkowe - analiza stanów nieustalonych w obwodach elektrycznych |
Data wyk.: 9.12.2009r. |
Ocena:
|
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie się z metodami obliczania stanów nieustalonych w obwodach RC i RL.
Schemat:
Skrypt SciLab:
clear;
xdel;
clc;
E=10;
C=0.001;
R=2;
L=0.01;
wybgen=input("wybierz generator..
1 - prądu stłego 2 - sinusoidalnego 3 - prostokątnego 4 - piłokształtnego")
select wybgen
case 1 then
function pochodna=stany(t,x)
pochodna=(E-x)/(R*C)
endfunction
uc0=0;
t0=0;
t=[0:0.00001:0.01];
roz=ode(uc0,t0,t,stany);
ur=E-roz;
i=ur/R;
subplot(211)
plot2d(t,[ur'roz' i'],style=[6,4,5],leg="ur(t)@uc(t)@i(t)",axesflag=4)
function pochodna1=stany(t,x)
pochodna1=(E-R*x)/(L)
endfunction
ul0=0;
t0=0;
t=[0:0.0001:0.04];
roz=ode(ul0,t0,t,stany);
ur=R*roz;
ul=E-ur;
subplot(212)
plot2d(t,[ul'ur'roz'],style=[2,5,4],leg="ul(t)@ur(t)@i(t)",axesflag=5)
case 2 then
function pochodna01=stany0(t,x)
pochodna01=(E*sin(2*%pi*f*t)-x)/(R*C)
endfunction
function pochodna11=stany1(t,x)
pochodna11=(E*sin(2*%pi*f*t+%pi/6)-x)/(R*C)
endfunction
function pochodna21=stany2(t,x)
pochodna21=(E*sin(2*%pi*f*t+%pi/4)-x)/(R*C)
endfunction
function pochodna31=stany3(t,x)
pochodna31=(E*sin(2*%pi*f*t+%pi/3)-x)/(R*C)
endfunction
function pochodna41=stany4(t,x)
pochodna41=(E*sin(2*%pi*f*t+%pi/2)-x)/(R*C)
endfunction
function pochodna02=stany01(t,x)
pochodna02=(E*sin(2*%pi*f*t)-R*x)/(L)
endfunction
function pochodna12=stany11(t,x)
pochodna12=(E*sin(2*%pi*f*t+%pi/6)-R*x)/(L)
endfunction
function pochodna22=stany21(t,x)
pochodna22=(E*sin(2*%pi*f*t+%pi/4)-R*x)/(L)
endfunction
function pochodna32=stany31(t,x)
pochodna32=(E*sin(2*%pi*f*t+%pi/3)-R*x)/(L)
endfunction
function pochodna42=stany41(t,x)
pochodna42=(E*sin(2*%pi*f*t+%pi/2)-R*x)/(L)
endfunction
f=50;
t=[0:0.0001:0.02];
e0= E*sin(2*%pi*f*t);
e1= E*sin(2*%pi*f*t+%pi/6);
e2= E*sin(2*%pi*f*t+%pi/4);
e3= E*sin(2*%pi*f*t+%pi/3);
e4= E*sin(2*%pi*f*t+%pi/2);
uc0=0;
ul0=0;
t0=0;
roz0=ode(uc0,t0,t,stany0);
ur0=e0-roz0;
i0=ur0/R;
roz1=ode(uc0,t0,t,stany1);
ur1=e1-roz1;
i1=ur1/R;
roz2=ode(uc0,t0,t,stany2);
ur2=e2-roz2;
i2=ur2/R;
roz3=ode(uc0,t0,t,stany3);
ur3=e3-roz3;
i3=ur3/R;
roz4=ode(uc0,t0,t,stany4);
ur4=e4-roz4;
i4=ur4/R;
roz01=ode(ul0,t0,t,stany01);
ur01=R*roz01;
ul01=e0-ur01;
roz11=ode(ul0,t0,t,stany11);
ur11=R*roz11;
ul11=e0-ur11;
roz21=ode(ul0,t0,t,stany21);
ur21=R*roz21;
ul21=e0-ur21;
roz31=ode(ul0,t0,t,stany31);
ur31=R*roz31;
ul31=e0-ur31;
roz41=ode(ul0,t0,t,stany41);
ur41=R*roz41;
ul41=e0-ur41;
xset("window",1)
subplot(211)
plot2d(t,[ur0'roz0'i0'e0'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 0 dla RC')
xset("window",2)
subplot(211)
plot2d(t,[ul01'ur01'roz01'e0'],style=[6,5,4,7],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia dla RL')
xset("window",3)
subplot(211)
plot2d(t,[ur1'roz1'i1'e1'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 30 dla RC')
xset("window",4)
subplot(211)
plot2d(t,[ul11'ur11'roz11'e1'],style=[6,5,4,7],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 30 dla RL')
xset("window",5)
subplot(211)
plot2d(t,[ur2'roz2'i2'e2'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 45 dla RC')
xset("window",6)
subplot(211)
plot2d(t,[ul01'ur21'roz21'e2'],style=[6,5,4,7],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 45 dla RL')
xset("window",7)
subplot(211)
plot2d(t,[ur3'roz3'i3'e3'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 60 dla RC')
xset("window",8)
subplot(211)
plot2d(t,[ul31'ur31'roz31'e3'],style=[6,5,4,7],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 60 dla RL')
xset("window",9)
subplot(211)
plot2d(t,[ur4'roz4'i4'e4'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 90 dla RC')
xset("window",10)
subplot(211)
plot2d(t,[ul41'ur41'roz41'e4'],style=[6,5,4,7],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia 90 dla RL')
case 3 then
function pochodna=stany(t,x)
pochodna=(E*squarewave(2*%pi*f*t+k)-x)/(R*C)
endfunction
function pochodna2=stany1(t,x)
pochodna2=(E*squarewave(2*%pi*f*t+k)-R*x)/(L)
endfunction
f=50;
k=0;
ul0=0;
uc0=0;
t0=0;
t=[0:0.0001:0.04];
e= E*squarewave(2*%pi*f*t+k);
roz=ode(uc0,t0,t,stany);
ur=e-roz;
i=ur/R;
roz2=ode(ul0,t0,t,stany1);
ur2=R*roz2;
ul2=e-ur2;
xset("window",1)
plot2d(t,[ur'roz'i'e'],style=[4,6,7,9],leg="ur(t)@uc(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia dla RC')
xset("window",2)
plot2d(t,[ul2'ur2'roz2'e'],style=[2,5,4,6],leg="ul(t)@ur(t)@i(t)@e(t)",axesflag=5)
xtitle('Faza Napięcia dla RL')
case 4 then
function pochodna=stany(t,x)
pochodna=(E*2*%pi*f*t-R*x)/L;
endfunction
i0=0;
t0=0;
t=[0:0.0001:0.1];
f=50;
b=t;
e=E*2*%pi*f*t;
for i=2:11 do
t(i,:)=t((i-1),:)+0.1;
end
roz(1,:)=ode(i0,t0,(t(1,:)),stany);
ur(1,:)=R*roz(1,:);
ul(1,:) =e(1,:)- R*roz(1,:);
plot2d(t(1,:),[roz(1,:)' ul(1,:)' ur(1,:)'],style=[3,5,6],leg="i(t)@ul(t)@ur(t)",axesflag=5);
for j=2:11 do
roz(j,:)=ode(roz(j-1,$),t0,(t(1,:)),stany);
ur(j,:)=R*roz(j,:);
ul(j,:)=e(1,:)-R*roz(j,:);
plot2d(t(j,:),[roz(j,:)' ul(j,:)' ur(j,:)'],style=[3,5,6],leg="i(t)@ul(t)@ur(t)",axesflag=5);
end
Wyniki:
Dla prądu stałego
Dla prądu przemiennego
Przykładowe dla przesunięcia fazowego 45°
Dla sygnału prostokątnego
Dla sygnału piłokształtnego
Wnioski:
Dzięki pakietowi SCIPAD można obliczać i symulować stany nieustalone i pracę układów elektrycznych z elementami RL i RC. Stworzenie przez nas skrypty umożliwiają takie operacje. Tworzenie skryptów skraca czas rozwiązywania bardziej rozbudowanych obwodów, gdzie mogą występować równania różniczkowe II rzędu, co nastręczałoby wiele problemów podczas obliczania pisemnego. Po ułożeniu odpowiedniego skryptu pakiet SCIPAD wykreśla również przebiegi napięci i prądu w funkcji czasu.