На самом деле я так и не смог в свою герметичную голову вложить эти разделы математики/физики, так что в рассуждениях могут быть некоторые ошибки. Попробую объяснить просто, может и сам всё пойму.
Oscar Wilde писал(а):
I am so clever that sometimes I don't understand a single word of what I am saying
Скажем, есть у нас ракета, которая летит от одной точки в пространстве до другой. Очевидно, что чтобы она долетела за минимальное время, она должна половину пути разгоняться, а половину - тормозить. Наш случай с глайдером похож на эту ракету, только у него нет точки старта - он уже находится на расстоянии d от нужной точки (высоты) и имеет скорость s. А ещё на него действует постоянная (пусть будет такой, не сильно высоко летаем) сила тяжести и он не может самостоятельно тормозить (будем считать, что антиграв может только отталкивать от поверхности) - за тормоз будет гравитация. Вы видели, как
падают летают ракеты SpaceX? Вот на это похоже . Не будет же она всю атмосферу потихоньку спускаться, ей топлива не хватит. Она тормозит у земли и плавно останавливается на нужной высоте (ну, на нуле). Ещё и быстро получается.
m - масса глайдера
v - его вертикальная скорость (вектор)
hc - его высота над поверхностью
hr - необходимая высота над поверхностью
fm(hc) - максимальная сила, которую может выдавать антиграв, функция от высоты (ну или нет, как хотите)
Время дискретно, промежуток времени - dt
g - ускорение свободного падения
Случай нулевой: скорость направлена вверх. Тогда есть возможность, что включать антиграв вообще не нужно - проверим, достигнет ли глайдер нужной высоты:
v = v0 - a*t - равнозамедленное движение, нас интересует предельная высота, в ней v=0. Используем как v0 скорость глайдера v, ускорение свободного падения g как a и вычисляем t = v/g - получается время до остановки. Глайдер за это время пролетит vt/2 (частный случай пути при равноускоренном движении). Если это значение (v*(v/g)/2 = V^2/(2*g)) больше, чем hr - hc, то в этот момент времени включать антиграв не нужно.
Случай первый: вертикальной скорости недостаточно, чтобы достигнуть нужной высоты. Тогда её нужно увеличить. Насколько? Посчитаем, какая скорость нужна, чтобы долететь до нужной высоты:
Из формулы выше (s=v^2/(2*g)) получаем Vнеобх. = sqrt(2*g*s), где s = hr - hc. Нам нужно ускорить наш глайдер на Vнеобх. - Vглайдера. Обозначим это dV. Сила, которую нужно выдать за dt, чтобы получить нужную скорость определяется так:
f = m(dV/t) + Fтяж (!). А выдать такую силу антиграв, вероятно, не сможет, ведь у него есть fm(hc). Поэтому он должен выдать min(fm(hc), f).
Случай второй: скорость меньше или равна нулю. Всё ещё есть возможность, что включать антиграв пока не нужно - если тормозить ещё рано, как в примере с ракетой. Чтобы описать этот случай, нам обязательно нужен интеграл fm(hc), а считать интегралы я вообще не уметь. Поэтому для примера возьму fm(hc) = const.
Час уничтожая стол головой и покрывая лист бумаги чернилами, я пришёл к выводу, что Подобные задачи решали уже до меня.
картинко
Нам надобно словить момент, когда h'(t) = magic'(t). Как это сделать
я не имею понятия:
Очевидно, что h'(t) = v. А вот наколдовать magic'(t) проблематично:
magic(t) = hr + (b*t^2)/2 , где b = (fm-fтяж)/m, ускорение, создаваемое антигравом. Так вот, вышло не то, что надо. Ну, не совсем то.
Покурю ещё утром. Осталось описать несколько простых случаев...