Проект компьютеризации расчета траектории неуправляемого летательного аппарата
Особенности и основные этапы разработка компьютерной модели расчета траектории неуправляемого летательного аппарата, анализ модели динамики. Метод Эйлера как линейное приближение, использующее первые два члена ряда Тейлора, способы решения задач.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.01.2013 |
Размер файла | 930,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Таблица. Исходные данные и полученные результаты:
Калибр d, м |
Полный вес G, кг |
Вес топлива , кг |
Время горения топлива t,с |
Длина направляющих Sн, м |
Коэффициент i |
Угол подъема направляющих , 0 |
Эффективная скорость истечения Ue, м/с |
|
0.15 |
60 |
12 |
0.6 |
4 |
1.6 |
45 |
2000 |
Таблица. Дополнительные параметры
Секундный массовый расход Q, кг/с |
Тяга R, кг*м/с2 |
Коэффициент лобового сопротивления Cx |
Площадь миделя S, м2 |
|
20 |
40000 |
0.26 |
0.01767 |
Таблица. Движение по направляющим
Дульная скорость Vd, м/с |
Дульное время td, с |
Угол наклона d, град |
|
39.514 |
0.19445 |
45 |
Таблица. Активный участок траектории ЛА
Обозначение |
Va ,м/с |
ta, c |
a , рад |
Xa , m |
Ya, m |
M, kg |
|
Метод Эйлера |
356,305 |
2 |
0,687 |
274,737 |
234,633 |
100 |
|
Метод Р-К |
357,048 |
2 |
0,681 |
270,014 |
228,664 |
100 |
Таблица. Пассивный участок траектории ЛА.
Обозначение |
Vp,м/с |
tp,c |
p,рад |
Xp,m |
Yp,m |
|
Метод Эйлера |
46,05 |
285,498 |
-0,813 |
10503,017 |
0 |
|
Метод Р-К |
45,9 |
286,014 |
-0,808 |
10534,668 |
0 |
1.Разработка компьютерной модели расчета траектории неуправляемого летательного аппарата
1.1 Постановка задач. Анализ и представление исходных данных
компьютерный летательный аппарат
В этой главе рассмотрены следующие задачи:
Разработка компьютерной модели расчета траектории неуправляемого ЛА, используя методы численного интегрирования Эйлера и Рунге-Кутта.
Расчет траектории пассивного участка полета неуправляемого ЛА с использованием параболической теории.
Траектория полета неуправляемого ЛА (снаряда РСЗО) состоит из трех характерных участков:
движение по направляющим;
активный участок;
пассивный участок.
Расчет дополнительных параметров:
1. Секундный массовый расход (q) рассчитан по формуле:
2. Тяга двигателя (R) рассчитана по формуле:
R=Ue*q
3. Коэффициент лобового сопротивления рассчитан по формуле:
Cx=Cx(M)*i , где Cx=Cx(M)-коэффициент лобового сопротивления эталонного ЛА. Принимаем Cx =0.3.
4. Площадь миделя ЛА рассчитана по формуле:
5. Закон изменения массовой плотности воздуха от высоты полета принимаем в виде, где ro= 1.23- плотность воздуха на уровне моря; высота y в формуле берется в метрах.
6. Закон изменения массы принимаем в виде m= m0-q*t.
1.2 Модель динамики неуправляемого ЛА
1.2.1 Движение ЛА по направляющим
При расчете движения по направляющем принимается во внимание действие на ЛА следующих сил: R- тяга, G- вес ЛА, F- реакция направляющих, которая состоит из силы трения Fтр и нормальной составляющей N. Аэродинамическими силами при расчете движения по направляющим обычно пренебрегают.
Кроме того, в идеальном случае направляющие принимаются жесткими и недеформированными. Расчетная схема движения представлена на рисунке 1.1.
Рис 1.1.
Уравнение движения ЛА на направляющих в проекции на направление скорости запишется в виде
где f- коэффициент трения скольжения, m=m0-Q*t - принимаемый в работе закон изменения массы ЛА, G=m*g. Записывая уравнение движения в нормальной форме Коши, получаем
Последовательно интегрируя уравнение с учетом соотношения ds/dt=v, находим
Полагая в формулах t=td, получаем выражение для дульной скорости Vd и длины направляющих:
Если задана длина направляющих Sh, то, решая численно уравнение, определим td. Для этого уравнение запишем в виде
Если пренебречь изменением массы при движении ЛА по направляющим, то, заменяя массу ЛА средним значением m= mср,
получаем
По этим формулам можно приближенно найти vd и td.
Примечание: 1. Коэффициент трения скольжения ЛА об направляющие f равен 0.15 (f=0.15).
2. Изменением массы при движении ЛА по направляющим пренебрегаем.
1.2.2 Активный участок полета ЛА
При расчете активного участка полета ЛА принимают следующие допущения:
1. угол атаки равен нулю.
2. тяга R постоянна.
При сделанных допущениях уравнения для расчета траектории ЛА на активном участке полета запишутся в виде следующей системы дифференциальных уравнений первого порядка:
Здесь X=0.5*Cx*Ro*S*V - сила лобового сопротивления. Остальные элементы системы были указаны выше.
1.2.3 Пассивный участок полета ЛА
При расчете пассивного участка полета ЛА также используется система (1.1). При этом:
тяга R равна нулю (R=0).
поверхность Земли представляется в виде бесконечной плоскости.
масса ЛА постоянна (m= m-mt=const).
1.3 Алгоритмы численного интегрирования на основе методов Эйлера и Рунге-Кутта
Рассмотрим метод Эйлера - линейное приближение, использующее первые два члена ряда Тейлора. Здесь искомая интегральная кривая аппроксимируется ломаной линией. Если шаг h достаточно мал, то интеграл в формуле можно вычислить используя теорему о среднем, т.е. вынося подынтегральную функцию из- под знака интеграла средним значением.
В методе Эйлера подынтегральная функция выносится при нижнем пределе интегрирования: . Это приближение геометрически соответствует движению от точки x к точке х+h по касательной к кривой y(x) в точке х. Запишем расчетные формулы метода Эйлера:
yk+1=yk+f(xk,yk)h, xk=xk-1+h
y(x0)=y0, yk=y(xk)
В усовершенствованном методе Эйлера- Коши в первом приближении полагается:
а во втором
Погрешность метода Эйлера определяется остаточным членом ряда Тейлора
т.е. R~h2 на каждом шаге вычислений. Для обеспечения сходимости шаг h следует выбирать достаточно малым. Для метода Эйлера- Коши погрешность имеет порядок h2.
Рассмотрим метод Рунге и Кутта. В основе получения вычислительных схем этого метода лежит разложение функции y(x) в ряд Тейлора с последующим преобразованием отрезка ряда к виду, не содержащему производных. На шаге h производная dy/dx=f(x,y) аппроксимируется параболой второго порядка. Здесь функция ?(x,h) определяется формулой парабол Симпсона (формула Ньютона - Котеса для трех узлов):
Рассмотрим дифференциальное уравнение при начальном условии (хА,уА). Выполним следующие операции:
По известным начальным условиям (хА,уА) определим значение производной в начальной точке А: .
Из начальной точки А проведем прямую (рис 1.2.)
и отметим значение ее ординаты в середине шага интегрирования h (точка В с координатами
).
Рис 1.2.
2) Найдем значение производной по формуле в точке В: и проведем из точки А прямую . Отметим значение ординаты этой прямой в середине шага интегрирования h (точка С с координатами ).
3) По уравнению найдем значение производной в точке С: и проведем из точки А прямую . Отметим значение ординаты этой прямой в конце шага интегрирования h (точка D с координатами ).
4) По уравнению найдем значение производной в точке D: .
В результате построений найдем значение производных в точках А, В,С и D. Отложим эти значения на графике рис 1.3. Как видно из графика, в точке с абсциссой получены два значения производной вместо одного. Это следствие приближенности метода. Примем в этой точке среднее значение производной: . Отложив на графике (рис 1.3.) ординату , получим точку М.
Рис 1.3.
Будем считать, что кривая, изображающая зависимость должна проходить через точки A,M и D. Проведем через эти три точки параболу, уравнение которой:
.
Значения коэффициентов a,b и с выбираются из условия прохождения параболы через точки А, М, и D. Коэффициент . Из уравнения параболы имеем систему:
Решив эти уравнения, найдем:
Проинтегрируем теперь уравнение параболы в пределах от x=xA до x=xA+h. Значение этого интеграла является приращением искомой функции y при изменении х на величину h. Таким образом Подставив сюда полученные выше выражения для a,b,c, после приведения подобных членов для общего случая () получим:
Как видно, приращение искомой функции на шаге h при помощи описанных построений удалось представить через значения первых производных функции в четырех точках, лежащих в пределах шага интегрирования h.
Запишем расчетные формулы метода Рунге- Кутта:
При условии существования у функции производных четвертого порядка погрешность метода является величиной порядка h5.
Для системы дифференциальных уравнений первого порядка данный алгоритм выполняется для каждого уравнения системы параллельно.
1.4 Решение контрольной задачи для одного шага интегрирования методами Эйлера и Рунге-Кутта (Проведение расчетов без ПК)
1.4.1 Начальные условия
Для решения тестового примера на 1 шаг интегрирования системы (1.1) методами Эйлера и Рунге- Кутта задаем следующие начальные условия:
1.Шаг интегрирования h принимаем равным 0.05 секунды (h=0.05 сек.);
2. V=Vg, где Vg- скорость ЛА в момент схода с направляющих, рассчитываемая по формуле:
, где
qg - угол наклона направляющих; qg =450=0,785 рад;
tg- дульное время, рассчитываемые по формуле:
Vg = и tg = , где
=
Vg =
3. q=qg - угол наклона направляющих; ??g=450=0,785 рад.
4. х- начальная абсцисса, рассчитываемая по формуле:
5. у- начальная ордината, рассчитываемая по формуле:
1.4.2 Расчет системы уравнений методом Эйлера (1 шаг)
1. Нахождение коэффициентов К1 для каждого уравнения.
По определению коэффициенты К1- это правые части уравнений, вычисленные при начальных условиях.
а. плотность при начальной высоте :
б. лобовое сопротивление при начальной (дульной) скорости:
X=0,5*0.26*0.01767*1.22967*(72.9421)2=15.0288
в. Масса при начальном (дульном) времени:
m=60-20*0.1095=57.81
г. К1(1)= (40000 - 9.81*57.81* 0.785 - 15.0288) / 57.81 = 683.96 м/с2
К1(2)=-9,81*cos450/ 22,708= -0.7761 рад/с
К1(3)=22,708*cos450= 3.51304 м/с
К1(4)=22,708*sin450= 3.4857 м/с
2. Результаты одного шага интегрирования по методу Эйлера:
1.4.3 Расчет системы уравнений методом Рунге-Кутта (1 шаг)
1. Нахождение коэффициентов К1 для каждого уравнения.
По определению коэффициенты К1- это правые части уравнений, вычисленные при начальных условиях.
а. плотность при начальной высоте :
б. лобовое сопротивление при начальной (дульной) скорости:
X=0,5*0.26*0.01767*1.22967*(72.9421)2=15.0288
в. Масса при начальном (дульном) времени:
m=60-20*0.1095=57.81
г. К1(1)= 8,1224487289
К1(2)= -0,0112446838
К1(3)= 1,091383734
К1(4)= 1,0905149817
2. Нахождение коэффициентов К2 для каждого уравнения.
По определению коэффициенты К2- это правые части уравнений, вычисленные при полученных новых значениях параметров.
К2(1)= 8,1419713966
К2(2)= -0,009992507
К2(3)= 1,241945517
К2(4)= 1,2270805529
3. Нахождение коэффициентов К3 для каждого уравнения
По определению К3- это правые части уравнений, вычисленные при полученных новых значениях параметров.
К3(1)= 8,1417519898
К3(2)= -0,0099835329
К3(3)= 1,2415239848
К3(4)= 1,2282011286
4. Нахождение коэффициента К4 для всех уравнений
По определению К4- это правые части уравнений, вычисленные в конце шага
К4(1)= 8,1610849832
К4(2)= -0,0089854278
К4(3)= 1,3930436092
К4(4)= 1,364415478
5. Результаты одного шага по методу Рунге- Кутта.
1.4.4 Сравнение решений тестового примера на 1 шаг, полученных вручную (п.1.4.1 и 1.4.2) и с использованием программного комплекса
Сравнение результатов производится в соответствии с данными, представленными в таблице 1.3.:
Таблица 1.3
Обозначения |
Vд |
д |
Xд |
Yд |
Vt |
t |
Xt |
Yt |
|
Компьютерная модель метода Эйлера |
30,85671 |
0,785398 |
2.121 |
2.121 |
38,979 |
0,776 |
3,512 |
3,487 |
|
Ручной счет |
30,85671 |
0,785398 |
2.121 |
2.121 |
38,979 |
0,776 |
3,513 |
3,486 |
|
Компьютерная модель метода Рунге-Кутта |
30,85671 |
0,785398 |
2.121 |
2.121 |
38,998 |
0,775 |
3,363 |
3,349 |
|
Ручной счет |
30,85671 |
0,785398 |
2.121 |
2.121 |
38,999 |
0,775 |
3,364 |
3,348 |
Примечание: Результаты компьютерного решения тестового примера взяты из результатов работы программного комплекса.
1.5 Результаты расчета траекторных параметров неуправляемого ЛА
1.5.1 Движение по направляющим
Результатами расчета траекторных параметров данного участка траектории являются значения дульной скорости (vd) и дульного времени (td).
Результаты расчета приведены в таблице 1.4.:
Таблица 1.4
Дульная скорость vg, м/с |
Дульное время tg, с |
Угол наклона , град |
|
30,85671 |
0,19445 |
45 |
1.5.2 Активный участок траектории ЛА
Расчет траекторных параметров на конце активного участка полета ЛА произведен с помощью программного комплекса с шагом интегрирования равным 0,05
Таблица 1.5
Обозначние |
Va ,м/с |
ta, c |
a , рад |
Xa , m |
Ya, m |
M, kg |
|
Метод Эйлера |
356,305 |
2 |
0,687 |
274,737 |
234,633 |
100 |
|
Метод Р-К |
357,048 |
2 |
0,681 |
270,014 |
228,664 |
100 |
1.5.3 Пассивный участок траектории ЛА
Расчет траекторных параметров на конце пассивного участка полета ЛА произведен с помощью программного комплекса с шагом интегрирования равным 0.05
Таблица 1.6.
Обозначение |
tp,c |
Vp,м/с |
p,рад |
Xp,m |
Yp,m |
|
Метод Эйлера |
46,05 |
285,498 |
-0,813 |
10503,017 |
0 |
|
Метод Р-К |
45,9 |
286,014 |
-0,808 |
10534,668 |
0 |
1.5.4 Результаты расчета траекторных параметров неуправляемого ЛА для характерных точек траектории
Результаты расчета траекторных параметров неуправляемого ЛА в данном пункте приводятся для характерных точек траектории, показанных на рисунке 1.11.
Рис 1.11.
где A- точка начала движения по направляющим;
B- точка конца движения по направляющим (начало активного участка);
C- точка конца активного участка (начало пассивного участка);
E- наивысшая точка траектории;
D- точка контакта снаряда с поверхностью;
Результаты расчета представлены в таблице 1.7.
Таблица 1.7
Точка |
t, c |
V, м/с |
?, рад |
Х, м |
Y, м |
|
Метод Эйлера |
||||||
А |
0 |
0 |
0.785 |
0 |
0 |
|
В |
0,194 |
30,857 |
0.785 |
2.121 |
2.121 |
|
С |
2 |
356,305 |
0,687 |
274,737 |
234,633 |
|
D |
22,85 |
232,458 |
0 |
5514,226 |
2495,135 |
|
Е |
46,05 |
285,498 |
-0,813 |
10503,017 |
0 |
|
Метод Р-К |
||||||
A |
0 |
0 |
0,785 |
0 |
0 |
|
B |
0,194 |
30,857 |
0.785 |
2.121 |
2.121 |
|
C |
2 |
357,048 |
0,681 |
270,014 |
228,664 |
|
D |
22,75 |
234,079 |
0 |
5520,904 |
2475,650 |
|
E |
45,9 |
286,014 |
-0,808 |
10534,668 |
0 |
Примечание: Результаты расчета получены при помощи программного комплекса
1.6 Расчет траектории пассивного участка полета ЛА с использованием параболической теории
Параболическая теория изучает движение тяжелой материальной точки в пустоте в стационарном однородном параллельном поле земного тяготения. ЕЕ применяют для ориентировочного расчета траектории ЛА, имеющих малую скорость полета, и для расчета траектории ЛА на больших высотах, где сила сопротивления ничтожна мала.
Основные формулы параболической теории:
Здесь 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
Точка |
Координата Х, м (числ/ П.Т.) |
Координата Y, м (числ/ П.Т.) |
|
C |
270,014/270,014 |
228,664/228,664 |
|
D |
5520,904/6626.495 |
2475,650/2804.056 |
|
E |
10534,668/19615.69 |
0/0 |
Приложение 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
Размещено на Allbest.ru
Подобные документы
Особенности применения автономных необитаемых подводных аппаратов (АНПА) в задачах обследования акватории, их виды и основные задачи. Система автоматизации подготовки программы-задания для АНПА. Программное обеспечение для формирования траектории.
дипломная работа [3,3 M], добавлен 19.12.2011Моделирование траектории движения космического аппарата, запускаемого с борта космической станции, относительно Земли. Запуск осуществляется в направлении, противоположном движению станции, по касательной к её орбите. Текст программы в среде Matlab.
контрольная работа [138,8 K], добавлен 31.05.2010Создание модели с использованием шаблона, предложенного программой по умолчанию. Создание твердотельной модели. Построение траектории обработки и получение управляющей программы. Построение траектории обработки профиля. Отображение удаленного материала.
курсовая работа [1,3 M], добавлен 25.07.2012Порядок построения модели "асинхронного процесса" работы аналогового копировального аппарата. Компоненты и множество ситуаций рассматриваемого процесса. Траектории выполнения процесса и классы эквивалентности ситуаций. Основные операции над процессами.
контрольная работа [161,7 K], добавлен 06.09.2011Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.
курсовая работа [1,9 M], добавлен 05.01.2013Описание математической модели летательного аппарата. Разработка алгоритмов управления беспилотным летательным аппаратом . Модель атмосферы и воздушных возмущений. Модель рулевых органов. Синтез управления на траекторном уровне. Петля Нестерова.
дипломная работа [1,0 M], добавлен 29.09.2008Расчет производства необходимого количества продукции для получения максимальной прибыли предприятия. Математическая модель для решения задач линейного программирования. Построение ограничений и целевых функций. Исследование чувствительности модели.
задача [74,7 K], добавлен 21.08.2010Построение имитационной модели и метод решения задач, при использовании которого исследуемая система заменяется более простым объектом, описывающим реальную систему. Имитационная модель компьютерной программы, её значение при решении моделируемых задач.
курсовая работа [343,1 K], добавлен 04.06.2012Метод решения математической модели на примере решения задач аналитической геометрии. Описание согласно заданному варианту методов решения задачи. Разработка математической модели на основе описанных методов. Параметры окружности минимального радиуса.
лабораторная работа [310,6 K], добавлен 13.02.2009Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011