Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Расчет траектории пассивного участка полета ЛА с использованием параболической теории.↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
Параболическая теория изучает движение тяжелой материальной точки в пустоте в стационарном однородном параллельном поле земного тяготения. ЕЕ применяют для ориентировочного расчета траектории ЛА, имеющих малую скорость полета, и для расчета траектории ЛА на больших высотах, где сила сопротивления ничтожна мала. Основные формулы параболической теории:
Здесь t0=0, y0=yc=228,664 м, x0=xc=270,014 м, -параметры конца активного участка рассчитанные по данным п 1.5.2 Ниже производится расчет пассивного участка траектории ЛА с использованием параболической теории для характерных точек параболической траектории. Для вершины траектории (точка D) время вычисляется по формуле: Подставляя tD в формулы 3 и 4, получим X(tD)=6626.495 м Y(tD)=2804.056 м Для точки Е (конца траектории) имеем Y(tE)=0. Тогда
Результаты расчетов представлены в сравнении с расчетами реальной траектории в таблице 1.8. Таблица 1.8
Приложение 1. Графики 1. V(t) методами численного интегрирования и по параболической теории. 2. θ(t) методами численного интегрирования и по параболической теории. 3. y(x) (Метод Эйлера и параболическая теория). 4. y(x) (Метод Рунге-Кутта и параболическая теория).
Приложение 2. Текст программы, разработанной для интегрирования методами Эйлера и Рунге-Кутта. (Программа выполнена на Visual Basic 6.0 Professional Edition)
Option Base 1 Const r0 = 1.23 Dim r As Double Dim y As Double Dim x As Double Dim V As Double Dim Q As Double Dim Xx As Double Dim m As Double Dim Yg As Double Dim Xg As Double Dim Cx As Double Dim Vg As Double Dim S As Double Dim Mn As Double Dim Rashod As Double Dim Tg As Double Dim Rs As Double Dim T As Double Dim h As Double Dim Qg As Double Dim i As Double Dim K(4, 4) As Double Dim str As String Dim j As Double
Private Sub Command1_Click() lbl.ForeColor = &HFF& lbl.Caption = "идет расчет" DoEvents Yg = CDbl(Text4.Text) * Sin(CDbl(Text3.Text)) Xg = CDbl(Text4.Text) * Cos(CDbl(Text3.Text)) Cx = CDbl(Text5.Text) Vg = CDbl(Text1.Text) S = CDbl(Text6.Text) Mn = CDbl(Text17.Text) Rashod = CDbl(Text18.Text) Tg = CDbl(Text2.Text) Rs = CDbl(Text19.Text) T = CDbl(Text16.Text) h = CDbl(Text7.Text) Qg = CDbl(Text3.Text) Text33.Text = "" Text34.Text = "" Text36.Text = "" Text40.Text = "" Text38.Text = ""
'---------------------------------- 'Активный участок траектории полета 'Эйлер x = Xg y = Yg V = Vg Q = Qg j = Tg For i = Tg To T Step h r = r0 * Exp(-y / 7800) Xx = 0.5 * Cx * r * S * V ^ 2 m = Mn - Rashod * i V = V + h * (Rs - 9.81 * m * Sin(Q) - Xx) / m Q = Q - h * 9.81 * Cos(Q) / V x = x + h * V * Cos(Q) y = y + h * V * Sin(Q) If Option1.Value = True And Round(i, 2) = Round(j, 2) Then j = j + 1 Text33.Text = Text33.Text & Round(i, 2) & vbCrLf Text34.Text = Text34.Text & Round(V, 1) & vbCrLf Text36.Text = Text36.Text & Round(Q, 3) & vbCrLf Text40.Text = Text40.Text & Round(x, 0) & vbCrLf Text38.Text = Text38.Text & Round(y, 0) & vbCrLf End If If i = Tg Then str = "Значения коэфициентов" & vbCrLf & "на первом шаге Э" & vbCrLf str = str & "V = " & Round(V, CLng(Text21.Text)) & vbCrLf str = str & "Q = " & Round(Q, CLng(Text21.Text)) & vbCrLf str = str & "X = " & Round(x, CLng(Text21.Text)) & vbCrLf str = str & "Y = " & Round(y, CLng(Text21.Text)) & vbCrLf & vbCrLf End If Next i Text8.Text = Round(V, CLng(Text21.Text)) Text9.Text = Round(Q, CLng(Text21.Text)) Text10.Text = Round(x, CLng(Text21.Text)) Text11.Text = Round(y, CLng(Text21.Text)) '----------------------------- 'Рунге-Кутт x = Xg y = Yg V = Vg Q = Qg j = Tg For i = Tg To T Step h r = r0 * Exp(-y / 7800) Xx = 0.5 * Cx * r * S * V ^ 2 m = Mn - Rashod * i K(1, 1) = h * (Rs - 9.81 * m * Sin(Q) - Xx) / m K(1, 2) = -9.81 * h * Cos(Q) / V K(1, 3) = h * V * Cos(Q) K(1, 4) = h * V * Sin(Q)
r = r0 * Exp(-(y + 0.5 * K(1, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + 0.5 * K(1, 1)) ^ 2 m = Mn - Rashod * (i + h / 2) K(2, 1) = h * (Rs - 9.81 * m * Sin(Q + K(1, 2) / 2) - Xx) / m K(2, 2) = -9.81 * h * Cos(Q + K(1, 2) / 2) / (V + K(1, 1) / 2) K(2, 3) = h * (V + K(1, 1) / 2) * Cos(Q + K(1, 2) / 2) K(2, 4) = h * (V + K(1, 1) / 2) * Sin(Q + K(1, 2) / 2)
r = r0 * Exp(-(y + 0.5 * K(2, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + 0.5 * K(2, 1)) ^ 2 m = Mn - Rashod * (i + h / 2) K(3, 1) = h * (Rs - 9.81 * m * Sin(Q + K(2, 2) / 2) - Xx) / m K(3, 2) = -9.81 * h * Cos(Q + K(2, 2) / 2) / (V + K(2, 1) / 2) K(3, 3) = h * (V + K(2, 1) / 2) * Cos(Q + K(2, 2) / 2) K(3, 4) = h * (V + K(2, 1) / 2) * Sin(Q + K(2, 2) / 2)
r = r0 * Exp(-(y + K(3, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + K(3, 1)) ^ 2 m = Mn - Rashod * (i + h) K(4, 1) = h * (Rs - 9.81 * m * Sin(Q + K(3, 2)) - Xx) / m K(4, 2) = -9.81 * h * Cos(Q + K(3, 2)) / (V + K(3, 1)) K(4, 3) = h * (V + K(3, 1)) * Cos(Q + K(3, 2)) K(4, 4) = h * (V + K(3, 1)) * Sin(Q + K(3, 2))
V = V + (K(1, 1) + K(4, 1) + 2 * (K(2, 1) + K(3, 1))) / 6 Q = Q + (K(1, 2) + K(4, 2) + 2 * (K(2, 2) + K(3, 2))) / 6 x = x + (K(1, 3) + K(4, 3) + 2 * (K(2, 3) + K(3, 3))) / 6 y = y + (K(1, 4) + K(4, 4) + 2 * (K(2, 4) + K(3, 4))) / 6
If Option2.Value = True And Round(i, 2) = Round(j, 2) Then j = j + 1 Text33.Text = Text33.Text & Round(i, 2) & vbCrLf Text34.Text = Text34.Text & Round(V, 1) & vbCrLf Text36.Text = Text36.Text & Round(Q, 3) & vbCrLf Text40.Text = Text40.Text & Round(x, 0) & vbCrLf Text38.Text = Text38.Text & Round(y, 0) & vbCrLf End If
If i = Tg Then str = str & "Значения коэффициентов" & vbCrLf & "на первом шаге Р-К" & vbCrLf str = str & "K(1,1) = " & Round(K(1, 1), CLng(Text21.Text)) & vbCrLf str = str & "K(1,2) = " & Round(K(1, 2), CLng(Text21.Text)) & vbCrLf str = str & "K(1,3) = " & Round(K(1, 3), CLng(Text21.Text)) & vbCrLf str = str & "K(1,4) = " & Round(K(1, 4), CLng(Text21.Text)) & vbCrLf str = str & "K(2,1) = " & Round(K(2, 1), CLng(Text21.Text)) & vbCrLf str = str & "K(2,2) = " & Round(K(2, 2), CLng(Text21.Text)) & vbCrLf str = str & "K(2,3) = " & Round(K(2, 3), CLng(Text21.Text)) & vbCrLf str = str & "K(2,4) = " & Round(K(2, 4), CLng(Text21.Text)) & vbCrLf str = str & "K(3,1) = " & Round(K(3, 1), CLng(Text21.Text)) & vbCrLf str = str & "K(3,2) = " & Round(K(3, 2), CLng(Text21.Text)) & vbCrLf str = str & "K(3,3) = " & Round(K(3, 3), CLng(Text21.Text)) & vbCrLf str = str & "K(3,4) = " & Round(K(3, 4), CLng(Text21.Text)) & vbCrLf str = str & "K(4,1) = " & Round(K(4, 1), CLng(Text21.Text)) & vbCrLf str = str & "K(4,2) = " & Round(K(4, 2), CLng(Text21.Text)) & vbCrLf str = str & "K(4,3) = " & Round(K(4, 3), CLng(Text21.Text)) & vbCrLf str = str & "K(4,4) = " & Round(K(4, 4), CLng(Text21.Text)) & vbCrLf str = str & "V = " & Round(V, CLng(Text21.Text)) & vbCrLf str = str & "Q = " & Round(Q, CLng(Text21.Text)) & vbCrLf str = str & "X = " & Round(x, CLng(Text21.Text)) & vbCrLf str = str & "Y = " & Round(y, CLng(Text21.Text)) Text20.Text = str End If
Next i Text12.Text = Round(V, CLng(Text21.Text)) Text13.Text = Round(Q, CLng(Text21.Text)) Text14.Text = Round(x, CLng(Text21.Text)) Text15.Text = Round(y, CLng(Text21.Text)) '---------------------------------- 'Пассивный участок траектории полета 'Эйлер V = CDbl(Text8.Text) Q = CDbl(Text9.Text) x = CDbl(Text10.Text) y = CDbl(Text11.Text) i = T m = Mn - Rashod * T j = T Do While y > 0 r = r0 * Exp(-y / 7800) Xx = 0.5 * Cx * r * S * V ^ 2 V = V - h * (9.81 * m * Sin(Q) + Xx) / m Q = Q - h * 9.81 * Cos(Q) / V x = x + h * V * Cos(Q) y = y + h * V * Sin(Q)
If Option1.Value = True And Round(i, 2) = Round(j, 2) Then j = j + 1 Text33.Text = Text33.Text & Round(i, 2) & vbCrLf Text34.Text = Text34.Text & Round(V, 1) & vbCrLf Text36.Text = Text36.Text & Round(Q, 3) & vbCrLf Text40.Text = Text40.Text & Round(x, 0) & vbCrLf Text38.Text = Text38.Text & Round(y, 0) & vbCrLf End If
If Abs(Q) < 0.001 Then str = "Значения параметров" & vbCrLf & "в наивысшей точке траектории" & vbCrLf & "методом Эйлера" & vbCrLf str = str & "t = " & Round(i, 2) & vbCrLf str = str & "V = " & Round(V, CLng(Text21.Text)) & vbCrLf str = str & "Q = 0" & vbCrLf str = str & "X = " & Round(x, CLng(Text21.Text)) & vbCrLf str = str & "Y = " & Round(y, CLng(Text21.Text)) & vbCrLf & vbCrLf End If i = i + h Loop Text25.Text = Round(V, CLng(Text21.Text)) Text24.Text = Round(Q, CLng(Text21.Text)) Text23.Text = Round(x, CLng(Text21.Text)) Text22.Text = Round(y, CLng(Text21.Text)) Text31.Text = Round(i, 2) '----------------------------- 'Рунге-Кутт V = CDbl(Text12.Text) Q = CDbl(Text13.Text) x = CDbl(Text14.Text) y = CDbl(Text15.Text) i = T j = T m = Mn - Rashod * T Do While y > 0 r = r0 * Exp(-y / 7800) Xx = 0.5 * Cx * r * S * V ^ 2 K(1, 1) = h * (-9.81 * m * Sin(Q) - Xx) / m K(1, 2) = -9.81 * h * Cos(Q) / V K(1, 3) = h * V * Cos(Q) K(1, 4) = h * V * Sin(Q)
r = r0 * Exp(-(y + 0.5 * K(1, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + 0.5 * K(1, 1)) ^ 2 K(2, 1) = h * (-9.81 * m * Sin(Q + K(1, 2) / 2) - Xx) / m K(2, 2) = -9.81 * h * Cos(Q + K(1, 2) / 2) / (V + K(1, 1) / 2) K(2, 3) = h * (V + K(1, 1) / 2) * Cos(Q + K(1, 2) / 2) K(2, 4) = h * (V + K(1, 1) / 2) * Sin(Q + K(1, 2) / 2)
r = r0 * Exp(-(y + 0.5 * K(2, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + 0.5 * K(2, 1)) ^ 2 K(3, 1) = h * (-9.81 * m * Sin(Q + K(2, 2) / 2) - Xx) / m K(3, 2) = -9.81 * h * Cos(Q + K(2, 2) / 2) / (V + K(2, 1) / 2) K(3, 3) = h * (V + K(2, 1) / 2) * Cos(Q + K(2, 2) / 2) K(3, 4) = h * (V + K(2, 1) / 2) * Sin(Q + K(2, 2) / 2)
r = r0 * Exp(-(y + K(3, 4)) / 7800) Xx = 0.5 * Cx * r * S * (V + K(3, 1)) ^ 2 K(4, 1) = h * (-9.81 * m * Sin(Q + K(3, 2)) - Xx) / m K(4, 2) = -9.81 * h * Cos(Q + K(3, 2)) / (V + K(3, 1)) K(4, 3) = h * (V + K(3, 1)) * Cos(Q + K(3, 2)) K(4, 4) = h * (V + K(3, 1)) * Sin(Q + K(3, 2))
V = V + (K(1, 1) + K(4, 1) + 2 * (K(2, 1) + K(3, 1))) / 6 Q = Q + (K(1, 2) + K(4, 2) + 2 * (K(2, 2) + K(3, 2))) / 6 x = x + (K(1, 3) + K(4, 3) + 2 * (K(2, 3) + K(3, 3))) / 6 y = y + (K(1, 4) + K(4, 4) + 2 * (K(2, 4) + K(3, 4))) / 6
If Option2.Value = True And Round(i, 2) = Round(j, 2) Then j = j + 1 Text33.Text = Text33.Text & Round(i, 2) & vbCrLf Text34.Text = Text34.Text & Round(V, 1) & vbCrLf Text36.Text = Text36.Text & Round(Q, 3) & vbCrLf Text40.Text = Text40.Text & Round(x, 0) & vbCrLf Text38.Text = Text38.Text & Round(y, 0) & vbCrLf End If
If Abs(Q) < 0.001 Then str = str & "Значения параметров" & vbCrLf & "в наивысшей точке траектории" & vbCrLf & "методом Рунге-Кутта" & vbCrLf str = str & "t = " & Round(i, 2) & vbCrLf str = str & "V = " & Round(V, CLng(Text21.Text)) & vbCrLf str = str & "Q = 0" & vbCrLf str = str & "X = " & Round(x, CLng(Text21.Text)) & vbCrLf str = str & "Y = " & Round(y, CLng(Text21.Text)) Text30.Text = str End If i = i + h Loop Text29.Text = Round(V, CLng(Text21.Text)) Text28.Text = Round(Q, CLng(Text21.Text)) Text27.Text = Round(x, CLng(Text21.Text)) Text26.Text = Round(y, CLng(Text21.Text)) Text32.Text = Round(i, 2)
lbl.ForeColor = &HC000& lbl.Caption = "Расчет выполнен" End Sub
Private Sub Command2_Click() End End Sub
1. Бахвалов Н.С. Численные методы. т.1., М.: Наука, 1975. 2. Волков Е.А. Численные методы. М.: Наука, 1982 3. Шалыгин А.С. и др. Автоматизация расчета траекторий ЛА: Учебн. пособие. – Л., 1990. 4. http://a5.bstu.spb.su
|
||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 553; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.91.170 (0.008 с.) |