CN112099406A - 初速减退量辅助修正装置设计方法 - Google Patents

初速减退量辅助修正装置设计方法 Download PDF

Info

Publication number
CN112099406A
CN112099406A CN202010968368.2A CN202010968368A CN112099406A CN 112099406 A CN112099406 A CN 112099406A CN 202010968368 A CN202010968368 A CN 202010968368A CN 112099406 A CN112099406 A CN 112099406A
Authority
CN
China
Prior art keywords
model
initial velocity
subprogram
neural network
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010968368.2A
Other languages
English (en)
Inventor
王国辉
李向荣
张宝栋
童皖
常雷
马啸飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Academy of Armored Forces of PLA
Original Assignee
Academy of Armored Forces of PLA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Academy of Armored Forces of PLA filed Critical Academy of Armored Forces of PLA
Priority to CN202010968368.2A priority Critical patent/CN112099406A/zh
Publication of CN112099406A publication Critical patent/CN112099406A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

本发明公开了初速减退量辅助修正装置设计方法,属于火炮初速减退量辅助修正技术领域,包括以下步骤:S1:系统总体设计,S2:系统硬件设计,S3:系统算法模块软件设计,S4:子模块软件设计,对单片机其他模块的软件设计主要包括:按键电路的扫描检测、12864液晶模块的显示、I2C总线对EEPROM的读写以及上位机通讯。本发明根据火炮初速减退量计算的相关算法模型,设计辅助修正装置的相关硬件电路,将BP神经网络预测模型和磨损火炮内弹道模型应用到硬件系统中,并设计了相关外围电路,实现了对初速减退量的自动计算、LCD显示以及与上位机的数据通信功能,并及时指示给坦克炮手初速减退量大小,辅助炮手完成初速减退量的修正,提高装定精度和速度。

Description

初速减退量辅助修正装置设计方法
技术领域
本发明涉及火炮初速减退量辅助修正技术领域,具体为初速减退量辅助修正装置设计方法。
背景技术
初速减退量(the decrement of muzzle velocity)是由于炮膛的烧蚀磨损而造成的火炮实际初速相对于表定初速的偏差量,有相关研究表明,对于现代的小口径高炮,如果初速减退量为1%时而不对其进行修正,则命中概率将会降低30%-40%,根据坦克炮穿甲性能的要求,初速下降5%,即认为身管已报废。以我国大量装配部队的某型主战坦克为例,新炮的穿甲弹初速约为1740m/s,初速下降1%时的速度为1723m/s,即初速度误差为17m/s,当坦克炮对距离2000米的目标进行射击时,如果不对初速减退量进行修正,在射击条件和其他射击诸元不变的情况下,根据真空中全水平射程公式与该型坦克炮穿甲弹射表,初速下降1%会造成距离40米左右的误差,当速度下降5%时,误差更大,对于坦克炮这种追求高精度的直瞄武器来说,显然不符合作战性能的要求,所以在射击前,需要对初速减退量予以修正,而目前初速减退量主要依靠炮手经验估测,尔后粗略装定,这严重影响了坦克炮的射击精度,因此,迫切需要一种准确可靠的新方法来快速确定初速减退量,并将减退量大小及时指示给炮手,方便炮手实时掌握身管内膛的变化情况,完成对初速减退量的装定,弥补现有方法的不足,已成为一项十分重要的课题,这对于提高坦克炮首发命中率,精确射击目标具有重要意义。
发明内容
本发明的目的在于提供初速减退量辅助修正装置设计方法,根据火炮初速减退量计算的相关算法模型,设计辅助修正装置的相关硬件电路,将BP神经网络预测模型和磨损火炮内弹道模型应用到硬件系统中,并设计了相关外围电路,实现了对初速减退量的自动计算、LCD显示以及与上位机的数据通信功能,并及时指示给坦克炮手初速减退量大小,辅助炮手完成初速减退量的修正,提高装定精度和速度,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:初速减退量辅助修正装置设计方法,包括以下步骤:
S1:系统总体设计,在深入分析坦克炮射击过程及火控系统工作原理的基础上,采用火控计算机中的选弹信号和射击电路中的击发信号完成对弹种数目的分类和计数功能之后,检测有无击发信号产生,根据网络模型计算输出当前时刻的身管烧蚀磨损量,进而利用内弹道计算模型推算初速减退量;
S2:系统硬件设计,包括以下步骤:
S2-1:总体硬件设计,根据初速减退量辅助修正装置的工作原理和性能的相关要求,详细设计系统中的各个功能模块;
S2-2:子模块硬件设计,主要包括显示模块、声光报警电路、键盘输入电路、上位机通讯电路及存储模块;
S3:系统算法模块软件设计,包括以下步骤:
S3-1:单片机主程序设计;
S3-2:BP网络神经模型计算;
S3-3:BP网络神经模型重构;
S3-4:内弹道模型代码移植,将代码移植到设计的硬件底层驱动;
S4:子模块软件设计。
优选的,在S1中,根据已构建的BP神经网络预测模型原理,以不同弹种的射弹数目作为网络的输入层,首先完成对不同弹种射弹数目的区分计数,然后将弹种射弹数目送入到单片机中已构建好的神经网络模型中,计算出当前时刻的身管烧蚀磨损量,其次根据内弹道计算模型,对当前时刻该弹种的初速减退量大小进行计算。
优选的,在S1中,首先要完成火炮不同弹种射弹数目的区分计数功能,在深入分析坦克炮射击过程及火控系统工作原理的基础上,采用火控计算机中的选弹信号和射击电路中的击发信号完成对弹种数目的分类和计数功能,即以弹种选择信号作为第一个信号,用以区分射弹弹种,之后,检测有无击发信号产生,有击发信号,则该弹种计数器的值加1,并将坦克炮当前时刻“穿、破、榴”三个弹种的射弹数目输入到BP神经网络模型中,根据网络模型计算输出当前时刻的身管烧蚀磨损量,进而利用内弹道计算模型推算初速减退量。
优选的,在S3中,系统软件设计主要由主控程序,键盘扫描程序、12864液晶显示程序、I2C总线对24C02的存储和读写程序、声光报警程序以及上位机通讯6大模块组成,其中包括4个初始化子程序,10个功能子程序组成。
优选的,4个初始化子程序分别是:单片机I/O端口初始化子程序、单片机定时器初始化子程序、单片机串口初始化子程序和显示模块初始化子程序;10个功能子程序分别是:BP神经网络计算子程序、初速减退量计算子程序、报警子程序、键盘扫描子程序、延时子程序、12864液晶显示子程序、中断服务子程序、I2C总线操作子程序、E2PROM读写子程序和上位机通讯子程序;采用C语言编程,在Keil编译器中编译生成hex文件,通过串口将程序固化到单片机的E2PROM中,完成了对初速减退量辅助修正装置的总体软件设计。
优选的,在S3中,BP神经网络中一般包括五个主要因素分别为输入值、权值、阈值、传递函数以及输出,两个运算过程,分别为BP算法的前向计算和误差的反向推导;而在五个主要因素和两个运算过程中,传递函数的作用尤为重要,在算法中如果不加入传递函数,只是简单的对输入进行加权求和,那么得到的模型仅是一个线性模型,而线性模型的表示能力非常有限,因此采用加入传递函数的方法给模型引入非线性因素,以提高模型的表示能力,所以一般情况下采用非线性函数作为传递函数,BP神经网络模型采用的传递函数为Tan-Sigmoid函数。
优选的,在S3中,根据在PC机上对BP神经网络模型进行离线训练得到的模型参数和BP神经网络前向计算公式,编写C语言程序,将BP神经网络模型应用到单片机当中,完成对身管烧蚀磨损量的计算功能,实现单片机技术和BP神经网络技术的紧密结合;采用Keil编制BP神经网络计算程序,将网络参数存储在单片机上,根据当前时刻各弹种射弹数目的输入值,送入BP神经网络计算子程序中,即可得到火炮身管的烧蚀磨损量。
优选的,在S4中,对单片机其他模块的软件设计主要包括:按键电路的扫描检测、12864液晶模块的显示、I2C总线对EEPROM的读写以及上位机通讯。
与现有技术相比,本发明的有益效果是:
(1)根据系统总体的设计要求,完成了初速减退量辅助修正装置的总体硬件设计,以STC89C52单片机为控制核心,设计相关的外围电路,完成了对初速减退量的存储、显示、通信和报警功能;
(2)实现了BP神经网络算法与单片机的有效融合,综合了单片机技术智能化以及神经网络算法无需精确数学模型的优点,根据前期在PC机上学习训练得到的火炮身管烧蚀磨损量预测模型,利用训练好的神经网络模型结构和网络参数,采用C语言编程,应用到单片机系统中,完成对身管烧蚀磨损量的自动计算功能;
(3)根据磨损火炮内弹道计算模型生成的应用层代码,将代码与底层驱动集成后下载到目标硬件平台,完后了嵌入式代码的移植和集成。
附图说明
图1为本发明的整体流程图;
图2为本发明的火炮初速减退量辅助修正系统框图;
图3为本发明的系统工作流程图;
图4为本发明的系统硬件设计总体框图;
图5为本发明的USB转串口电路图;
图6为本发明的主控程序流程图;
图7为本发明的射弹数目按键输入显示流程图;
图8为本发明的数据读写流程图;
图9为本发明的单片机间的UART通信示意图;
图10为本发明的串口数据发送示意图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种技术方案:初速减退量辅助修正装置设计方法,如图1所示,包括以下步骤:
S1:系统总体设计:
如图2所示,根据已构建的BP神经网络预测模型原理,以不同弹种的射弹数目作为网络的输入层,首先完成对不同弹种射弹数目的区分计数,然后将弹种射弹数目送入到单片机中已构建好的神经网络模型中,计算出当前时刻的身管烧蚀磨损量,其次根据内弹道计算模型,对当前时刻该弹种的初速减退量大小进行计算;
该系统充分利用了单片机丰富的接口功能以及运算功能,实现了火炮初速减退量的自动计算,初速减退量由LCD显示电路显示,可实时指示给炮手,方便战车乘员及时掌握身管的健康状况,辅助完成初速减退量的修正工作;
在系统的总体设计中,首先要完成火炮不同弹种射弹数目的区分计数功能,在深入分析坦克炮射击过程及火控系统工作原理的基础上,采用火控计算机中的选弹信号和射击电路中的击发信号完成对弹种数目的分类和计数功能,即以弹种选择信号作为第一个信号,用以区分射弹弹种,之后,检测有无击发信号产生,有击发信号,则该弹种计数器的值加1,并将坦克炮当前时刻“穿、破、榴”三个弹种的射弹数目输入到BP神经网络模型中,根据网络模型计算输出当前时刻的身管烧蚀磨损量,进而利用内弹道计算模型推算初速减退量;
每发炮弹造成的身管烧蚀磨损量的变化很难测出,而且每发射一发炮弹就进行一次初速减退量的计算意义不大,因此,根据身管烧蚀磨损量和总射弹数之间的数据变化曲线,系统设计每发射30发炮弹完成一次对身管烧蚀磨损量的计算,这样既可以减少单片机的运行次数,还可以延长系统的工作寿命。系统中还加入了声光报警模块,当火炮的初速减退量大于规定值时,会造成严重的安全事故,此时,系统启动报警装置,及时提醒战车乘员,防止安全事故发生,具体如图3所示;
S2:系统硬件设计,包括以下步骤:
S2-1:总体硬件设计,根据初速减退量辅助修正装置的工作原理和性能的相关要求,详细设计系统中的各个功能模块;
如图4所示,系统硬件主要由控制核心、显示模块、声光报警模块、键盘模块、存储模块以及上位机通讯电路模块组成,根据系统设计的实际需求,控制核心采用STC89C52单片机,显示模块采用12864液晶实时显示,声光报警模块采用有源蜂鸣器和LED小灯,键盘模块是人机交互的重要组成,可为用户提供可视化的操作,主要用于人工输入不同弹种的射弹数目,存储模块采用E2PROM存储器,存储BP网络模型参数、内弹道模型参数、射弹数据和初速减退量等,上位机通讯模块以CH340T芯片为核心,用于完成单片机和PC机之间的数据通信,实现数据的实时传输,便于后期对数据的分析和处理;
S2-2:子模块硬件设计,单片机的电源、晶振驱动和复位模块构成单片机的最小系统,是单片机系统必不可少的电路模块,晶振提供给单片机固定的时钟周期,复位模块可以保证在系统运行出错或进入死循环时重启系统,硬件设计中其他子模块主要包括以下五个;
(1)显示模块
显示模块是人机交互的重要组成,根据系统的设计要求,要在液晶屏上同时显示各弹种的射弹数目及初速减退量,其内容包括汉字、数字及字符且输出须为4行,而12864液晶屏可输出4×16大小个字符,内置8192个中文汉字,可满足系统性能要求,故采用12864液晶屏进行显示;
(2)声光报警电路
经应用到单片机中的算法模型计算得到当前时刻的初速减退量后,若该值大于某一设定阈值时(根据当前坦克炮身管烧蚀磨损的相关规定和使用经验,当火炮初速减退量大于3%时,即认为该身管报废),该装置会自动触发声光报警系统,提醒战车乘员及时关注身管的健康状况,报警系统由蜂鸣器和发光二极管组成,采用PNP型三极管S8550和两个电阻组成一个放大电路,对蜂鸣器进行驱动,当三极管发射集和基集之间的节电压正偏时,导通S8550,蜂鸣器发出声响,同时LED灯闪烁;
(3)键盘输入电路
采用4×4矩阵键盘,共有16个按键,本系统中共用到15个按键,分别表示数字0~9和功能键删除、确定以及选择不同弹种的功能,采用矩阵按键这种设计,只用8个I/O口来实现16个按键,节省了单片机的硬件资源;
(4)上位机通讯电路
根据算法模型计算得到初速减退量之后,为记录初速减退量大小,方便做下一步的分析和处理,需要在辅助修正装置与上位机之间建立通讯,但单片机的输入、输出电平均为TTL电平,而PC机配置的是RS-232标准串行接口,两者的电气规范不一致,必须借助电平转换芯片MAX232对单片机输出的TTL电平进行电平转换才能实现信息传输,但随着技术的发展,已经慢慢地使用USB转UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)技术取代了RS-232串口,要实现单片机和计算机之间的通信,只需在电路上添加一个USB转串口芯片,就可以成功实现USB通信协议和标准UART串行通信协议的转换,硬件系统中使用的是CH340T芯片;
如图5所示,CH340T的电路里3脚位置加了个4148的二极管,因为STC89C52单片机下载程序时需要冷启动,就是先点下载后上电,上电瞬间单片机会先检测需要不需要下载程序,虽然单片机的VCC是由开关来控制的,但是由于CH340T的3脚是输出引脚,如果没有此二极管,开关后级单片机在断电情况下,CH340T和单片机的RXD引脚连在一起,有电流会通过这个引脚流入后级电路并且给后级的电容充电,造成后级有一定幅度的电压,这个电压值虽然只有2~3V左右,但是可能会影响到正常的冷启动,加了二极管后,既不影响通信,也可以消除这种不良影响;
(5)存储模块
为了保证射弹数目以及BP神经网络模型参数在下次开机上电后数据仍能保存在系统中,需要采用掉电后不丢失的存储器件,目前主要流行的存储器件有铁电、E2PROM以及FLASH三种,其中,铁电操作简单,但容量较小,FLASH容量大,但操作复杂,且如果要改变一个字节就需要改变整个扇区,而E2PROM操作简单,容量中等,擦写次数在30万次到100万次不等,能够满足系统的设计要求,E2PROM最常用的是24C系列的,采用24C系列的24C02芯片对数据进行存储,字母C后的数字代表器件自身的容量;
S3:系统算法模块软件设计,包括以下步骤:
S3-1:单片机主程序设计;
系统软件设计主要由主控程序,键盘扫描程序、12864液晶显示程序、I2C总线对24C02的存储和读写程序、声光报警程序以及上位机通讯6大模块组成,其中包括4个初始化子程序,10个功能子程序组成;
4个初始化子程序分别是:单片机I/O端口初始化子程序、单片机定时器初始化子程序、单片机串口初始化子程序和显示模块初始化子程序;10个功能子程序分别是:BP神经网络计算子程序、初速减退量计算子程序、报警子程序、键盘扫描子程序、延时子程序、12864液晶显示子程序、中断服务子程序、I2C总线操作子程序、E2PROM读写子程序和上位机通讯子程序;采用C语言编程,在Keil编译器中编译生成hex文件,通过串口将程序固化到单片机的E2PROM中,完成了对初速减退量辅助修正装置的总体软件设计,具体如图6所示;
S3-2:BP网络神经模型计算;
BP神经网络中一般包括五个主要因素分别为输入值、权值、阈值、传递函数以及输出,两个运算过程,分别为BP算法的前向计算和误差的反向推导;而在五个主要因素和两个运算过程中,传递函数的作用尤为重要,在算法中如果不加入传递函数,只是简单的对输入进行加权求和,那么得到的模型仅是一个线性模型,而线性模型的表示能力非常有限,因此采用加入传递函数的方法给模型引入非线性因素,以提高模型的表示能力,所以一般情况下采用非线性函数作为传递函数,BP神经网络模型采用的传递函数为Tan-Sigmoid函数;
根据在PC机上已构建好的BP神经网络模型,输入样本值即可求得模型的输出值,因此,将BP神经网络算法嵌入到单片机系统中的程序,只需要根据生成的网络参数复原网络模型即可,而不需要误差的反向传播推导过程,只需按照BP神经网络的前向运算过程,编写单片机程序即可,BP神经网络的前向计算过程为通过给定的权值对输入值进行加权求和后(默认加上各层阈值),再将得到的和作为参数输入到传递函数中,传递函数的输出值即为神经元的输出值,计算过程如公式(3-1)、(3-2)所示:
Figure BDA0002683172500000091
Figure BDA0002683172500000101
式中,u1为隐含层的输出,j为整数,取值范围为[1,6],x(i)为网络的输入值,i为整数,取值范围为[1,3],分别为穿、破、榴三个弹种的射弹数目,w1为输入层到隐含层的连接权值,b1为隐含层阈值;u2为输出层神经元的输出,输出层神经元个数为1,故只有一个输出,w2为隐含层到输出层的连接权值,b2为输出层阈值;函数f1和f2分别为隐含层传递函数tansig和输出层传递函数purelin,如公式(3-3)、(3-4)所示:
Figure BDA0002683172500000102
f2(x)=x (3-4)
S3-3:BP网络神经模型重构;
根据在PC机上对BP神经网络模型进行离线训练得到的模型参数和BP神经网络前向计算公式,编写C语言程序,将BP神经网络模型应用到单片机当中,完成对身管烧蚀磨损量的计算功能,实现单片机技术和BP神经网络技术的紧密结合;采用Keil编制BP神经网络计算程序,将网络参数存储在单片机上,根据当前时刻各弹种射弹数目的输入值,送入BP神经网络计算子程序中,即可得到火炮身管的烧蚀磨损量;
由于神经网络模型是一种较为复杂的运算,要在单片机中实现,需要进行浮点运算和计算复杂函数(tansig函数),这会给系统性能带来很大影响,对于浮点函数的计算是由单片机系统自身特点所决定的,不会有很大提高,但对于复杂函数的计算,可以采用分段多项式拟合的方法对tansig函数进行改进,用以在计算精度允许的范围内来提高运行速度,即对模型传递函数优化;
如表3-1所示,穿甲弹、破甲弹和榴弹射弹数目分别为117、84、92时,在保证网络模型计算精度的前提下,两种函数运算时间的对比,可以直观地看出,优化后的传递函数运算速度有了很大提高,表明了分段多项式拟合方法对减少模型运行时间的重要作用;
表3-1网络模型运算时间对比表
Figure BDA0002683172500000111
神经网络中,网络结构越复杂,模型中涉及的权值、阈值以及各种中间变量就会增加,但单片机的程序区和数据区的容量都是有限的,为了减少对单片机资源的占用,实现神经网络算法时,要将权值和阈值等参数写成立即数的形式;
S3-4:内弹道模型代码移植,将代码移植到设计的硬件底层驱动;
自动生成的代码仅实现了simulink模型的功能,为将模型输出与单片机硬件接口相关联,还需对代码进行修改或将删除不必要的输入参数,在ert_main.c中添加与硬件有关的代码,主要包括头文件、中断服务程序、硬件初始化代码、算法与硬件接口代码、循环语句等,同时为使自动生成的代码与实际硬件的端口、寄存器等能有效对应,需对ert_main.c文件作一些修改,删掉头文件#include<stdio.h>,添加51头文件#include<reg51.h>;
打开keil软件,新建一个工程文件,选择目标芯片,采用的芯片为STC89C52,但在keil软件中没有芯片STC89C52,而STC89C52和AT89C52的内核都为8051内核,因此选择AT89C52芯片,建立工程,将模型代码文件与前期完成的程序文件保存在同一目录下,编译时,编译器会自动找到所需要的头文件,无须手工添加,完成与其他单片机程序的集成,运行程序,编译无错误并生成hex文件,下载到单片机中即可;
S4:子模块软件设计,对单片机其他模块的软件设计主要包括:按键电路的扫描检测、12864液晶模块的显示、I2C总线对EEPROM的读写以及上位机通讯;
(1)按键电路的扫描检测
矩阵按键电路的检测包括三个函数:按键扫描函数、按键驱动函数以及按键动作函数,按键扫描函数完成对按键键值的更新,需在定时中断中调用,调用间隔为1ms;按键驱动函数功能为循环检测按键动作,调度相应的动作函数,该函数需在主循环中进行调用;按键动作函数功能为根据键码执行射弹数目的更新操作,设置的按键编号到标准键盘键码的映射表如表4-1所示:
表4-1矩阵按键编号到标准键盘键码的映射表
Figure BDA0002683172500000121
表4-1中左侧为定义的矩阵按键编号,右侧为标准键盘的键码,数字按键的编号与键盘的键值为一一对应的,这样的设计在软件程序设计方面会带来很大的便利,在按键输入的软件设计中,采用一个if语句即可实现对射弹数目的输入,if语句的判断条件为:(keycode>=0x30)&&(keycode<=0x39),射弹数目的按键输入显示流程图如图7所示;
(2)12864液晶模块的显示
根据系统设计要求,对12864液晶芯片上电初始化,系统读取E2PROM中存储的弹种射弹数目和初速减退量,并在液晶屏上进行显示,液晶显示的内容包括两部分,汉字显示内容和数字显示内容,对于固定汉字内容的显示采用编码方式,编写table编码表,利用while循环语句,12864液晶对表中的内容进行读取并显示,直到编码表table中的字符为空字符时停止,此时结束循环,对数字部分的显示,以射弹数目的显示为例,同样定义一个内容为0~9的编码,当输入数据送来时,求取该数据的“个、十、百”三位,求得的三位与编码中数字的顺序一致,可以完成对三位射弹数目的显示功能,对初速减退量大小的显示与该方法类似;
如表4-2为12864的汉字显示坐标,系统中固定的汉字显示部分占有6个地址,故设置数字显示地址从每行的“86H、96H、8EH、9EH”开始,并在结尾添加字符串结束符‘\0’结束输入,以保证输入的准确性,这种液晶显示模块的设计相比根据12864的中文显示表逐个显示要方便很多,并且易于实现,且可靠性较高,不易出错;
表4-2汉字显示坐标
Figure BDA0002683172500000131
(3)I2C总线对EEPROM的读写
I2C总线是两线式串行总线,是一种用于板内通信的通信手段,它的主要特点是接口方式简单,两条线可以挂多个参与通信的器件,在硬件上,I2C总线是由时钟总线SCL和数据总线SDA两条线构成的,属于同步通信,SCL时钟线负责收发双方的时钟节拍,SDA数据线负责传输数据。I2C的发送方和接收方都以SCL这个时钟节拍为基准进行数据的发送和接收;
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平才允许变化,即当SCL为高电平时,要求数据保持稳定,当SCL为低电平时,允许数据变化;
①E2PROM写数据流程
A、首先是I2C的起始信号,接着跟上首字节,也就是I2C的器件地址,并且在读写方向上选择“写”操作;
B、发送数据的存储地址,AT24C02一共有256个字节的存储空间,存储地址从0x00~oxFF,任意一个地址均可存储数据;
C、发送要存储的数据的第一个字节、第二个字节……,注意在写数据的过程中,E2PROM的每个字节都会回应一个“应答位0”,来表示写入E2PROM数据成功,如果没有回应答位,说明写入不成功;
在写数据的过程中,每成功写入一个字节,E2PROM存储空间的地址就会自动加1,当加到0xFF后,再写一个字节,地址会溢出又变成0x00;
②E2PROM读数据流程
A、首先是I2C的起始信号,接着跟上首字节,也就是I2C的器件地址,并且在读写方向上选择“写”操作,此刻选择“写”操作的目的是为了把所要读的数据的存储地址写进去,告诉E2PROM要读取哪个地址的数据;
B、发送要读取的数据的地址;
C、重新发送I2C起始信号和器件地址,并且在方向位选择“读”操作;
D、读取从器件发回的数据,读一个字节,如果还需要继续读下一个字节,就发送一个“应答位ACK(0)”,如果读取完毕,则发送一个“非应答位NAK(1)”;
AT24C02的芯片地址如表4-3所示,MSB表示数据最高位,LSB表示最低位1010为固定部分,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入,1为读出;
表4-3AT24C02器件地址
Figure BDA0002683172500000151
通过对I2C总线信号时序进行分析,编写I2C的起始信号、应答信号、非应答信号、终止信号、发字节到I2C总线以及读字节到I2C总线程序,同时,分析I2C总线与器件AT24C02的读/写时序,并编写相应的字节写入程序和字节读取程序,实现从E2PROM中读/写单字节的功能,但由于24C02是每个存储地址只对应8个bit的存储空间,表示范围为0~255,而根据实际的射击经验,弹种射弹数目往往大于255,一个存储单元对射弹数目的存储达不到系统的设计要求,因此,采用两个存储单元来存储一个数据,分别存储高低两位,来达到对0~65536数据的存储功能,具体流程如图8所示;
(4)与上位机的通信
与上位机的通信,主要是为完成对身管烧蚀磨损量的传输和再处理功能,UART串行通信时单片机最常用的一种通信技术,通常用于单片机和计算机之间以及单片机和单片机之间的通信;
STC89C52有两个引脚是专门用来做UART串口通信的,分别是P3.0口和P3.1口,它们又被叫作RXD和TXD,由它们组成的通信接口就叫作串行接口,简称串口,如图9所示为单片机之间的UART通信示意图,体现了两个单片机之间相互收发消息的过程;
图9中,TXD是串行发送引脚,RXD是串行接收引脚。当单片机1给单片机2发送数据时,先用二进制形式表示该数据,在UART通信过程中,遵循低位先发、高位后发的原则,就让TXD首先拉低电平,持续一段时间后,发送一位,然后继续拉低,再持续一段时间,继续发送下一位,然后又拉高电平,持续一段时间,发送下一位……一直到把8位二进制数据全部发送完,这里持续“一段时间”就是通信中重要的概念——波特率,也叫比特率,波特率就是发送二进制数据位的速率,习惯上用baud表示,即发送一位二进制数据的持续时间=1/baud,通信双方的波特率必须保持一致;
在UART通信中,一个字节是8位,规定当没有通信信号发生时,通信线路保持高电平,当要发送数据之前,发送方先发一位0表示起始位,然后发送8位数据位,数据位是先低后高的顺序,数据位发完后再发一位1表示停止位,接收方一直保持高电平,当检测到一位低电平,就准备开始接收数据,接收到8位数据位后,检测停止位,再准备下一个数据的接收,如图10为串口数据发送示意图,它是一个时域示意图,即信号随着时间变化的对应关系;
根据以上分析,编写串口数据通信程序时,在main主函数中,首先打开总中断,进行串口初始化设置,主要设置产生波特率的定时器、串行口控制和中断控制,设置TMOD寄存器值为0x20,确定定时器T1的工作方式为2,晶振频率为11.0592MHZ,波特率为9600bit/s,SMOD为0,装入TH1、TL1的初值均为0xFD,设串行口工作方式为1,同时开总中断和串行口中断,完成了对串行口的初始化,在数据传输后,关掉串行口中断,保证中断函数不在接收下一帧数据,将编译好的程序代码下载到单片机当中,完成数据通信功能。
本发明根据火炮初速减退量计算的相关算法模型,设计辅助修正装置的相关硬件电路,将BP神经网络预测模型和磨损火炮内弹道模型应用到硬件系统中,并设计了相关外围电路,实现了对初速减退量的自动计算、LCD显示以及与上位机的数据通信功能,并及时指示给坦克炮手初速减退量大小,辅助炮手完成初速减退量的修正,提高装定精度和速度。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (8)

1.初速减退量辅助修正装置设计方法,其特征在于,包括以下步骤:
S1:系统总体设计,在深入分析坦克炮射击过程及火控系统工作原理的基础上,采用火控计算机中的选弹信号和射击电路中的击发信号完成对弹种数目的分类和计数功能之后,检测有无击发信号产生,根据网络模型计算输出当前时刻的身管烧蚀磨损量,进而利用内弹道计算模型推算初速减退量;
S2:系统硬件设计,包括以下步骤:
S2-1:总体硬件设计,根据初速减退量辅助修正装置的工作原理和性能的相关要求,详细设计系统中的各个功能模块;
S2-2:子模块硬件设计,主要包括显示模块、声光报警电路、键盘输入电路、上位机通讯电路及存储模块;
S3:系统算法模块软件设计,包括以下步骤:
S3-1:单片机主程序设计;
S3-2:BP网络神经模型计算;
S3-3:BP网络神经模型重构;
S3-4:内弹道模型代码移植,将代码移植到设计的硬件底层驱动;
S4:子模块软件设计。
2.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S1中,根据已构建的BP神经网络预测模型原理,以不同弹种的射弹数目作为网络的输入层,首先完成对不同弹种射弹数目的区分计数,然后将弹种射弹数目送入到单片机中已构建好的神经网络模型中,计算出当前时刻的身管烧蚀磨损量,其次根据内弹道计算模型,对当前时刻该弹种的初速减退量大小进行计算。
3.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S1中,首先要完成火炮不同弹种射弹数目的区分计数功能,在深入分析坦克炮射击过程及火控系统工作原理的基础上,采用火控计算机中的选弹信号和射击电路中的击发信号完成对弹种数目的分类和计数功能,即以弹种选择信号作为第一个信号,用以区分射弹弹种,之后,检测有无击发信号产生,有击发信号,则该弹种计数器的值加1,并将坦克炮当前时刻“穿、破、榴”三个弹种的射弹数目输入到BP神经网络模型中,根据网络模型计算输出当前时刻的身管烧蚀磨损量,进而利用内弹道计算模型推算初速减退量。
4.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S3中,系统软件设计主要由主控程序,键盘扫描程序、12864液晶显示程序、I2C总线对24C02的存储和读写程序、声光报警程序以及上位机通讯6大模块组成,其中包括4个初始化子程序,10个功能子程序组成。
5.根据权利要求4所述的初速减退量辅助修正装置设计方法,其特征在于:4个初始化子程序分别是:单片机I/O端口初始化子程序、单片机定时器初始化子程序、单片机串口初始化子程序和显示模块初始化子程序;10个功能子程序分别是:BP神经网络计算子程序、初速减退量计算子程序、报警子程序、键盘扫描子程序、延时子程序、12864液晶显示子程序、中断服务子程序、I2C总线操作子程序、E2PROM读写子程序和上位机通讯子程序;采用C语言编程,在Keil编译器中编译生成hex文件,通过串口将程序固化到单片机的E2PROM中,完成了对初速减退量辅助修正装置的总体软件设计。
6.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S3中,BP神经网络中一般包括五个主要因素分别为输入值、权值、阈值、传递函数以及输出,两个运算过程,分别为BP算法的前向计算和误差的反向推导;而在五个主要因素和两个运算过程中,传递函数的作用尤为重要,在算法中如果不加入传递函数,只是简单的对输入进行加权求和,那么得到的模型仅是一个线性模型,而线性模型的表示能力非常有限,因此采用加入传递函数的方法给模型引入非线性因素,以提高模型的表示能力,所以一般情况下采用非线性函数作为传递函数,BP神经网络模型采用的传递函数为Tan-Sigmoid函数。
7.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S3中,根据在PC机上对BP神经网络模型进行离线训练得到的模型参数和BP神经网络前向计算公式,编写C语言程序,将BP神经网络模型应用到单片机当中,完成对身管烧蚀磨损量的计算功能,实现单片机技术和BP神经网络技术的紧密结合;采用Keil编制BP神经网络计算程序,将网络参数存储在单片机上,根据当前时刻各弹种射弹数目的输入值,送入BP神经网络计算子程序中,即可得到火炮身管的烧蚀磨损量。
8.根据权利要求1所述的初速减退量辅助修正装置设计方法,其特征在于:在S4中,对单片机其他模块的软件设计主要包括:按键电路的扫描检测、12864液晶模块的显示、I2C总线对EEPROM的读写以及上位机通讯。
CN202010968368.2A 2020-09-15 2020-09-15 初速减退量辅助修正装置设计方法 Pending CN112099406A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010968368.2A CN112099406A (zh) 2020-09-15 2020-09-15 初速减退量辅助修正装置设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010968368.2A CN112099406A (zh) 2020-09-15 2020-09-15 初速减退量辅助修正装置设计方法

Publications (1)

Publication Number Publication Date
CN112099406A true CN112099406A (zh) 2020-12-18

Family

ID=73759163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010968368.2A Pending CN112099406A (zh) 2020-09-15 2020-09-15 初速减退量辅助修正装置设计方法

Country Status (1)

Country Link
CN (1) CN112099406A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691577A (zh) * 2022-03-11 2022-07-01 中国人民解放军陆军装甲兵学院 一种装备维修训练装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5782256A (en) * 1980-11-05 1982-05-22 Fujitsu Ltd Head alignment system
CN101090844A (zh) * 2004-12-28 2007-12-19 丰田自动车株式会社 动力输出装置、搭载该动力输出装置的汽车、动力输出装置的控制装置、动力输出装置的控制方法
CN105021089A (zh) * 2014-04-30 2015-11-04 王力丰 高初速弹丸发射装置及发射方法
CN110081770A (zh) * 2019-04-30 2019-08-02 赖振龙 一种基于螺旋叶片的密闭回流式枪炮身管冷却系统
CN111475952A (zh) * 2020-04-09 2020-07-31 西北机电工程研究所 基于神经网络模型的火炮射角和方位角的修正方法
CN111625930A (zh) * 2020-04-28 2020-09-04 南京邮电大学 一种桌面式自行火炮模拟训练系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5782256A (en) * 1980-11-05 1982-05-22 Fujitsu Ltd Head alignment system
CN101090844A (zh) * 2004-12-28 2007-12-19 丰田自动车株式会社 动力输出装置、搭载该动力输出装置的汽车、动力输出装置的控制装置、动力输出装置的控制方法
CN105021089A (zh) * 2014-04-30 2015-11-04 王力丰 高初速弹丸发射装置及发射方法
CN110081770A (zh) * 2019-04-30 2019-08-02 赖振龙 一种基于螺旋叶片的密闭回流式枪炮身管冷却系统
CN111475952A (zh) * 2020-04-09 2020-07-31 西北机电工程研究所 基于神经网络模型的火炮射角和方位角的修正方法
CN111625930A (zh) * 2020-04-28 2020-09-04 南京邮电大学 一种桌面式自行火炮模拟训练系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梁承栋 等: "炮口初速预测方法综述", 《兵工自动化》 *
王国辉 等: "基于BP神经网络的身管磨损量监测系统设计", 《兵器装备工程学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691577A (zh) * 2022-03-11 2022-07-01 中国人民解放军陆军装甲兵学院 一种装备维修训练装置
CN114691577B (zh) * 2022-03-11 2024-03-29 中国人民解放军陆军装甲兵学院 一种装备维修训练装置

Similar Documents

Publication Publication Date Title
US11071914B2 (en) Methods, systems, and devices of providing portions of recorded game content in response to a trigger
CN105597315A (zh) 虚拟对象投掷控制方法及装置
CN103913095B (zh) 枪械记录跟踪方法与装置
CN112099406A (zh) 初速减退量辅助修正装置设计方法
US20190170482A1 (en) Smart safety contraption and methods related thereto for use with a firearm
US10956048B2 (en) Computing device and method for inferring a predicted number of physical blocks erased from a flash memory
CN107152887A (zh) 一种基于虚拟现实技术的模拟火箭筒操作训练方法和系统
CN209295789U (zh) 一种激光模拟射击自动报靶系统
CN105180960B (zh) 一种信息获取方法及装置
CN112274931B (zh) 射击轨迹处理方法、装置和电子设备
US11859928B2 (en) Systems and methods for firearm safety
CN110658534B (zh) 基于arm的人工降雨炮弹发射位置计算仪及其使用方法
CN108303886B (zh) 基于飞机生存力的飞行员实时决策预测方法
US10788285B2 (en) Dry-fire magazine
CN106550086A (zh) 终端和推送信息的提示方法
CN205784889U (zh) 一种基于红外触控的智能打靶装置
KR101649093B1 (ko) 마일즈시스템에 사용되는 레이저빔 신호코드 검증 및 검출변환기
CN218973318U (zh) 一种vr辅助仿真射击武器系统
CN203785537U (zh) 枪械记录跟踪装置
CN205281684U (zh) 一种智能竞赛抢答装置
CN204240991U (zh) 一种基于cmos摄像头的射击靶检测装置
CN114532922B (zh) 一种强光下的清洁机器人探地检测方法和装置
CN110174924A (zh) 一种基于可穿戴设备的交友方法及可穿戴设备
KR102295399B1 (ko) 탁구 트레이닝 장치
CN117516285A (zh) 反坦克火箭模拟终端、控制方法及控制系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201218