Politechnika Lubelska Wydział Elektrotechniki i Informatyki |
|||
Laboratorium Metod Numerycznych |
|||
Imię i nazwisko:
|
Grupa: ED 3.3 |
Data wykonania ćwiczenia: 06.01.2010 |
|
Sprawozdanie nr 5 |
Temat: Równania różniczkowe II rzędu - analiza stanów nieustalonych w obwodach elektrycznych. |
Celem ćwiczenia jest wykorzystanie programu Scilab do rozwiązywania równań różniczkowych II rzędu w układzie RLC.
*Schemat
Skrypt Scilaba z opisem
clear; // usuwanie wartości zmiennych i stalych,
clc; // czyszczenie konsoli,
xdel; // zamykanie wszystkich okien wykresu,
function [pochodne]=stany(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E-R*x(3)-x(2))/L;
endfunction
function [pochodne]=stanyw(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E-Rw*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E-Rw*x(3)-x(2))/L;
endfunction
function [pochodne]=stanym(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E-Rm*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E-Rm*x(3)-x(2))/L;
endfunction
//definiujemy parametry rozwiązywanego obwodu
E=20
L=input('Podaj wartość L ')
C=input('Podaj wartość C ')
('Rezystancja krytyczna wynosi: ')
R=2*sqrt(L/C)
Rm=R/5;
Rw=2*R;
duC0=0; //definiujemy parametry początkowe zdefiniowanych zmiennych stanu i czasu
uC0=0;
i0=0;
t0=0;
t=0:0.0001:0.08; //definiujemy wektor czasu
roz=ode([duC0;uC0;i0],t0,t,stany); //zapisujemy polecenie rozwiązania układu równań różniczkowych
rozw=ode([duC0;uC0;i0],t0,t,stanyw);
rozm=ode([duC0;uC0;i0],t0,t,stanym);
i=roz(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC=roz(2,:);
uR=R*i;
uL=E-uR-uC;
Ez=uC+uR+uL; //sprawdzenie poprawności obliczeń
iw=rozw(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uCw=rozw(2,:);
uRw=Rw*iw;
uLw=E-uRw-uCw;
Ez=uCw+uRw+uLw; //sprawdzenie poprawności obliczeń
im=rozm(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uCm=rozm(2,:);
uRm=Rm*im;
uLm=E-uRm-uCm;
Ez=uCm+uRm+uLm; //sprawdzenie poprawności obliczeń
subplot(231);
plot2d(t,iw,2,leg='i(t)',axesflag=5);
subplot(234);
plot2d(t,[uCw'uRw'uLw'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(232);
plot2d(t,i,2,leg='i(t)',axesflag=5);
subplot(235);
plot2d(t,[uC'uR'uL'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(233);
plot2d(t,im,2,leg='i(t)',axesflag=5);
subplot(236);
plot2d(t,[uCm'uRm'uLm'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
-konsola Scilaba
E = 20.
Podaj wartosc L 0.1
L = 0.1
Podaj wartosc C 0.0001
C = 0.0001
Rezystancja krytyczna wynosi:
R = 63.245553
-okno graficzne (wykresy)
2. Wymuszenie sinusoidalne:
-skrypt Scilaba z opisem
clear; // usuwanie wartości zmiennych i stalych,
clc; // czyszczenie konsoli,
xdel; // zamykanie wszystkich okien wykresu,
function [pochodne]=stany0(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E*sin(2*%pi*50*t)-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E*sin(2*%pi*50*t)-R*x(3)-x(2))/L;
endfunction
function [pochodne]=stany30(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E*sin(2*%pi*50*t+%pi/6)-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E*sin(2*%pi*50*t+%pi/6)-R*x(3)-x(2))/L;
endfunction
function [pochodne]=stany45(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E*sin(2*%pi*50*t+%pi/4)-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E*sin(2*%pi*50*t+%pi/4)-R*x(3)-x(2))/L;
endfunction
function [pochodne]=stany60(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E*sin(2*%pi*50*t+%pi/3)-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E*sin(2*%pi*50*t+%pi/3)-R*x(3)-x(2))/L;
endfunction
function [pochodne]=stany90(t,x) //definiujemy funkcję opisującą układ równań różniczkowych
pochodne(1)=(E*sin(2*%pi*50*t+%pi/2)-R*C*x(1)-x(2))/(L*C);
pochodne(2)=x(3)/C;
pochodne(3)=(E*sin(2*%pi*50*t+%pi/2)-R*x(3)-x(2))/L;
endfunction
//definiujemy parametry rozwiązywanego obwodu
E=20
L=0.1;
C=0.0001;
R=2*sqrt(L/C)
R30=R;
R45=R;
R60=R;
R90=R;
duC0=0; //definiujemy parametry początkowe zdefiniowanych zmiennych stanu i czasu
uC0=0;
i0=0;
t0=0;
t=0:0.0001:0.08; //definiujemy wektor czasu
roz=ode([duC0;uC0;i0],t0,t,stany0);
roz30=ode([duC0;uC0;i0],t0,t,stany30); //zapisujemy polecenie rozwiązania układu równań różniczkowych
roz45=ode([duC0;uC0;i0],t0,t,stany45);
roz60=ode([duC0;uC0;i0],t0,t,stany60);
roz90=ode([duC0;uC0;i0],t0,t,stany90);
i=roz(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC=roz(2,:);
uR=R*i;
uL=E*sin(2*%pi*50*t)-uR-uC;
Ez=uC+uR+uL; //sprawdzenie poprawności obliczeń
i30=roz30(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC30=roz30(2,:);
uR30=R30*i30;
uL30=E*sin(2*%pi*50*t+%pi/6)-uR30-uC30;
Ez=uC30+uR30+uL30; //sprawdzenie poprawności obliczeń
i45=roz45(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC45=roz45(2,:);
uR45=R45*i45;
uL45=E*sin(2*%pi*50*t)-uR45-uC45;
Ez=uC45+uR45+uL45; //sprawdzenie poprawności obliczeń
i60=roz60(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC60=roz60(2,:);
uR60=R60*i60;
uL60=E*sin(2*%pi*50*t)-uR60-uC60;
Ez=uC60+uR60+uL60; //sprawdzenie poprawności obliczeń
i90=roz90(3,:); //wyznaczenie przebiegów pozostałych napięć, rozwiązanie prezentuje się graficznie za pomocą funkcji plot2d
uC90=roz90(2,:);
uR90=R90*i90;
uL90=E*sin(2*%pi*50*t)-uR90-uC90;
Ez=uC90+uR90+uL90; //sprawdzenie poprawności obliczeń
subplot(211);
plot2d(t,i,2,leg='i(t)',axesflag=5);
subplot(212);
plot2d(t,[uC'uR'uL'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(211);
plot2d(t,i30,2,leg='i(t)',axesflag=5);
subplot(212);
plot2d(t,[uC30'uR30'uL30'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(211);
plot2d(t,i45,2,leg='i(t)',axesflag=5);
subplot(212);
plot2d(t,[uC45'uR45'uL45'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(211);
plot2d(t,i60,2,leg='i(t)',axesflag=5);
subplot(212);
plot2d(t,[uC60'uR60'uL60'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
subplot(211);
plot2d(t,i90,2,leg='i(t)',axesflag=5);
subplot(212);
plot2d(t,[uC90'uR90'uL90'Ez'],style=[3,2,4,1],leg='uC(t)@uR(t)@uL(t)@E',axesflag=5);
-okno graficzne (wykresy)
Wnioski:
-dla podanych wartościach L=0.1 i C=0.0001 program Scilab wyliczył wartość krytyczną rezystancji obwodu wg podanego wzoru
-wykreślone przebiegi chwilowe napięć i prądów zgadzają się z tymi podanymi na zajęciach
-wykreślone przebiegi są o charakterze aperiodycznym, krytycznym i oscylacyjnym (w takiej kolejności zaczynając od lewej strony)
-przy wymuszeniu sinusoidalnym dokładnie można zauważyć przesunięcie fazowe dla poszczególnych faz (0°,30°,45°,60°,90°)
-przy wymuszeniu sinusoidalnym występował w tym przypadku charakter krytyczny
6