Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет arvi ([info]arvi)
@ 2006-06-06 01:51:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Музыка:Ты кузнец, и ты не менял привычек..

Прощай, Луна!
   Итак, следующая важная программа игрового цикла. Всем хороша станция «Юрий Гагарин». На ней можно поругаться с документальным телережиссёром Женей, бесплатно заправить баки... но наша-то цель Земля. И вот «Лунолёт-IV» позволяет наконец-таки улететь с лунной орбиты и достигнуть следующей промежуточной остановки, внутренней точки либрации. Где нас должен встретить танкер «Лагранж»... Соответствующий н/ф рассказ Михаила Пухова читайте в журнале «Техника-Молодёжи» 1986 №1.

   Увы, инженер Сергей Волков так и не успел при жизни опубликовать блок-схему этой программы, хотя её разбор и был обещан в ТМ-1986 №6. Поэтому мне пришлось по-хэкерски "поднимать" её из скупого, но красивого и широко разошедшегося кода для ПМК. Для сервиса я добавил рассчёт круговой и параболической скоростей на каждом шагу. Ведь вычислительной скорости у нас, в XXI веке, хоть отбавляй.

' Лунолёт-4
' Публикация: ТМ-1986 N1
' Версия для ПМК (c) Михаил Пухов

' Лунолёт-IV v1o
' Публикация: LJR, 6 июня 2006
' Точный перевод на QBasic (c) Илья Васильев
' Распространяется под GPL v2 или старше

' + учитывает влияние планеты на движение аппарата
' + позволяет перелёт во внешнюю или внутреннюю точку либрации
' - не приспособлена для посадки

CLS
PRINT " +++ Лунолёт-IV +++"
PRINT

' Блок ввода исходных данных
PI# = 3.1415926#

' Р0 Р1  Р2 Р3  Р4 Р5 Р6 Р7  Р8   Р9  РА  РВ РС РД
' V  RL  T  VF  K  M  C  R  DM/A  AL  RR  U  F  MM

' Комплект исходных данных: со станции "ЮГ" до внутренней точки либрации
M = 2200: C = 3660: R = 1738000: RR = R + 50000
F = -180 * PI# / 180: MM = 3500: U = 0
VF = 6371000# * SQR(9.81 / 384400000#) / 384400000#
K = 1.62# * R * R
RL = (K / (3 * VF * VF)) ^ (1 / 3)
V = SQR(K / RR) - VF * RR

DO

' Рычаги управления

'   Расход топлива при манёвре не должен превышать 5% от полной массы корабля
' (для лунолётов класса "Кон-Тики" это составляет 100-200 кг, в зависимости
' от наличного запаса топлива).

'   При дальних вылазках в космическое пространство на "Лунолёте-4"
' рекомедуется придерживаться следующих правил:
' 1. выполнять перелёт на гиперболических скоростях (параболическая скорость
'    в SQR(2) больше круговой, а гиперболические соответственно ещё выше);
' 2. в свободном полёте на высотах, не превышающих диаметра луны (для нашей
'    Луны около 3500 км), задавать время маневра не более 300 с, затем
'    переходить на 1000-секундные интервалы, при удалении на 15 тыс. км можно
'    уже задавать часовые интервалы (порядка 3000 с), а начиная с 30 тыс. км
'    -- трёхчасовые (10 000 с).

  VK = SQR(K / RR) - VF * RR
  DO
    PRINT "Высота полёта:"; RR - R; "м",
    PRINT "Расстояние до центра:"; RR; "м"
    PRINT "Вертикальная скорость:"; U; "м/с",
    PRINT "Горизонтальная скорость:"; V; "м/с"
    PRINT "Круговая скорость:"; VK; "м/с",
    PRINT "Параболическая скорость:"; VK * SQR(2); "м/с"
    PRINT "Запас топлива:"; MM; "кг", ,
    PRINT "Реактивное ускорение:"; A; "м/с^2"

    PRINT "Расстояние по вертикали до точки либрации:"; RR - RL; "м"
    PRINT "Угловое расстояние до центра видимой стороны луны:"; CSNG(F * 180 / PI#)

    INPUT "угол, градусы; расход топлива, кг; время, с"; AL, DM, T
    AL = AL * PI# / 180

    ' Блок проверки: перерасход топлива
  LOOP WHILE DM > MM

' Блок вычисления: реактивное ускорение
  MM = MM - DM
  A = DM * C / ((M + MM) * T)

' Рассчётный блок, полностью совместимый с "Лунолётом-4".

  ' тяга, кориолисова сила
  T1 = V + (A * SIN(AL) - U * (V / RR + 2 * VF) - 3 * SIN(F) * COS(F) * RR * VF * VF) * T
  F = F + (V + T1) * T / (2 * RR)
  V = T1

  ' тяга, тяготение, центробежная сила
  T1 = U - (K / (RR * RR) - A * COS(AL) - V * (V / RR + 2 * VF) - 3 * COS(F) * COS(F) * RR * VF * VF) * T
  RR = RR + (U + T1) * T / 2
  U = T1

LOOP 'Главный игровой цикл