Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исследование потока жидкости и газа при движении вблизи свободной поверхности тела (96

..pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
498.38 Кб
Скачать

Knots[j][i].X:=Excel.ActiveSheet.Cells[j+(i-1)*XCells,1]; Knots[j][i].Y:=Excel.ActiveSheet.Cells[j+(i-1)*XCells,2]; j:=j+1;

end;

i:=i+1;

end;

Excel.Quit; //Рисуем поле в узлах i:=1;

while i<=XCells do begin

j:=1;

while j<=YCells do begin

Image1.Canvas.MoveTo(round(cell*i),round(cell*j)); Image1.Canvas.LineTo(round(cell*(i+Knots[i][j].X)),round(cell*(j-

Knots[i][j].Y))); Image1.Canvas.Ellipse(round(cell*(i+Knots[i][j].X))-2,round(cell*(j-

Knots[i][j].Y))-2,round(cell*(i+Knots[i][j].X))+2,round(cell*(j- Knots[i][j].Y))+2);

j:=j+1;

end;

i:=i+1;

end;

end;

end;

//Сохранение базисного поля в файл .xls procedure TForm1.Button4Click(Sender: TObject); var i,j:integer;

Excel:variant; begin

if DlgSave.Execute then begin

Excel:=CreateOleObject('Excel.Application');

Excel.WorkBooks.Add;

i:=1;

while i<=YCells do begin

j:=1;

while j<=XCells do begin

32

Excel.ActiveSheet.Cells[j+(i-1)*XCells,1]:=Knots[j][i].X; Excel.ActiveSheet.Cells[j+(i-1)*XCells,2]:=Knots[j][i].Y; j:=j+1;

end;

i:=i+1;

end;

Excel.ActiveWorkBook.SaveAs(DlgSave.FileName);

Excel.ActiveWorkBook.Close;

Excel.Quit;

end;

end;

function GetE(x,y:extended):Knot;

var Ex,Ey,Ra2,Rb2,Rc2,Rd2,R:extended; ya,yc,yb,yd,xa,xb,xc,xd:integer; E:Knot;

begin ya:=trunc(y+1); yb:=trunc(y); yc:=trunc(y); yd:=trunc(y+1);

xa:=trunc(x+1);

xb:=trunc(x+1);

xc:=trunc(x);

xd:=trunc(x);

Ra2:=sqr(x-xa)+sqr(y-ya);

Rb2:=sqr(x-xb)+sqr(y-yb);

Rc2:=sqr(x-xc)+sqr(y-yc);

Rd2:=sqr(x-xd)+sqr(y-yd);

if (Form1.Knots[xd][yd].X=0) then begin

E.X:=0;

E.Y:=0;

GetE:=E;

exit;

end;

if Ra2<eps then begin

Ex:=Form1.Knots[xa][ya].X;

33

Ey:=Form1.Knots[xa][ya].Y; end

else if Rb2<eps then begin

Ex:=Form1.Knots[xb][yb].X;

Ey:=Form1.Knots[xb][yb].Y; end

else if Rc2<eps then begin

Ex:=Form1.Knots[xc][yc].X;

Ey:=Form1.Knots[xc][yc].Y; end

else if Rd2<eps then begin

Ex:=Form1.Knots[xd][yd].X;

Ey:=Form1.Knots[xd][yd].Y; end

else if (yb<=1) then begin R:=1/Ra2+1/Rd2;

Ex:=Form1.Knots[xa][ya].X/Ra2+Form1.Knots[xd][yd].X/Rd2;

Ey:=Form1.Knots[xa][ya].Y/Ra2+Form1.Knots[xd][yd].Y/Rd2;;

Ex:=Ex/R;

Ey:=Ey/R; end

else if ya>=YCells then begin R:=1/Rb2+1/Rc2;

Ex:=Form1.Knots[xb][yb].X/Rb2+Form1.Knots[xc][yc].X/Rc2;

Ey:=Form1.Knots[xb][yb].Y/Rb2+Form1.Knots[xc][yc].Y/Rc2;;

Ex:=Ex/R;

Ey:=Ey/R; end

else begin

R:=1/Ra2+1/Rb2+1/Rc2+1/Rd2;

Ex:=Form1.Knots[xa][ya].X/Ra2+Form1.Knots[xb][yb].X/Rb2+Form1.Knots[

xc][yc].X/Rc2+Form1.Knots[xd][yd].X/Rd2;

Ey:=Form1.Knots[xa][ya].Y/Ra2+Form1.Knots[xb][yb].Y/Rb2+Form1.Knots[

xc][yc].Y/Rc2+Form1.Knots[xd][yd].Y/Rd2;

34

Ex:=Ex/R;

Ey:=Ey/R;

end;

E.X:=Ex;

E.Y:=Ey;

GetE:=E;

end;

procedure DrawECurves(i,j:integer); var x,y,k:extended;

E:Knot; begin

x:=i;

y:=j;

Form1.Image1.Canvas.MoveTo(round(cell*x),round(cell*y));

E.X:=Form1.Knots[round(x)][round(y)].X;

E.Y:=Form1.Knots[round(x)][round(y)].Y; if (E.x=0) then

begin x:=x+1;

Form1.Image1.Canvas.MoveTo(round(cell*x),round(cell*y)); end

else begin

k:=E.y/E.x;

x:=x+sqrt(E.x*E.x+E.y*E.y)/sqrt(1+k*k); y:=y-sqrt(E.x*E.x+E.y*E.y)*sqrt(k*k/(k*k+1))*sign(k); Form1.Image1.Canvas.LineTo(round(cell*x),round(cell*y)); Form1.Image1.Canvas.Ellipse(round(cell*x)-2,round(cell*y)-

2,round(cell*x)+2,round(cell*y)+2);

end;

while (x<XCells+eps) and (y<YCells+0.5) and (x>0) and (y>0.5) do begin

E:=GetE(x,y); if (E.x=0) then begin

x:=x+1;

Form1.Image1.Canvas.MoveTo(round(cell*x),round(cell*y));

continue;

end;

k:=E.y/E.x;

x:=x+sqrt(E.x*E.x+E.y*E.y)/sqrt(1+k*k);

35

y:=y-sqrt(E.x*E.x+E.y*E.y)*sqrt(k*k/(k*k+1))*sign(k); Form1.Image1.Canvas.LineTo(round(cell*x),round(cell*y)); Form1.Image1.Canvas.Ellipse(round(cell*x)-2,round(cell*y)-

2,round(cell*x)+2,round(cell*y)+2);

Application.ProcessMessages;

end;

end;

procedure TForm1.Button5Click(Sender: TObject); var x,y,k,Ex,Ey,Ra2,Rb2,Rc2,Rd2,R:extended;

i,j,ya,yc,yb,yd,xa,xb,xc,xd:integer; begin

Image1.Canvas.Pen.Color:=clRed;

Image1.Canvas.Pen.Style:=psDot; for j:=1 to YCells do

DrawECurves(1,j);

end;

procedure DrawPCurves(i,j:integer); var x,y,p,h:extended;

E:Knot; begin

x:=i;

y:=j;

Form1.Image1.Canvas.Pen.Style:=psDash;

Form1.Image1.Canvas.MoveTo(round(cell*x),round(cell*y));

h:=0.1;

while (x<XCells+eps) and (y<YCells+0.5) and (x>0.5) and (y>0.5) do begin

E:=GetE(x,y); if E.x=0 then begin y:=y+1;

Form1.Image1.Canvas.MoveTo(round(cell*x),round(cell*y));

continue;

end;

p:=E.Y/E.X;

y:=y+h/sqrt(1+p*p); x:=x-h*sqrt(p*p/(p*p+1))*sign(p);

Form1.Image1.Canvas.LineTo(round(cell*x),round(cell*y));

end;

end;

36

procedure TForm1.Button6Click(Sender: TObject); var i,j:integer;

begin

for j:=1 to XCells do DrawPCurves(j,1);

end;

procedure TForm1.Image1Click(Sender: TObject); begin

if SPD.Execute then begin

Image1.Picture.SaveToFile(SPD.FileName);

end;

end;

end.

37

ПРИЛОЖЕНИЕ 2

Пример рабочего листа Excel с результатами измерений

1

А

В

0,94

0,05

2

0,97

0,04

3

1

0,09

4

1,21

0,05

5

1,02

–0,11

6

0,87

–0,15

7

0,81

–0,12

8

0,082

–0,04

9

0,83

–0,07

10

0,79

0,02

11

0,72

0,06

12

 

 

13

 

 

14

0,98

–0,17

15

0,74

–0,25

16

0,67

–0,17

17

0,69

–0,08

18

0,74

–0,02

19

0,78

0,03

20

0,67

0,04

21

0,83

0,08

22

 

 

38

СПИСОК ЛИТЕРАТУРЫ

1.Гидромеханика: Учеб. для вузов / Д.Н. Попов, С.С. Панаиотти, М.В. Рябинин; Под ред. Д.Н. Попова. М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. 384 с.

2.Краснов Н.Ф. Аэродинамика: В 2 ч. Ч. 1: Основы теории. Аэродинамика профиля и крыла: Учеб. для втузов. М.: Высш. шк., 1976. 384 с.

3.Опыты и моделирование при изучении электромагнитного поля / Г.А. Рязанов. М.: Наука, 1966. 208 с.

4.Иродов И.Е. Основные законы электромагнетизма: Учеб. пособие для студентов вузов. М.: Высш. шк., 1991. 288 с.

39

 

ОГЛАВЛЕНИЕ

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ .............................................................

3

1.

Основные сведения из гидромеханики ..................................

3

2.

Моделирование процессов гидромеханики

 

 

с применением стационарного электрического поля ..........

12

3.

Проведение измерений в стационарном электрическом

 

 

поле ..........................................................................................

18

ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ ................................................

20

1.

Определение параметров потока путем построения

 

 

линий тока и эквипотенциальных поверхностей ...............

20

2.

Описание лабораторной установки .......................................

24

3.

Порядок выполнения работы ..................................................

25

КОНТРОЛЬНЫЕ ВОПРОСЫ ..........................................................

27

Приложения .......................................................................................

28

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

39

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]