在python中使用scipy.integrate.quad从速度方程计算位移

2024-09-24 08:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全是python的初学者,我真的被这段代码困住了

该代码是对火箭发射的模拟 我想做的是计算并存储火箭随时间产生的位移。 能够绘制位移与时间的关系图

火箭速度(u_火箭)取决于t和m(t)(m_火箭) https://i.stack.imgur.com/N4Dma.png

  • u_e和g是常数
  • m(t)是火箭的当前质量,方程为 https://i.stack.imgur.com/wFJaZ.png
  • m(0)是初始火箭质量(包括整个燃料)
  • m_b是没有燃料时的火箭质量
  • t_b是燃油完成的时间

我曾尝试定义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)

Tags: 代码httpscom定义pngstacknp时间