РефератыМатематикаРаРасчёт распространения тепла вдоль многослойного цилиндра

Расчёт распространения тепла вдоль многослойного цилиндра

ГОУ ВПО «Сургутский государственный университет


Ханты-Мансийского автономного округа — Югры»



Кафедра прикладной математики


Курсовая работа по предмету «Численные методы» на тему


Расчёт распространения тепла вдоль многослойного цилиндра


Выполнил студент группы 11 – 71
факультета Информационных технологий


Илинбаев Николай Геннадьевич


Проверил к.ф.-м.н., доцент кафедры ПМ


Моргун Дмитрий Алексеевич


« »



Сургут — 2010


Содержание


1 Введение

К уравнениям в частных производных приводят задачи газодинамики, теплопроводности, переноса излучения, распротранения нейтронов, теории упругости, электромагнитных полей, процессов переноса в газах, квантовой механики и многие другие.


Уравнения математической физики используются для расчётов распространения тепла, концентрации, волн. Для просмотра изменений температуры в различных точках заданной области применимы формулы теплопроводности. В данной работе рассматривается однородное уравнение теплопроводности и его решение интегро-интерполяционным методом.


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


2 Решение задачи

2.1 Интегро-интерполяционный метод


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


Например, для установления теплопроводности с переменным коэфициентом u t
= ( ku x
) x
выберем шаблон и сопосавим ему ячейку. Обозначая средние точки интервалов сетки полуцелыми индексами, выполним интегрирование по ячееке:



Это соотношение является точным. В правой части приближенно вычислим первый интеграл по формуле правых прямоугольников. Получим следущиее выражение:


( y
ˆ n
− y
n
)( x
n
+1 /
2 − x
n
−1 /
2 ) = τ
[( k
ˆ y
ˆ x
) n
+1 /
2 − ( k
ˆ y
ˆ x
) n
−1 /
2 ] (2)


Заменяя в правой части производные разностями и учитывая, что на равномерной сетке x n
+1 /
2
− x n
−1 /
2
= h
, получим разностную схему


(3)


Если k
= const
, то схема совпадает с неявной схемой.


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


3 Тестовые расчеты

Решим тестовую задачу. Зададим начальные значения: начальная температура по всему цилиндру = 1; температура на левом конце стержня = 10; температура на правом конце стержня = 15; коэфициенты теплопроводности K1=7, K2=35, K3=7.


Тогда расчеты изменений температуры дадут следущие результаты. Полученные графики:



Рис.1. График распределения температуры при t
1
.



Рис.2. График распределения температуры при t
2
.



Рис.3. График распределения температуры при t
3
.



Рис.4. График распределения температуры при t
4
.



Рис.5. График распределения температуры при t
5
.


Из графиков видно, что температура плавно возрастает от краёв цилиндра к его середине.


4 Заключение

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


5 Литература


Список литературы


1. Калиткин Н. Н. Численные методы. М: Наука, 1978.


6 Приложение

Код программы: [1]
unit part1; {$mode objfpc}{$H+} interface


uses


Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,


Buttons, ExtCtrls, Menus, StdCtrls, ComCtrls, Arrow, CheckLst, ActnList,


TAGraph, TASeries; type


{ TForm1 }


TForm1 = class(TForm)


K1Edit: TLabeledEdit;


K2Edit: TLabeledEdit;


K3Edit: TLabeledEdit; Uslovie: TBitBtn;


BtStart1: TBitBtn;


BtClose: TBitBtn;


Chart1: TChart;


Chart1LineSeries1: TLineSeries;


Label1: TLabel;


Label2: TLabel;


Label3: TLabel;


Label4: TLabel;


Label5: TLabel;


Label6: TLabel;


Label7: TLabel;


Label8: TLabel;


RightTemp: TLabeledEdit;


LeftTemp: TLabeledEdit;


Menu1: TMainMenu;


MenuItem1: TMenuItem;


MenuItem2: TMenuItem;


MenuItem3: TMenuItem; MenuItem4:

TMenuItem; redaktor: TNotebook;


Page1: TPage;


Page2: TPage;


GoY: TUpDown;


GoX: TUpDown;


MashtabY: TUpDown; MashtabX: TUpDown; procedure stopClick(Sender: TObject); procedure UslovieClick(Sender: TObject); procedure BtStart1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure MenuItem3Click(Sender: TObject); procedure MenuItem4Click(Sender: TObject); procedure GoYClick(Sender: TObject; Button: TUDBtnType); procedure GoXClick(Sender: TObject; Button: TUDBtnType); procedure MashtabYClick(Sender: TObject; Button: TUDBtnType); procedure MashtabXClick(Sender: TObject; Button: TUDBtnType); procedure VremenaTimer(Sender: TObject);


private


{ private declarations } public


{ public declarations } end;


const n=31; n1=10;//n1-номер узла до которого сохраняется K1.


Aconst=0; Bconst=10; type mass=array[1..n] of double; var


Form1: TForm1;


stepY,Ymin,Ymax,stepX,Xmin,Xmax,w1,w2:double;


Khigh,Lupa:double;


T1,T2,T4,T3:boolean;


{-----------------------------------------------------------------} K,X,XU,B,Aew,Ap,U:mass; shag,dt:double; j:integer;


K1const,K2const,K3const:double; implementation procedure Delay(millisecond: integer); begin sleep(millisecond);


Form1.chart1.repaint; end;


function fun1(Afun1:double):double; begin fun1:=1; end;


procedure ProcedureInit; var i:integer; begin shag:=(Bconst-Aconst)/(n-1); for i:=1 to n do


begin


X[i]:=Aconst+shag*(i-1); B[i]:=fun1(X[i]); end;


for i:=1 to n-1 do


begin


XU[i]:=(X[i]+X[i+1])/2;


if i>2*n1 then K[i]:=K3const else if i>n1 then K[i]:=K2const else K[i]:=K1const;


Aew[i]:=K[i]/shag/shag; end;


end;


procedure TForm1.BtStart1Click(Sender: TObject); var i,ii:integer; begin dt:=0.1;//(j*dt)-дельта-тэ для времени for ii:=1 to 50 do begin


delay(50);


Chart1LineSeries1.Clear; for i:=2 to n-1 do


begin


Ap[i]:=1/(j*dt)+Aew[i-1]+Aew[i]; end;


Chart1LineSeries1.AddXY(X[1],B[1]); for i:=2 to n-1 do begin


U[i]:=(B[i+1]*Aew[i]+B[i-1]*Aew[i-1]+B[i]/(j*dt))/Ap[i]; Chart1LineSeries1.AddXY(X[i],U[i]); end;


Chart1LineSeries1.AddXY(X[n],B[n]); for i:=2 to n-1 do


begin B[i]:=U[i]; end; inc(j); end; end;


procedure TForm1.UslovieClick(Sender: TObject); begin


Chart1LineSeries1.Clear;


K1const:=StrToInt(K1Edit.text);


K2const:=StrToInt(K2Edit.text);


K3const:=StrToInt(K3Edit.text);


ProcedureInit;


B[1]:=StrToInt(LeftTemp.text); B[n]:=StrToInt(RightTemp.text); j:=1;


Form1.BtStart1.enabled:=true; end;


procedure TForm1.stopClick(Sender: TObject); begin end;


procedure TForm1.FormActivate(Sender: TObject); begin


Khigh:=20;stepX:=2;stepY:=2;Lupa:=1;//все коэффициенты chart1.Extent.Xmax:=chart1.Extent.Xmax+Khigh; Chart1.Extent.useXmax:=true;


chart1.Extent.Ymax:=chart1.Extent.Ymax+Khigh; Chart1.Extent.useYmax:=true;


chart1.Extent.Xmin:=chart1.Extent.Xmin-1; Chart1.Extent.useXmin:=true; chart1.Extent.Ymin:=chart1.Extent.Ymin-1;


Chart1.Extent.useYmin:=true; end;


procedure TForm1.MenuItem3Click(Sender: TObject); begin close;


end;


procedure TForm1.MenuItem4Click(Sender: TObject); begin showmessage (’Сделал Илинбаев Н. Г., группа 1171, подгруппа А ’)


end;


procedure TForm1.GoYClick(Sender: TObject; Button: TUDBtnType); begin


stepY:=2; case button of


btNext: begin chart1.Extent.Ymax:=chart1.Extent.Ymax+stepX; Chart1.Extent.useYmax:=true;


chart1.Extent.Ymin:=chart1.Extent.Ymin+stepX;


Chart1.Extent.useYmin:=true;


end; btPrev: begin chart1.Extent.Ymax:=chart1.Extent.Ymax-stepX; Chart1.Extent.useYmax:=true;


chart1.Extent.Ymin:=chart1.Extent.Ymin-stepX;


Chart1.Extent.useYmin:=true; end; end;


end;


procedure TForm1.GoXClick(Sender: TObject; Button: TUDBtnType); begin


case button of


btNext: begin chart1.Extent.Xmax:=chart1.Extent.Xmax+stepX; Chart1.Extent.useXmax:=true;


chart1.Extent.Xmin:=chart1.Extent.Xmin+stepX;


Chart1.Extent.useXmin:=true;


end; btPrev: begin chart1.Extent.Xmax:=chart1.Extent.Xmax-stepX; Chart1.Extent.useXmax:=true;


chart1.Extent.Xmin:=chart1.Extent.Xmin-stepX;


Chart1.Extent.useXmin:=true; end; end;


end;


procedure TForm1.MashtabYClick(Sender: TObject; Button: TUDBtnType); begin


case button of


btPrev: begin chart1.Extent.Ymax:=chart1.Extent.Ymax+Lupa; Chart1.Extent.useYmax:=true;


chart1.Extent.Ymin:=chart1.Extent.Ymin-Lupa;


Chart1.Extent.useYmin:=true;


end;


btNext: begin


chart1.Extent.Ymax:=chart1.Extent.Ymax-Lupa; Chart1.Extent.useYmax:=true;


chart1.Extent.Ymin:=chart1.Extent.Ymin+Lupa;


Chart1.Extent.useYmin:=true; end; end;


end;


procedure TForm1.MashtabXClick(Sender: TObject; Button: TUDBtnType); begin


case button of


btPrev: begin chart1.Extent.Xmax:=chart1.Extent.Xmax+Lupa; Chart1.Extent.useXmax:=true;


chart1.Extent.Xmin:=chart1.Extent.Xmin-Lupa;


Chart1.Extent.useXmin:=true;


end; btNext: begin chart1.Extent.Xmax:=chart1.Extent.Xmax-Lupa; Chart1.Extent.useXmax:=true;


chart1.Extent.Xmin:=chart1.Extent.Xmin+Lupa;


Chart1.Extent.useXmin:=true; end; end;


end;


procedure TForm1.VremenaTimer(Sender: TObject); begin end;


initialization


{$I part1.lrs} end.


[1]
Код программы, реализующей решение расчёт распределения тепла вдоль многослойного цилиндра

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Расчёт распространения тепла вдоль многослойного цилиндра

Слов:1034
Символов:12627
Размер:24.66 Кб.