Автор работы: Пользователь скрыл имя, 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,
используя метод трапеций;
Выводы по проделанной работе.
Второй этап решения:
Таблица и график для интервала: 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а1+а0=-0,101,
0.000252a2+0.00025a1+a0=-0.
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:
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
Третий этап решения:
Численное интегрирование
Выполним численное
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)-
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.
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,
Вывод по проделанной работе:
В данной курсовой работе предложено рассчитать параметры электрической цепи переменного тока. При помощи метода Рунге-Кутта я сначала решил систему дифференциальных уравнений (описывающих процессы, происходящие в цепи, которая была выведена в начале работы) для того, что бы найти зависимость тока (I(t)) и напряжения (U(t)) от времени на заданном временном интервале t1 < t <t2. Затем я произвел аппроксимацию полученных данных средствами Free Pascal. Впоследствии, проинтегрировав полученную при аппроксимации функцию на заданном интервале времени T1 < T <T2, нашел количество теплоты, выделившееся на резисторе R4. При решении интеграла мною был применен метод трапеций. При выполнении курсовой работы были построены соответствующие графики зависимостей, сравнив результаты вычислений представленными методами, были сделаны конструктивные выводы.
Информация о работе Численное моделирование и анализ переходных процессов в электрической цепи