procedure TForm3.Button5Click(Sender: TObject);
var
Diam,w,Fk,Fe,KsiTru,Re,lamda,KsiPl,d,F0,Npol,Kn,Ne,Ksi11,KsiVx,KsiVix,Dlina,KsiVxTr,KsiVixTr,KsiTr:real;
k,i,j,z:integer;
s1,s2:string;
begin
p:= strtofloat(Form1.StringGrid2.Cells[1,2]);
a:=strtofloat(Form1.StringGrid1.Cells[1,5]);
b:=strtofloat(Form1.StringGrid1.Cells[1,6]);
v:=strtofloat(Form1.StringGrid2.Cells[1,1]);
sher:= strtofloat(Form1.StringGrid1.Cells[1,2]);
for z := 0 to StringGrid5.RowCount - 1 do
StringGrid5.Rows[z].Clear();
Ln:=StrToFloat(Form1.Edit1.Text);
Lk:=StrToFloat(Form1.Edit3.Text);
Step:=StrToFloat(Form1.Edit5.Text);
L:=Ln;
i:=1;
k:=0;
While l<=Lk do
begin
d:=4*a*b/(2*(a+b));
w:=l/(3600*a*b);
F0:=a*b;
Kn:=1.355/(sqrt(sqrt(w*w*w)));
begin
s1:= Form6.ComboBox2.Text;
if s1='ÝÃÀ-1-10-6-4-2' then
begin
Fk:=630;
Fe:=16.5;
end
else
if s1='ÝÃÀ-1-10-6-6-3' then
begin
Fk:=1430;
Fe:=16.5;
end
else
if s1='ÝÃÀ-20-9-6-2' then
begin
Fk:=2830;
Fe:=49;
end
else
if s1='Ñ-5' then
begin
Fk:=254;
Fe:=5;
end
else
if s1='ÏÃ-8' then
begin
Fk:=373;
Fe:=7.8;
end
else
if s1='ÄÌ-316' then
begin
Fk:=541;
Fe:=13.3;
end;
end;
begin
s2:= Form6.ComboBox1.Text;
if s2='Ïëàñòèí÷àòûé' then
begin
if Form6.FindComponent('ComboBox3') <> nil then
Ne:=StrToFloat(TComboBox(Form6.FindComponent('ComboBox3')).Text);
if Form6.FindComponent('ComboBox4') <> nil then
Npol:=StrToFloat(TComboBox(Form6.FindComponent('ComboBox4')).Text);
KsiPl:=Npol*Kn*(0.2+(0.5*Ne))*sqr(F0/Fk);
end
else
if s2='Òðóá÷àòûé' then
begin
if Form6.FindComponent('Edit2') <> nil then
Diam:=StrToFloat(TEdit(Form6.FindComponent('Edit2')).Text);
if Form6.FindComponent('Edit1') <> nil then
Dlina:=StrToFloat(TEdit(Form6.FindComponent('Edit1')).Text);
Re:=(w*Diam)/v;
begin
if Re<2300 then
lamda:=64/Re
else
if (Re>=2300) and (Re<100000) and ((sher/Diam)>0.00008) and ((sher/Diam)<0.0125) then
lamda:=0.11*sqrt(sqrt((sher/Diam)+(68/Re)))
else
if (sher/Diam)>0.0125 then
lamda:=1/(sqr(21*9.8*(Diam/sher)+1.14));
end;
KsiVxTr:=0.5*(1-(Fe/Fk))*sqr(F0/Fe);
KsiVixTr:=sqr(1-(Fe/Fk))*sqr(F0/Fe);
KsiTr:=((lamda*Dlina)/Diam)*sqr(F0/Fe);
KsiTru:=KsiVxTr+KsiVixTr+KsiTr;
end;
// begin
KsiVx:=1.6+(0.7*2)*sqr(F0/Fk)+0.1;
KsiVix:=0.5*(1-F0/Fk);
Ksi11:=KsiVx+KsiPl+KsiTru+KsiVix;
Pfil:=(KsiVx+KsiVix+KsiPl+KsiTru)*(sqr(w)/2)*p;
Form3.StringGrid5.Cells[0,0]:='Ñêîðîñòü';
Form3.StringGrid5.Cells[1,0]:='Êñïð.âõ.';
Form3.StringGrid5.Cells[2,0]:='Êñïð.âûõ.';
Form3.StringGrid5.Cells[3,0]:='Êñïð.';
Form3.StringGrid5.Cells[4,0]:='Ïîòåðè äàâëåíèÿ';
Form3.StringGrid5.Cells[0,i]:=FloatToStrF(w, ffNumber,15,2);
Form3.StringGrid5.Cells[1,i]:=FloatToStrF(KsiVx, ffNumber,15,2);
Form3.StringGrid5.Cells[2,i]:=FloatToStrF(KsiVix, ffNumber,15,2);
Form3.StringGrid5.Cells[3,i]:=FloatToStr(Ksi11);
Form3.StringGrid5.Cells[4,i]:=FloatToStrF(Pfil, ffNumber,15,2);
Form3.StringGrid5.Cells[5,i]:=FloatToStr(Pfil);
i:=i+1;
L:=L+step;
k:=k+1;
end; end;
Form3.StringGrid5.RowCount:=k+1;
end;