Politechnika Lubelska

Wydział Elektrotechniki i Informatyki

Laboratorium Metod Numerycznych

Imię i nazwisko:

  1. Mackiewicz Kamil

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

  1. 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)

0x01 graphic

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)

0x01 graphic

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