Politechnika Lubelska w Lublinie |
Laboratorium Metod Numerycznych |
||
|
Ćwiczenie nr 8 |
||
Imię i Nazwisko: Wielgórski Mariusz Widz Marcin |
Semestr: III |
Grupa: 3.5 |
Rok akademicki: 2012/2013 |
Temat: Scilab - równania różniczkowe I rzędu (RL i RC) |
Data wyk.: 12.12.2012r. |
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=20;
C=0.001;
R=4;
L=0.02;
wybgen=input("wybierz generator..
1 - prądu stałego 2 - sinusoidalnego 3 - prostokątnego 4 - piłokształtnego")
select wybgen
case 1 then
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 0 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
RC:
RL:
Wnioski:
Dzięki SCILAB można symulować stany nieustalone i pracę układów elektrycznych z elementami RL i RC. Stworzenie przez nas skrypty umożliwiają takie operacje. Po ułożeniu odpowiedniego skryptu wykreśla również przebiegi napięci i prądu w funkcji czasu.