内弹道方程组的解法
- 格式:ppt
- 大小:790.50 KB
- 文档页数:2
内弹道是指射程较短的导弹或火箭弹在飞行过程中受到大气阻力和重力等作用的飞行轨迹。
内弹道理论研究的是导弹或火箭弹在发射后到离开大气层再进入大气层末时的飞行过程。
内弹道包括导弹或火箭弹在发射后的加速、稳定、制导、飞行以及飞行过程中的动力学性能仿真等诸多内容。
内弹道有着复杂的飞行特性和动力学方程,在实际工程中需要进行准确的计算和仿真。
内弹道的计算中,龙格库塔(Runge-Kutta)法是一种常用的数值积分方法,在求解微分方程等领域有着广泛的应用。
龙格库塔法是由数学家奥特翁格(C. W. Runge)和马丁庫塔(M. W. J. Kutta)于1900年提出的,用于求解常微分方程初值问题,其优点是精度较高,适用范围广。
在内弹道计算中,可以利用龙格库塔法对导弹或火箭弹的飞行轨迹进行数值模拟和计算,得到较为准确的飞行轨迹数据。
在实际工程中,为了方便进行内弹道的计算,可以使用Matlab等数学建模和仿真软件。
Matlab是一种常用的科学计算软件,具有强大的数值计算和仿真功能,可以用于内弹道计算中的龙格库塔法数值模拟。
在Matlab中,可以编写相应的程序,利用龙格库塔法对导弹或火箭弹的飞行过程进行仿真和计算,得到准确的飞行轨迹和动力学性能数据。
内弹道计算是导弹或火箭弹研究设计中的重要内容,龙格库塔法是一种常用的数值积分方法,Matlab是一种常用的科学计算软件,它们的应用能够有效地进行内弹道的计算和仿真,为导弹或火箭弹的研制提供重要的技术支持。
随着技术的不断发展,内弹道计算已经成为导弹或火箭弹研究设计中不可或缺的一部分。
在内弹道计算中,龙格库塔法是一种常用的数值积分方法,可以对导弹或火箭弹的飞行轨迹进行数值模拟和计算,提供准确的飞行轨迹数据。
而Matlab作为一种强大的科学计算软件,对于内弹道的计算和仿真也有着重要的应用价值。
在实际工程中,使用Matlab编写程序,利用龙格库塔法对导弹或火箭弹的飞行轨迹进行数值模拟和计算,将为导弹或火箭弹的研制提供重要的技术支持。
教学知识点方程组的解法与应用方程组是数学中的一个重要概念,它是由一组方程组成的集合。
解方程组的方法有很多种,下面将介绍一些常见的解法以及方程组的应用。
一、解方程组的方法:1.直接代入法:将一个方程的解代入另一个方程中,得到新的方程,然后通过逐步代入来求出其他未知量的值。
2.消元法:通过合并或消去方程中的一些项,使得一些未知量的系数为0,进而得到一个只含一个未知量的方程,然后通过逐步消元来求出其他未知量的值。
3. Cramer法则:利用行列式的性质,将方程组的系数和常数项构成的系数矩阵进行行列式运算,然后将每个未知量的系数和常数项替换为方程组的右端数值,通过求行列式的值和行列式的排列来求解方程组。
4.高斯消元法:将方程组的增广矩阵化为行梯阵或最简行梯阵,然后通过回代法求解未知量。
二、方程组的应用:1. 物理应用:方程组可以用来描述物理现象。
比如,牛顿第二定律F=ma可以转化为方程组,求解可得到物体的加速度。
2.经济学应用:方程组可以用来描述经济模型。
比如,凯恩斯总需求方程可以转化为方程组,求解可得到国民经济的平衡价格和产量。
3.工程应用:方程组可以用于解决工程问题。
比如,用方程组来求解电路中的电流和电压分布,以及力学结构中的应力和变形分布。
4.生物学应用:方程组可以用于模拟生物过程和解析生物数据。
比如,通过建立方程组来解析化学反应和生物代谢过程,研究生物系统的稳定性和动力学行为。
三、解方程组的注意事项:1.方程组是否有解:方程组有解的条件是方程的个数大于或等于未知量的个数。
如果方程的个数小于未知量的个数,则方程组可能无解或有无穷多解。
2.方程组是否有唯一解:方程组有唯一解的条件是方程的系数矩阵满秩,即主元个数等于未知量个数。
3.解方程组的步骤:对于线性方程组,可以通过高斯消元法将方程组的增广矩阵化为行梯阵或最简行梯阵,然后通过回代法求解未知量的值。
4.复数解:方程组的解不一定都是实数解,有时候可能是复数解。
内弹道计算程序%内弹道计算程序function nddclc;clear;%构造与装填条件------------------------------------S =1.681; %枪(炮)膛横断面积 dm^2q = 10.24; %弹重 kgW_0 = 10.35; %药室容积 dm^3l_g = 62.25; %身管行程 dm%进程的进行条件-------------------------------------P_0 = 45000; %起动压力 kpatheta = 0.25; %火药热力系数K = 1.222; %次要功系数%装填条件--------------------------------------------delta =1.6; %火药密度 kg/dm^3f = 948000; %火药力 kg*dm/kgalpha =1 %余容 dm^3/kgomega = 10.35; %药量 kgV = 0.9627; %烧速指数u =0.0000088; %烧速系数 dm^3/(s*kg)%火药特征(仅适用于多孔火药)-----------------------------e_1 = 0.0088; %厚度(肉厚)/2 dmd_0 = 0.022; %孔道直径 dmD_0 = 0.1364; %药粒直径(梅花形不用管此项) dmc = 1.3 %药粒长度/2 dmn = 7; %孔数flag = 1; %1:圆柱形多孔火药 2:梅花形七孔火药 3:梅花形十四孔火药 4:梅花形十九孔火药%形状函数 ------Flag = [ 1 n 0 D_0 0 0.2956;2 8 65.2968 d_0+4*e_1 d_0+2*e_1 0.1547;8/3 47/3 141.4764 d_0+4*e_1 d_0+2*e_1 0.1547;3 21 195.8903 d_0+4*e_1 d_0+2*e_1 0.1547];F1 = Flag(flag,1);F2 = Flag(flag,2);F3 = Flag(flag,3);F4 = Flag(flag,4);F5 = Flag(flag,5);F6 = Flag(flag,6);Pi_1 = ( F1*F4 + F2*d_0 )/(2*c);Q_1 = ( F3*F5*F5 + F1*F4*F4 - F2*d_0^2 )/( 4*c^2 );beta = e_1/c;chi = ( Q_1 + 2*Pi_1 )*beta/Q_1;lambda = ( n - 1 - 2*Pi_1 )*beta/( Q_1 + 2*Pi_1 );mu = ( 1 - n )*beta^2/( Q_1 + 2*Pi_1 );psi_s = chi*( 1 + lambda + mu );rho = F6*( d_0/2 + e_1 );Z_s = 1 + rho/e_1;chi_s = ( psi_s*Z_s^2 - 1 )/( Z_s^2 - Z_s );lambda_s = psi_s/chi_s - 1;%常数与初值计算-------------------------------------------------------l_0 = W_0/S;Delta = omega/W_0;phi = K + omega/(3*q);v_j = 196*f*omega/(phi*theta*q);v_j = sqrt(v_j);B = 98*(e_1*S)^2/( u*u*f*omega*phi*q );B = B*(f*Delta)^(2-2*V);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,11);C(1)=chi;C(2)=lambda;C(3)=lambda_s;C(4)=chi_s;C(5)=Z_s;C(12 )=mu;C(6)=theta;C(7)=B;C(8)=V;C(9)=Delta;C(10)=delta;C(11)=alpha;%解算子-------------------------------------------------------------------options = odeset('outputfcn','odeplot');[t,y] = ode45(@ndd_fun,0:100,[Z_0;0;0],options,C);l = y(:,2);l = l*l_0;fl = find(l>=l_g);fl = min(fl);[t,y] = ode45(@ndd_fun,0:0.005:fl,[Z_0;0;0],options,C);Z = y(:,1);l = y(:,2); v = y(:,3);psi = (Z>=0&Z<1).*( chi*Z.*(1 + lambda*Z + mu*Z) ) +... (Z>=1&Z<Z_s).*( chi_s*Z.*(1 + lambda_s*Z) ) +...(Z>=Z_s)*1;l_psi = 1 - (Delta/delta)*(1-psi) - alpha*Delta*psi;p = ( psi - v.*v )./( l + l_psi );p = p*f*Delta/98.0665;v = v*v_j/10;l = l*l_0;t = t*l_0*1000/v_j;fl = find(l>=l_g);fl = min(fl)+1;p(fl:end)=[];v(fl:end)=[];l(fl:end)=[];t(fl:end)=[];subplot(2,2,1);plot(t,p,'linewidth',2);grid on;xlabel('\fontsize{8}\bft (ms)');ylabel('\fontsize{8}\bfp (kg/cm^{2})');title('\fontsize{8}\bfp-t曲线');subplot(2,2,2)plot(t,v,'linewidth',2);grid on;xlabel('\fontsize{8}\bft (ms)');ylabel('\fontsize{8}\bfv (m/s)');title('\fontsize{8}\bfv-t曲线');subplot(2,2,3)plot(l,p,'linewidth',2);grid on;xlabel('\fontsize{8}\bfl (dm)');ylabel('\fontsize{8}\bfp (kg/cm^{2})');title('\fontsize{8}\bfp-l曲线');subplot(2,2,4)plot(l,v,'linewidth',2);grid on;xlabel('\fontsize{8}\bfl (dm)');ylabel('\fontsize{8}\bfv (m/s)');title('\fontsize{8}\bfv-l曲线');tspan = length(t)/20;tspan = 1:ceil(tspan):length(t);tspan(end) = length(t);fprintf(' t(ms) p(kg/cm^2) v(m/s) l(dm)'); format short g;Result = [t(tspan) p(tspan) v(tspan) l(tspan)] format;。