Моделирование движения тела с переменной массой в Visual Basic.
Net

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Курсовая работа

по дисциплине

Программирование на языке высокого уровня

на тему:

Моделирование движения тела с переменной массой в Visual Basic. Net

Введение

Движение является неотъемлемой формой существования вещества во Вселенной. Оно характеризует изменения, происходящие в окружающем нас мире. В движении участвует каждый атом любого тела.

Уравнения движения тел с переменной массой являются следствиями законов Ньютона. Тем не менее, они представляют большой интерес, главным образом, в связи с ракетной техникой.

Реактивное движение происходит за счет того, что от тела отделяется и движется какая-то его часть, в результате чего само тело приобретает противоположно направленный импульс.

Реактивное движение используют для своего перемещения некоторые живые существа, например осьминоги, кальмары, каракатицы и другие головоногие моллюски. Движутся они благодаря тому, что всасывают, а затем с силой выбрасывают из себя воду.

Принцип реактивного движения находит широкое практическое применение в авиации и космонавтике. В космическом пространстве нет среды, с которой тело могло бы взаимодействовать и тем самым изменять направление и модуль своей скорости. Поэтому для космических полетов могут быть использованы только реактивные летательные аппараты, т. е. ракеты.

Проблема вывода ракеты на орбиту всегда считалась задачей повышенной сложности. Эта сложность связана с изменением гравитационного поля, массы и вектора скорости во время полета ракеты. На данном этапе развития техники можно осуществить полное моделирование движения ракеты, что позволяет сэкономить огромные ресурсы.

Целью курсовой работы является разработка программы, выполняющей теоретическое моделирование движения ракеты в 2-x мерной реконструкции.

Постановка задачи:

Разработать алгоритм и написать программу, выполняющую моделирование движения тела переменной массы на примере движения одноступенчатой ракеты. Программа должна выполнять расчет времени и скорости полета ракеты. Реализовать меню программы: просмотр справки о программе и выход из программы.

Назначение: значительное снижение временных затрат на изучение материала по данной теме.

1. Технический проект

1.1 Уравнение Мещерского

Рассмотрим движение тела переменной массой во внешнем силовом поле. Уравнение Ньютона в общем виде

, (1)

(2)

(3)

Подставив (3) в (1) получим

(4)

переписанное в системе центра масс, примет вид:

, (5)

где — скорость истечения газа. Вводя обозначение, принимая и учитывая характер внешнего силового поля, образованного силами притяжения и инерции, перепишем уравнение (5) как

(6)

Уравнение (6) называется уравнением Мещерского. Величина представляет собой реактивную силу тяги.

1.2 Формула Циолковского

Рассмотрим движение ракеты в отсутствие внешних сил. Уравнение движения в скалярном виде (с учётом того, что векторы и противоположно направлены) будет иметь вид:

. (7)

Это уравнение с разделяющимися переменными; проинтегрировав его в конечных пределах

, (8)

получим:

; (9)

эта формула называется формулой Циолковского [3]. Из неё следует, что для сообщения телу массой конечной скорости v требуется, без учёта затрат на преодоление сил тяжести, масса топлива, равная

. (10)

Рассмотрим теперь модель, в которой учитывается однородное поле тяжести (знак минус означает, что поле направленно против движения ракеты), можно получить

, (11)

где полное время работы двигателей. При постоянном расходе топлива

(12);

так как, то уравнение (11) трансцендентное уравнение относительно. Максимальное ускорение одноступенчатой ракеты в такой модели определяется соотношением, то есть

, (13)

так как в широком диапазоне реализуемых начальных условий.

1.3 Применяемые модели

Рис. 1.1 Выбор локальной системы координат

В данной задаче производится численное интегрирование уравнения Мещерского для движения ракеты во внешнем силовом поле.

Ракета считается материальной точкой. Таким образом, выбранной системе отсчета (x, y) уравнения движения принимают вид:

,

2. Рабочий проект

2.1 Общие сведения о работе системы

Программа разработана на языке программирования Visual Basic в среде разработки Microsoft Visual Studio 2006. Данная программа разработана единым программным и функциональным модулем и содержит процедуры и функции.

2.2 Установка программы

Для того чтобы установить программу, необходимо скопировать ее с CD-диска на жесткий диск. Сначала нужно вставить в дисковод диск и скопировать файл формата. exe под названием Polet tela. Если на компьютере не установлен Microsoft. Net Framework v 3.0, то его необходимо установить.

2.3 Руководство пользователя

Для работы с программным продуктом используется простой, интуитивно понятный интерфейс. Последовательность работы с объектами формы определяется доступностью командных кнопок, целостность данных определяется набором используемых в программе проверок. Переход от одного объекта формы к другому осуществляется при нажатии щелчком мыши по соответствующему объекту.

2.3.1 Описание формы загрузки программы

Программа может загружаться из среды Visual Basic 6. 0, если она представлена в исходном варианте: в формах с кодами, также можно запустить программу из скомпилированного exe-файла. В первом случае программа будет запускаться корректно только при наличии в исходной папке всех форм программы и базы данных, непосредственно связанной с кодом программы и прямым её назначением.

При запуске программы появляется форма, которая называется Движение тела. В полях этой формы вы должны выставить входные значения: начальная скорость и угол к горизонту.

2.3.2 Описание Главной формы

В ходе работы был разработан следующий интерфейс.

Рис. 2.1 Главная форма.

При создании приложения были использованы объекты, представленные в таблице 2.1.

Таблица 2.1 Объекты главной формы

Используемый объект

Предназначение

PictureBox

Поле для вывода графика траектории полета ракеты

Image

Анимация

TextBox

Ввод данных: масса ракеты, расход топлива, масса топлива, удельный импульс

ComandButton

Кнопка для запуска программы

2.3.3 Описание формы «О программе»

Если выбрать меню «О программе» то появится окно, в котором будет краткая информация об авторе и полное название программы.

Рис. 2.3 Форма «Об авторе».

программа модель мещерский циолковский

2. 4 Требование к программному и техническому обеспечению

Для корректной работы программы характеристики ПК должны быть не менее

· процессор 2 ГЦ и выше

· ОЗУ 512Мб и больше

· 3,26 Мб свободного места на жёстком диске

Для функционирования программы на ПК должно быть установлено следующее программное обеспечение

· ОС Windows XP или более новая

· среда выполнения Microsoft. Net Framework 3.0 или более поздняя

3. Программа и методика испытаний

Решим задачу аналитическим способом:

Требуется найти максимальную скорость ракеты, время полета

Зададим параметры:

Масса ракеты: 4730 (кг), масса топлива: 28 000 (кг), удельный импульс: 4500 (кг), расход топлива: 5 (кг/с)

По формуле Циолковского имеем:

M1 — начальная масса

M2 — конечная масса

I — удельный импульс

V=4500*Ln (32 730/4730)=8705(м/с)-максимальная скорость при заданных параметрах

t=28 000/5=5600 (c) — время полета ракеты

С помощью программы rocket. exe находим аналогичный вариант, следовательно программа работает корректно.

Заключение

Человечество в своей деятельности постоянно создает и использует модели окружающего мира. Модели позволяют представить в наглядной форме объекты и процессы, недоступные для непосредственного восприятия. Наглядные модели часто используются в процессе обучения.

Модели играют чрезвычайно важную роль в проектировании и создании различных технических устройств, машин и механизмов, зданий, электрических цепей и т. д. Моделирования механического движения находит свое применение в физических и математических науках, военной индустрии.

Модель движения тела переменной массы можно построить двумя способами:

построение алгоритма решения задачи его кодирование на одном из языков программирования;

построение компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и пр.).

В процессе создания компьютерной модели полезно разработать удобный графический интерфейс, который позволит визуализировать формальную модель, а так же реализовать интерактивный диалог человека с компьютером на этапе исследования модели.

Исследование информационной модели состоит в проведении компьютерного эксперимента, а так же анализе полученных результатов и корректировке исследуемой модели.

В данной курсовой работе была разработана автоматизированная система реализации модели движения тела, выполняющая процедуры всех поставленных раннее задач, что приводят к значительному снижению временных затрат на изучение материала по данной теме.

Список литературы и источников

1. Р. Мкдона. Основы микрокомпьютерных вычислений: Пер. с англ./ Т. Г. Никольской; Под ред. В. Ф. Шальгина. — М.: Высш. Школа., 1989. — 272 с.: ил.

2. Задачи и упражнения по программированию: Практ. Пособие для ПТУ/ Под ред. А. Я. Савельева. Кн. 2. Тяжелая промышленность и транспорт/ В. Е. Алексеев, А. С. Ваулин. — 2-е изд., доп. — М.: Высш. шк., 1989−112 с.: ил.

3. Г. И. Светозарова. ОСНОВЫ ПРИКЛАДНОЙ ИНФОРМАТИКИ. Раздел: Описание языка Турбо-Бейсик. Справочное пособие.

4. http: //www. alsak. ru/content/view/223/151/½/

Приложение 1

Код программы

Dim mr, mt, rt, vp, im, xi, ms, si, csp, cx, y0, sby, imt, fire As Integer

Dim star (8, 2) As Byte

Dim cdir As String

Private Sub aboutp_Click ()

Form1. Show vbModal

End Sub

Private Sub btRun_Click ()

restart

imgRocket. Visible = True

imgFire. Visible = True

mr = Val (tbMr. Text)

mt = Val (tbMt. Text)

rt = Val (tbRt. Text)

im = Val (tbIm. Text)

vp = mt / rt

cx = 400

If vp > 400 Then

csp = vp / 400

Else

csp = 1

cx = vp

End If

ms = okrD (im * Log ((mr + mt) / mr))

If ms > Picture1. Height Then

sby = 1

Else

sby = 0

End If

tms. Text = ms

Tm1. Enabled = True

btRun. Caption = ««

btRun. Enabled = False

btStop. Caption = «СТОП»

btStop. Enabled = True

cdir = CurDir

imgFire. Visible = True

tbIm. Enabled = False

tbMr. Enabled = False

tbMt. Enabled = False

tbRt. Enabled = False

End Sub

Private Sub btStop_Click ()

restart

End Sub

Sub restart ()

xi = 0

yi = 0

imt = 0

Picture1. Line (0, 0)-(Picture1. Width, Picture1. Height), vbWhite, BF

lbS. Caption = «0»

lbS. Left = Picture1. Left — 10

lbS. Top = Picture1. Top + Picture1. Height + 5

lbT. Caption = «0»

lbT. Left = lbS. Left

lbT. Top = lbS. Top

Tm1. Enabled = False

btRun. Caption = «ЗАПУСК»

btRun. Enabled = True

tm2. Enabled = False

imgRocket. Top = 172

imgFire. Top = 258

imgFire. Visible = False

imgConst. Top = 260

imgConst. Height = 30

st1. Top = 48

st2. Top = 168

st3. Top = 112

st4. Top = 136

st5. Top = 80

st6. Top = 88

st7. Top = 40

tbIm. Enabled = True

tbMr. Enabled = True

tbMt. Enabled = True

tbRt. Enabled = True

End Sub

Private Sub exitp_Click ()

Unload Form1

End Sub

Private Sub Form_Load ()

'frmRocket. Caption = CurDir

End Sub

Private Sub Picture1_Paint ()

Dim y As Integer

DrawStyle = vbSolid

Line (Picture1. Left, Picture1. Top)-(Picture1. Left, Picture1. Top — 15)

Line (Picture1. Left, Picture1. Top — 15)-(Picture1. Left — 5, Picture1. Top — 5)

Line (Picture1. Left, Picture1. Top — 15)-(Picture1. Left + 5, Picture1. Top — 5)

CurrentX = Picture1. Left + 10

CurrentY = Picture1. Top — 15

Print «u (м/с)»

Line (Picture1. Left + Picture1. Width, Picture1. Top + Picture1. Height — 1)-(Picture1. Left + Picture1. Width + 15 + 20, Picture1. Top + Picture1. Height — 1)

Line (Picture1. Left + Picture1. Width + 5 + 20, Picture1. Top + Picture1. Height — 5)-(Picture1. Left + Picture1. Width + 15 + 20, Picture1. Top + Picture1. Height — 1)

Line (Picture1. Left + Picture1. Width + 5 + 20, Picture1. Top + Picture1. Height + 4)-(Picture1. Left + Picture1. Width + 15 + 20, Picture1. Top + Picture1. Height — 1)

CurrentX = Picture1. Left + Picture1. Width + 20

CurrentY = Picture1. Top + Picture1. Height + 5

Print «t (c)»

lbT. Left = Picture1. Left — 10

lbT. Top = Picture1. Top + Picture1. Height + 5

'CurrentY = lbT. Top

'CurrentX = lbT. Left

'Print «0»

End Sub

Private Sub setval_Click ()

tbIm. Text = 4500

tbMr. Text = 4730

tbMt. Text = 28 000

tbRt. Text = 5

End Sub

Private Sub start_Click ()

btRun_Click

End Sub

Private Sub stop_Click ()

btStop_Click

End Sub

Private Sub Tm1_Timer ()

Dim yi As Integer

xi = xi + 1

If xi <= cx Then

si = im * Log ((mr + mt) / (mr + mt — csp * rt * xi))

imt = mt — okrD (xi * csp * rt)

tbMt. Text = imt

lbT. Caption = xi * csp

lbT. Left = Picture1. Left — ((lbT. Width) / 2) + xi

If sby = 1 Then

yi = okrD (si * Picture1. Height / ms)

Else

yi = okrD (si / 1)

End If

lbS. Caption = CStr (okrD (si / 1))

lbS. Left = Picture1. Left — 5 — lbS. Width

lbS. Top = (Picture1. Top + Picture1. Height) — yi — lbS. Height / 2

Picture1. PSet (xi, Picture1. Height — yi), vbRed

If fire < > 2 Then

imgFire. Picture = LoadPicture (cdir & «imgfire2. gif»)

fire = 2

Else

imgFire. Picture = LoadPicture (cdir & «imgfire1. gif»)

fire = 1

End If

If si > 1 Then

tm2. Interval = 500 — si * 500 / ms

If tm2. Enabled = False Then

tm2. Enabled = True

End If

End If

End If

End Sub

Function setSec (mt, rt)

Dim res As Integer

res = mt / rt

End Function

Function okrD (dr As Double) As Integer

Dim c As Integer

c = Fix (dr)

If dr = c Then

okrD = c

ElseIf (dr — c) > 0.5 Then

okrD = c + 1

Else: okrD = c

End If

End Function

Private Sub tm2_Timer ()

st1. Top = st2. Top + 1

st2. Top = st3. Top + 1

st3. Top = st3. Top + 1

st4. Top = st4. Top + 1

st5. Top = st5. Top + 1

st6. Top = st6. Top + 1

st7. Top = st7. Top + 1

If imgConst. Top < 291 Then

imgConst. Top = imgConst. Top + 1

imgConst. Height = imgConst. Height — 1

End If

imgRocket. Top = imgRocket. Top — 1

imgFire. Top = imgFire. Top — 1

End Sub

ПоказатьСвернуть
Заполнить форму текущей работой