气动力的二维空对地比例导引-龙格库塔积分python

导弹运动方程如下:

导弹初始参数如下:V=250,弹道倾角=0度,x= 0,y=3000(高度);

目标位置参数:x= 6000,y=0;

 弹目运动关系示意图:

核心代码:

#龙格库塔右端函数
def dery(Y,t,Var,U):
    ay = U[0];
    g = Var[0];S = Var[1];m = Var[2];
    V = Y[0];theta = Y[1];x = Y[2];y = Y[3];
    L,D    = cacu_aeroForce(V,y,ay,S,m,g);
    dV     = -D/m - g*sin(theta);
    dtheta = (L - m*g*cos(theta))/(m*V);
    dx     = V*cos(theta);
    dy    =  V*sin(theta);
    dstate = np.array([np.float64(dV),np.float64(dtheta),np.float64(dx),np.float64(dy)],dtype=np.float64);
    return  dstate 

#函数功能: 通用的四阶龙格库塔函数
#参数   Y   :   积分函数的每一步结果,第一为初值
#参数   h   :   积分时间步长
#参数   tn  :   积分时间累积项,每调用一次本函数其应当增加一次步长h
#参数   Var :   积分右端函数所需的中间变量
#参数   U   :  龙格库塔积分所需的微分方程的控制参数
def RungeKutta4(Y,h,tn,Var,U):
    k1 = dery(Y,                     tn,Var,U)
    k2 = dery(Y + h*0.5*k1,tn + 0.5 * h,Var,U)
    k3 = dery(Y + h*0.5*k2,tn + 0.5 * h,Var,U)
    k4 = dery(Y + h*k3,    tn + h,      Var,U)
    # 返回一次迭代后的y值
    Y = Y +  h/6.0 *(k1 + 2 * k2 + 2 * k3 + k4)
    return Y

仿真结果:

专业制导控制仿真+qq:1763053463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

相对维度

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值