江苏师范大学物理与电子工程学院 袁 波 朱士虎
本文设计一种高精度自动化电磁炮发射装置。以STM32单片机作为核心控制器件,应用电磁感应、光电检测和自动控制等技术;电磁炮采用OpenMV摄像头模块实现对目标的锁定与距离识别;由STM32单片机给予云台舵机控制信号,实现炮台水平角度和垂直仰角的自动调节;采用增量式PID算法实现快速响应、无静差的云台自动控制;通过控制大容量、高耐压电解电容的自动充电、放电,实现大电容瞬态强放电,电磁线圈产生瞬态强力磁场驱动铁球,实现铁球的精确发射。实验结果表明,该设计电路简单,软硬件结合,控制方法灵活,达到预期的设计要求。
电磁炮作为一种新型武器,是未来国防科技发展的一个方向。电磁轨道炮通过洛伦兹力加速弹丸,相较于传统火炮依靠化学能实现发射方式,具有初速快和精确可控等优点。在未来武器的发展上,电磁炮技术具有巨大的应用价值,在军事上起着越来越重要的作用。经过30余年的发展,电磁炮技术已获得巨大发展。但现有的设计方案制造出的电磁炮虽然已完成了基础功能,但距离将其转化为实用,成为可靠的武器系统还存在诸多问题。现阶段的电磁炮存在着能量损耗率高、精确度低、炮管易损等问题。当然,电磁炮不仅运用于军事领域,在民用领域中也有广泛应用,大量应用于实验室、课堂教学中作为教具。通过对电磁炮的研究可对电磁感应、楞次定律等理论,有更加深刻的理解。本文旨在为实验室、课堂教学等领域设计一种小型化,便携式,且价格便宜的线圈式电磁炮。
设计并制作线圈式电磁炮。使用直径为1.5cm的铁质球形炮弹,用电磁炮将炮弹射出。设计的电磁炮系统将实现以下两个目标:
(1)设定电磁炮的发射距离发射炮弹,要求炮弹的实际发射距离与设定的距离之间误差在2cm内。要求通过键盘设定具体距离,完成设定后按下启动键,电磁炮自动充能并发射炮弹。
(2)将目标物放置在电磁炮前方-60°到60°,且距离在3m范围内,电磁炮自动搜寻目标并发射炮弹击中红色目标物。要求不可通过按键调节距离及角度,按下启动键后电磁炮能自动搜寻目标,并发射炮弹击中目标,电磁炮系统如图1所示。
电磁炮是利用电磁力(洛伦兹力)沿导轨发射炮弹的武器。其原理是利用电磁的相互作用力将物体加速,随后发射出去。电磁炮主要由能源、加速器、开关三部分组成。现阶段,实验室常用的有电容储能式脉冲发生器、单极发电机和磁通压缩装置,其中单极发电机是发展潜力较大的能源装置。加速器能够使电磁力转化为动能,给物体加速。开关是用来控制系统充能与发射。线圈式电磁炮是通过将电磁线圈做成中空,将铁质小球放在线圈底部。当炮管上线圈产生感应电流,磁场与电流相互作用后推动炮弹并进行加速,最后射出并击中目标。
图1 电磁炮系统示意图
PID算法是控制行业中最简单、最经典、也是最重要的算法之一。设计和实现PID算法是完成设备自动化控制的基本要求。PID算法的中心思想是非常简单的,就是利用反馈来检测实际参量与目标参量的偏差,并通过比例、积分、微分三个环节合成控制量,实现系统的自动化控制。而增量式PID是PID算法中的一种,它通过对控制量的增量进行PID运算的方法。相比于其他PID算法,增量式PID算法具有很高的稳定性,即便偶尔有误差或精度不足时,仍能保持正常运转。
STM32F407采用Cortex-M4内核,现为目前最主流的单片机之一。它的时钟频率可达到168MHZ,芯片拥有多个定时器、串口等外设;可对系统实现精准、快速的控制。且有大量资料提供参考学习,所以采用STM32F407作为系统的主控芯片对系统进行控制。
OpenMV摄像头模块可以实现彩色识别功能,模块集成了ST公司目前较高级的处理器芯片STM32H7。在IDE平台使用Python语言编写代码,实现调用底层的图像处理算法及AI算法,采用串口通信将目标位置信息传送给控制处理器。OpenMV摄像头模块图像数据处理和存储都在模块集成的芯片上实现,不占用主控芯片的运算及存储资源,极大地节省了主控芯片的工作量,且OpenMV内置测距程序,可快速测出与目标物的距离。
电磁炮要实现炮弹的发射,就必须设计相应电路,实现能量的存储以及能量的瞬间释放。能量的存储速度越快,炮弹发射的准备时间越短;释放的能量越大,炮弹发射的距离越远。电解电容的充放电速度是各种类电容中较好的,所以采用电解电容作为能量容器。当前教学用电磁炮对发射能量的控制,仅仅只是对充电时间进行控制,并不能完全准确地控制能量的存储量,精度也不太高。本文设计中采用对电容电压进行准确采样,来控制炮弹的发射距离。这种方法不仅准确控制炮弹的发射距离、提高了射击精度,而且,还能够防止仅仅只控制充电时间,而导致充电不足或过度充电引发意外状况的出现。
设计一硬件电路实现将直流电转换为交流电,再经过变压器升压后对一个8800UF 450V的大容量高压电解电容进行充电。采用STM32的12位ADC转换功能采集充电时电容两端电压值,由单片机设置并控制电容充放电,实现发射动能的存储控制。用一组线圈缠绕在炮管底部,在线圈稍低处装入铁球作为炮弹。当电容能量充满且满足开炮条件时,设计的开关电路将使电容对线圈进行一次大电流的快速放电,使线圈产生瞬时强磁场。磁场将炮弹向线圈中心吸引,由于放电电流只持续一瞬间,炮弹的吸引力很快就会消失。产生的动能将会带动小球射出炮口做出斜抛运动,从而实现炮弹的发射。
电磁炮能自动击中目标的关键在于能够快速搜寻并锁定目标物,从启动到搜寻到目标的时间越短越好,锁定目标的精度越高越好。将炮台置于可水平且垂直转动的云台上,配以OpenMV作为寻找目标的重要传感器,OpenMV中心与电磁炮炮管处于同一垂直线上。使用闭环控制,将目标物的特征输入到程序中。若在摄像头可探测的范围内无目标物,则将无目标信号反馈给单片机。单片机再将相关信号传送给云台,云台则按预设方向继续转动;若目标进入探测范围,OpenMV则发送具体坐标给单片机,直至目标物到达坐标中心点。使用增量式PID算法作为云台控制量,与开环控制相比,更加精确快速,增量式PID算法公式为:
将摄像头捕捉到的图像水平分为180个像素点,由左向右按照0-159排列,由上向下以0-119排列。若目标物出现在图像上,则将物体的位置以坐标(x, y)的形式传输给单片机。将此坐标与中心坐标的偏差值作为反馈量代入增量式PID算法公式,即为e[n],而上一次偏差值为e[n-1],且在前一次的偏差值为e[n-2],根据实际情况调整kp、ki、kd完善具体算法。因此,能够快速且精确地捕捉到目标的具体位置。当锁定目标后由MPU6050传感器测出目标的角度,利用OpenMV测出与目标的距离,将相关数据传输给系统进行比对,快速进行参数修正,使电磁炮射击更加准确稳定。
电磁炮系统电路设计,以STM32单片机为核心,辅以用户键盘、MPU6050、OpenMV和舵机云台,外加全桥逆变升压、炮弹充能发射和电容电压反馈电路,系统总体设计如图2所示。
图2 系统总体框图
IR2104是半桥驱动器,当SD=1时,即允许使能IR2104,当HO脚的输出波形与IN脚的输入波形相同时,LO脚的输出波形与IN脚的输入波形则相反。如若IN输入高电平,则HO输出高电平,LO输出低电平,可以输出一组相反信号来驱动两个MOS管。单片机给出一组呈周期变化的相反信号分别输入两个IR2104,故对角的两个MOS管会同时导通而另一组对角MOS管则不通,以此往复变化则会在输出端得到连续的交流电。因此,全桥逆变升压电路能将12伏的直流输入电压进行全桥逆变后升压到220伏。再将220伏的交流电进行整流滤波,给电解电容充电。全桥逆变电路如图3所示。
全桥逆变输出的交流电经由5:200的变压器升压,再经桥式整流滤波,变方波交流电为脉冲直流电,给大电容充电。由于电压高、功率大故选用IGBT来控制电容的充放电,因为IGBT驱动功率小而饱和压降低;由于IGBT的驱动电压较大,单片机引脚无法有效驱动,故采用一继电器来帮助单片机控制IGBT的开关。当大电容达到预设电压值时,由单片机输出控制信号,启动IGBT开关,大电容迅速放电为线圈充能使之能够发射炮弹。电容充能电路如图4所示。
TIL11光耦能将电信号转为光信号,再次转为电信号。将大电容两端电压进行分压后串联一个电阻将电压信号转变为电流信号。为防止电流过大烧坏单片机引脚,于是使用TIL117将电流信号隔离并使之工作在线性区。因输出信号电压较小,输出信号经过LM358同相比例放大,再传给单片机ADC进行采样,从而实现充电反馈。最后将反馈的电压传输给控制系统,以此控制炮弹的发射距离。电压反馈电路如图5所示。
图3 全桥逆变电路
图4 电容充能电路
图5 电压反馈电路
(1)采用TFT液晶屏显示电磁炮的相关数据,包括电磁炮发射模式选择、炮弹发射距离、电容电压反馈电压,以及电磁炮炮管当前的角度,OpenMV摄像头的搜寻状态,目标的跟踪测量距离等。
(2)电磁炮的发射模式,炮弹发射的距离通过矩阵键盘输入。
(3)电磁炮的射击距离,与电容的充电电压值有关,具体距离大小与电容电压反馈电路的电压值一一对应。按下启动键,电容开始充能,达到预设的电压值以后,电磁炮充能结束,就可以发射炮弹。
(4)自动搜寻目标则利用OpenMV摄像头识别彩色图像获取标识在镜头中的相对坐标,若目标不在镜头的正中,则调节炮管的角度,一直到炮管完全指向目标为止。为了快速且准确的命中目标,此过程运用增量式PID算法,调节炮管角度,形成闭环系统,大大增加系统的稳定性。
基于以上的程序设计思路,依照图6所示的流程图,在MDK平台使用C语言对STM32单片机进行具体的程序编写实现设定功能。
图6 程序流程图
通过使用STM32单片机系统控制,在保持相同电压前提下,多次发射电磁炮,测量炮弹射击距离。经过多次试验,记录测试数据,可见炮弹发射距离误差能够控制在1cm以内,达到预期目标。表1所示为仰角为30°时,设定目标距离与实际发射距离的对比数据。
表1 目标距离与实际距离对应表
将目标物放在电磁炮前方-60°到+60°角度范围内的任意地点,让电磁炮自动搜寻目标,并发射炮弹射击。经过多次测试,炮弹的射击角度误差为2°、距离误差2cm。可见通过相关传感器与增量式PID的结合,大大提高了系统搜寻目标的准度与精度,具体测试数据如表2所示。
表2 不同角度与距离对应表
通过对比以上表格数据,结合电磁炮的整体操作、发射稳定性进行综合评定,设计的电磁炮已满足预定设计目标。但是,为了进一步提高电磁炮射击精度,对误差产生的可能原因进行了分析:首先,由于是手工缠绕电磁炮线圈,线圈密度不够均匀;其次,使用了塑料管作为炮管,摩擦阻力较大,当搜寻射击目标时,会出现角度的偏差,控制炮管角度的增量式PID算法的值并没有达到最优解;最后,还发现当电磁炮充能射击以后,电磁炮线圈会有不同程度的发热现象,在连续射击多次,线圈的温度上升到一定程度后,发射精度会有较大影响,待线圈温度冷却以后,射击精度又会再次向好。就误差产生的可能原因,拟进行如下的改进措施:改进线圈绕制工艺,改善线圈的电磁性能;拟采用塑钢等材料制作炮管,改进炮管连接方式,减小跟踪角度偏差;加设风扇,做好电磁炮线圈的排风降温工作,改善线圈工作环境。当然,改进后效果如何,还有待于实践的进一步检验和验证。
现阶段电磁轨道炮制导控制技术存在许多重大科学问题,关键技术面临巨大挑战。相信随着对电磁炮技术的不断研究与突破,必将对现代武器发展产生颠覆性作用。本文设计的基于STM32的高精度电磁炮系统,经过电路调整和软件优化,多次实验测试表明,在一定距离内射击误差能够控制在2cm以内,达到了预期设计目标。但是在远距离射击情况下,误差会有所增大。接下来的改进目标,提高目标跟踪速度,力争在远距离射击情况下也能将误差减小到合适范围,本设计对电磁炮技术进行了有益尝试,希望能对未来产生应用价值。