![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Расчет траектории пассивного участка полета ЛА с использованием параболической теории.Содержание книги
Поиск на нашем сайте
Параболическая теория изучает движение тяжелой материальной точки в пустоте в стационарном однородном параллельном поле земного тяготения. ЕЕ применяют для ориентировочного расчета траектории ЛА, имеющих малую скорость полета, и для расчета траектории ЛА на больших высотах, где сила сопротивления ничтожна мала. Основные формулы параболической теории:
Здесь t0=0, y0=yc=228,664 м, x0=xc=270,014 м,
Ниже производится расчет пассивного участка траектории ЛА с использованием параболической теории для характерных точек параболической траектории. Для вершины траектории (точка 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; просмотров: 567; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.221.113 (0.01 с.) |