Разработка и исследование компьютерной модели движения заряженной частицы в электрическом поле

 

СОДЕРЖАНИЕ


Введение

. Разработка математической модели системы

1.1 Понятие о кинематике

.2 Относительность движения

.3 Траектория движения

.4 Виды движений

.5 Движение тела, брошенного под углом к горизонту

. Разработка компьютерной программы для моделирования

.1 Описание интерфейса программы Form 1

.2 Описание Интерфейса программы Form 2

.3 Описание программного кода

.3.1 Описание класса Form 1

.3.2 Описание процедуры Form 2

3. Описание и анализ результатов моделирования

3.1 Инструкция пользования интерфейсом программы

.2 Математическое решение дополнительной задачи

Заключение

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



Введение


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

Одним из видов равноускоренного движения является баллистическое движение. Термин "баллистика" происходит от греческого слова "ballo" - бросаю, мечу. Исторически так сложилось, что баллистика возникла как воинская наука, определяющая теоретические основы и практическое применение закономерностей полета снаряда в воздухе и процессов, сообщающих снаряду необходимую кинетическую энергию.

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

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



1. Разработка математической модели системы


1.1 Понятие о кинематике


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

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

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

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


Рис. 1.1 Определение положения точки с помощью координат x = x(t), y = y(t) и z = z(t) и радиус-вектор. - радиус-вектор положения точки в начальный момент времени.



1.2 Относительность движения


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

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

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


1.3 Траектория движения


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

Так как движение относительно, то траектория может зависеть от выбора системы отсчета.



1.4 Виды движений


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

Равноускоренным движением называют такое движение, при котором вектор ускорения остается неизменным по модулю и направлению. Примером такого движения является движение камня, брошенного под некоторым углом к горизонту. В любой точке траектории ускорение камня равно ускорению свободного падения . Для кинематического описания движения камня систему координат удобно выбрать так, чтобы одна из осей, например ось OY, была направлена параллельно вектору ускорения. Тогда криволинейное движение камня можно представить как сумму двух движений - прямолинейного равноускоренного движения вдоль оси OY и равномерного прямолинейного движения вдоль оси OX (Рис. 1.2).



Рис. 1.2 Проекции векторов скорости и ускорения на координатные оси ax = 0, ay = -g.


Свободным падением тел называют падение тел на Землю в отсутствие сопротивления воздуха.

Ускорение, с которым падают на Землю тела, называется ускорением свободного падения. Вектор ускорения свободного падения обозначается символом , он направлен по вертикали вниз.

В различных точках земного шара в зависимости от географической широты и высоты над уровнем моря числовое значение g оказывается неодинаковым, изменяясь примерно от 9,83 м/с2 на полюсах до 9,78 м/с2 на экваторе. На широте Москвы g = 9,81523 м/с2. Обычно, если в расчетах не требуется высокая точность, то числовое значение g у поверхности Земли принимают равным 9,8 м/с2 или даже 10 м/с2.

Движение тела по окружности является частным случаем криволинейного движения. Наряду с вектором перемещения удобно рассматривать угловое перемещение ??, измеряемое в радианах (Рис. 1.3). Длина дуги связана с углом поворота соотношением: ?l = R ??, а при малых углах поворота: ?l ? ?s.



Рис. 1.3 Линейное и угловое ?? перемещения при движении тела по окружности.


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

Колебания называются периодическими, если значения физических величин, изменяющихся в процессе колебаний, повторяются через равные промежутки времени: положение маятника в часах, Т - период, v = 1/T.

В кинематике все сложные виды колебательных движений можно свести к простейшим гармоническим колебаниям. Гармоническими колебаниями физической величины a называется процесс изменения ее во времени по закону sin или cos.


1.5 Движение тела, брошенного под углом к горизонту


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

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

В качестве сложного движения рассмотрим движение точечной массы, брошенной под углом a к горизонту со скоростью v0 (Рис. 1.4)


Рис. 1.4 В этом случае точка одновременно движется равномерно со скоростью vox вдоль оси Х и равно-замедленно с начальной скоростью vx вдоль оси OY. (а = g)


Уравнение движения точки имеют вид:


x = v0xt, где v0x = v0 cos ?

y = v0yt - gt2/2, где v0y = v0 sin ?


Для решения задачи будут использоваться данные формулы:


dblV = Math.Sqrt(dblVx ^ 2 + dblVy ^ 2)= -dblA * dblV - dblB * dblV ^ 3= dblFc * dblVx / dblV= dblFc * dblVy / dblV+= dblFcx * dbldt / dblm+= (dblFcy - dblm * dblg) * dbldt / dblm+= dblVx * dbldt+= dblVy * dbldt= intX0 + dblX * intKX / intMshX= intY0 - dblY * intKY / intMsh= intx2= inty2= dblt + dbldt


Рис. 1.2 Блок-схема алгоритма решения задачи


2. Разработка компьютерной программы для моделирования


.1 Описание интерфейса программы Form1


Рис. 2 Описание элемента Form1


.2 Описание Интерфейса программы Form2


Рис 2.1 Описание элемента Form2


2.3 Описание программного кода


.3.1 Описание класса Form1

В данном классе производится решение задачи построение графика и сетки.

В разделе Public Class Form1 производится объявление глобальных переменных, положение начала системы координат, шаг линий сетки по осям X и Y.

В разделе Sub Grafic() производится объявление переменных используемых в решении задачи и вызывание формы Form2. Решение самой задачи и построение графика.

В разделе Do- Loop производится ввод формул используемых в решении задачи.

В разделе Private Sub Setka() выполняется построение сетки графика.


Листинг 2.1 Программный код класса Form1

Public Class Form1

Dim intX0, intY0, intKX, intKY, intMsh, intMshX As IntegerstrOX, strOY As StringblnMsh, blnSK, blnUkz As BooleanHolst As GraphicsKist As BrushPero As PenShrift As Font

' Процедура обработки события "Загрузка формы Form1"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Text = "моделирование движения тела, брошеного под углом к горизонту"= 40= PB_Ekran.Height - 40 'Положение начала СК по оси Y

intKX = 20= 20= 100= 10= "Х, м"= "Y, м"= False= False= False= PB_Ekran.CreateGraphics= New SolidBrush(Color.Black)= New Pen(Color.Black)= New Font("Arial", 8, FontStyle.Bold).Text = "7".Text = "150".Text = "350"_Massht.Text = "100x"_NachaloSK.Text = "Внизу по центру"

End Sub

' Процедура обработки события "Выбор элемента комбинир. списка CB_Massht"

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_Massht.SelectedIndexChangedstrMsh As String = CB_Massht.TextCase strMshIs = "100x"= 100= 30= 30Is = "200x"= 200= 35= 35Is = "500x"= 500= 40= 40Is = "1000x"= 1000= 50= 50Else= 100Select= TrueSub

' Процедура обработки события "Выбор элемента комбинир. списка CB_NachaloSK"

Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_NachaloSK.SelectedIndexChangedstrSK As String = CB_NachaloSK.TextCase strSKIs = "В левом нижнем углу"= 40= PB_Ekran.Height - 25= FalseIs = "В центре экрана"= PB_Ekran.Width / 2= PB_Ekran.HEight / 2= FalseIs = "Слева по центру"= 40= PB_Ekran.Height / 2= False

Case Is = "Внизу по центру"

intX0 = PB_Ekran.Width / 2= PB_Ekran.Height - 25= FalseIs = "задать указателем"= TrueElse= 40= PB_Ekran.Height - 25= FalseSelect= True Sub

'Решение задачиGrafic()

Dim dblX As Double = 0dblY As Double = 300dblA, dbldt, dblFcx, dblFcy, dblFc, dblB, dblm, dblV, dblg, dblFсоп, dblt, dblVx, dblVy As Double 'объявление переменныхintx1, intx2, inty1, inty2 As Integer= Double.Parse(TextBox1.Text)= Double.Parse(TextBox2.Text)= Double.Parse(TextBox3.Text)= 9.8= 0.01= 0.1= 0.001= 0= 1000= intX0 + dblX * intKX / intMshX= intY0 - dblY * intKY / intMsh.Color = Color.Blue.Show()Form2.ZapolnTablic(dblt, dblFсоп, dblFcx, dblFcy, dblVx, dblVy, dblX, dblY)dblVy <= 0 Then= 0.5= 0.005.Color = Color.RedIf= Math.Sqrt(dblVx ^ 2 + dblVy ^ 2)= -dblA * dblV - dblB * dblV ^ 3= dblFc * dblVx / dblV= dblFc * dblVy / dblV+= dblFcx * dbldt / dblm+= (dblFcy - dblm * dblg) * dbldt / dblm+= dblVx * dbldt+= dblVy * dbldt= intX0 + dblX * intKX / intMshX= intY0 - dblY * intKY / intMsh.DrawLine(Pero, intx1, inty1, intx2, inty2)= intx2= inty2= dblt + dbldtUntil (dblY <= 0) Or (dblt > 60)SubSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickSetka()Grafic()Sub

'Процедура построения экранной сеткиSub Setka()

Pero.Width = 1.DashStyle = Drawing2D.DashStyle.Dot.Color = Color.Black(blnMsh Or blnSK) Then Holst.Clear(Color.White)intI, intJ As IntegerintI = intY0 To 0 Step -intKY.DrawLine(Pero, 0, intI, PB_Ekran.Width, intI)intIintI = intY0 To PB_Ekran.Height Step intKY.DrawLine(Pero, 0, intI, PB_Ekran.Width, intI)intIintI = intX0 To PB_Ekran.Width Step intKX.DrawLine(Pero, intI, 0, intI, PB_Ekran.Height)intIintI = intX0 To 0 Step -intKX.DrawLine(Pero, intI, 0, intI, PB_Ekran.Height)intI.Width = 3.DashStyle = Drawing2D.DashStyle.Solid.DrawLine(Pero, 0, intY0, PB_Ekran.Width, intY0).DrawLine(Pero, PB_Ekran.Width - 15, intY0 - 3, PB_Ekran.Width - 3, intY0).DrawLine(Pero, PB_Ekran.Width - 15, intY0 + 3, PB_Ekran.Width - 3, intY0).DrawString(strOX, Shrift, Kist, PB_Ekran.Width - 30, intY0 - 20).DrawLine(Pero, intX0, 0, intX0, PB_Ekran.Height).DrawLine(Pero, intX0 - 3, 10, intX0, 0).DrawLine(Pero, intX0 + 3, 10, intX0, 0).DrawString(strOY, Shrift, Kist, intX0 + 6, 0).DrawString("0", Shrift, Kist, intX0 - 10, intY0)= intMshintI = intX0 + intKX / 2 To PB_Ekran.Width Step intKX.DrawString(intJ.ToString, Shrift, Brushes.Black, intI, intY0 + 5)+= intMshintI= -intMshintI = intX0 - 3 * intKX / 2 To 0 Step -intKX.DrawString(intJ.ToString, Shrift, Brushes.Black, intI, intY0 + 5)-= intMshintI= intMshintI = intY0 - intKY To 0 Step -intKY.DrawString(intJ.ToString, Shrift, Brushes.Black, intX0 - 35, intI)+= intMshintI= -intMshintI = intY0 + intKY To PB_Ekran.Height Step intKY.DrawString(intJ.ToString, Shrift, Brushes.Black, intX0 - 35, intI)-= intMshintI= False= FalseSubSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click.Clear(Color.White)Sub

' Private Sub DobavStolb()

'DataGridView1.Colums.Add("CO", "N")

'Data()

'End Sub

' Процедура обработки события "Щелчок левой кнопки мыши на PB_Ekran"

Private Sub PB_Ekran_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PB_Ekran.MouseClickblnUkz = True Then= e.X= e.Y.Clear(Color.White).DashStyle = Drawing2D.DashStyle.Solid.Width = 3.Color = Color.Black.DrawLine(Pero, e.X, e.Y, e.X - 15, e.Y).DrawLine(Pero, e.X, e.Y, e.X, e.Y + 15)IfSubSub ОПрограммеToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОПрограммеToolStripMenuItem.Click

Dim strS As String = "Моделирование движения тела, " + vbCrLf _

+ "Брошенного под углом к горизонту" + vbCrLf _

+ vbCrLf + "Автор: Загвозкин И.А., КузГТУ, ММФ, ТСб-121"

MessageBox.Show(strS, "О программе", MessageBoxButtons.OK)SubSub ТабличныеДанныеToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ТабличныеДанныеToolStripMenuItem.Click.Show()SubSub СтиретьТаблицуToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles СтиретьТаблицуToolStripMenuItem.ClickSubClass


2.3.2 Описание класса Form 2

В классе Form2 производится построение таблицы с выведением численного решения задачи.

В разделе Public Class Form2 производится объявление глобальных переменных.

В разделе Private Sub SohrTablic() производится процедура сохранения таблицы.

В разделе Private Sub DobavStolb() производится добавления столбцов в таблицу.


Листинг 2.2 Программный код класса Form2

Public Class Form2

Dim intN As IntegerintM As IntegerblnZ As BooleanSub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load(50, Form1.Height + 40).Text = "Представление и обработка табличных данных".Font = New System.Drawing.Font("Arial", 8, FontStyle.Bold).FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D.Filter = "Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*"= 8= 0= FalseDobavStolb()SubSub DobavStolb().Columns.Add("C0", "N").Columns.Add("C1", "t, c").Columns.Add("C2", "Fсоп, H").Columns.Add("C3", "Fсx, H").Columns.Add("C4", "Fcy, H").Columns.Add("C5", "Vx, м/с").Columns.Add("C6", "Vy, м/с").Columns.Add("C7", "X, м").Columns.Add("C8", "Y, м")I As IntegerI = 0 To intN.Columns("C" + I.ToString).Width = 70ISubSub SohrTablic()strBuf As String = "".FileName = "Table.txt"SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK ThenW As New IO.StreamWriter(SaveFileDialog1.FileName, False, System.Text.Encoding.GetEncoding(1251))= "| № | t, c | Fуп, H | Fc, H |Vx, м/с|Vy, м/с| X, м | Y, м |".WriteLine(strBuf)I = 0 To intM - 1= "|"J = 0 To intN+= String.Format("{0,7}|", DataGridView1.Item(J, I).Value)J+= vbCrLf.Write(strBuf)= ""I.Close()ex As Exception.Show(ex.Message, "Ошибка", _.OK, MessageBoxIcon.Error)TryIfSubSub ZapolnTablic(ByVal t As Double, ByVal Fсоп As Double, ByVal Fcx As Double, ByVal Fcy As Double, _Vy As Double, ByVal Vx As Double, ByVal Y As Double, ByVal X As Double)strMas(8) As String(blnZ = True) ThenStirTablic()DobavStolb()= 0+= 1(0) = String.Format("{0}", intM)(1) = String.Format("{0:F2}", t)(2) = String.Format("{0:F2}", Fсоп)(3) = String.Format("{0:F2}", Fcx)(4) = String.Format("{0:F2}", Fcy)(5) = String.Format("{0:F2}", Vx)(6) = String.Format("{0:F2}", Vy)(7) = String.Format("{0:F2}", X)(8) = String.Format("{0:F2}", Y).Rows.Add(strMas)IfSubSub StirTablic()I As IntegerI = 0 To intN.Columns.Remove("C" + I.ToString)I= FalseSubSub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End SubClass


3. Описание и анализ результатов моделирования


3.1 Инструкция пользования интерфейсом программы

движение программный моделирование интерфейс

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


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


После ввода и нажатия мыши, программа нарисует траекторию полета тела, выделит вершину, максимальную высоту, а также выведет в таблицу значения расстояния, высоты, угла к горизонту и времени для каждого момента полета тела (Рис. 2.2).



Рис. 2.2 Главная форма после запуска.


После этого можно просмотреть таблицу и параметры для каждой точки. Для этого будет выведена отдельная форма с некоторыми параметрами тела (Рис. 2.3).


Рис 2.3 Таблица с численным решением


3.2 Математическое решение дополнительной задачи


Рис. 3 График зависимости вертикальной скорости от высоты полета зонда


В ходе решения дополнительной задачи брали промежуток значения начальной скорости от 60м/с до 140м/с с нагом в 10м/с. При значении вертикальной скорости 60м/с высота зонда была максимальной и составила 1316,47м, а при значении вертикальной скорости 140м/с высота полета составила 1309,8. На графике представлена зависимость вертикальной скорости от высоты полета зонда. Как мы видим чем больше вертикальная скорость тем меньше высота полета зонда.



Çàêëþ÷åíèå


В ходе работы решил физическую задачу в программе Visual Basic.NET.

Visual Basic.NET. является совершенно другим языком, таким же, как и любой другой язык программирования для платформы .NET. Индивидуальность языка так же как и его преимущества при использовании в среде NET не имеют такого значения как раньше - все сосредоточено на возможностях самой системы .NET на ее библиотеке классов.

С помощью этой программы я смог смоделировать свое задание полета тела под углом к горизонту и график зависимости X от Y.



Ñïèñîê ëèòåðàòóðû


1.Бурсиан Э.В. Физика. 100 задач для решения на компьютере: учеб. пособие. - СПб.: ИД «МиМ», 1997. - 256 с.

.Гулд Х., Тобочник Я. Компьютерное моделирование в физике: В 2-х частях. Часть 1. Пер. с англ. - М.: Мир, 1990. - 349 с.

.Кудинов Ю.И., Пащенко Ф.Ф. Основы современной информатики. - 2-е изд. испр. - М.: Издательство «Лань», 2011. - 256 с.

.Макарова Н.В., Волков В.Б. Информатика: Учебник для вузов. - СПб.: Питер, 2011. - 576 с.

.Могилев А.В. Информатика : учеб. пособие для студентов вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера - 6-е изд., стер. - М.: Издательский центр «Академия», 2008. - 848 с.

.Могилев А.В. Практикум по информатике: учеб. пособие для студентов вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера - 4-е изд., стер. - М.: Издательский центр «Академия», 2008. - 608 с.

.Поршнев С.В. Компьютерное моделирование физических процессов в пакете MATLAB. - М.: Горячая линия, 2003. - 592 с.

.Сивухин Д.В. Общий курс физики. Учеб. пособие для вузов. В 5 т. Т. I. Механика. - 4-е изд., стереот. - М.: ФИЗМАТЛИТ; Изд-во МФТИ, 2005. - 560 с.

.Хайкин С.Э. Физические основы механики. - М.: Наука, 1976. - 772 с.


СОДЕРЖАНИЕ Введение . Разработка математической модели системы 1.1 Понятие о кинематике .2 Относительность движения .3 Траектория движения

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ