f[3]:= (a1 +a2*x[1] + a3*x[1]*x[1] + a4*x[1]*t + a5*t*t) * x[3] – Qtp;
end;
Begin {Программа}
Qtp:=Kn*Fn*(t0s-tpm);
WriteLn (‘Qtp= ‘,Qtp);
Nelur (3,SistNelur, x);
End.
Холодильная установка с фиксированными температурой охлаждаемого помещения и температурой воды на входе в конденсатор является следующим этапом по развитию математической модели. Она позволяет исследовать влияние несколько большего числа входных и управляющих параметров на выходные. Система уравнений описывающих холодильную установку с принятыми ограничениями
Qт = k0F0((tпм + tв2)/2 – t0) ü
Qт = Vвоnвоcвρв(tпм – tв2) ½
Qт = (a1 + a2t0 + a3t02 + a4t0t + a5t2)b ý (12)
Q = (b1 + b2t0 + b3t02 + b4t0t + b5t2)b+Qт ½
Q = kkFk(t – (tw1 + tв2)/2) ½
Q = Vwnwcwρw(tw2 – tw1) þ
где Vw – объемная подача воды одним насосом, м3/с; nц – количество насосов; cц – теплоемкость воды, кДж/(кг×К); ρw – плотность воды, кг/м3; tw2 – температура воды на выходе из конденсатора, оС; tw1 – температура воды на входе в конденсатор.
В системе уравнений (12) неизвестными являются температура кипения хладагента, температура воздуха на выходе из воздухоохладителя, коэффициент рабочего времени компрессорного агрегата, температура конденсации хладагента, температура воды на выходе из конденсатора, тепловая нагрузка на конденсатор. Ниже приведен пример программы на алгоритмическом языке Paskal с использованием библиотеки программ SKMath2.
Program Refrigeretion;
Uses SKMath2;
Сonst
Cv = 1; Rv = 1.3; {Теплоемкость и плотность воздуха}
Сw = 4.19; Rw = 1000; { Теплоемкость и плотность воды}
tpm= -7; tos=28;
Kn=0.00044; Fn=5900;
Fo1=230; Vv1=4.694; Ko=0.008; nvo=8;
Fkd=30; Kkd=0.7; tw1=27.8;
Vw1=0.002; nwn=6;
a1=648.6; a2= -19.214; a3= 3.56; a4=0.200;a5=0.0;
b1=30.70;b2=0.695;b3=2.400;b4=0.0004;b5=0.000002;
var
Qtp: real; {Теплоприток в камеру}
x: massiv;
Procedure SistNelur (x: massiv; var f:massiv);
{Описание системы уравнений}
{Неизвестные – x[1] – t0; x[2] – tv2; x[3] – b;
x[4] – tk; x[5] – tw2; x[6] – Qk}
begin
f[1]:= Cv*Rv*nvo*Vv1*(tpm-x[2]) – Qtp;
f[2]:= Ko*Fo1*nvo*(tpm-x[2])/Ln (tpm-x[1]) / (x[2]-x[1])) – Qtp;
f[3]:= (a1+a2*x[1] + a3*x[1]*x[1]+a4*x[1]*x[4]+a5*x[4]*x[4]) * x[3] – Qtp;
f[4]:= (b1+b2*x[1] + b3*x[1]*x[1]+b4*x[1]*x[4]+b5*x[4]*x[4]) * x[3] + Qtp – x[6];
f[5]:= x[6] – Kkd * Fkd * (x[5]-tw1) / Ln ((x[4] –tw1) / (x[4] - x[5] ));
f[6]:= x[6] – Cw * Rw * Vw1 * nwn * (x[5]-tw1);
end;
Begin
Qtp:=Kn*Fn*(tos-tpm);
WriteLn (‘Qtp= ‘,Qtp);
Nelur (6,SistNelur, x);
End.
Холодильная установка с фиксированной температурой охлаждаемого помещения является полной математической моделью объекта с сосредоточенными параметрами. Она позволяет исследовать влияние основных входных и управляющих параметров на выходные. Система уравнений описывающих холодильную установку с сосредоточенными параметрами
Qт = k0F0((tпм + tв2)/2 – t0) ü
Qт = Vвоnвоcвρв(tпм – tв2) ½
Qт = (a1 + a2t0 + a3t02 + a4t0t + a5t2)b ý (13)
Q = (b1 + b2t0 + b3t02 + b4t0t + b5t2)b+Qт ½
Q = kkFk(t – (tw1 + tв2)/2) ½
Q = Vwnwcwρw(tw2 – tw1) ½
h = (tw2 – tw1)/(tw2 – tм. т) þ,
где tм. т – температура мокрого термометра, оС.
В системе уравнений (13) неизвестными являются температура кипения хладагента, температура воздуха на выходе из воздухоохладителя, коэффициент рабочего времени компрессорного агрегата, температура конденсации хладагента, температура воды на входе и на выходе из конденсатора, тепловая нагрузка на конденсатор. Ниже приведен пример программы на алгоритмическом языке Paskal с использованием библиотеки программ SKMath2.
Program Kuhl;
Uses SKMath2;
Сonst
Cv = 1; Rv = 1.3; {Теплоемкость и плотность воздуха}
Cw = 4.19; Rw = 1000; { Теплоемкость и плотность воды}
tpm = -17; tos = 31;
Fn = 5600; Kn = 0.00023;
Fo1 = 150; Vv1 = 2.069; Ko = 0.011;
nvo = 8; Nvo1 = 12.0; Nuvo = 0.24;
Fkd = 20; Kkd = 0.899;
nvn = 8; Vw1 = 0.0022;
tmt = 25.8; Nugr = 0.57;
Var
Qtp : real;
x : massiv;
Procedure SistNelur (x: massiv; var f: massiv);
begin
{Описание системы уравнений}
{Неизвестные – x[1] – to; x[2] – tv2; x[3] – b;
x[4] – tk; x[5] – tw2; x[6] – Qk; x[7] – tw1;}
f [1] := Cv*Rv*nvo*Vv1*(tpm – x [2]) – Qtp;
f [2] := Ko*Fo1*nvo*(tpm – x [2])/Ln ((tpm – x [1])/(x [2] – x [1])) – Qtp;
f[3]:= (a1+a2*x[1] + a3*x[1]*x[1]+a4*x[1]*x[4]+a5*x[4]*x[4]) * x[3] – Qtp;
f[4]:= (b1+b2*x[1] + b3*x[1]*x[1]+b4*x[1]*x[4]+b5*x[4]*x[4]) * x[3] + Qtp – x[6];
f [5] := x [6] – Kkd*Fkd*(x [5] – x [7])/Ln((x [4] – x [7])/(x [4] – x [5]));
f [6] := x [6] – Cw*Rw*Vw1*nvn*(x [5] – x [7]);
f [7] := Nugr – (x [5] – x [7])/(x [5] – tmt);
end;
Вegin
Qtp := Kn*Fn*(tos – tpm) + nvo*Nvo1*Nuvo;
WriteLn (‘Qtp= ‘, Qtp);
Nelur (7, SistNelur, x);
End.
2.5. Математические модели элементов холодильной установки с распределенными параметрами
Обогрев грунта под холодильником относится к задачам, определяющим долговечность строительных конструкций, снижающим возможные затраты на ремонт и усиление здания.
Задача решается двухмерная: по горизонтали рассматривается изменение температуры слоев между двумя обогревающими трубами, по вертикали – изменение температуры от слоя расположения обогревающих труб до пола охлаждаемой камеры. В основу расчета положены метод источников и метод наложения [6]. После преобразований получаются зависимости:
- термическое сопротивление R массива окружающего обогревающую трубу
R = (2pl)—1ln(2s(pd)—1Sh(2ph/s)), (14)
- плотность теплового потока q
q = (tтр - tпм )/( (2pls)—1ln(2s(pd)—1Sh(2ph/s)), (15)
где l - теплопроводность массива под полом холодильника, Вт/(м×К); s – шаг обогревающих труб, м; d – диаметр труб, м; h – глубина заложения обогревающих труб, м.
Program Warm;
Uses Crt,Dos,Kbi;
Label m,m1,m2,l;
Var tp1,tp2,di1,di2,li1,li2,tm1,tm2,d1,d2,a1,a2,z,
tp,li,di,a,ttr,tm,t1,d,x,y,x1,x2,x3,t,ch,th,cx,t2,x4,ch1,
x5,am,t3,c,q,s,s1,s2,y0,y1,y2,kt,r,r1,r2,r3 :real;
tt :array[1..10] of real;
tr,tz :array[1..6] of real;
i,j,code :integer;
Ch2,Ch3,Ch4 :char;
res,re :byte;
stroka :string;
Procedure V(var r:real);
var stroka :string;
code :integer;
begin
code:=0;
Repeat
readln(stroka);
val(stroka,r,code);
until code=0;
end;
Procedure V1(text:string;a:real;var r:real);
var stroka :string;
code :integer;
begin
code:=0;
Repeat
ClrScr;writeln;write('Введено');
write(text);writeln(a:7:3);
writeln;
write('Новое значение...................... ');
readln(stroka);
val(stroka,r,code);
until code=0;
end;
Procedure MenuR(k1,k2,kp,f1,r2,r4,r3:byte;yy:integer;
s1,s2,s3,s4,s5,s6,s7,s8,s9,s0:real;ss1:string;
Var a1,a2,a3,a4,a5,a6,a7,a8,a9,a0:real);
Label Met,m1,m2;
Const Kr=10;
Var M :array[1..Kr] of real;
I,T,J,re2,re3,re4,me1,me2 :byte;
pp :array[1..Kr] of byte;
nu :integer;
Ch :char;
Fl :boolean;
s,a :real;
f :file;
pa :pathStr;
begin
re2:=r2;re3:=r3;re4:=r4;
Cursor(False);
Fl:=True;
a1:=s1;a2:=s2;a3:=s3;a4:=s4;a5:=s5;a6:=s6;
M[1]:=s1; M[2]:=s2; M[3]:=s3; M[4]:=s4; M[5]:=s5; M[6]:=s6; M[7]:=s7;
M[8]:=s8;M[9]:=s9;M[10]:=s0;
T:=9;
Window(k1,k2+1,k1+T+1,k2+Kp+1);
for I:=1 to Kp do
begin
writeln(M[i]:7:3);
end;
I:=1;
gotoXY(1,i);
while Fl=True do
begin
Cursor(True);Ch:=ReadKey;
if (Ch=#27) or (Ch=#13) then Fl:=False;
if (Ch=#0) and KeyPressed then begin
Ch:=ReadKey;
m1: case Ch of
#80: begin i:=i+1;if i=(kp+1) then i:=1;GoToXY(1,i);end;
#72: begin i:=i-1;if i=0 then i:=kp;gotoXY(1,i);end;
#83: begin
case i of
1: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a1:=z;
GoToXY(1,i);write(a1:7:3);
end;
2: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a2:=z;
GoToXY(1,i);write(a2:7:3);
end;
3: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a3:=z;
GoToXY(1,i);write(a3:7:3);
end;
4: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a4:=z;
GoToXY(1,i);write(a4:7:3);
end;
5: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a5:=z;
GoToXY(1,i);write(a5:7:3);
end;
6: begin code:=0;
Repeat GoToXY(1,i);ClrEol;Readln(stroka);
val(stroka,z,code) until code=0;
a6:=z;
GoToXY(1,i);write(a6:7:3);
end;
7:; 8:; 9:; 10:;
end;
Window(k1,k2+1,k1+T+1,k2+Kp+1);gotoxy(8,i);
if i=kp+1 then Fl:=False;
end;
end;
end;
end;
Met: CF(7,0);
Cursor(True);
end;
Procedure Ogr;
begin
CF(7,0);Pl;
FrameWN(5,4,72,11,1,'ОГРАНИЧЕНИЯ ПАРАМЕТРОВ');
writeln('Температура воздуха камеры, C .......... -4 ... -40');
writeln('Толщина изоляции, м ........... 0.5 ... 1.0');
writeln('Теплопроводность изоляции, Вт/(м.K) .... 0.2 ... 0.35');
writeln('Температура в центре между трубами, C ........... 1 ..... 5');
writeln('Диаметр труб, м ........... 0.032 . 0.07');
write('Шаг труб, м ........... 0.5 ... 2');
CF(7,0);
end;
Procedure Zag;
begin
Window(9,1,80,4);CF(0,7);
write('<<< РАСЧЕТ СИСТЕМЫ ОБОГРЕВА ГРУНТА ПОД ХОЛОДИЛЬНИКОМ >>>');
Window(1,24,80,25);Cf(0,7);
write(' ',Chr(24),Chr(25),' Выбор ',' DEL',' Замена ',' ENTER',' Подтверждение ');
CF(7,0);pl;CF(7,0);
end;
Procedure Err;
begin
Window(1,1,80,25);ClrScr;Gotoxy(10,13);CF(0,7);
writeln(' !!! ПАРАМЕТР ЗА ПРЕДЕЛАМИ ОГРАНИЧЕНИЙ !!! ');
GoToXY(25,14);write('* * *');CF(7,0);
end;
Begin
m1:re:=0;Zastav2;
ttr:=0;x:=0;y:=0;x1:=0;x2:=0;x3:=0;t:=0;ch:=0;th:=0;t2:=0;
x4:=0;ch1:=0;c:=0;q:=0;x5:=0;am:=0;t1:=0;cx:=0;
tp1:=-40;li1:=0.3;di1:=1;tm1:=3;a1:=1;d1:=0.032;
ClrScr;Pl;
Window(10,11,77,13);CF(0,7);
writeln('<<< РАСЧЕТ СИСТЕМЫ ОБОГРЕВА ГРУНТА ПОД ХОЛОДИЛЬНИКОМ >>>');
CF(7,0);
Window(50,22,80,25);
write('Нажмите любую клавишу');
Ch4:=ReadKey;
Pl;ClrScr;
Window(9,1,80,3);CF(0,7);
writeln('<<< РАСЧЕТ СИСТЕМЫ ОБОГРЕВА ГРУНТА ПОД ХОЛОДИЛЬНИКОМ >>>');
CF(7,0);
Window(1,8,80,25);
writeln(' В работе предлагается провести исследование влияния заданного');
writeln('преподавателем параметра на температуру теплоносителя и на плотность');