1.导弹沿激光束方向前进,导弹的底部或尾部安装激光接收器。
2.arduino控制调整,始终使导弹沿光束方向前进,不脱轨,可以把激光束想像为实体轨道。
3.战斗部二次引爆,产生液体高速高温金属射流,击穿15cm厚钢板。
4.最后确定激光束上是否传输实时数据,比如攻击前发送提前引爆信息(炸坦克附近步兵)或其他数据,还是就是只提供位置信息 ?。
自主研发的制导和飞控系统资料(含全部编译通过的原代码,含贯导微分计算,含舵机控制)
自主研发的未端图像识别资料(抓目标图生成纹理图、对比原图,识别机场和建筑物明显目标,建立优先级,自动返回价值高的目标做为攻击目标,含全部编译通过的原代码)
注意,1、因法律和法规限制,不提供发动机和战斗部资料,请不要咨询,请多谅解。
2、因资料是全部公开的,无隐含部分,如使用我的设计和代码或自行改造运行造成的一切后果,我 不负责。
比例导引法是在自寻的导弹上采用较多的一种导引规律,它是指在导弹飞向目标的过程中,导弹速度方向的变化率与目标视线的变化率成比例,这种导引规律易于工程实现,同时通过选择合适的导引比,就不会需要太太的法向过载,对不同机动特性的目标适应能力也较强,因此广泛应用于各类导弹上。
激光半主动制导能实现间接瞄准,可采用准比例导引法,导弹弹道特性好,对目标机动有一定的适应性。比例导引法实现了打了不用管的作战要求,这就提高了武器系统的生存能力,同时增加了其攻击效率。
三点法导引是指导弹在攻击目标的导引过程中,导弹始终处于制导站与目标的连线上。如果观察者从制导站上看目标,则目标的影像正好被导弹的影像所覆盖。因此,三点法又称目标覆盖法或重合法。
三点法导引是指导弹在攻击目标的导引过程中,导弹始终处于制导站与目标的连线上。如果观察者从制导站上看目标,则目标的影像正好被导弹的影像所覆盖。因此,三点法又称目标覆盖法或重合法。
(1-1)
其中: ——目标到制导站距离;
Rm——导弹到制导站距离;
Vt——目标速度;
V——导弹速度;
——目标高低角、目标前置角;
——导弹高低角、导弹前置角;
——、与基准线之间的夹角。
1.3 初始条件
设坦克作水平等速直线运动,如图1.2所示,Vt=27m/s ,反坦克导弹按三点法拦截目标,并作等速飞行,270m/s 。攻击平面为一水平面,制导站静止。导弹开始导引瞬间的攻击条件Rt=4700m ,Rm0=50m,qm0=qt0。
选取地面坐标系oyz,原点o与制导站重合,oz轴平行于目标的运动方向(如图1.2所示)。将方程组(1-1)改写成便于数值积分的形式,即
仿真飞行图如下
类C代码(此代码可移植到Matlab中模拟攻击)如下:
//比例引导计算部分
//
// 微分算法
// 1、ψv=Qm+arcsin(Vt/v*Rm/Rt*sinQm) ψv定义为vv
// 2、dRm/dt=Vcos(Qm-ψv) 定义为Rm
// 3、Rt/dt=-VtcosQm 定义为Rt
// 4、dQm/dt=-V/Rm*sin(Qm-ψv) 定义为Qm
/比例引导计算部分/
//飞行时间暂定为60秒
time qssj //起始时间
time zzsj //终止时间
long sjbc //时间步长 秒
int i11
string cs1
double cs2 //目标速度 Vt
double cs3 //导弹速度 V
double cs4 //初始导弹与测站的距离 Rm
double cs5 //目标到测站的距离 Rt
double cs6 //角度 Qm
double vv
double y11
double z11
double s11 //目标移动距离
double Rm
double Rt
double Qm
cs1=sle_1.text
cs2=double(sle_2.text)
cs3=double(sle_3.text)
cs4=double(sle_4.text)
cs5=double(sle_5.text)
cs6=double(sle_6.text)
Rm=cs4
Rt=cs5
Qm=cs6
vv=0
qssj=now()
DELETE all FROM "blydjsdtsj" using itrans_destination ; //清空 飞行动态数据表
for i11=0 to 25 step 1
// b1bm=dwc_tjb.getitemstring(i,zdb1l)
// dwc_tjb.scrolltorow(i)
vv=Qm+Asin((cs2/cs3)*(Rm/Rt)*sin(Qm)) //ψv定义为vv
Rm=Rm + cs3*cos(Qm - vv) //z轴上的速度
Rt=Rt - (cs2*cos(Qm)) //y轴上的速度
if i11=0 then
Rm=cs4
end if
Qm=Qm - (cs3/Rm*sin(Qm - vv))
// 1、ψv=Qm+arcsin(Vt/v*Rm/Rt*sinQm)
// 2、Rm=Vcos(Qm-ψv) ψv定义为vv
// 3、Rt=-VtcosQm
// 4、Qm=-V/Rm*sin(Qm-ψv)
zzsj=now()
sjbc=secondsafter(qssj,zzsj)
st_10.text=string(sjbc)
y11=Rt
z11=Rm
s11=CS2*sjbc
INSERT INTO "blydjsdtsj"
( "ddxh",
"sx1",
"sy1",
"sz1",
"qm",
"rm",
"rt",
"sj",
"mbsd")
VALUES ( 'k802',
:y11,
:y11,
:z11,
:Qm,
:Rm,
:Rt,
:sjbc,
:s11) using itrans_destination;
commit;
if(round(Rm,0)=round(Rt,0)) then
exit
end if
next