Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2012, 12:45   #1
.FROST.
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 56
По умолчанию Спуск космического аппарата на Луну

Здравствуйте. Помогите решить проблему. Задача: Рассмотрим пример нахождения моментов включения и выключения двигателя ksi0,t1 космического аппарата, выполняющего спуск на Луну.
Исходные данные для расчета:
g=1, 623 м/с2 - гравитационное ускорение Луны;
u0=1 кг/с - секундный расход топлива;
mu =2500 м/с - скорость истечения газов относительно спускаемого аппарата;
v0=0 м/с - начальная скорость снижения.
Начальная высота h0 =400000 м и уменьшается с интервалом 20000 м. Используя для вычислений Matlab, получим таблицу значений:

h0(м) t1(c) ksi0(c)

400000 936.12 480.7
380000 915.45 467.39
360000 894.14 453.78
340000 872.14 439.82
320000 849.37 425.51
300000 825.76 410.79
280000 801.21 395.64
260000 775.63 380.01
240000 748.87 363.85
220000 720.79 347.08
200000 691.18 329.63
180000 659.79 311.39
160000 626.32 292.22
140000 590.31 271.97
120000 551.19 250.38
100000 508.08 227.12
80000 459.66 201.66
60000 403.64 173.12
42481 344.91 144.29
42480 -767.67 -121.63


Ниже приведен листинг программы нахождения временных параметров.
>>syms ksi0 t1
h0=380000; v0=0; g=1.623; mu=2500; m0=1000; u0=1;
x1_ksi0=h0+v0*ksi0-g*ksi0^2/2;
x2_ksi0=v0-g*ksi0;
eq1=x1_ksi0+x2_ksi0*(t1-ksi0)-1/2*g*(t1-ksi0)^2+mu/u0*m0*((1-u0*(t1- - ksi0)/m0)*log(1-u0*(t1-ksi0)/m0)+u0*(t1-ksi0)/m0);
eq2=x2_ksi0-g*(t1-ksi0)-mu*log(1-u0*(t1-ksi0)/m0);
[ksi0,t1]=solve(eq1,eq2,'ksi0,t1');
ksi0=(exp((v0-g*t1)/mu)*m0-m0+u0*t1)/u0;
>> t1
t1 =915.45197647092986939538929357655
>> ksi0
ksi0 =467.39446635520641448420019727309




Проблема в следующем:почему при уменьшении высоты до 42480 наблюдается такое резкое изменение ksi0, t1?
Как решить данную проблему? Или помогите решить эту задачу другим способом.

Последний раз редактировалось .FROST.; 06.12.2012 в 12:47.
.FROST. вне форума Ответить с цитированием
Старый 06.12.2012, 12:58   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Э-э-э... а какой физический смысл у отрицательного ksi и t? Где ноль времени? Почему здесь нельзя нормально писать формулы?
Такое ощущение, что получилось решение какой-то обратной задачи - у Вас с ростом времени растёт высота, и на "начальную" высоту 400000 Вы забираетесь через 936 секунд.
Кроме того, совершенно явно не хватает массы аппарата и запасов топлива. Не видно ограничения на расход топлива и условия ksi>0 - а значит, формально можно потратить топливо, пока не останется -30 кг, потом включить двигатель на -35 с и в баке станет 5 кг. Гм...
Abstraction вне форума Ответить с цитированием
Старый 07.12.2012, 09:44   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Вообще это задача советских времен, только извращенная в духе времени. Цель задачи было посадить аппарат на луну, не разбив его. Закавыка была в том, что на каждый момент времени нужно было учитывать массу аппарата, которая менялась из-за рсхода топлива. Здесь вообще масса отсутствует, задача явно сведена к сферической в окололунном вакууме
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.12.2012, 11:25   #4
.FROST.
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Э-э-э... а какой физический смысл у отрицательного ksi и t? Где ноль времени? Почему здесь нельзя нормально писать формулы?
Такое ощущение, что получилось решение какой-то обратной задачи - у Вас с ростом времени растёт высота, и на "начальную" высоту 400000 Вы забираетесь через 936 секунд.
Кроме того, совершенно явно не хватает массы аппарата и запасов топлива. Не видно ограничения на расход топлива и условия ksi>0 - а значит, формально можно потратить топливо, пока не останется -30 кг, потом включить двигатель на -35 с и в баке станет 5 кг. Гм...
Это задача о посадке КА. ksi-момент включения двигателя.t1-выключения(посадки КА). начальная масса m0=1000.Другими словами мне необходимо найти критическую высоту, т.е. минимальную для включения двигателя,необходимую для осуществления мягкой посадки.
.FROST. вне форума Ответить с цитированием
Старый 07.12.2012, 12:28   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

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

1) Вывести уравнение снижения с выключенным двигателем: h'(t)=-gt; h(t) = -gt^2/2.
2) Вывести уравнение снижения с включённым двигателем: h'(t) = -gt-м*ln(1-u0t/m0) + v (при включении двигателя в момент t=0 и начальной скорости v на момент включения). Отсюда, если от начала спуска до включения двигателя прошло t1 секунд, а от включения двигателя до касания t2 секунд, t1+t2 = -м/g * ln(1-u0t2/m0).
3) Вывести h(t) = -g/2*(t+t1)^2 + мm0/u0*ln(1-u0t/m0) - мt(ln(1-u0t/m0)-1)+h0
Приравнивая h(t2)=0, получаем второе уравнение на t1 и t2.
Подставляя первое уравнение во второе, получаем:
-g/2(t1+t2)^2-gm0/u0(t1+t2)+t2(м+g(t1+t2))+h0=0
4) Имеем квадратное уравнение относительно t1. Решаем, имеем выражение t1 через t2, отбрасываем отрицательный корень (он соответствует невозможной ситуации). Положительный корень подставляем в уравнение из пункта 2, имеем уравнение на t2. Его уже имеет смысл решать численно. Получаем значение t2, подставляем в выражение для t1, задача решена.

Пункт 4 мне делать лень, так что это как-нибудь сами.
Abstraction вне форума Ответить с цитированием
Старый 08.12.2012, 16:41   #6
.FROST.
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
То есть, с момента включения двигатель работает непрерывно до касания поверхности и требуется найти такой момент включения, при котором скорость в момент касания будет нулевой?

1) Вывести уравнение снижения с выключенным двигателем: h'(t)=-gt; h(t) = -gt^2/2.
2) Вывести уравнение снижения с включённым двигателем: h'(t) = -gt-м*ln(1-u0t/m0) + v (при включении двигателя в момент t=0 и начальной скорости v на момент включения). Отсюда, если от начала спуска до включения двигателя прошло t1 секунд, а от включения двигателя до касания t2 секунд, t1+t2 = -м/g * ln(1-u0t2/m0).
3) Вывести h(t) = -g/2*(t+t1)^2 + мm0/u0*ln(1-u0t/m0) - мt(ln(1-u0t/m0)-1)+h0
Приравнивая h(t2)=0, получаем второе уравнение на t1 и t2.
Подставляя первое уравнение во второе, получаем:
-g/2(t1+t2)^2-gm0/u0(t1+t2)+t2(м+g(t1+t2))+h0=0
4) Имеем квадратное уравнение относительно t1. Решаем, имеем выражение t1 через t2, отбрасываем отрицательный корень (он соответствует невозможной ситуации). Положительный корень подставляем в уравнение из пункта 2, имеем уравнение на t2. Его уже имеет смысл решать численно. Получаем значение t2, подставляем в выражение для t1, задача решена.

Пункт 4 мне делать лень, так что это как-нибудь сами.
Не совсем понятно, откуда взялось выделенное..
.FROST. вне форума Ответить с цитированием
Старый 08.12.2012, 23:58   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

v = -gt1, h'(t2)=0.
Abstraction вне форума Ответить с цитированием
Старый 09.12.2012, 18:11   #8
.FROST.
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 56
По умолчанию

Спасибо, с этим разобрался. В результате, если нигде не ошибся, получилось следующее: g*t2+m0*g+sqrt(diskriminant)+mu*ln( 1-t2/m0)=0.
Ну так вот, если разложит логарифм в ряд,и найти его суммы, то получится: (-1)^n*x^n/n, где x=-t2/1000. Сумма этого ряда чему будет равна, можете подсказать? Или же решать получившееся уравнение графически, например с помощью Маткада? Я просто хотел вывести уравнение нахождения t1,t2 численно, но логарифм мешает.
.FROST. вне форума Ответить с цитированием
Старый 09.12.2012, 19:46   #9
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Я просто хотел вывести уравнение нахождения t1,t2 численно, но логарифм мешает.
Мешает вывести уравнение f(t2)=0? Причём там непрерывная функция, f(0)>0, f(m0/u0-0.001)<0, можно решать методом дихотомии.
Abstraction вне форума Ответить с цитированием
Старый 09.12.2012, 19:51   #10
.FROST.
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 56
По умолчанию

Я хотел написать программу в паскале с циклом, относительно h0. Но думаю, будет достаточно и этого. Я просто хотел узнать, можно ли как то "избавиться от логарифма" для упрощения выражения.
.FROST. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать сервер для игрового аппарата, вознаграждение от 300 000р grikor Фриланс 3 06.10.2012 19:42
Посадка на луну Zarrok Паскаль, Turbo Pascal, PascalABC.NET 2 29.12.2011 10:00
Открыть порт через 2 аппарата twistms Компьютерное железо 0 29.03.2011 23:30
Градиентный спуск Ciberal Помощь студентам 0 26.12.2010 19:23
Градиентный спуск nieaCry Общие вопросы C/C++ 0 04.12.2008 00:26