搜索
热搜: MEA 宇川重工
查看: 1119|回复: 7

【雏鹰】 雏鹰1型 - 单向推进器平行接近制导导弹

[复制链接]

19

主题

24

帖子

200

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
200
发表于 2018-2-27 18:27:58 | 显示全部楼层 |阅读模式
5e377b087bf40ad15c11fdef5c2c11dfa8ecce95.png
9782bafdfc03924532e6c6038c94a4c27d1e2533.png

【介绍】

雏鹰1型制导导弹是一种安装在导弹弹体的程序,它会自动控制导弹上的推进器、陀螺仪等零件来实现对给定目标的碰撞打击。
在SE这个游戏中,由于所有方块都有最高速度限制,导弹的优势并不出众。而且碰撞的威力也相当优先,就算携带大量弹头,伤害的范围也并不可观。
导弹一直是一种有效的武器,但在SE里,它反而成了鸡肋,造价高昂,速度低(受限),机动性差(无法安装重力引擎等)。


但对精确制导的研究一直是我组致力的目标,在查阅了相关资料,对各种制导方法进行分析之后,我们选择了平行导引法,并研制了这款单向推进器平行导引制导导弹。
它的优势在于成本低、安装使用简单、命中率也不差。雏鹰1型导弹最少只需要一个向前的推进器、一个陀螺仪、一个远程控制块、一个编程块即可实现制导打击。

【原理】
导弹的攻击是一个系统的、信息化的工程。它需要雷达来锁定目标(发射平台雷达或导弹自身的雷达),在SE中摄像头就是雷达,大名鼎鼎的FCS火控雷达为导弹提供了锁定目标的能力。
所以你需要安装一套最新的FCSv6.5以上的版本,并且让它能正常使用。
导弹还需要接收指令,这交给中控计算机来完成,它负责从FCS雷达中获取被锁定的目标,并把目标的信息实时的发送给导弹弹体上的编程块。
最后,导弹上的编程块,也就是雏鹰1型导弹本体,将会带着这枚导弹,通过一系列的制导算法,精确的命中敌人的中心。


【关于制导律】
先分享一篇制导律的总结文章 —— 传送门


先简要的说一下制导这件事
通俗的说制导就是通过对陀螺仪推进器的控制让导弹命中目标的过程,实则这个过程非常之复杂,简单的说就是精确的运动方程好算,但是运动方程所需的是精确的改变导弹本身的加速度、指向等,而游戏中并没有这个操作,现实中也没有。
有同学会说,那有什么难的,要让导弹加速度等于1,只要打开推进器不就好了。但问题关键在于开多少,对推进器的控制只是一个比例,现实中的发动机也是,我们所能控制的只是油门打开的比例,而油门打开比例根据不同发动机型号产生不同的推力,推力又根据不同的汽车重量、传动比、动能损耗等原因为汽车提供加速度。最终的实际加速度与油门的比例之间的关系,往往比精确求解碰撞运动方程要复杂得多,甚至大多数情况下,是不可解的。


所以要制导,就要通过其他方法,使得对推进器的控制与所需要达到的目标点形成一个直接的比例关系。
例如在直线情况下,假设与目标距离用一个正负数字表示,推进器的前后出力也由一个正负数字表示,只要让推进器出力=-目标距离,虽然整个过程会出现很多情况,但最终会让飞行器回归到目标点上。


而我们下面要讨论的并非简单的制导,而是精确制导
精确制导在学术上有专门的学科,通常归属于过程控制学的一个分支,制导的算法名叫制导律。
常用的制导算法,按优异性排序:比例导引法 > 平行接近法 > 三点法 > 直瞄法


在本贴中,我们主要讨论已经作出成品的平行接近法


【平行接近法】
关于这种制导算法,简而言之就是让导弹在各个时刻与目标的连线矢量互相平行。
说得好理解一点,你坐在导弹上看着目标,这时导弹对你而言可能会有上下左右4个方向的速度分量,就像你操纵飞船接近一个目标的时候,你瞄准了目标不停的前进,但目标依然可能会基于你的准心向上下左右4个方向运动,这个运动就是由相对速度分量产生的。这时候如果你发现目标在基于准心向上运动,当然要按空格键,让自己导弹也向上运动,从而消除与目标的相对速度分量。
但是我们的导弹只有向前的推进器,因此需要控制导弹姿态,利用姿态的偏航或俯仰来进行修正
9782bafdfc03924508a0cc038c94a4c27d1e2575.jpg

图中绿色是导弹路径,红色是目标路径,按照时间节点进行分割。可以看到,导弹与目标之间连线在各个时刻是相互平行的
(由于过程控制延迟,不一定完全平行,但尽量平行是优化这个过程的目标)






【下载】
索敌雷达:
FCS ------ FCS火控雷达 v6.6
FCS v8.0 —— FCS v8.0.5(探索伴飞).txt (61.86 KB, 下载次数: 91)

FCS v8.0.5(探索伴飞).txt

61.86 KB, 下载次数: 75

回复

使用道具 举报

匿名  发表于 2018-3-1 09:51:44
发射平台的脚本里好像缺少了说明的第一点,感觉不知道怎么搭建了
回复

使用道具

匿名  发表于 2018-3-7 16:18:23
游客 59.42.6.x 发表于 2018-3-1 09:51
发射平台的脚本里好像缺少了说明的第一点,感觉不知道怎么搭建了

发射平台只要指定好fcs编程块,lcd显示器就可以了,它不会控制其他的什么
回复

使用道具

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2018-3-19 15:51:41 | 显示全部楼层
能做到用遥控的无人机锁定目标吗
回复

使用道具 举报

0

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2018-6-24 23:11:04 | 显示全部楼层
雏鹰1型发射平台代码出现array相关的报错
(贴吧老是删我帖子不好意思我只能在这问了)


- 因为“init Sccuess”了所以几个方块改名应该没问题
- 但是对应的LCD上也没有显示任何信息,是全黑的
- FCS火控雷达已经装好了,测试过没有任何问题
- 从别人的作品地方拷贝了1.0版本的,没测试导弹发射,但是LCD面板可以正常显示

求大佬麻烦帮帮我

有问题的存档地址:https://pan.baidu.com/s/1QYoonpPcgSKh6T0A6xdBhQ
回复

使用道具 举报

0

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2018-6-25 19:28:51 | 显示全部楼层
本帖最后由 Firepanda415 于 2018-6-25 22:53 编辑
Firepanda415 发表于 2018-6-24 23:11
雏鹰1型发射平台代码出现array相关的报错
(贴吧老是删我帖子不好意思我只能在这问了)

我确认了一下,是GetTarget()里面的        
FCSCommands = FCSComputer.CustomData.Split('$')[1];        
string TargetInfo = FCSComputer.CustomData.Split('$')[2];
这两句有点问题,
我用LCD显示了一下,在FCS锁定了目标的情况下,FCS_Computer的Custom Data里面更新了数据之后,发现只有FCSComputer.CustomData.Split('$')[0]里面有字符,而且是FCS_Computer的Custom Data的全部信息,所以上面两个变量其实没读到东西,这大概就是bug原因,但是我看介绍应该我只改名就可以了吧,涉及这部分代码的操作我应该不用做?

大佬已经解决了这个问题


回复

使用道具 举报

匿名  发表于 2018-7-22 13:42:53
有没有视频可以看啊,这个导弹
回复

使用道具

2

主题

12

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2018-9-4 06:02:37 | 显示全部楼层
Firepanda415 发表于 2018-6-25 19:28
我确认了一下,是GetTarget()里面的        
FCSCommands = FCSComputer.CustomData.Split('$')[1];       ...

可能是你飞船命名的问题,亦或是包含了非法字符导致Split()函数分离失败:3
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

快速回复 返回顶部 返回列表