SylixOS平台下的火控实时解算与实现
2020-11-05程文博吴盘龙
程文博,屈 艺,吴盘龙,苏 鼎
(1.南京理工大学 自动化学院, 南京 210094;2.中国人民解放军 66483部队, 北京 100093)
软件国产化是我国软件产业领域的一个重要议题,其已经成为国家安全的重要组成部分,特别是军工领域对信息安全、信息自主化有着迫切的需求,而目前使用较多VxWorks、Linux、FreeRTOS等操作系统都是非国产操作系统。
由翼辉信息公司研发的国产操作系统SylixOS是一款支持对称多处理器的大型开源实时操作系统,采用抢占式、多任务、硬实时的方式来设计,具有功能完善、性能卓越、可靠稳定的特点。SylixOS在设计思路上借鉴了众多实时操作系统的设计思想,使得 SylixOS在功能和具体性能上达到或超过了众多实时操作系统的水平,已经在网络国防安全、工业自动化、航空航天等诸多领域有较多应用[1],研究国产实时操作系统下的火控系统有着重要意义。
文献[2]利用射表解射击诸元,分析出弹丸飞行时间的计算精度对射击误差有较大影响。文献[3]介绍了外弹道微分方程组的龙格库塔解法,分析了外弹道解算的实时性。文献[4]对弹道方程的边值问题提出了迭代-修正法,能够满足精度和实时性要求。文献[5]对高炮火控系统中的命中问题建模和仿真,通过MATLAB仿真具有良好的效果。文献[6]设计了VxWorks平台下火控系统,设计并实现了各个火控子系统的功能模块及通信。
火控系统要求能够准确、快速的击中目标,传统的火控算法通过对射表数据多维插值或以连续解析函数逼近射表来解射击诸元[7],实时性好,但精度低,而通过弹道微分方程解射击诸元需要多次迭代,精度高,但实时性差。国产SylixOS操作系统实时性强、稳定性好,本文基于SylixOS操作系统设计了基于外弹道微分方程实时解算射击诸元的近程防空火控系统。
1 近程防空火控系统设计
分析火控系统的功能和需求,设计了近程防空火力控制系统,如图1所示,该系统包括信息模拟模块、火控解算模块、外弹道模拟模块。
图1 近程防空火力控制系统框图
信息模拟模块产生火控解算所需要的目标位置、速度、加速度信息和风速、风向、气温等环境参数;火控解算模块根据目标当前状态,进行命中问题求解,计算命中点和射击诸元;外弹道模拟模块根据火控解算的射击诸元模拟完整弹丸轨迹,用来判断是否命中。各个模块通过UDP网络协议实现通信,通过GPIO接口读取同步信号。火控系统通过同步信号产生的中断执行数据发送任务,以保证系统的实时性。
2 基于外弹道的火控算法设计
基于外弹道的火控算法首先建立了合理的外弹道模型,在此基础上研究了命中点的求解过程和射击诸元求解的迭代算法。为了快速准确地解算射击诸元,选取了合适的迭代算法,并给出了迭代初值的选取方法。
2.1 坐标系定义与转换
弹丸运动方程建立于弹道坐标系,用于弹丸在运动过程中的定位;而目标运动方程建立于东北天坐标系,火控解算时需要将弹道坐标系转换到东北天坐标系。
2.1.1弹道坐标系与东北天坐标系的定义
1) 弹道坐标系:Op-XpYpZp。
Op:火炮炮口为原点;
Xp:水平面内,以火炮发射方向为Xp轴正向;
Yp:垂直于地面、天顶方向为正;
Zp:垂直于射面,右手准则确定正向。
2) 东北天坐标系:Oz-XzYzHz。
Oz:武器发射管回转中心;
Xz:水平面内正东方向;
Yz:水平面内正北方向;
Hz:垂直于地面、天顶方向为正。
2.1.2坐标系的转换
弹道坐标系与东北天坐标系的转换见图2所示。
图2 东北天坐标系与弹道坐标系转换
如图2所示,弹丸发射方位角(弹丸射向与Yz轴的夹角)为β,弹道坐标系先绕Yp轴顺时针转动π/2-β,再绕旋转后的Xp轴顺时针转动π/2到东北天坐标系。因此坐标系转换矩阵为:
(1)
2.2 外弹道模型
外弹道模型主要有质点弹道模型和刚体弹道模型,不同的弹道模型是在不同的假设条件下得到的[8]。弹道运动描述越复杂,就越接近真实弹道。现阶段刚体弹道模型难以满足火控解算中实时性要求,而质点弹道模型在射程较近,飞行过程中弹丸质量不变时,两者相差很小,能满足射表的精度要求,因此采用质点弹道模型。
质点弹道模型将弹丸作质点处理,不考虑弹丸飞行姿态对弹道的影响,弹丸只受重力、空气阻力的作用。以弹丸飞行时间t为自变量,考虑风速对弹道的影响,得到弹丸运动微分方程组[9]为:
(2)
式(2)中:x、y、z为弹丸质心坐标;vx、vy、vz弹丸质心速度沿三个坐标轴的分量;ρ(y)为空气密度函数;m为弹丸质量;S为弹丸横截面积;cxon是空气阻力系数,根据马赫数在阻力系数表中线性插值得到;a为音速;ωx、ωz为风速;g为重力加速度;vr为弹丸相对速度:
(3)
方程的初始条件为:t=0,vx=v0*cosθ0,vy=v0*sinθ0,vz=0,x=y=z=0。v0为弹丸初速,θ0为火炮高低角。
将式(2)和初值条件记为:
(4)
式(4)中:Y=[vx,vy,vz,x,y,z]T;Y0为解算初始值。式(4)的解法采用定步长四阶龙格库塔法[10],迭代公式如下:
(5)
式(5)中,h为积分步长。通过式(5)可以解算任意射角下和任意弹丸飞行时间下的弹道坐标。
2.3 命中问题求解
命中点即目标和弹头的相遇点,通过联立目标运动方程和弹丸运动方程求解。如图3所示,目标从初始位置运动Tm时间到命中点,弹丸从发射到运动到该点的飞行时间为Td,则必有Td=Tm。
建立目标命中方程为:
(6)
建立弹丸命中方程为:
Td=f(Xm,Ym,Hm)
(7)
联立式(5)、式(6),得命中方程为:
(8)
为方便书写,可将式(8)过程简写为:Td-f(Tm)=0。
图3 命中问题示意图
Tm与Td具有非线性函数关系[5],常用迭代算法有简单迭代法、快速迭代法、牛顿法、弦截法,本文采用收敛速度较快弦截法。弦截法迭代方程为:
(9)
1) 选取迭代的两个初值:
(10)
2.4 射击诸元求解
图3中M点为命中点,也即弹丸终点,又已知弹丸起点为原点,则求解射击诸元是两点边值问题,解决方法是将边值问题转化为初值问题。求解方法有迭代-修正法、二分法、基于落点诸元、粒子群优化算法等[11-13]。迭代-修正法具有较快的收敛速度,本文采用这种方法。射击诸元解算的迭代-修正过程如图4所示。
图4 迭代-修正法解射击诸元过程框图
迭代初值为:
(11)
式(11)中:T0为外弹道解算的火炮高低角;A0为弹道坐标转换的方位角。
当未来点横坐标Xm位于离散的弹道诸元(Yi-1,Yi)之间,可通过线性插值精确计算弹道终点(Xm,ye,ze)和弹丸飞行时间。
修正后的i+1时刻的射击诸元为:
(12)
式(12)中:Te、Ae分别为弹道终点对应的高低角、方位角,计算方式如式(11)所示。
弹丸飞行时间为:
(13)
式(13)中:h为弹道微分方程解算的积分步长;m为解算的积分步数。
通过迭代-修正法可以解出射击允许范围内目标轨迹上任意一点的射击诸元。
3 软件设计与实现
火控软件需要实现各个模块的通信来完成火控解算,为了保证通信的实时性,还创建了中断服务子程序。翼辉公司开发了Realevo-IDE集成开发环境,方便用户可以在Windows系统下开发SylixOS应用程序。
3.1 Realevo-IDE集成开发环境
Realevo-IDE运行于宿主机上,通过网络或串口与目标机交互。 Realevo-IDE的交叉编译器在宿主机上编译生成可以在目标机上运行的 SylixOS镜像文件,交叉调试器实现了宿主机与目标机之间的前后台调试,火控应用程序的编译调试过程如图5所示。
图5 火控程序通过Realevo-IDE在目标机上的调试过程框图
3.2 SylixOS驱动
SylixOS设备驱动负责控制和监视硬件,并提供通用的接口函数,包括字符设备驱动、块设备驱动、网络设备驱动、总线子系统等。应用程序调用驱动接口的过程如图6所示。
图6 应用程序调用SylixOS驱动过程框图
火控应用程序通过调用SylixOS驱动提供的API实现对UDP网络、GPIO接口、RS232串口等设备的使用。
3.3 UDP网络编程
火控系统既需要接收目标状态信息,也需要发送射击诸元。SylixOS系统提供了socket通信的API,帮助用户快速实现服务器、客户端系统搭建。
创建UDP通信需要的API有:
1) bind函数。bind函数把本地协议地址赋予一个套接字,用于绑定IP地址或端口。
2) recvfrom函数。recvfrom函数用于接收客户端数据,存储在指定的缓冲区中,并返回读取到的字节个数。
3) sendto函数。sendto函数用于服务器端发送数据,只需要指定要发送的数据缓冲区的地址即可,返回读取到的字节个数。
火控系统的UDP回射模型如图7所示。
图7 火控系统的UDP通信流程框图
火控程序创建socket套接字,通过bind绑定本地地址和端口,通过recvfrom/sendto循环接收/发送数据,结束通信则关闭socket。
3.4 中断服务任务
火控系统需保证通信的实时性,采用中断的方式保证数据的及时发送。在接收到同步信号时,触发中断服务,使与中断向量绑定的数据发送任务优先级最高。
SylixOS系统中,一个中断服务函数对应一个中断描述符LW_CLASS_INTACT,该描述符会被加入到中断向量表的表项中。中断连接函数API_InterVectorConnect将中断向量号与中断服务程序连接,中断释放函数API_InterVectorDisable释放中断向量对应的中断服务函数。火控系统中以中断方式处理射击诸元发送任务的过程如图8所示。
图8 数据发送任务在中断服务中的处理过程框图
4 仿真
在Realevo-IDE集成开发环境编写程序,通过网络或串口将编译后的镜像文件发送到SylixOS目标机。仿真的硬件平台采用i7- 4976 CPU,主频3.60 GHz。以某30 mm榴弹为仿真弹丸,其初速为890 m/s,质量为0.389 kg,风速为0,积分步长为0.01 s,射击诸元解算迭代误差值为0.1 m,弦截法迭代精度为0.01 s。
目标做匀速直线运动时,初始位置和速度为(2 000 m,1 000 m,1 000 m,-100 m/s,-100 m/s,-100 m/s)。分别在MATLAB平台和SylixOS平台利用外弹道解算射击诸元,并与射表解算的结果比较,结果如表1所示。
表1 匀速运动目标射击诸元对比
弹道轨迹和目标轨迹如图9所示。
图9 弹道轨迹和匀速目标轨迹三维视图
不同平台下解算的命中点坐标如表2所示。
表2 MATLAB与SylixOS平台下的命中点坐标
从表1中可以计算出:MATLAB平台和SylixOS平台解算的弹丸飞行时间与射表值的误差均小于0.01 s,高低角和方位角的绝对误差小于0.2 mil,表明了火控算法的可行性。两种平台下的解算结果误差为0.1 mil,表明了SylixOS平台的准确性。通过100次蒙特卡洛仿真,SylixOS平台下火控解算平均耗时为14 ms,表明了火控系统的快速性。从表2中可以计算出:命中点坐标误差分别为0.188 8 m、 0.188 5 m、0.188 8 m,说明SylixOS解算的射击诸元能精确命中目标。
目标做匀加速运动时,初始位置和速度不变,加速度为(-50 m/s2,-50 m/s2,-50 m/s2),其他设置不变,分别在MATLAB平台和SylixOS平台利用外弹道解算射击诸元,并与射表解算的结果比较,结果如表3所示。
表3 匀加速运动目标射击诸元
弹道轨迹和目标轨迹如图10所示。
图10 弹道轨迹和匀加速目标轨迹三维视图
不同平台下解算的命中点坐标如表4所示。
表4 MATLAB与SylixOS平台下的命中点坐标
从表3和表4计算出SylixOS平台下的弹丸飞行时间与射表值的绝对误差为0.014 s,高低角、方位角绝对误差小于0.3 mil,与MATLAB相比,命中点的位置误差分别0.02%、0.13%、0.13%,说明SylixOS系统下对于匀加速目标的火控解算也有较高的准确性。通过100次蒙特卡洛仿真,得到该平台下火控解算平均耗时为12 ms,表明实时操作系统下的火控解算实时性较强。
5 结论
在国产实时操作系统SylixOS上实现了一种基于质点外弹道解算射击诸元的火控算法,并对匀速目标和匀加速目标进行仿真。通过对仿真数据的分析,表明了弹丸能够准确、快速的击中目标。在20 ms同步信号周期下持续解算,都满足精度和实时性要求。
实时操作系统SylixOS为火控系统的设计和开发提供了一个较为理想的平台,在该系统下编程、调试简单,开发、维护方便,性能稳定,实时性好,具有良好的发展前景。本文中目标运动在理想环境下,下一步模拟杂波环境下的目标跟踪和火控解算,使系统更接近实际的火控系统。