Численное решение дифференциальных уравнений

Блок-схема решения системы дифференциальных уравнений



Реализация алгоритма на языке программирования высокого уровня Pascal

Program DIFFERENTSIAL;

 uses wincrt;

 var R1,R2,R3,R4,R5,R6,L,C,E0,h,w,f,fi,t,A,B,D,G,

 Ik1,Ik2,Uk1,Uk2,Ik3,Uk3,Ik4,Uk4,It, Ut, dIt, dUt: real;

 j:integer;

 y: text;

Begin

 clrscr;

 assign(y,'c:\rezyltat.txt');

 rewrite(y);

 R1:=30; R2:=25; R3:=50; R4:=1.88; R5:=15; R6:=50;

 L:=0.00557; C:=0.00002;

 A:=(R5+R6)/(R5+R6+R3); G:=1/(R5+R6+R3); B:=R2/(R1+R2);

 D:=R4+(R1*R2/(R1+R2))+R3*((R5+R6)/(R5+R6+R3));

 h:=0.0002; f:=50; fi:=5; w:=2*pi*f;

 E0:=15; It:=0; Ut:=0; t:=0; j:=0;

While t<=0.0202 do

 begin

 Ik1:=h*(1/L)*(B*(E0+E0*sin(w*t+fi))-D*It-A*Ut);

 UK1:=h*(1/C)*(A*It-G*Ut);

 Ik2:=h*((1/L)*(B*(E0+E0*sin(w*(t+h/2)+fi))-D*(It+Ik1/2)-A*(Ut+Uk1/2)));

 Uk2:=h*(1/C)*(A*(It+Ik1/2)-G*(Ut+UK1/2));

 Ik3:=h*((1/L)*(B*(E0+E0*sin(w*(t+h/2)+fi))-D*(It+Ik2/2)-A*(Ut+Uk2/2)));

 Uk3:=h*(1/C)*(A*(It+Ik2/2)-G*(Ut+UK2/2));

 Ik4:=h*((1/L)*(B*(E0+E0*sin(w*(t+h)+fi))-D*(It+Ik3)-A*(Ut+Uk3)));

 Uk4:=h*(1/C)*(A*(It+Ik3)-G*(Ut+UK3));

 dIt:=(Ik1+2*Ik2+2*Ik3+Ik4)/6;

 dUt:=(Uk1+2*Uk2+2*Uk3+Uk4)/6;

  if j mod 5=0 then

 Writeln(y,'t=',t:6:4,' It=',It:9:6,' Ut=',Ut:6:5);

 Writeln('j=',j:3,' t=',t:6:4,' It=',It:9:6,' Ut=',Ut:6:5);

 It:=It+dIt; Ut:=Ut+dUt; j:=j+1; t:=t+h;

  if t>0.01 then E0:=0;

 end;

 Close(y);

 readln;

End.

Таблица результатов

t I U
0.000 0.000000 0.000000
0.001 0.021116 0.28271
0.002 0.045202 0.95006
0.003 0.074067 1.99946
0.004 0.104367 3.36451
0.005 0.132911 4.92721
0.006 0.156807 6.54132
0.007 0.173674 8.05172
0.008 0.181844 9.31183
0.009 0.180509 10.19881
0.010 0.169796 10.62609
0.011 -0.074194 5.16433
0.012 -0.032145 2.22256
0.013 -0.013829 0.95612
0.014 -0.005949 0.41131
0.015 -0.002559 0.17694
0.016 -0.001101 0.07612
0.017 -0.000474 0.03275
0.018 -0.000204 0.01409
0.019 -0.000088 0.00606
0.020 -0.000038 0.00261

Решение дифференциальных уравнений в пакете MathCAD


Графики зависимости I(t) и U(t).

Результаты значений I и U в зависимости от времени t


 


 


 


 


 


 










Решение интерполяции в пакете Excel

t

I

0,001

0.021116

0,002

0.045202

0,003

0.074067

0,004

0.104367

0,005

0.132911

0,006

0.156807

0,007

0.173674



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

Блок-схема для нахождения выделившийся теплоты на резисторе R4

Реализация алгоритма на языке программирования высокого уровня Pascal

Program teplota;

uses wincrt;

var R4,Q,f,f1,f2,hx,t,t1,t2,S,Int,a2,a1,a0,b2,b1,b0,c2,c1,c0,fn,fk:Real;

n:Integer;

begin

R4:=1.88;

t1:=0.001;

t2:=0.007;

n:=100;

hx:=(t2-t1)/n;

a2:=2170;a1:=17.98;a0:=0.0007;

b2:=-880; b1:=36.38;b0:=-0.027;

c2:=-3515;c1:=62.485;c0:=-0.0917;

t:=t1;

S:=0;

fn:=sqr(a2*t1*t1+a1*t1+a0);

fk:=sqr(c2*t2*t2+c1*t2+c0);

Repeat

  if t<=0.003 then

 f:=sqr(a2*t*t+a1*t+a0)

 else if t<=0.005 then

 f:=sqr(b2*t*t+b1*t+b0)

 else f:=sqr(c2*t*t+c1*t+c0);

 S:=S+f;

 t:=t+hx;

until t>=t2;

S:=S-(fn+fk);

Int:=hx*(((fn+fk)/2)+S);

Q:=R4*Int;

writeln(' Int=',Int:2:8,' Q=',Q:2:7);

End.

Результат: Int =0.00007562

  Q =0.0001422



Вычисление количества теплоты в пакете MathCAD



Заключение

 

В данной курсовой работе преследовалась цель - провести аналитический анализ работы электрической схемы (получить графики зависимости тока и напряжения), а так же количество теплоты, выделяющейся на резисторе за указанный промежуток времени.

Эти расчеты проводились в три этапа:

· выводы системы дифференциальных уравнений.

· аппроксимация полученных результатов.

· нахождение количества теплоты, выделяющейся на резисторе R4.

Все расчеты и вычисления осуществлялись на языке программирования Pascal и в пакете Excel, входящем в семейство Microsoft Office. Параллельно этому производились такие же вычисления в специальном математическом пакете MathCad, но координально другими методами.

Решение системы дифференциальных уравнений:

· метод Рунге-Кутта (Pascal)

· модифицированный метод Эйлера (MathCad)

Количество теплоты, выделяющееся на резисторе:

· методом трапеций (Pascal)

· методом трапеций (MathCad)

После сравнения результатов сделали вывод: что они аналогичны.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: