预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(完整版)火炮内弹道求解与计算 (完整版)火炮内弹道求解与计算 (完整版)火炮内弹道求解与计算 火炮内弹道求解与计算 摘要:本文结合火炮内弹道基本方程,得出压力、速度与行程、时间的关系式.并利用了MATLAB的程序对该火炮系统的内弹道过程进行求解. 关键词:内弹道基本方程;MATLAB; 1。火炮内弹道诸元 火炮内弹道诸元数据如下表所示: 炮膛断面积S药室容积V0弹丸全行程Ig弹丸质量m装药质量dm2dm3dmkgkg0.8187.9247.4815.65。5 火药参数如下表所示: F燃气比热比k管状火药长2a管状火药厚kJ/kgdm3/kgkg/dm31mmmm96011。61。22601.7 协调常量如下表所示: BIk挤进压力P011kPa·sMPa1。6021。2761601.930其他所需的参数计算: ;; ;; 2。内弹道基本方程组及其解析解法 方程组建立如上,则考虑三个时期分别求解: ①前期:考虑为定容燃烧过程,则有条件: 则有, 令 ②第一时期:将前期的参量计算得出之后,代入方程组,解算第一时期的v、p值。 考虑平均法,利用 若设x=Z-Z0 则可得, ③第二时期:考虑第二时期无火药燃烧,则有: 设极限速度 , 利用①~③可得各个时期的p-l,v-l曲线。 3.使用MATLAB对内弹道进行求解 由于解析解方法较为繁琐,并且需要相当多的简化才能进行计算,因此考虑使用MATLAB对内弹道方程进行求解与仿真,描绘p-t、p—l、v-t、v-l曲线,如下图所示。最大膛压约为800MPa,出膛速度大约为1000m/s. 4。Matlab代码 代码: functionndd %100mm加农炮 S=0.818;%枪(炮)膛横断面积dm^2 M=15.6;%弹重kg V0=7.92;%药室容积dm^3 I_g=47。48;%身管行程dm P_0=30000;%起动压力kpa fai1=1.02;%次要功系数 theta=0.2;%火药热力系数 %========================================= f=960000;%火药力kg*dm/kg alpha=1;%余容dm^3/kg delta=1。6;%火药密度ρkg/dm^3 %================================== ome=5。5;%装药量kg u1=1。6184*10^—5;%第一种装药烧速系数dm^3/(s*kg) n1=1;%装药压力指数n1 lambda=—0。5;%装药形状特征量λ lambda_s=0;%装药分裂点形状特征量λs chi=2。01;%装药形状特征量χ chi_s=0;%装药分裂点形状特征量χs mu=0;%装药形状特征量μ et1=1.7*10^—2;%装药药厚δ0 d1=1。7*10^—2;%装药火药内径d B=1。602; %========================================= %常数与初值计算-——-—-—————--——--——---————----——-—------—---————--—-—-——-———---—— l_0=V0/S; Delta=ome/V0; phi=1。276; v_j=196*f*ome/(phi*theta*M); v_j=sqrt(v_j); Z_s=1; p_0=P_0/(f*Delta); psi_0=(1/Delta-1/delta)/(f/P_0+alpha—1/delta); Z_0=(sqrt(1+4*psi_0*lambda/chi)-1)/(2*lambda); %解算子--—---————--—————---——--—-————----—-————----—---——-———-——-——————-——-——- C=zeros(1,12); C(1)=chi;C(2)=lambda;C(3)=lambda_s;C(4)=chi_s;C(5)=Z_s;% C(6)=theta;C(7)=B;C(8)=n1;C(9)=Delta;C(10)=delta;C(11)=alpha;C(12)=mu; C; y0=[Z_0;0;0;psi_0]; options=odeset('outputfcn',’odeplot'); [tt,y]=ode45(@ndd_fun,0:100,[Z_0;0;0],options,C); l=y(:,2); l=l*l_0; fl=find(l〉=I_g); fl=min(fl); [tt,y]=ode45(@ndd_fun,0:0.005:fl,[Z_0;0;0],options,C); Z=y(:,1);lx=y(:,2);vx=y(:,3); psi=(Z