导引头伺服控制软件可靠性设计与验证
2022-06-16吴建刚刘璐雅刘胜魁吴森林
吴建刚, 刘 毅, 刘璐雅, 刘胜魁, 吴森林
(四川航天燎原科技有限公司, 四川 成都 610100)
0 引言
随着精确制导技术不断发展, 导引头技术越来越受到重视[1]。雷达导引头伺服系统是导弹导引头的重要组成部分,它对于发现目标、跟踪目标以及精确测量目标位置都起着重要作用, 它的精度直接影响到反舰导弹的制导精度[2-3]。为了应对越来越苛刻的复杂战场环境,雷达伺服系统采用的软件控制算法、处理流程复杂度越来越高,因此其可靠性、安全性对于整个系统来说极为重要[4]。 嵌入式系统可靠性的研究始于20 世纪70 年代,嵌入式软件的可靠性测试是在20 世纪90 年代以后逐渐得到重视[5]。在后续人们不断深入研究的进程中,失效强度、可靠度等一些成熟应用在硬件可靠性研究中的概念被引入到软件可靠性领域中[6]。 软件可靠性(software reliability)用来衡量一个软件系统按照用户的要求和设计的目标执行其功能的正确程度,是软件系统质量固有特性之一。软件可靠性设计的目的是减少软件中的缺陷, 并使软件产品出现故障时,系统仍不会失效,常用的方法有避错/防错设计、查错设计和容错设计[7]。 在实际中,即使经过软件可靠性分析设计,也没有软件能够保证百分之百的正确、完整、一致,这就需要对其进行一系列可靠性评估和测试。 评价或测试一个软件的可靠性, 最主要的是要确定系统怎样输入、如何使用一整套的方法和策略,即软件可靠性测试是指为了达到或验证用户对软件的可靠性要求而对软件进行的测试[8]。 当前软件可靠性测试方法主要有两种,一种是基于应用场景模型的统计测试方法, 其通过定义系统所有的典型应用场景及其发生的概率, 然后由该模型生成测试用例; 另一种是基于操作剖面的可靠性测试方法, 其建立由操作集合和所对应的概率组成操作剖面[9]。文献[10]讨论了软件开发过程在可靠性方面的考虑,还有在需求、设计、编码阶段使用的相关设计方法和技术,文献[11]为了提高嵌入式应用软件可靠性,提出基于模糊度检测的嵌入式应用软件可靠性自动测试方法, 构建软件可靠性测试的约束参量指标分布模型, 并通过仿真验证了其方法自动性较好,可靠性较高。 以上文献均是从纯软件方面研究了通用软件可靠性设计,研究通用验证方法,尚未发现有文献从应用层面研究伺服系统的软件可靠性设计,研究其验证方法。 本文针对雷达导引头伺服控制系统的特点, 从系统应用层面对具体工程型号中使用的软件可靠性设计方法及可靠性测试案例进行了阐述分析。
1 伺服控制系统的特点
雷达导引头伺服控制系统是一个典型的强弱电数模混合机电一体化产品,由伺服控制、伺服机构和伺服采集驱动三部分组成,组成框图见图1。 伺服机构采用双轴正交的框架式结构,两维结构相似,均由负载、执行电机、电机驱动器和测量元件等组成。
图1 伺服系统组成框图
伺服控制系统与导引头中纯电路分机显著的区别在于它有电机执行机构,如果设计不当,会造成电机、驱动器烧毁以及执行机构和负载产品的损坏, 甚至造成安全事故,所以,导引头对伺服控制软件的可靠性非常重视。伺服控制系统软件的可靠性设计仅从软件自身考虑是不够的,需要从系统层面统筹考虑,不但要考虑导引产品各类使用和试验工况,而且要考虑调试阶段、系统功能没有完备以及可能会发生的排故工况。 本文主要结合工程应用,针对导引头系统调试阶段和排故工况,介绍了伺服控制系统保护模块软件可靠性设计案例以及模拟上位机验证案例。
2 系统保护模块软件可靠性设计
2.1 跟踪边界保护设计
为了提高信号传输的实时性,在导引头跟踪模式下,角误差作为伺服系统的重要输入信息, 通常通过外部中断触发,实时更新发送。当导引头各分机初次系统联调或完整的工作流程还没调通时, 信号处理软件在线调试跟踪功能时, 偶尔会在软件跟踪回路某位置打断点采数分析。此时信号处理由于断点不再连续运行,指令和数据均会保持断点前一刻的状态, 中断指令和角误差信号均无法更新,使伺服系统处于一个开环运动状态,产生负载与机构止档碰撞现象, 持续碰撞不仅会使电机和驱动器非正常发热烧毁,碰撞频过多还会对负载产生冲击损坏。
针对该情况, 在伺服控制软件中增加跟踪边界保护设计,软件流程图见图2,具体措施为:针对伺服系统位置和速度双闭环(外环为位置环, 内环为速度环)的控制特点,在速度内环中设置角误差外部中断信号标志变量(XINT1_cout)来判断是否收到信号处理机发送的角误差外部中断信号。 若检测不到外部中断,则该标志变量以速度内环计算周期为时基进行累加, 累加到一定时间(cout_max)如50ms (该时间需根据导引头信号处理跟踪角误差计算周期值确定) 还是未出现外部中断, 则将内环速度给定值(Track_Speed_Azimuth)清零,使伺服机构处于纯稳定状态,稳定在当前位置,避免响应未更新的无效角误差而产生运动到边界碰撞的现象,进而起到保护产品的作用。若检测到外部中断信号,则对该变量(XINT1_cout)累加值清零,不影响导引头正常的跟踪流程。 经工程验证,该措施可有效解决调试过程中跟踪到边界碰撞问题。
图2 跟踪边界保护软件流程
2.2 电机过流保护设计
当伺服机构由于软件设计存在缺陷等非正常原因处于失控或低温下由于线缆霜冻变硬导致负载卡滞等异常状态时,伺服电机会产生堵转过流的现象,长时间过流工作导致电机存在烧毁的风险。 针对这些可能存在的非产品状态运行故障, 伺服软件中增加了电机过流保护模块的设计, 该模块的设计是对电机驱动硬件保护的一个补充,具体软件流程图见图3。 在速度内环中增加占空比上限的检测变量 (Current_cout), 若电机以占空比上限值(PWMmax)(对应短时间可工作的最大电流) 连续运行,检测变量(Current_cout)会不断以速度内环计算周期为时基累加, 超过设定时间(Tmax), 且占空比未发生减小, 则将电机占空比降低为较小的安全值(PWMsafe),同时上报电机过流状态。 占空比上限值(PWMmax)一般取90%或根据产品工作实际调整,设定时间(Tmax)与占空比上限值相关, 在90%占空比下,设定时间(Tmax)一般设计为10s 时间, 如果占空比上限值(PWMmax)小于90%,可根据产品工作状态适当增加。如果发现上位机显示过流状态, 可自动下发电机刹车指令使电机处于制动状态,有效防止了特殊工况下的电机故障。 经工程验证,该措施可有效解决产品非正常工况下的电机及驱动器烧毁问题。
图3 电机过流保护软件流程
3 其它软件可靠性
除了上述两个软件可靠性设计案例,伺服控制软件还采用了其他的可靠性设计,如冗余设计、对错误输入的处理等。
3.1 软冗余设计
冗余设计主要是针对伺服系统关键数据的采集,采用多个通信口采集同一数据或同一个通信口多次采集同一数据,最后通过比较判断进行有效数据的裁决[12]。 某型号伺服服软件中对于软件的可靠性而言, 仅靠设计是不够的,必须通过测试验证,提早发现错误和设计缺陷进而补充完善。伺服某型号服软件中,采用同一通信口对上位机下发的同一角度数据多次进行采集, 然后再通过数值判断三取二确定最终的数据值, 这样便有效的防止了因外部干扰等原因造成的错误数据,详细的程序代码为:
3.2 错误输入的处理
对软件运行过程中因人为因素或环境因素产生的错误输入,需在程序中进行相应的处理,以防止错误的输入数据给整个伺服系统带来故障风险。 常用的有对输入的数据进行限幅、极限值判断;对串口输入数据进行帧头判断及数据包校验;对上位机下发指令进行具体数据判断,严格管控流程运行条件。
4 模拟上位机验证
对于软件的可靠性而言,仅靠设计是不够的,必须通过验证,发现错误和设计缺陷进而优化完善。为了提高伺服控制软件的可靠性, 设计开发了一套模拟上位机验证软件,见图4 所示。该软件可在仅有伺服控制软硬件的情况下,模拟导引头信号处理机发送指令,同时可模拟伺服执行机构反馈运动信息, 实现桌面级的伺服控制软件的设计验证。模拟上位机界面左半边下方为输入界面,右侧为反馈数据和标志显示界面, 可模拟验证伺服控制系统“自检”“装订”“搜索”“捕获”和“跟踪”的各个流程。具体验证过程以“装订”流程为例进行说明,流程如图5。 首先,点击“模拟信号”指令和“模拟机构”指令,这两个指令选中后表示系统进入纯软件模拟验证流程,其次,输入“目标方位角数据(如20°)”和“目标俯仰角数据(如-20°)”并点击“装订”指令,如果在规定的时间内,右侧界面显示“天线方位角位置(如20°)”和“天线俯仰角位置(如-20°)”,同时“装订到位”变绿,则表标该流程复合软件设计预期,否则,表明软件设计存在缺陷,需要进行修改完善。
图4 伺服控制系统模拟上位机界面
图5 装订流程软件流程
5 结束语
本文介绍了雷达伺服控制系统的特点,阐述了从系统层面统筹考虑伺服控制系统软件可靠性设计的必要性。结合工程实际案例具体分析了导引头伺服系统跟踪边界保护和过流保护两个软件可靠性设计案例以及模拟上位机验证情况,案例均经过多个工程型号的验证,成熟度高,具有一定的工程应用参考价值。