我完全是python的初学者,我真的被这段代码困住了
该代码是对火箭发射的模拟 我想做的是计算并存储火箭随时间产生的位移。 能够绘制位移与时间的关系图
火箭速度(u_火箭)取决于t和m(t)(m_火箭) https://i.stack.imgur.com/N4Dma.png
我曾尝试定义u_火箭,但当它被集成时,我得到了-ve值
我应该如何定义u_火箭,以便将m_火箭和t考虑在内? 我应该在u_火箭中嵌套m_火箭函数吗
from scipy.integrate import quad
import numpy as np
# Constants
Grav = 9.81
RocketMass = 1000.0 # Kg # with no fuel
JetArea = 0.1**2*np.pi # m^2
JetVel = 1500.0 # m/s # initial jet velocity
RocketMass_ignition = RocketMass + 1500.0 # mass of rocket a ignition
Burnout_time = 31.83 #s
# define the velocity function
def m_rocket(t):
return RocketMass_ignition*(RocketMass_ignition - RocketMass)*(t/Burnout_time)
def u_rocket(t):
return -JetVel*np.log(m_rocket(t)/RocketMass_ignition) - Grav*t
i = quad(u_rocket,0,20)
火箭当前质量的表达式似乎有问题。它应该随着时间的推移而减少(因为火箭消耗燃料),但在你们的情况下,它会增加。我想这就是为什么你会得到ve的负值
相关问题 更多 >
编程相关推荐