Так как подпрограмма OUTPUT вызывается 1 раз на каждой итерации, то в ней удобно изменять любые величины, которые меняются в зависимости от номера итерации или временных шагов. Если нужно изменить значения переменной KSOLVE(NF) для «включения» или «выключения» решения уравнения для соответствующего ф, то это должно быть сделано в OUTPUT.
Процедура РНI
Неизменяемая часть процедуры обеспечивает решение обобщенных дифференциальных уравнений для большого числа различных переменных ф. Физический смысл F(I,J,NF) не предопределен. Как же программа узнает смысл и физическое поведение каждой зависимой переменной ф? Это происходит не с помощью информации, записанной в TITLE (NF), а с помощью данных, определенных в PHI для каждого значения NF.
Значение KSOLVE(NF) для каждого NF проверяется в подпрограмме HEART. Если KSOLVE (NF) =0, то начинается процесс расчета коэффициентов дискретных аналогов для соответствующего F (I, J, NF). В начале этого процесса происходит вызов PHI. Задача процедуры PHI заключается в определении и последующем предоставлении значений λ, Г, Sc, SP и информации о граничных условиях программы. Величинам λ и Г соответствуют массивы ALAM(I,J) nGAM(I,J) при 1=2, ..., L2 и J=2, ...,M2. В PHI также определяются значения коэффициентов источниковых членов Sc и Sp. Они задаются массивами SC (I, J) nSP(I,J) для 1=2, .... L2 и J=2, ..., М2. Единицы измерения Sc и Sp должны соответствовать единицам измерения скорости генерации в единице объема. Кроме того, Sp должен быть отрицательным или равным нулю. Значения Sc и Sр задаваемые по умолчанию, равны нулю, поэтому если в исходном уравнении отсутствуют источниковые члены, то не требуется выполнять никаких дополнительных действий. Наконец, задача PHI заключается в задании граничных условий с помощью индикаторов KBCIl(J), KBCLl(J), KBCJl(I), KBCMl(I). Все индикаторы КВС, заданные по умолчанию, равны единице.
После запуска программы пользователь видит окно, в котором необходимо
ввести исходные температуры, выбрать варианты вывода графической модели.
На рисунках 5.2 и 5.3 интерфейс, уже после решения задачи. Пользователю
сообщается, какие параметры были применены для расчета. Можно сохранять все
результаты как графические, так и табличные значения. Это поможет в дальнейшем,
производить какие либо исследования уже по сохраненным результатам.
В настройках программы, предусмотрена возможность изменения конфигурации
канала, вязкость жидкости, теплопроводность материала кожуха и так далее.
Также можно вывести табличные значения и для нагрева жидкости. В таблице строки соответствуют секторам, а столбцы - радиусам при построении сетки. На основе этих значений строиться графическая модель (рисунок 5.5).
6. Результаты исследования
В программе, как уже упоминали раньше, предусмотрен выбор жидкости, с различной вязкостью μ (Па*с); материала кожуха, у которых отличается теплопроводность k (вт/К*м); изменение конфигурации трубы, тем самым придать жесткость канала и увеличить площади теплообмена. В зависимости какие параметры были применены при расчете задачи, получаем различные температурные поля.
Приведем несколько экспериментов. Решим задачу, используя разные
материалы и изменяя жидкость.
Сравним результаты вычисления для воды и для мазута. На рисунке 6.1 и 6.2 можно увидеть табличные значения нагрева этих жидкостей. В обоих случаях материал кожуха чугун.
Так же можем сравнить распределение температуры для кожуха. На рисунке
6.1 и 6.3 приведены результаты нагрева кожуха для случаев, когда материал
кожуха чугун и алюминий.

Рассмотрим распределение температуры, когда конфигурация трубы разная.
Выберем материал кожуха алюминий, в качестве жидкости воду.
Во всех трех случаях температура нагрева кожуха - 100 градусов, а
температура жидкости изначально равно 10 градусам. По рисункам можно
определить, что площадь нагрева будет больше, конечно же, у канала с шестью
ребрами. Температура понижается по направлению к середине канала.
.3 Программа расчёта и моделирования физических полей ELCUT
® - это мощный современный комплекс программ для инженерного моделирования электромагнитных, тепловых и механических задач методом конечных элементов. Дружественный пользовательский интерфейс, простота описания даже самых сложных моделей, широкие аналитические возможности комплекса и высокая степень автоматизации всех операций позволяют разработчику полностью сосредоточиться на своей задаче.
Это приложение может быть использовано для проектирования и анализа теплового состояния различных систем. Можно вычислять как установившееся распределение температуры, так и изучать процессы нагрева и охлаждения.широко используется в научных исследованиях, промышленности и образовании. Академические и прикладные научные центры используют моделирование полей для изучения разнообразных физических процессов, а также для разработки приборов и устройств, применяемых в научных исследованиях.становится стандартным инструментом для обучения студентов различных специальностей и все более широко входит в практику преподавания физики, электротехники, прикладных дисциплин во множестве высших учебных заведений России и стран СНГ.
Ведущие электромашиностроительные заводы страны применяют ELCUT для расчета электромагнитных параметров и тепловых режимов электрических машин. Необходимость в анализе поля возникает при расчёте для оптимизации существующих машин, либо при расчёте машин нетрадиционных конструкций. Тепловые расчеты с помощью ELCUT успешно используют при проектировании систем обогрева с помощью нагреваемых кабелей, специализированных и комбинированных систем контроля температуры, вентилируемых фасадов, ограждающих конструкций в строительстве и архитектурном проектировании.- это программа расчёта и моделирования физических полей, и все её применения так или иначе связаны с наукой. Традиционные направления, где применяется моделирование полей, - физические исследования, электротехника, строительная механика, - в последнее время дополняются многочисленными примерами из области нанотехнологий, биологии, химии.
Моделируемые в ELCUT физические задачи, связанные с электромагнитными
полями, электрическими токами, температурными полями, упругими напряжениями и
деформациями - сегодня возникают в самых различных направлениях научных
исследований. Большая часть применений, описанных на страницах Промышленность и
Образование, тоже можно отнести к научным. Популярность программы в ведущих
российских и зарубежных научных центрах доказывается её внедрениями и
публикациями, связанными с ELCUT.
.4 Проверка корректности работы программы
Результаты, полученные в процессе вычислений в дипломной работе, отвечают
условиям адекватности. Чтобы убедиться в корректности работы приложения,
приведем результаты, вычисленные в программе Elcut.
Температурное поле вычисляется в программе Elcut при таких же граничных условиях и температурных
потоках, как и в программе реализованное нами. Если сравнить рисунок 6.7,
сделанный в программном комплексе Elcut, и рисунок 6.8, построенный с помощью нашего приложения, то значения
температур совпадают.
Заключение
Для выполнения дипломной работы был построен теплообменник, который состоит из металлического кожуха и цилиндрической трубы, по которой течет жидкость.
Требуется исследовать, как выглядит температурное поле жидкости при изменении настраиваемых параметров.
При написании дипломной работы были использованы знания, полученные в процессе учебы.
При выполнении поставленной задачи была:
– создана математическая модель распределения температуры жидкости с заданной вязкостью в цилиндрическом канале;
– разработан алгоритм реализации модели с помощью выбранных методов;
– разработана программа по алгоритму с помощью выбранного программного обеспечения;
– разработана цифровая модель изменения поля температуры в зависимости от вязкости жидкости, теплопроводности материала кожуха, конфигурации канала и граничных условий;
– проведена проверка адекватности модели поставленной физической задачи.
В данном проекте также приведены теоретические сведения, необходимые для решения поставленной задачи и рассмотрены результаты выполненной работы.
Все, поставленные ранее задачи, выполнены. Полученный программный продукт
готов к использованию.
1. Патанкар С.В., Численное решение задач теплопроводности и конвективного теплообмена при течениях в каналах: пер. с англ. Е.В. Калабина; под ред Г.Г. Янькова. - М.: Издательство МЭИ, 2003. - 312с., ил
2. Чижиумов С.Д., Основы гидродинамики: учеб. пособие - Комсомольск-на-Амуре : ГОУВПО «КнАГТУ», 2007. - 106 с.
. Патанкар С.В., Численные методы решения задач теплообмена и динамики жидкости: пер. с англ. - М. : Энергоатомиздат, 1984. - 152 с.
. Сологаев В.И. Гидравлика (механика жидкости и газа): учеб. пособие. - Омск: изд. СибАДИ, 2010. - 64с.
. Выгодский М.Я. Справочник по элементарной математике.- М.: Наука, 1982.- 336с.
. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся ВТУЗов.- 13-е изд., исправленное.-М.: Наука, 1986.- 544с.
. Елизарова Т.Г., Математические модели и численные методы в динамике газа и жидкости. - М.: Физический факультет МГУ, 2005. - 224с.
. Гебхарт Б., Джалурия Й., Свободноконветивные течения, тепло- и массообмен., кн. 1., пер. с англ. - М.: Мир, 1991. - 678 с., ил.
procedure DEFLT // задание переменных по умолчанию
var,n,i,j:integer;:=0;:=5;:=0;:=2;:=1;:=1;:=3;:=1.e-20;:=1.e+20;:=0.;:=1.e+20;[1]:=0.;:=1.;:=1.;nz:=1 to nzmax do[nz]:=1.;[nz]:=1.;;;
PHI // определение значенийPhi;,j:integer;j:=2 to M2 doi:=2 to L2 do[i,j]:=cond; //коэфф-т диффузии Г;
for j:=2 to M2 do // Определение граничных условий
begin[j]:=2;[j]:=2;;
for i:=1 to ncvlx do // Определение граничных условий
// для представления правой границы в виде оси симметрии
kbcm1[i]:=2;
end;
procedure GRID // предоставление информации о расчетной сетке
procedure Grid;:=1.; // радиус кожуха:=0.8; // радиус трубы
alpha:=180; // рассчитываемая область, половина круга
xl:=0.5*alpha*Pi*rout*rout/180; // формула круга[1]:=rin; // радиус вектор:=rout-rin; // толщина кожуха:=47; // количество рассчитываемых радиус векторов
ncvly:=15; // количество рассчитываемых секторов
mode:=3; // применяется полярная система координат
EZgrid; // вызов процедуры
end;
procedure BEGIN // Определение начальных граничных условий
var,j:integer;[2]:=1;[1]:=1;[2]:=1;[1]:=1;[2]:=1;:=6;
// задаем теплопроводность металламForm1.N14.Checked then
cond:=3;Form1.N15.Checked then cond:=7;Form1.N16.Checked then
cond:=11;Form1.N17.Checked then cond:=19;
//присваиваем произвольные значения
cp:=1; //теплоемкости
den:=1; //плотности
dpdz:=-1;
//градиенту давления
t1:=StrToFloat(Form1.Edit1.Text); // температура нагрева
t2:=StrToFloat(Form1.Edit2.Text); // температура стенки канала
temperGraf := t2;
phocp:=den*cp; //объемная теплоемкость
for j:=1 to m1 doi:=1 to l1 do[i,j,1]:=0;[i,j,2]:= t1; //t1;[i,m1,2]:= t2; //t2;;;
OUTPUT; // расчет и вывод на экран
var,i,iunit:integer;(iter=0) then[1]:=1;;
if(iter=3) then // после трех итераций нахождения скорости w,
begin // начинаем находить температуру Т
ksolve[1]:=1;
ksolve[2]:=0;;;;
PRINT // Вывод информации о сетке и двумерных полей,j:integer;, temper1: double;
// выводим значения в таблицуi:=49 downto 1 doj:=1 to 17 do.StringGrid2.Cells[i,j] := FloaToStrF((f[i,j,2]),ffFixed,5,2);
// выводим заголовки таблицы
for i:=49 downto 1 do
Form3.StringGrid2.Cells[i,0] := IntToStr(i) + ' радиус';j:=1 to 17 do.StringGrid2.Cells[0,j] := IntToStr(j) + ' сектор';
:= (StrToFloat(Form3.StringGrid2.Cells[48,16]) +(Form3.StringGrid2.Cells[49,16]))/2;.StringGrid2.Cells[48,17]:= FloatToStrF(temper,ffFixed,5,2);:= (StrToFloat(Form3.StringGrid2.Cells[2,16]) +(Form3.StringGrid2.Cells[1,16]))/2;.StringGrid2.Cells[1,17]:= FloatToStrF(temper,ffFixed,5,2);
:= StrToFloat(Form3.StringGrid2.Cells[13,2]);:= StrToFloat(Form3.StringGrid2.Cells[1,2]);
(Form1.N41.Checked = true) then:= StrToFloat(Form3.StringGrid2.Cells[7,2])(Form1.N61.Checked = true) then:= StrToFloat(Form3.StringGrid2.Cells[4,2]);:= StrToFloat(Form3.StringGrid2.Cells[9,2]);;
end;
procedure ZGRID // предоставление информации о расчетной сетке
var,i1,i2,j,j1,j2,nz,ilast,jlast:integer;,fcvlx,fcvly:double;[2]:=0.;:=2;nz:=1 to nzx do:=(ncvx[nz]);:=i2;:=ilast+1;:=ilast+ncvx[nz];i:=i1 to i2 do:=(i-ilast)/fcvlx;(powrx[nz]>0) then[i]:=xu[ilast]+xzone[nz]*power(dd,powrx[nz])[i]:=xu[ilast]+xzone[nz]*(1.-power((1.-dd),(-powrx[nz])));;
end;
L1:=i2; //Рассматривается направление Y
yv[2]:=0.;:=2;nz:=1 to nzy do:=ncvy[nz];:=j2;:=jlast+1;:=jlast+ncvy[nz];j:=j1 to j2 do:=(j-jlast)/fcvly;(powry[nz]>0) then[j]:=yv[jlast]+yzone[nz]*power(dd,powry[nz])[j]:=yv[jlast]+yzone[nz]*(1.-power((1.-dd),(-powry[nz])));;;:=j2;;
EZGRID,fcvly,dd:double;
i,j:integer;
//Построение сетки зона за зоной
//Рассматривается направление X:=ncvlx+2;[2]:=0.; //координаты граней по х[L1]:=xl;
L2:=L1-1;:=ncvlx;i:=3 to L2 do:=(i-2)/fcvlx;(powerx>0) then[i]:=xl*power(dd,powerx)[i]:=xl*(1.-power((1.-dd),(-powerx)));;:=ncvly+2;[2]:=0.;[M1]:=yl;:=M1-1;:=ncvly;j:=3 to M2 do:=(j-2)/fcvly;(powery>0) then[j]:=yl*power(dd,powery)[j]:=yl*(1.-power((1.-dd),(-powery)));
end;;
procedure HEART()
// Расчет коэффициентов дискретных аналогов и модификация граничных условий
label;,j,i:integer;,rlx,vol,apt,diff,temp,area,anb,ainr:double;
begin
//Построение цикла для всех аналоговn:=1 to nfmax do //последовательное вычисление каждой зависимой переменной:=n;(ksolve[nf]=0) then goto Lab2; //переход к следующей итерации цикла;
//Вычисление коэффициентов дискретных аналогов:=4./3.;
if (kord=1) then beta:=1.;:=(1.-relax[nf])/relax[nf];
//Рассматриваются объемные условияj:=2 to M2 do
for i:=2 to L2 do
vol:=Ycvr[j]*Xcv[i]; //объем КО
apt:=alam[i,j]/dt;[i,j]:=(sc[i,j]+apt*f[i,j,nf])*vol;//коэф-т b[i,j]:=(apt-sp[i,j])*vol; //коэфф-т ар
end;
//коэффициенты для распространения по Х
for j:=2 to M2 doi:=2 to L3 do:=arx[j]*2.*gam[i,j]*gam[i+1,j]/((Xcv[i]*gam[i+1,j]+Xcv[i+1]*gam[i,j]+small)*sx[j]);[i,j]:=diff+small; //коэф-т aE[i+1,j]:=aip[i,j]; //коэф-т aW;j:=2 to M2 do
//Рассматривается граница i=1:=gam[2,j]/(0.5*xcv[2]*sx[j])+small; //диффузионная[2,j]:=beta*diff; //коэф-т aW[1,j]:=aim[2,j]; //коэф-т aE[2,j]:=aim[2,j]*arx[j];[1,j]:=(beta-1)*aip[2,j]/arx[j];[2,j]:=aip[2,j]+aim[1,j]*arx[j];(kbci1[j]=1) then[2,j]:=sc[2,j]+aim[2,j]*f[1,j,nf][1,j]:=aip[1,j]-flxpi1[j]; //коэф-т aР[1,j]:=flxci1[j]; //коэф-т b:=aim[2,j]/sp[1,j];[2,j]:=sp[2,j]-aip[1,j]*temp;[2,j]:=aip[2,j]-aim[1,j]*temp; //коэф-т aE[2,j]:=sc[2,j]+sc[1,j]*temp;;[2,j]:=sp[2,j]+aim[2,j];
aim[2,j]:=0.;
//Рассматривается граница i=L1
diff:=gam[L2,j]/(0.5*xcv[L2]*sx[j])+small;[L2,j]:=beta*diff;[L1,j]:=aip[L2,j];[L2,j]:=aip[L2,j]*arx[j];[L1,j]:=(beta-1)*aim[L2,j]/arx[j];[L2,j]:=aim[L2,j]+aip[L1,j]*arx[j];(kbcL1[j]=1) then[L2,j]:=sc[L2,j]+aip[L2,j]*f[L1,j,1][L1,j]:=aim[L1,j]-flxpL1[j];[L1,j]:=flxcL1[j];:=aip[L2,j]/sp[L1,j];[L2,j]:=sp[L2,j]-aim[L1,j]*temp;[L2,j]:=aim[L2,j]-aip[L1,j]*temp;[L2,j]:=sc[L2,j]+sc[L1,j]*temp;;[L2,j]:=sp[L2,j]+aip[L2,j];
aip[L2,j]:=0.;;
//Коэффициенты для распространения Y
for j:=2 to M3 doi:=2 to L2 do
begin:=rv[j+1]*xcv[i]; //площадь грани КО
diff:=area*2.*gam[i,j]*gam[i,j+1]/(ycv[j]*gam[i,j+1]+ycv[j+1]*gam[i,j]+small);[i,j]:=diff+small; //коэф-т aN[i,j+1]:=ajp[i,j]; //коэф-т aS;i:=2 to L2 do
begin
//Рассматривается граница j=1:=rv[2]*xcv[i];