Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Расчет Hohmann transfer | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Kerbal Space Program: «Расчет Hohmann transfer»
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Пилоты, нужна помощь.

Проблема с таймингом начала маневра, а точнее, где то в угловых скоростях.
Имеются два документа

http://en.wikipedia.org/wiki/Hohmann_transfer_orbit
http://en.wikipedia.org/wiki/Circular_orbit

Из первого формула угловой скорости

w = sqrt( mu / r^3 )

При таком рассчете - не работает.
Из второго документа

w^2 r^3 = mu

то есть из начальных классов математики вроде бы вытекает что

w = sqrt(mu / r^3)

то есть формула из первого документа ДОЛЖНА работать. А вот фига.
Там же ниже во втором документе расчет орбитального периода выглядит логично умножением 2pi на угловую скорость, но записана она как

T = 2pi * sqrt( r^3 / mu)

то есть угловая скорость нифига не мю на эр куб, а кверху ногами. И самое удивительное, это работает. Но, черт возьми, Холмс, как?
    Добавлено: 04:45 27-04-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 7(550)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Ничего не понял. Что тебе надо получить? Подозрение.
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 10:42 27-04-2014   
SpiritOffice
 55 EGP


Рейтинг канала: 2(18)
Репутация: 3
Сообщения: 40

Зарегистрирован: 01.03.2014
T - орбитальный период. w - угловая скорость.
Физика (какого-то-там класса Гы-гы ) Период колебаний обратно пропорционален частоте колебаний. В данном случае частота выражена через угловую скорость. Логично, что чем больше угловая скорость, тем меньше будет время полного оборота - орбитального периода.

Если w = sqrt(mu / r^3) то 1/w = sqrt(r^3 / mu)

Вот в конечном итоге умножаем 2pi * 1/w = 2pi * sqrt(r^3 / mu)

Формула зависимости T от w показана по второй твоей ссылке (сорри не заметил окончания: http://en.wikipedia.org/wiki/Circular_motion ), самой первой в разделе "Formulas".

Последний раз редактировалось: SpiritOffice (13:03 27-04-2014), всего редактировалось 1 раз
    Добавлено: 12:25 27-04-2014   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
SpiritOffice :
T - орбитальный период. w - угловая скорость.
Физика (какого-то-там класса Гы-гы ) Период колебаний обратно пропорционален частоте колебаний. В данном случае частота выражена через угловую скорость. Логично, что чем больше угловая скорость, тем меньше будет время полного оборота - орбитального периода.

Если w = sqrt(mu / r^3) то 1/w = sqrt(r^3 / mu)

Вот в конечном итоге умножаем 2pi * 1/w = 2pi * sqrt(r^3 / mu)

Формула зависимости T от w показана по второй твоей ссылке, самой первой в разделе "Formulas".


Блин, доперло. Для меня скорость это изменение расстояния в единицу времени. В данном случае расстояние угловое. То есть w должно быть по логике что то типа рад/сек. Из физики тех же начальных классов s = v * T, то есть T = s / v. Конечно T = s * (1 / v) тоже верно, но под корнем сходу не воспринимается. Я просто не врубаюсь нафига так пишут, что бы без дробей было?

PS. а нужно это было что бы в kos-е сдвинуть текущий фазовый угол настолько, насколько вторая орбита пройдет
Код:

    set t to startAngle/(pi2/obt:period-pi2/(pi2/tpAV2)).

вот здесь справа tpAV2 угловая второй орбиты и которая sqrt(mu / r^3)

Последний раз редактировалось: whirlwind (13:22 27-04-2014), всего редактировалось 2 раз(а)
    Добавлено: 13:17 27-04-2014   
SpiritOffice
 55 EGP


Рейтинг канала: 2(18)
Репутация: 3
Сообщения: 40

Зарегистрирован: 01.03.2014
whirlwind :
Я просто не врубаюсь нафига так пишут, что бы без дробей было?

Я конечно могу ошибаться. Как я понимаю, так пишут чтобы не городить многоэтажки из дробей. А так дроби все время стабильно пишутся в два этажа и перемножаются, что не требует сложных конструкций.
    Добавлено: 14:22 27-04-2014   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Вот, если кому интересно, демка с различными вариантами расчетов составных элементов перехода. Создает маневровый узел для любой высоты орбиты над кербином с прицелом на один из спутников. Наклонение не рассчитывается. Требует KOS v0.11.1

 getPhaseAngleCO.txt   (кликните здесь для просмотра)
Код:

// Only for circular orbits!
// Output:
// phaseAngle - angle in radians (0 to 2pi)
// phaseAngleTime - time of angle value (UT seconds)
declare parameter initP,initV,destP,destV.
set pi to constant():pi.
set deg2rad to pi/180.

// method 0
set phaseAngle to vang(initP,destP)*deg2rad.

// method 1
//set phaseAngle to arccos(vdot(initP,destP)/(initP:mag*destP:mag))*deg2rad.

set phaseAngleTime to time:seconds.
if vdot(initV,initP-destP)>0 { set phaseAngle to 2*pi-phaseAngle. }


 getTransferParamsCO.txt   (кликните здесь для просмотра)

Код:

// For circular orbits only!
// Output:
// tpT - time
// tpA - angular alignment (rad)
// tpDV1 - delta-v to initial burn
// tpDV2 - delta-v to final burn
// tpAV1 - angular velocity at r1 orbit (rad)
// tpAV2 - the same as above but for r2
declare parameter r1,r2,gravParam.

set pi to constant():pi.
set pi2 to 2*pi.
set tpAV1 to sqrt(gravParam/r1^3).
set tpAV2 to sqrt(gravParam/r2^3).
set tpT to pi*sqrt((r1+r2)^3/(8*gravParam)).

// method 0
// http://en.wikipedia.org/wiki/Hohmann_transfer_orbit
set tpA to pi-tpAV2*tpT. set tpMethod to 0.

// method 1
// http://forum.kerbalspaceprogram.com/threads/16511-Tutorial-Interplanetary-How-To-Guide
//set tpA to pi-sqrt(gravParam/r2)*tpT/r2. set tpMethod to 1.

// method 2
// https://docs.google.com/document/d/1IX6ykVb0xifBrB4BRFDpqPO6kjYiLvOcEo3zwmZL0sQ/edit
//set tpA to pi-pi2*(0.5*(((r1+r2)/(2*r2))^1.5)). set tpMethod to 2.

set tpDV1 to sqrt(gravParam/r1)*(sqrt(2*r2/(r1+r2))-1).
set tpDV2 to sqrt(gravParam/r2)*(1-sqrt(2*r1/(r1+r2))).



 test_hto.txt   (кликните здесь для просмотра)

Код:

declare parameter dest.

set sps to "             ".
print "--------------------------------------"+sps at (0,0).
print " Hohmann transfer orbit demo.         "+sps at (0,1).
print " Mission: Kerbin to "+(dest:name)+"   "+sps at (0,2).
print "======================================"+sps at (0,3).
print "     Initial R (km):                  "+sps at (0,4).
print " Destination R (km):                  "+sps at (0,5).
print "Angular algn.(grad):                  "+sps at (0,6).
print "  Transfer time (s):                  "+sps at (0,7).
print "    Burn 1 DV (m/s):                  "+sps at (0,8).
print "    Burn 2 DV (m/s):                  "+sps at (0,9).
print "     Total DV (m/s):                  "+sps at (0,10).
print "  Init. AV (grad/s):                  "+sps at (0,11).
print "  Dest. AV (grad/s):                  "+sps at (0,12).
print "           Reserved:                  "+sps at (0,13).
print " Phase angle (grad):                  "+sps at (0,14).
print " Start point (grad):                  "+sps at (0,15).
print "            ETA (s):                  "+sps at (0,16).
print "      Angle formula:                  "+sps at (0,17).
print "              DEBUG:                  "+sps at (0,18).
print "--------------------------------------"+sps at (0,19).
print "AG8 to make node. AG9 to exit.                    " at (0,20).
print "If AG not working, try to toggle gears, lights or " at (0,21).
print "brakes first. The kOS window must be unfocused.   " at (0,22).
print "Seems AG not working in map mode.                 " at (0,23).
print "--------------------------------------" at (0,24).
set prpos to 21.

lock destP to dest:position-body:position.
lock destV to dest:velocity.
lock initP to body:position*-1.
lock initV to velocity:orbit.
lock r1 to body:radius+(periapsis+apoapsis)/2.
lock r2 to body:radius+dest:altitude.

set pi to constant():pi.
set pi2 to 2*pi.
set rad2deg to 180/pi.
set deg2rad to pi/180.

if ag8="True" { toggle ag8. }
if ag9="True" { toggle ag9. }
set exit to 0.
until exit=1 {
    run getTransferParamsCO(r1,r2,body:mu).
    run getPhaseAngleCO(initP,initV,destP,destV).

    if r1>r2 {
        set phaseAngle to (pi2-phaseAngle)*-1.
        set startAngle to phaseAngle-tpA.
        if startAngle>0 {
            set startAngle to (pi2-startAngle)*-1.
        }
    }
    if r1<r2 {
        set startAngle to phaseAngle-tpA.
        if startAngle<0 {
            set startAngle to pi2+startAngle.
        }
    }
   
    // method 0
    //set t to startAngle/(pi2/obt:period-pi2/(pi2/tpAV2)).
   
    // method 2
    set t to startAngle/(tpAV1-tpAV2).
   
    set x to round(r1/1000,3).              print x+sps at (prpos,4).
    set x to round(r2/1000,3).              print x+sps at (prpos,5).
    set x to round(tpA*rad2deg,8).          print x+sps at (prpos,6).
   
    run fmtTime(tpT).                       print fmtTime+sps at (prpos,7).
    set x to round(tpDV1,2).                print x+sps at (prpos,8).
    set x to round(tpDV2,2).                print x+sps at (prpos,9).
    set x to round(tpDV1+tpDV2,2).          print x+sps at (prpos,10).
    set x to round(tpAV1*rad2deg,8).        print x+sps at (prpos,11).
    set x to round(tpAV2*rad2deg,8).        print x+sps at (prpos,12).
    set x to round(phaseAngle*rad2deg,8).   print x+sps at (prpos,14).
    set x to round(startAngle*rad2deg,8).   print x+sps at (prpos,15).
    run fmtTime(t).                         print fmtTime+sps at (prpos,16).
    print tpMethod at (prpos,17).
   
    if ag8="True" {
        set x to node(phaseAngleTime+t, 0, 0, tpDV1).
        add x.
        toggle ag8.
    }
    if ag9="True" {
        set exit to 1.
        toggle ag9.
    }
}



 fmtTime.txt   (кликните здесь для просмотра)

Код:

// Format time in seconds to human-readable string.
// Output: fmtTime
declare parameter time2format. // time in seconds
// 1 year = ??? days = ????????????????????????????
//            1  day = 6 hours = 360 mins = 21600 s
//                     1  hour =  60 mins =  3600 s
//                                1  min =     60 s

set fmtD to floor(time2format/21600).
set x to time2format-fmtD*21600.
set fmtH to floor(x/3600).
set x to x-fmtH*3600.
set fmtM to floor(x/60).
set x to x-fmtM*60.
set fmtS to floor(x).

set fmtTime to "D".
if fmtD<100 { set fmtTime to fmtTime+"0". }
if fmtD< 10 { set fmtTime to fmtTime+"0". }
set fmtTime to fmtTime+fmtD+",".
if fmtH< 10 { set fmtTime to fmtTime+"0". }
set fmtTime to fmtTime+fmtH+":".
if fmtM< 10 { set fmtTime to fmtTime+"0". }
set fmtTime to fmtTime+fmtM+":".
if fmtS< 10 { set fmtTime to fmtTime+"0". }
set fmtTime to fmtTime+fmtS.



запускается так
Код:

run test_hto(minmus).


Последний раз редактировалось: whirlwind (16:50 28-04-2014), всего редактировалось 1 раз
    Добавлено: 16:43 28-04-2014   
Kosh
 1863 EGP


Администратор
Рейтинг канала: 6(351)
Репутация: 445
Сообщения: 17650
Откуда: Кемерово
Зарегистрирован: 08.02.2001
Кстати, а нельзя ли немного подробнее про то как прога работает? А то у меня есть желание kOS помучить, но зачем изобретать велосипед. Но так сразу с кондачка пока не понял как это работает Расстроен
_________________
Полнота существования завершается бессмыслицей.
    Добавлено: 12:12 13-05-2014   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Kosh :
Кстати, а нельзя ли немного подробнее про то как прога работает? А то у меня есть желание kOS помучить, но зачем изобретать велосипед. Но так сразу с кондачка пока не понял как это работает Расстроен


Если интересует как это дело запускать, то нужно все файлы в Archive положить. Я собрал скрипты в архив (с обновлениями). Если этот архив распаковать в папку игры, то все файлы положатся туда, куда нужно. Потом в игре открываем KOS-терминал (контекстное меню по детальке и там open terminal) и вводим команды. Например, для запуска этого скрипта

Код:

switch to archive.
run test_hto([любая цель на орбите над Кербином]).


Пояснения: В kos-е есть такое понятие тома. Это типа жесткие диски. Тот жесткий диск который идет с деталькой, прицепленой к ракете, он всего на 10000 байт, что мало. И есть один системный диск, размер которого неограничен. Этот диск фактически отражает содержимое папки Plugins/PluginData/Archive внутри каталога игры. Скрипты обычные текстовые файлы, так что редактировать их удобнее внешним редактором. Но тут засада в том, что доступность диска archive зависит от commrange, который расчитывается из количества и типа антенн. Не вдаваясь в детали, одной тарелки 88-88 и пары 16-х для работы внутри SOI Кербина хватит.

Если нужна математика и физика, то там много, долго и нудно. Когда разбирался, собирал рыбу будущей статьи м.б. когда нибудь разрожусь. Вот кусок с пояснениями по Гомановскому переходу
 Cкрытый текст   (кликните здесь для просмотра)

Орбитальная скорость

Орбитальная скорость круговой орбиты рассчитывается по формуле

v = sqrt(Mu / r)

где Mu - гравитационный параметр (равно GM, где G - гравитационная постоянная, M - масса планеты), r - расстояние между центрами масс. Например, для выхода на экваториальную орбиту на высоте 300км над поверхностью Кербина потребуется разогнаться до скорости

sqrt(3531600000000 / 900000) = 1980 m/s

Восхождение на орбиту можно разделить на три фазы:
1) выход за пределы плотных слоев атмосферы;
2) гравитационный маневр до выхода на орбиту;
3) корректировка орбиты;


Длительность прожига

First, some basic definitions:

m0 = Mass of spacecraft before burn (in metric tons, i.e. Mg).
m1 = Mass of spacecraft after burn.
dv = Change in velocity that will result from our burn (m/s).
ve = Our engines' effective exaust velocity (m/s) = g0 Isp.
g0 = Standard gravity = 9.81 m/s^2 (you can estimate this as 10, if needed).
Isp = Our engines' specific impulse (s) -- we'll assume a single type of engine.
dm = Mass of fuel expended during burn (Mg)
mdot = Fuel flow rate (Mg/s)
t = Duration of burn (s)
T = Total thrust of all firing engines (kN)

We can use the rocket equation to find the mass of the fuel that we burn (dm):

dv/ve = ln(m0/m1)
m0/m1 = e^(dv/ve)
dm = m0-m1 = m0 (1 - m1/m0) = m0 (1 - e^(-dv/ve))

Then, given the fuel flow rate (mdot), we can find out how long it takes us to burn that fuel (t).

dm = mdot t, so t = dm / mdot

We can find the fuel flow rate from our thrust (T):

T = mdot ve, so mdot = T / ve

Substituting the formulas for dm and mdot into the formula for t, we get the following formula for burn time:

t = (m0 ve / T) (1 - e^(-dv/ve))

That's the exact equation for the burn time. Don't let it seem too intimidating, because we're going to simplify it in a bit. One thing to notice at this point though, is that burn time is proportional to your starting mass, and inversely proportional to thrust. If you double your mass, the burn time doubles. If you double the thrust, the burn time is cut in half. This may seem obvious, but rocket science isn't always obvious -- for instance, notice that the burn time doesn't scale linearly with dv. That's because our ship is getting lighter as we burn, so our ship gets more bang for the buck (actually, it bucks more for the same amount of bang). That's the nature of the rocket equation.


Орбитальный период

Орбитальный период эллиптической орбиты определяется по формуле

t = 2PI*sqrt(a^3/mu)

где a - длинна большой полуоси, mu - гравитационный параметр планеты.


Фазовый угол

Для определения фазового угла можно использовать доступные в рамках kOS данные о положении объектов. Делать это следует только в статусе ORBITING.

В соответствии с документацией, для значений body:position за центр координатного пространства принимается положение корабля, на котором находится фокус. А расчет фазового угла необходимо выполнять относительно центра масс. В связи с этим, перед началом расчетов необходимо преобразовать позиции объектов таким образом, что бы получить координаты корабля и луны относительно центрального тела. Для этого, из координат луны следует вычесть координаты центрального тела, а координаты центрального тела инвертировать, что бы они стали соответствовать координатам корабля относительно общего центра. После этого, нужно нормализовать полученные векторы (привести к единичной длине) и найти угол между ними. Угол между двумя векторами находится по формуле

phi = arccos( p1*p2 / ( |p1| * |p2| ) )

где p1*p2 - скалярное произведение (dot product) векторов, представляющих положение корабля и луны относительно центра масс, |p1|*|p2| - произведение длин тех же самых векторов.

Для kOS угол между векторами можно получить посредством вызова функции VECTORANGLE или сокращенно VANG.

Решение проблемы потери знака:

// Getting the angle from a dot product tends to hide the sign, and I need the sign.
// (I need to know the difference between being 30 degrees ahead of the target vs
// 30 degrees behind it.)
// If my velocity is towards-ish the target then it's ahead of me.
// if my velocity is away-ish from the target, then it's behind me.
// I figure out which it is by looking at whether the dot product of my
// velocity and the target position relative to me is postive:
set chk to (lowVel:x*(highPos:x-lowPos:x) ) + (lowVel:y*(highPos:y-lowPos:y) ) + (lowVel:z*(highPos:z-lowPos:z) ) .
if chk < 0 {
set haPhi to 360-haPhi.
}.

Здесь lowVel это вектор скорости медленной орбиты, то есть более высокой.

Для объекта на более высокой орбите выражение фазового угла по отношению к объекту на более низкой орбите должно выражаться в интервале (-2PI, 0]. Для таких случаев, полученное выше значение фазового угла следует конвертировать следующим образом

phi = -2 * PI + phi

В результате фактически получаем угол опережения нагоняющего объекта. Чем ближе значение этого угла к нулю, тем ближе нагоняющий нас объект. Дополнительные разъяснения см. ниже в разделе объясняющем способ определения времени начала трансорбитального перехода.


Продолжительность трансорбитального перехода

Время перехода с одной круговой орбиты на другую определяется по формуле

tH = PI * sqrt( (r1 + r2)^3 / (8 * mu) )

где r1 и r2 - радиусы орбит, mu - гравитационный параметр центра орбит.


Угловая скорость

Угловая скорость в радианах рассчитывается по формуле

w = sqrt( mu / r^3)

где mu - гравитационный параметр центрального тела, r - радиус круговой орбиты.


Угловое выравнивание


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

a = PI - w * tH

где w - угловая скорость целевой орбиты, tH - продолжительность трансорбитального перехода.



Время начала трансорбитального перехода

Корректное определение момента первого прожига очень важно, с точки зрения точности попадания в нужную точку целевой орбиты. Прежде всего, нужно рассчитать текущее положение точки старта. Для перехода с нижней орбиты на верхнюю, точка старта находится раньше точки противостояния на расстоянии углового выравнивания

startA = phi - a

где phi - фазовый угол, a - величина углового выравнивания. Полученное значение нужно откорректировать, в случае, если оно вышло за область значений [0, 2PI). Если этого не сделать, то придется совершить лишний виток.

Формула, преобразующая угловое расстояние до точки старта во временное смещение выглядит следующим образом

startT = startA / (w1 - w2)

где w1 - угловая скорость начальной орбиты, w2 - скорость конечно орбиты. Таким образом, мы получили секунды, которые остаются от деления расстояния на скорость. Если мы просто разделим угол (угловое расстояние) на угловую скорость начальной орбиты, то мы получим время прохождения указанного угла, если бы цель стояла на одном месте. Но цель движется в том же направлении с постоянной скоростью. Скорость этого сближения рассчитывается как разность угловых скоростей. Эта разница и есть фактическая скорость прохождения нужного нам угла. Таким образом, разделив угловое расстояние на скорость сближения мы узнаем время, за которое достигнем точки начала маневра.

Что бы рассчитать время перехода с верхней орбиты на нижнюю посредством приведенных выше формул, требуются дополнительные действия. Прежде всего, следует обратить внимание на то, что разница угловых скоростей для перехода сверху-вниз будет отрицательная. И в результате расчета «как есть», мы получим отрицательное время, что при сложении с текущим укажет на время в прошлом. Так же следует обратить внимание на формулу определения углового выравнивания. Известно, что наш путь составит PI радиан в масштабе исходной орбиты. Исходя из этого у нас рассчитывается продолжительность перехода, которая в произведении на угловую скорость конечной орбиты дает нам угловое выравнивание. Если конечная орбита имеет более высокую угловую скорость (что характерно, если она ниже исходной), то за соответствующее время на ней будет пройден путь больший, чем PI радиан и в результате получится отрицательное значение углового выравнивания.

Что бы все вышеприведенные формулы без изменений работали для возвращения с верхней орбиты на нижнюю, необходимо изменить отношение к фазовому углу с «насколько мы отстаем от более медленного объекта», на «насколько мы опережаем более быстрый объект». Если в первом случае мы высчитываем угол, который нам осталось пройти впереди, то во втором нам необходимо знать какой угол у нас есть в запасе позади. А выражая угол «позади» в отрицательных величинах мы получаем тот самый минус, который даст нам положительный результат при делении угла до начала маневра на отрицательную разницу угловых скоростей. Проще всего организовать подобную инверсию непосредственно в момент определения фазового угла, воспользовавшись координатами расположения объектов для определения высшей орбиты. На языке kOS это может выглядеть примерно так:

if initP:mag>destP:mag { set phaseAngle to -2*pi+phaseAngle. }

где initP - позиция на исходной орбите, destP - позиция на целевой орбите, phaseAngle - текущий фазовый угол в радианах в пределах [0, 2PI).


тут нет формулы DV1/DV2, т.к. имхо наименее проблемная и простая часть задачи. Если есть конкретные вопросы, попытаюсь помочь.

Но на самом деле, эта задача на порядок легче, чем например расчитать такую орбиту ухода с Кербина, что бы на Муну выйти с нужным перицентром. Даже MJ на данный момент ее не решает. Я сейчас курю этот вопрос, но там без матанализа уже никак, по этому медленно. Так что помощь приветствую.

PS. Прогу когда запускаешь, там внизу хелп на инглише: F8 - создать ноду, F9 - выход. Кнопки экш-групп работают только в режиме обзора (на карте не работают). При этом окно терминала должен быть расфокусировано, то есть ввод не должен идти в окно терминала, нужен клик за пределами этого окошка. Теперь вроде все рассказал Улыбка

Последний раз редактировалось: whirlwind (13:05 13-05-2014), всего редактировалось 1 раз
    Добавлено: 12:43 13-05-2014   
Kosh
 1863 EGP


Администратор
Рейтинг канала: 6(351)
Репутация: 445
Сообщения: 17650
Откуда: Кемерово
Зарегистрирован: 08.02.2001
whirlwind :
Если интересует как это дело запускать, то нужно все файлы в Archive положить.
Не это как раз понятно Улыбка
Я даже уже свою программку писал. Простенькую правда очень. Записал даже на видео http://www.youtube.com/watch?v=PLewQXJ1iEU Улыбка

whirlwind :
Пояснения: В kos-е есть такое понятие тома. Это типа жесткие диски.

Вот кстати неудобно что приходится каждый раз тома переключать, а это не самая короткая команда Расстроен

whirlwind :
Если нужна математика и физика, то там много, долго и нудно.

Математика она всегда такая Расстроен Буду разбираться что к чему...
Просто я программированием уже лет 12 точно не занимался. Скриптинг на Power Shell вроде как не в счет. Хотя kOS тоже скорее скриптовый язык чем полноценный.
_________________
Полнота существования завершается бессмыслицей.
    Добавлено: 17:05 13-05-2014   
whirlwind
 77 EGP


Репутация: 26
Сообщения: 338
Откуда: Spb
Зарегистрирован: 18.02.2005
Ну, нормально. Все почему то пробуют с этой задачи, хотя она ой какая непростая, если математически решать. Тоже в итоге хочу рассчитать эти маневры, но для начала нужно на безатмосферной планете потренироваться ибо с сопротивлением воздуха на порядок сложнее.

kOS на самом деле очень простой язык. Единственное что в этом языке необычного по сравнению с другими, это конструкция lock на переменные.

Насчет переключения томов, это точно. Там в конфиге где то есть такая опция типа StartOnArchive, но она у меня не работает. Не дописали наверное, а может конфиг не там лежит.
    Добавлено: 17:35 13-05-2014   
Канал Kerbal Space Program: «Расчет Hohmann transfer»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Не успел глаза продрать - руки уже к клаве тянутся... (Viking о рефлексах)

  » Расчет Hohmann transfer | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18