Разработка компьютерной программы на языке Паскаль для проведения простого теплофизического расчета
Содержание
Техническое задание на курсовой проект
Постановка задачи
Основа тела программы
Блок-схемы
Расчет основных параметров
Исследование температурных полей
Исследование средней температуры
Исследование потока тепла на границе
Разбор практических примеров
Выводы
Техническое задание на курсовой проект
"Разработка компьютерной программы на языке Паскаль для проведения простого теплофизического расчета"
Созданная диалоговая компьютерная программа, должна иметь возможность рассчитывать для момента времени (изложенного в варианте задания):
- температурное поле;
- удельный расход тепла;
- тепловой поток на поверхности рассматриваемого тела.
Компьютерная программа должна иметь возможность:
отображать результаты в табличном виде;
отображать результаты в графическом виде (семейство кривых) на экране компьютера;
сохранять полученные результаты во внешних файлах.
Требования к расчетам, полученным с помощью программы:
выбор параметров расчета должен осуществляться на основе базы данных теплофизических параметров;
результаты расчета представляются в размерном и безразмерном видах
2. Постановка задачи
Задача для проведения теплофизического расчета с помощью программы написанной на языке Pascal
Вариант 20
Температурное поле внутри полого цилиндра при смешанных граничных условиях второго и третьего рода при qv=0; b=R/R1=(R2-R1)/R1=k-1; k=R2/R1>1 и тепловом потоке на внутренней поверхности трубы - экспоненциально убывающей функции f1=exp(-PdF0); f2=T0 определяется по формуле:
R=R2-R1
где
- приведенная температура
- приведенная координата
d – коэффициент Предводителева
3. Основа тела программы
program Program_Oleg;
uses crt;
const
numpar=10;
numfo=10;
numx=21;
type
tmenuarr = array[1..9] of string[20];
var
mas_ip: array[1..numpar] of string;
mas_znp: array[1..numpar] of string;
mas_rpar: array[1..numpar] of string;
mas_otpole: array[1..numx] of real;
mas_pole: array[1..numfo,1..numx] of real;
mas_xrteplo: array[1..numfo] of real;
mas_ptep: array[1..numfo] of real;
mas_fur:array[1..numfo] of real;
amenu1: tmenuarr;
nmenu1: integer;
procedure f_cont;
var ch: char;
begin
writeln;
writeln;
writeln('Press any key to continue...');
ch:=readkey;
clrscr;
end;
procedure menuinit;
begin
amenu1[1]:='Parameters';
amenu1[2]:='Tables';
amenu1[3]:='Curves';
amenu1[4]:='Files';
amenu1[5]:='Quit';
end;
procedure line80(s: char);
var i:integer;
begin
for i:=1 to 80 do write(s);
end;
function menusel(menu:tmenuarr;num:integer;namemenu:string):integer;
var
i,ich: integer;
ch: char;
begin
gotoxy(1,23);
line80('-');
gotoxy(1,24);
write(namemenu,'> ');
for i:=1 to num do
begin
HighVideo;write(i:1);NormVideo;
write('. ',menu[i]);
if (i<>num) then write(' | ')
end;
repeat
ch:=readkey; ich:=ord(ch)-48;
until+ (ich>=1) and (ich<=num);
menusel:=ich;
end;
procedure viewparam;
var i:integer;
begin
gotoxy(1,1);
line80('=');
writeln('Year: 2006; Course: 2; Groupe: FT-24; Student: Lubichenko Oleg; Project # 1');
line80('-');
writeln('Current parameter''s');
for i:=1 to numpar do
writeln(mas_ip[i]:10,' = ',mas_znp[i]:10);
end;
procedure pr_ps;
begin
clrscr;
write('Setup Parameters');
f_cont;
end;
procedure pr_tabl;
begin
clrscr;
write('Print tables');
f_cont;
end;
procedure pr_graf;
begin
clrscr;
write('Output curves');
f_cont;
end;
procedure pr_vf;
begin
clrscr;
write('Output to files');
f_cont;
end;
procedure pr_exit;
begin
clrscr;
write('Output to file of config''s');
f_cont;
end;
procedure pr_nz;
var
i: integer;
s:string;
begin
for i:=1 to numpar do
begin
str(i,s);
mas_ip[i]:='Par_'+s;
mas_znp[i]:=s;
end;
end;
begin
clrscr;
menuinit;
pr_nz;
viewparam;
repeat
nmenu1:=menusel(amenu1,5,'Main');
case nmenu1 of
1: pr_ps;
2: pr_tabl;
3: pr_graf;
4: pr_vf;
5: pr_exit;
end;
viewparam;
until nmenu1=5;
end.
4. Блок- схемы
Упрощенная блок-схема:
Данная блок-схема отображает основные действия, которые может воспроизводить программа.
Детальная блок-схема:
Данная блок-схема отображает алгоритм действия программы.
5. Расчет основных параметров
Ниже приведен один из модулей программы, позволяющий определить и рассчитать параметры необходимые для решения поставленной задачи теплофизического расчета.
function exp0(x:real):real;
begin
if x<-20.0 then
exp0:=0.0e0
else
exp0:=exp(x);
end;
procedure o_schet;
var
i,j: integer;
valcode: integer;
po,m,am,tc,t0,r,qv,lam,fo,x,tm,de,he,tm100,tm095,p1:real;
begin
m:=0;
if o_parcal[2]='Cylinder' then m:=1;
if o_parcal[2]='Ball' then m:=2;
am:=(m+1)*(m+5)/2;
val(o_parcal[9],qv,valcode);
val(o_parcal[7],t0,valcode);
val(o_parcal[6],tc,valcode);
val(o_parcal[5],lam,valcode);
val(o_parcal[8],r,valcode);
val(o_parcal[3],de,valcode);
val(o_parcal[4 ],he,valcode);
writeln(' am= ',am:5:2,' qv= ',qv:5:2,o_razm [9],' r= ',r:5:2,o_razm [8]);
writeln(' de= ',de:5:2,o_razm [3],' he= ',he:5:2,o_razm [4 ]);
writeln(' t0= ',t0:5:2,o_razm [7],' tc= ',tc:5:2,o_razm [6],' lam= ',lam:5:2,o_razm [5]);
po:=qv*r*r/lam/(tc-t0);
k:=R2/R1
Bi:=2;
fo:=0.1;
R1:=0.1;
R2:=0.12;
Pd:=5;
writeln(' Po= ',po:12:5);
for i:=1 to numfo do begin
fo:=o_Fur[i];
x:=1.0;
tm100:=exp0(-Pd*fo)*(((Bi+1)/Bi)-x)+(A3*exp0(-Afo)-((A2-A3)/A-Pd)*exp(-A*fo)-exp0(-Pd*fo))*(((Bi+2)/Bi)-x*x);
A:=((10*Bi)/D)*(Bi*(3*k+1)+12*k);
A2:=20*(k-1)*Bi*(Bi+3)*D^(-1);
A3:=(1/(2*D))*(Bi*Bi*(7*k+18)+5*Bi*(7*k+13)+60*(k+1));;
tm100:=abs(round(tm100*10000)/10000.0);
x:=0.95;
tm095:=exp0(-Pd*fo)*(((Bi+1)/Bi)-x)+(A3*exp0(-Afo)-((A2-A3)/A-Pd)*exp(-A*fo)-exp0(-Pd*fo))*(((Bi+2)/Bi)-x*x);
A:=((10*Bi)/D)*(Bi*(3*k+1)+12*k);
A2:=20*(k-1)*Bi*(Bi+3)*D^(-1);
A3:=(1/(2*D))*(Bi*Bi*(7*k+18)+5*Bi*(7*k+13)+60*(k+1));;
tm095:=abs(round(tm095*10000)/10000.0);
o_rptngt[i]:=-lam*(t0-tc)*(tm100-tm095)/r/0.05;
for j:=1 to numx do begin
x:=o_pwtp[j];
o_masF [i,j]:=exp0(-Pd*fo)*(((Bi+1)/Bi)-x)+(A3*exp0(-Afo)-((A2-A3)/A-Pd)*exp(-A*fo)-exp0(-Pd*fo))*(((Bi+2)/Bi)-x*x);
A:=((10*Bi)/D)*(Bi*(3*k+1)+12*k);
A2:=20*(k-1)*Bi*(Bi+3)*D^(-1);
A3:=(1/(2*D))*(Bi*Bi*(7*k+18)+5*Bi*(7*k+13)+60*(k+1));;
o_masF [i,j]:=abs(round(o_masF [i,j]*10000)/10000.0);
end;
end;
p1:=o_rptngt[1]; if abs(p1)<1e-6 then p1:=1;
for i:=1 to numfo do
o_rptngt1[i]:=o_rptngt[i]/p1;
if m=0 then begin
for i:=1 to numfo do begin
tm:=o_masF [i,1]+o_masF [i,numx];
for j:=2 to numx-1 do
if (j mod 2)=0 then
tm:=tm+4*o_masF [i,j]
else
tm:=tm+2*o_masF [i,j];
tm:=tm/3/(numx-1);
tm:=abs(round(tm*1000)/1000.0);
o_masrf 1[i]:=abs(tm);
tm:=tm*(t0-tc)+tc;
o_masrf 2[i]:=tm;
o_masrf [i]:=he*de*(tm-t0);
end;
end;
if m=1 then begin
for i:=1 to numfo do begin
tm:=o_masF [i,1]*2*o_pwtp[1]+o_masF [i,numx]*2*o_pwtp[numx];
for j:=2 to numx-1 do
if (j mod 2)=0 then
tm:=tm+4*o_masF [i,j]*2*o_pwtp[j]
else
tm:=tm+2*o_masF [i,j]*2*o_pwtp[j];
tm:=tm/3/(numx-1);
tm:=abs(round(tm*1000)/1000.0);
o_masrf 1[i]:=tm;
tm:=tm*(t0-tc)+tc;
o_masrf 2[i]:=tm;
o_masrf [i]:=he*de*(tm-t0);
end;
end;
if m=2 then
begin
for i:=1 to numfo do
begin
tm:=o_masF [i,1]*3*o_pwtp[1]*o_pwtp[1]+o_masF [i,numx]*3*o_pwtp[numx]*o_pwtp[numx];
for j:=2 to numx-1 do
if (j mod 2)=0 then
tm:=tm+4*o_masF [i,j]*3*o_pwtp[j]*o_pwtp[j]
else
tm:=tm+2*o_masF [i,j]*3*o_pwtp[j]*o_pwtp[j];
tm:=tm/3/(numx-1);
tm:=round(tm*1000)/1000.0;
o_masrf 1[i]:=tm;
tm:=tm*(t0-tc)+tc;
o_masrf 2[i]:=tm;
o_masrf [i]:=he*de*(tm-t0);
end;
end;
end;
6. Исследование температурных полей
1. Введите Вашу фамилию и имя
Любиченко Олег
2. Введите номер варианта задания
20
3. Введите номер учебной группы
ФТ-24
4. Введите текущий год
2006
5. Для вашего варианта как ведет себя температурное поле с ростом числа Фурье?
С ростом числа Фурье температура падает
6. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0 10.0 50.0 100.0
----------------------------------------------------------------------
1. 0.00 2.48 2.32 2.03 1.60 1.43 0.84 0.19 0.02 0.00 0.00
2. 0.02 2.46 2.30 2.02 1.59 1.42 0.84 0.18 0.02 0.00 0.00
3. 0.04 2.44 2.28 2.00 1.57 1.40 0.83 0.18 0.02 0.00 0.00
7. В зависимости от геометрии тела температурное поле при фиксированных остальных параметрах ведет себя следующим образом.
С ростом к температура падает
8. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
к=0,15
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0 10.0 50.0 100.0
----------------------------------------------------------------------
1. 0.00 2.48 2.32 2.03 1.60 1.43 0.84 0.19 0.02 0.00 0.00
2. 0.02 2.46 2.30 2.02 1.59 1.42 0.84 0.18 0.02 0.00 0.00
k=1.0
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0 10.0 50.0 100.0
----------------------------------------------------------------------
1 0.00 2,43 2,11 1,51 0,52 0,12 1,22 1,91 0.02 0.00 0.00
2 0.02 2,42 2,09 1,49 0,51 0,11 1,22 1,91 0.02 0.00 0.00
9. Как ведет себя температурное поле как функция числа Померанцева?
В задаче нет числа Померанцева
10. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
11. Для вашего варианта как ведет себя температурное поле с ростом числа Био?
С ростом числа Био температура уменьшается
12. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Bi=2
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0 - --------------------------------------------------
1. 0.00 2,43 2,11 1,51 0,52 0,12 1,22 1,91
2. 0.02 2,42 2,09 1,49 0,51 0,11 1,22 1,91
Bi=3
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0
----------------------------------------------------
1. 0.00 2,12 1,80 1,24 0,32 0,04 1,17 1,44
2. 0.02 2,10 1,79 1,22 0,31 0,05 1,18 1,44
13. Для вашего варианта как ведет себя температурное поле с ростом числа Предводителева?
С ростом числа Предводителева температура уменьшается
14. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Pd=0.5
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0 - ---------------------------------------------------
1. 0.00 2,43 2,11 1,51 0,52 0,12 1,22 1,91
2. 0.02 2,42 2,09 1,49 0,51 0,11 1,22 1,91
Pd=0.8
Tables: Teta-temperatures
# R/Fo 0.1 0.2 0.4 0.8 1.0 2.0 5.0
----------------------------------------------------
1. 0.00 2.36 1.97 1.29 0.27 0.11 1,17 1,26
2. 0.02 2,34 1,28 1,28 0,26 0,12 1,18 1,26
15. Для вашего варианта укажите интервал значений параметра Фурье, при которых наблюдается зависимость температурного поля от координат.
0.1-50
16. Для вашего варианта как ведет себя температурное поле с ростом числа Кирпичева?
Числа Кирпичева нет
17. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
7. Исследование средней температуры
1. Введите Вашу фамилию и имя
Любиченко Олег
2. Введите номер варианта задания
20
3. Введите номер учебной группы
ФТ-24
4. Введите текущий год
2006
5. Для вашего варианта как ведет себя средняя температура с ростом числа Фурье?
С ростом числа Фурье ср. т. уменьшается
6. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 2.4827
2. 0.2 1.4474
3. 0.4 -0.3610
4. 0.8 -3.0923
5. 1.0 -2.7040
6. 2.0 0.0817
7. 5.0 0.1601
8. 10.0 -1.9548
9. 50.0 -3.4056
10. 100.0 -3.4056
7. В зависимости от геометрии тела средняя температура при фиксированных остальных параметрах ведет себя следующим образом.
С ростом диаметра ср. т. уменьшается
8. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
k=0.15
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 2.847
2. 0.2 2.533
3. 0.4 1.954
k=1.0
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 2.669
2. 0.2 2.781
3. 0.4 1.668
9. Как ведет себя средняя температура как функция числа Померанцева?
Нет числа Померанцева
10. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
11. Для вашего варианта как ведет себя средняя температура с ростом числа Био?
С ростом числа Био ср. т. уменьшается
12. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Bi=2
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 2.669
2. 0.2 2.781
3. 0.4 1.668
Bi=3
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 1.597
2. 0.2 0.779
3. 0.4 -0.694
13. Для вашего варианта как ведет себя средняя температура с ростом числа Предводителева?
С ростом числа Предводителева ср. т. уменьшается
14. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
Pd=0.5
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 1.597
2. 0.2 0.779
3. 0.4 -0.694
Pd=0.8
Tables: Heat spend
# Fo Qv,10^8
1. 0.1 1.4405
2. 0.2 0.5040
3. 0.4 -1.117
15. Для вашего варианта укажите интервал значений параметра Фурье, при которых наблюдается зависимость средней температуры как функции времени.
0,1-100
16. Для вашего варианта как ведет себя средняя температура с ростом числа Кирпичева?
Нет числа Кирпичева
17. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
8. Исследование потока тепла на границе
1. Введите Вашу фамилию и имя
Любиченко Олег
2. Введите номер варианта задания
20
3. Введите номер учебной группы
ФТ-24
4. Введите текущий год
2006
5. Для вашего варианта как ведет себя поток на поверхности с ростом числа Фурье?
По условию задачи поток равен 0
6. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
# Fo P,10^6 P/P[Fo[1]]
1. 0.1 0.0000
2. 0.2 0.0000
3. 0.4 0.0000
4. 0.8 0.0000
5. 1.0 0.0000
6. 2.0 0.0000
7. 5.0 0.0000
8. 10.0 0.0000
9. 50.0 0.0000
10.100.0 0.0000
7. В зависимости от геометрии тела поток на поверхности при фиксированных остальных параметрах ведет себя следующим образом.
По условию задачи поток равен 0
8. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
# Fo P,10^6 P/P[Fo[1]]
1. 0.1 0.0000
2. 0.2 0.0000
3. 0.4 0.0000
4. 0.8 0.0000
5. 1.0 0.0000
6. 2.0 0.0000
7. 5.0 0.0000
8. 10.0 0.0000
9. 50.0 0.0000
10.100.0 0.0000
9. Как ведет себя поток на поверхности как функция числа Померанцева?
По условию задачи поток равен 0
10. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
11. Для вашего варианта как ведет себя поток на поверхности с ростом числа Био?
По условию задачи поток равен 0
12. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
# Fo P,10^6 P/P[Fo[1]]
1. 0.1 0.0000
2. 0.2 0.0000
3. 0.4 0.0000
4. 0.8 0.0000
5. 1.0 0.0000
13. Для вашего варианта как ведет себя поток на поверхности с ростом числа Предводителева?
По условию задачи поток равен 0
14. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
# Fo P,10^6 P/P[Fo[1]]
1. 0.1 0.0000
2. 0.2 0.0000
3. 0.4 0.0000
4. 0.8 0.0000
5. 1.0 0.0000
6. 2.0 0.0000
7. 5.0 0.0000
8. 10.0 0.0000
9. 50.0 0.0000
10.100.0 0.0000
15. Для вашего варианта укажите интервал значений параметра Фурье, при которых наблюдается зависимость потока на поверхности как функции времени.
По условию задачи поток равен 0
16. Для вашего варианта как ведет себя поток на поверхности с ростом числа Кирпичева?
По условию задачи поток равен 0
17. В доказательство ответа на предыдущий вопрос я могу привести следующие табличные зависимости.
9. Разбор практических примеров
1. Введите Вашу фамилию и имя
Любиченко Олег
2. Введите номер варианта задания
20
3. Введите номер учебной группы
ФТ-24
4. Введите текущий год
2006
5. Считая, что физическая система описывается уравнениями вашего варианта, оцените время протекания процесса в секундах (минутах, часах, сутках). При этом избыточная температура равна 1000 Цельсия, толщина тела 50 см. Рассмотрите варианты того, что тело состоит из меди, железа, кирпича.
для меди более 30 часов, для железа около 15 суток, для кирпича около 297,5 суток
6. Если ваш вариант задания описывает тела разной геометрии, решите предыдущую задачу для тел разной геометрии.
10. Выводы
В ходе разработки компьютерной программы, для решения задачи теплофизического расчета, были приобретены важные знания и навыки. А также получен дополнительный опыт работы с программной средой Pascal. Результатами работы стала программа, имеющая возможность рассчитывать температурное поле, удельный расход тепла, тепловой поток на поверхности рассматриваемого тела, а также содержащая в себе следующие функции: отображение результатов в табличном виде, отображение результатов в графическом виде (семейство кривых) на экране компьютера, сохранение полученных результатов во внешние файлы.
Список литературы
Титаренко М. Г. Работа с программной средой Pascal// Прагма 2008, ил.
Томпсон Р. Основы дифференциального программирования. – М.: Полюс, 2005, - 302с.
Тарковский Д.Л. Вычислительные машины. – М.: Пиренс, 2002, -461с.