Автор: Пользователь скрыл имя, 02 Апреля 2013 в 19:59, курсовая работа
Задание: Глубинная бомба-торпеда, снабженная разгонным двигателем, установлена на взрыв, на заданной глубине, сбрасывается с движущегося противоподлодочного корабля. Исследовать связь между временем достижения заданной глубины, пройденным расстоянием по горизонтали и формой корпуса (шарообразной, полусферической, каплевидной и формой диска). Целью курсовой работы является создание физической модели с помощью компьютера. Данная модель анализирует связь между временем достижения заданной глубины, пройденным расстоянием по горизонтали и формой корпуса бомбы - торпеды.
Задание............................................................................................................................................4
Введение.........................................................................................................................................5
1. Моделирование..........................................................................................................................6
1.1. Составление системы …………………………………………………………………….6
1.2. Разработка модели ………………………………………………………………………..9
1.2.1. Метод интегрирования…………………………………………………………….....9
1.2.2. Проектирование интерфейса…………………………..…………………………....10
2. Реализация модели...................................................................................................................11
Заключение...................................................................................................................................15
Список литературы......................................................................................................................16
Приложение А…………………………………………………………………………………..17
Таким образом, бомба-торпеда каплевидной формы быстрее всех достигла цели, и сместилась на меньшее количество метров по горизонтали. За ней идут по возрастающей бомба шарообразной формы, бомба формы полусферы, бомба формы диска. Следовательно, чем меньше площадь сечения поперечного по отношению к потоку и чем меньше безразмерный коэффициент лобового сопротивления бомбы, тем точнее и быстрее она достигает цели.
Заключение
В результате выполнения курсовой работы получили модель движения глубинной бомбы – торпеды, снабженной разгонным двигателем, установленной на взрыв, на заданной глубине, которая сбрасывается с движущегося противоподлодочного корабля. Для моделирования был применен метод интегрирования систем дифференциальных уравнений – метод Рунге-Кутта четвертого порядка. По результатам, полученным в ходе работы данной программы, исследовали связь между временем достижения заданной глубины, пройденным расстоянием по горизонтали и формой корпуса бомбы.
Таким образом, все поставленные задачи курсовой работы были выполнены.
Список использованной литературы
1. Могилев А.В., Пак Н.И., Хеннер Е.К. Практикум по информатике, М: - Академия, 2001.
2. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика, М: - Академия, 1999.
3. Фаронов В.В. Delphi 6. Учебный курс. Москва, 2003.
4. Хеннер Е.К., Шестаков А.П. Математическое
моделирование: Пособие для
5. Советов Б.Я., Яковлев С.А. Моделирование систем: Учебник для вузов – 3-е изд., перераб. и доп. – М.: Высш. шк., 2001.
ПРИЛОЖЕНИЕ А
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
memo1: TMemo;
PaintBox1: TPaintBox;
Label1: TLabel;
Edit1: TEdit;
Button2: TButton;
Button4: TButton;
BitBtn1: TBitBtn;
Label10: TLabel;
Edit10: TEdit;
Bevel3: TBevel;
Timer1: TTimer;
Button5: TButton;
Label3: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label7: TLabel;
Edit7: TEdit;
Label8: TLabel;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
Edit11: TEdit;
Label11: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
GroupBox1: TGroupBox;
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
t,h,y1,y2,y3,y4,n:real;
k11, k21, k31, k41, k12, k22, k32, k42,
k13, k23, k33, k43, k14, k24, k34, k44: real;
m,k1,k2,k1x,k2x,nu,p,r,c,cx,
xc,yc,kom:integer;
implementation
uses Unit2;
{$R *.dfm}
function f(t,y1,y2,y3,y4,k1,k2:real;n:
begin
case n of
1:f:=-(k1x+k2x*sqrt(y1*y1+y2*
2:f:=vb-9.81-(k1+k2*sqrt(y1*
3:f:=y1;
4:f:=y2;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
paintbox1.Canvas.FloodFill(xc,
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
memo1.Lines.Clear;
button5.Caption:='стоп';
h:=strtofloat(edit10.Text); //шаг
nu:=1.002; //вязкость среды
p:=1; //плотность среды
r:=0.5; //радиус шара
m:=1; //масса
if radiobutton1.Checked then begin c:=0.4;cx:=0.4;sx:=pi*r*r end;//шар
if radiobutton2.Checked then begin c:=1.11;cx:=0.001;sx:=2*r*0.1 end;//диск, 0.1-ширина диска
if radiobutton3.Checked then begin c:=0.55;cx:=0.2;sx:=pi*r*r/2 end;//полусфера
if radiobutton4.Checked then begin c:=0.045;cx:=0.6;sx:=pi*r*r*1.
k1:=6*pi*nu*r;
k2:=1/2*c*p*pi*r*r;
k1x:=6*pi*nu*r;
k2x:=1/2*cx*p*sx;
y3:=0;
y4:=strtofloat(edit3.text);
y1:=strtofloat(edit1.Text);
y2:=-strtofloat(edit11.Text);
vb:=y2;
t:=0;
kom:=strtoint(edit9.Text);
xc:=paintbox1.width div 2;
yc:=paintbox1.height div 2;
paintbox1.Canvas.MoveTo(0,
paintbox1.Canvas.lineTo(
paintbox1.Canvas.MoveTo(
paintbox1.Canvas.lineTo(
paintbox1.Canvas.MoveTo(trunc(
timer1.Enabled:=true;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
form2.show;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if timer1.Enabled then begin timer1.Enabled:=false;button5.
else
begin
timer1.Enabled:=true;
button5.Caption:='стоп';
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if y4<0 then timer1.Enabled:=false;
k11 := h*f(t, y1, y2, y3, y4,k1,k2, 1);
k12 := h*f(t, y1, y2, y3, y4,k1,k2, 2);
k13 := h*f(t, y1, y2, y3, y4,k1,k2, 3);
k14 := h*f(t, y1, y2, y3, y4,k1,k2, 4);
k21 := h*f(t+h/2, y1+k11/2, y2+k12/2, y3+k13/2, y4+k14/2,k1,k2, 1);
k22 := h*f(t+h/2, y1+k11/2, y2+k12/2, y3+k13/2, y4+k14/2,k1,k2, 2);
k23 := h*f(t+h/2, y1+k11/2, y2+k12/2, y3+k13/2, y4+k14/2,k1,k2, 3);
k24 := h*f(t+h/2, y1+k11/2, y2+k12/2, y3+k13/2, y4+k14/2,k1,k2, 4);
k31 := h*f(t+h/2, y1+k21/2, y2+k22/2, y3+k23/2, y4+k24/2,k1,k2, 1);
k32 := h*f(t+h/2, y1+k21/2, y2+k22/2, y3+k23/2, y4+k24/2,k1,k2, 2);
k33 := h*f(t+h/2, y1+k21/2, y2+k22/2, y3+k23/2, y4+k24/2,k1,k2, 3);
k34 := h*f(t+h/2, y1+k21/2, y2+k22/2, y3+k23/2, y4+k24/2,k1,k2, 4);
k41 := h*f(t+h, y1+k41, y2+k42, y3+k43, y4+k44,k1,k2, 1);
k42 := h*f(t+h, y1+k41, y2+k42, y3+k43, y4+k44,k1,k2, 2);
k43 := h*f(t+h, y1+k41, y2+k42, y3+k43, y4+k44,k1,k2, 3);
k44 := h*f(t+h, y1+k41, y2+k42, y3+k43, y4+k44,k1,k2, 4);
memo1.lines.add('t='+
y1:=y1+1/6*(k11+2*k21+2*k31+
y2:=y2+1/6*(k12+2*k22+2*k32+
y3:=y3+1/6*(k13+2*k23+2*k33+
y4:=y4+1/6*(k14+2*k24+2*k34+
paintbox1.Canvas.lineTo(trunc(
t:=t+h;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm2 = class(TForm)
Memo1: TMemo;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
end.
Информация о работе Моделирование движения глубинной бомбы-торпеды