Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
3.1 kB
8
Indexable
Never
import math


# Дано:
# Время работы двигателей
t1 = 148
t2 = 115
t3 = 475
# Сила F1, F2, F3 в Н
f1 = 2962 * 10 ** 3
f2 = 742 * 10 ** 3
f3 = 167 * 10 ** 3
# Гравитационная постоянная в  м**3 * кг** -1 * с**-2
G = 6.6743 * 10 **-11

# Массы Топлива
m1 = 172 * 10 ** 3
m2 = 30 * 10 ** 3
m3 = 18 * 10 ** 3
# Масса Земли
M = 5.9742 * 10 ** 24

# Масса спутника
ms = 2350
# Масса железяк 
mr1 = 9900
mr2 = 5900
mr3 = 1000
# Скорости сжигания топлива
dm1 = m1 / t1
dm2 = m2 / t2
dm3 = m3 / t3

# Радиус Земли
R = 6371 * 10 ** 3
# Угол в радиах
PI = math.acos(-1)
print(PI)
angle = PI / 2 #Угол скорее всего будем менять (искать оптимальный)

# Решение 1 этап (Вывод на орбиту)
#file = open('calc1stagev2.txt', 'w')
# Первая ступень
v0 = 0
ay = 0
ax = 0
rocketm = m1 + m2 + m3 + mr1 + mr2 + mr3 + ms
print(rocketm)
h0 = 0
h = 0
l0 = 0
l = 0
vx0 = 0
vy0 = 0
fuelpotracheno = 0
for t in range(0, t1 + t2 + t3 + 1):

    #1 stage
    if (t < t1 + 1):
        ft = (G * M * rocketm) / ((R + h) ** 2)
        g = (G * M) / ((R + h) ** 2)
        ay = (f1 * math.sin(angle) - ft) / rocketm
        ax = (f1 * math.cos(angle)) / rocketm
        vy = vy0 + ay
        vx = vx0 + ax
        h0 = h
        l0 = l
        h = h + vy0 + ay/2
        l = l + vx0 + ax/2
        vy0 = vy 
        vx0 = vx
        fuelpotracheno = fuelpotracheno + dm1
        rocketm = rocketm - dm1
        print(t,angle,ay,ax,vy,vx,h,l,fuelpotracheno,rocketm)
    #2 stage
    if (t > t1 and t < t1 + t2 + 1):
        angle = PI / 3
        ft = (G * M * (rocketm - mr1)) / ((R + h) ** 2)
        g = (G * M) / ((R + h) ** 2)
        ay = (f2 * math.sin(angle) - ft) / (rocketm - mr1)
        ax = (f2 * math.cos(angle)) / (rocketm - mr1)
        vy = vy0 + ay
        vx = vx0 + ax
        h0 = h
        l0 = l
        h = h + vy0 + ay/2
        l = l + vx0 + ax/2
        vy0 = vy 
        vx0 = vx
        fuelpotracheno = fuelpotracheno + dm2
        rocketm = rocketm - dm2
        print(t - t1,angle,ay,ax,vy,vx,h,l,fuelpotracheno,rocketm - mr1)
    #3 stage
    if (t > t1 + t2):
        angle = PI / 4
        ft = (G * M * (rocketm - mr1 - mr2)) / ((R + h) ** 2)
        g = (G * M) / ((R + h) ** 2)
        ay = (f3 * math.sin(angle) - ft) / (rocketm - mr1 - mr2)
        ax = (f3 * math.cos(angle)) / (rocketm - mr1 - mr2)
        vy = vy0 + ay
        vx = vx0 + ax
        h0 = h
        l0 = l
        h = h + vy0 + ay/2
        l = l + vx0 + ax/2
    
        vy0 = vy 
        vx0 = vx
        fuelpotracheno = fuelpotracheno + dm3
        rocketm = rocketm - dm3
        print(t - t1 - t2,angle,ay,ax,vy,vx,h,l,fuelpotracheno,rocketm - mr1 - mr2)
print(23000000/ (PI * R))
# Вопрос 1: Как посчитать расход топлива?
# Вопрос 2: Как учесть сопротивление воздуха? и нужно ли?
# Вопрос 3: Пока не придумал?