Численное моделирование и анализ переходных процессов в электрической цепи

Автор работы: Пользователь скрыл имя, 01 Апреля 2012 в 23:13, курсовая работа

Описание

В ходе данной работы будут проанализированы переходные процессы в электрической цепи. Работа подразделена на 3 части:

I часть работы включает в себя решение системы дифференциальных уравнений, описывающих переходный процесс в электрической цепи.

II часть работы представляет из себя процесс решения задачи аппроксимации.

Заключительная III часть работы: численное интегрирование. Для выполнения данной курсовой работы необходимо применение не только знаний по информатике, но также и физике, математике.

Содержание

Введение.
Постановка задачи, исходные данные.
Реализация поставленной задачи:



3.1. первый этап решения задачи: численная реализация системы дифференциальных уравнений:

3.1.1. алгоритмически, построив блок-схему и программу,

написанную на языке программирования Free Pascal,

используя алгоритм метода Рунге-Кутта ;

3.2. второй этап решения задачи:

3.2.1. решение задачи аппроксимации используя язык программирования Free Pascal;

3.3. третий этап решения задачи: вычисление интеграла, определяющего количество теплоты, выделяемое на резисторе R4 за период времени t1<t<t2:

3.3.1. алгоритмически, построив блок-схему и программу,

написанную на языке программирования Free Pascal,

используя метод трапеций;
Выводы по проделанной работе.

Работа состоит из  1 файл

информатика.docx

— 196.75 Кб (Скачать документ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Второй этап решения:

Таблица и график для интервала: 0≤Т≤0,005:

 

 

t



I

0

-0,101

0,00025

-0,123

0,0005

-0,1232

0,00075

-0,1181

0,001

-0,1125

0,00125

-0,1075

0,0015

-0,1033

0,00175

-0,1

0,002

-0,0972

0,00225

-0,095

0,0025

-0,0932

0,00275

-0,0917

0,003

-0,0906

0,00325

-0,0896

0,0035

-0,0888

0,00375

-0,0882

0,004

-0,0876

0,00425

-0,0871

0,0045

-0,0867

0,00475

-0,0861

0,005

-0,0858




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение задачи аппроксимации и интерполяции на языке Free Pascal:

Разобьем участок на 2:

1: 0≤Т≤0,00075

2: 0,00075≤Т≤0,005

 

Найдем интерполяцией график квадратичной функции для первого участка, для этого необходимо решить систему  линейных уравнений:


        02a2+0а10=-0,101,

       

        0.000252a2+0.00025a1+a0=-0.123,

 

        0.00052a2+0.0005a1+a0=-0.1232;

 

 

 

 

Здесь и далее решать системы линейных уравнений будем методом гаусса реализованным в Free Pascal(обозначим ее (*)):

 

Программа:

 

 

program laba3;

var c,d,s,t,z:real;

i,j,e,r,n:integer;

a:array [1..1000,1..1000] of real;

b:array [1..1000] of real;

x:array [1..1000] of real;

begin

repeat

writeln('vvod razmer');

readln(n);

for i:=1 to n do

for j:=1 to n do begin

write('vvod a[',i:1,',',j:1,']=');

readln(a[i,j]);

end;

for i:=1 to n do begin

write('vvod b[',i:1,']=');

readln(b[i]);

end;

for i:=1 to n do begin

for j:=1 to n do begin

write('  ',a[i,j]:6:2);

end;

writeln('  ',b[i]:6:2);

end;

for i:=1 to n do begin

d:=a[i,i];

for j:=1 to n do begin

a[i,j]:=a[i,j]/d;

end;

b[i]:=b[i]/d;

for r:=i+1 to n do begin;

c:=-a[r,i];

b[r]:=c*b[i]+b[r];

for e:=1 to n do begin

a[r,e]:=c*a[i,e]+a[r,e];

end; end; end;

writeln; writeln(' new matrica');

for i:=1 to n do begin

for j:=1 to n do begin

write('  ',a[i,j]:6:2);

end;

writeln('  ',b[i]:6:2);

end;

s:=0;

for i:=0 to n-1 do begin

x[n-i]:=b[n-i]+s;

s:=0;

for j:=n-i to n do begin

if (i<n-1) then s:=s-x[j]*a[n-i-1,j] else s:=5;

end; end;

writeln;

for i:=1 to n do begin

writeln(' x[',i:1,']=',x[i]:6:2);

end; writeln;

writeln('   vvod 1 esli vse, 2 - ehe reshat');

readln(z);

t:=2-z;

until(t>0.5);

writeln(' Do svidania!!!');

readln;

end.

 

Результат работы программы:

 


 

 

 

 

 

 

 

 

Уравнение для первого интервала  имеет вид:

I=181600t2-137t-0,101

 

 

 

 

 

Аппроксимацией найдем функцию описывающую второй интервал с помощью программ реализованных в Free Pascal:

 

1)program apro;

var s,st,st2,st3,si,sit,sit2,st4:real;

k:integer;

i:array [1..19] of real;

t:array [0..19] of real;

begin

t[0]:=0.00025;

for k:=1 to 19 do begin

write(' vvod I[',k:1,']=');

read(i[k]);

t[k]:=t[k-1]+0.00025;

writeln('       t[',k:1,']=          ',t[k]:6:5);

end;

s:=0;

st:=0;

st2:=0;

st3:=0;

si:=0;

sit:=0;

sit2:=0;

st4:=0;

for k:=1 to 19 do begin

s:=s+1;

st:=st+t[k];

st2:=st2+t[k]*t[k];

st3:=st3+t[k]*t[k]*t[k];

st4:=st4+t[k]*t[k]*t[k]*t[k];

si:=si+i[k];

sit:=sit+i[k]*t[k];

sit2:=sit2+i[k]*t[k]*t[k];

end;

writeln(' s=',s:3:1,' st=',st:5:4,' st2=',st2:10:10,' st3=',st3:10:10,

' st4',st4:15:15,' si=',si:5:4,' sit=',sit:5:4,' sit2=',sit2:10:10);

readln;

end.

 

 

 

 

 

 

Результат работы программы:

 

 

Получили расширенную матрицу:


              19                     0,0522              0,0001793125               -1,83

 

    0,0522              0,0001793125  0,000000689                 -0,0048

 

              0,0001793125  0,000000689     0,00000000282291      -0,000016

 

 

 

 

 

 

 

 

 

 

 

 

С помощью программы (*) получим:

 

 

Уравнение, описывающее второй интервал,  имеет вид:

 

I=-94t2+7,09t-0.155

 

 

 

 

 

 

 

 

 

 

 

 

 

Третий  этап решения:

Численное интегрирование

Выполним численное интегрирование для двух интервалов имеющие соответсвующие функции I(t):

 

1) I=181600t2-137t-0,101;

2) I=-94t2+7,09t-0.115;

 

В результате интегрирования для двух интервалов получим два значения теплоты: Q1 и Q2

 

Общее количество теплоты полученное на резисторе R4 получим сложением Q1 и Q2:

 

Q=Q1+Q2;

 

Интегрирование проведем методом  трапеций, реализованным в Free Pascal:

 

Для первого интервала:

program integrate1;

var  i,i1,s,t,h,tn,tk:REAL;

begin

writeln(' vvod tn,tk');

readln(tn,tk);

t:=tn;

h:=0.00025;

s:=0;

while (t<=tk-h/2) do begin

i:=sqr(181600*t*t-137*t-0.101);

i1:=sqr(181600*(t+h)*(t+h)-137*(t+h)-0.101);

s:=s+(i+i1)*h/2;

t:=t+h;

end;

s:=s*1.88;

writeln(' Q=',s:5:5);

readln;

end.

 

Результат работы программы:


 

 

Для второго  интервала:

program integrate2;

var  i,i1,s,t,h,tn,tk:REAL;

begin

writeln(' vvod tn,tk');

readln(tn,tk);

t:=tn;

h:=0.00025;

s:=0;

while (t<=tk-h/2) do begin

i:=sqr((-94)*t*t+7.09*t-0.155);

i1:=sqr((-94)*(t+h)*(t+h)+7.09*(t+h)-0.115);

s:=s+(i+i1)*h/2;

t:=t+h;

end;

s:=s*1.88;

writeln(' Q=',s:5:5);

readln;

end.

 

Результат работы программы:

 

 

 

Найдем суммарную  теплоту:

 

Q=Q1+Q2=0,00011+0,0002=0,00013(Дж);

 

 

 

 

 

 

 

 

 

Вывод по проделанной работе:

 

В данной курсовой работе предложено рассчитать параметры электрической цепи переменного тока. При помощи метода Рунге-Кутта я сначала решил систему дифференциальных уравнений (описывающих процессы, происходящие в цепи, которая была выведена в начале работы) для того, что бы найти зависимость тока (I(t)) и напряжения (U(t)) от времени на заданном временном интервале t1 < t <t2. Затем я произвел аппроксимацию полученных данных средствами Free Pascal. Впоследствии, проинтегрировав полученную при аппроксимации функцию на заданном интервале времени T1 < T <T2, нашел количество теплоты, выделившееся на резисторе  R4. При решении интеграла мною был применен метод трапеций. При выполнении курсовой работы были построены соответствующие графики зависимостей, сравнив результаты вычислений представленными методами, были сделаны конструктивные выводы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Информация о работе Численное моделирование и анализ переходных процессов в электрической цепи