从模型到自动代码生成的弹载飞行控制器设计
2015-03-04徐铁军黄超凡徐天蒙王改堂叶锦函
徐铁军,黄超凡,徐天蒙,王改堂,叶锦函
(中国兵器工业第203研究所,西安 710065)
从模型到自动代码生成的弹载飞行控制器设计
徐铁军,黄超凡,徐天蒙,王改堂,叶锦函
(中国兵器工业第203研究所,西安 710065)
为了克服传统弹载飞行控制器软件开发模式中存在的问题,以及对代码生成技术进行验证和确认,将代码生成技术用于弹载飞行控制器软件实现。以某型反坦克导弹飞行控制模型为实例,利用Embedded Coder工具,按照开发流程进行了自动代码生成。对生成的代码执行结果和仿真计算结果进行对比,结果验证了从模型生成的代码与模型仿真计算结果的一致性。
自动代码生成;基于模型的设计;弹载飞行控制器
0 引言
目前,高性能、高可靠性的弹载飞行控制器硬件平台通常以16位或32位嵌入式处理器或数字信号处理器(DSP)为核心、辅以A/D转换和D/A转换电路、通讯电路或现场总线等外围电路组成。随着各种类型的高性能、低成本嵌入式处理器芯片及其外围芯片的不断涌现,弹载飞行控制器的硬件平台朝着通用化、模块化方向发展,成本持续降低,性能不断提升,硬件平台已不再成为约束弹载飞行控制器发展的因素,而制约飞行控制器发展的主要因素已转移至飞行控制器的软件实现、测试和维护上。
随着弹载飞行控制器设计的理念和开发工具的持续发展和不断创新,传统的控制系统开发模式遭受多方面的挑战而进行变革。
1 从模型到自动代码生成技术
Simulink模型是当前控制业界进行控制算法开发、仿真的通用图形化语言,是控制算法开发人员与系统仿真的主要工具。
传统的飞行控制器软件的设计流程如图1所示,分4步进行:
1)控制算法需求分析和确认;
2)在Simulink环境下建立控制算法模型,进行仿真和快速原型设计;
3)根据飞行控制器硬件平台完成软件编程;
4)飞行控制器在线仿真验证和确认。
以上流程为迭代过程,若发现不符合期望,则返回前步骤进行修正。
这种传统开发模式中,控制算法设计人员与软件实现人员之间的媒介通常是描述数学模型的文档,这种模式有以下问题:
1)无论是算法设计人员对数学模型的描述,还是软件实现人员对数学模型的理解都难免存在偏差或者误解。
2)控制算法的参数经常需要调整优化,对应软件
也因此需要反复修订,由于软件实现的依据是数学模型的描述文档,文本语言本质具有的模糊性以及文档的反复修订很容易带来软件与数学模型的不一致、软件版本控制的失误。甚至当数学模型一旦结构上改动较大的情况下,软件编程工作就可能半途而废,重新开始。
图1 控制系统开发流程
除了以上问题,面对同行业日趋激烈的竞争态势,不断缩短飞行控制器的开发周期、削减投入成本、快速投放应用等是弹载飞行控制器开发部门迫切需求,也是其科研实力的突出体现。为使软件设计人员从繁杂、重复的编程实现工作中解放出来,将重点转移至软件的测试、维护、优化等软件工作中,将更多的精力放在飞行器控制器的可靠性、创新设计等迫切需求上去,因此,采用模型到代码生成技术尤为必要。
从模型到代码自动生成技术,如图2所示,就是从模型直接自动生成软件代码,部分代替或完全代替手工编码,从而减少甚至免除手工编码过程中繁琐、易出错的环节,即算法设计人员将控制算法转换为描述数学模型的文档,再由软件设计人员将文档转化为编程的过程。从模型到代码生成技术本质上是基于模型的设计方法不可或缺的链接环节,它能够实现控制算法与软件编程的无缝紧密结合,具有以下优点:
1)极大缩短软件编程的周期,较之手工编码其错误率极低;
2)生成完全忠于模型的程序代码;
3)符合统一的程序代码安全标准;
4)模型和代码、代码文档维护自动同步更新。
近年来,国内大专院校和研究机构设计人员将自动代码生成技术成功应用在数字化接收机[1]、电池管理系统[2]、电机控制[3]、飞控系统快速原型设计[4-5]、电力电子控制[6]等嵌入式控制系统[7-9]软件实现方面。
图2 从模型到自动生成代码技术
2 从模型到自动代码生成技术开发流程
文中采用和Simulink同属于MATLAB环境的Embedded Coder产品,作为代码产生工具,它具有以下优点:
1)生成的代码忠于模型,与模型可一一互相对照,代码紧凑、注释完备、维护方便、可读性好;
2)符合DO-178C安全标准认证以及IEC61508、ISO26262等标准;
3)生成的CC++代码符合国际标准,支持多种目前主流的目标处理器,可与通用或多种嵌入式软件集成开发环境无缝链接;
4)配置专门工具和方法,使模型与外部代码便利、快速结合;
5)Simulink环境本身支持多种对生成代码的验证和确认方式。
从模型到自动代码生成技术的开发流程步骤如下:
1)在MATLABSimulink建模环境下,对飞行控制器及其各子系统如控制算法、程序调度和设备驱动模型进行集成、排错;
2)根据需要对模型进行代码生成配置、优化;
3)自动代码生成和代码集成;
4)将生成的代码纳入外部编译环境进行验证和比较;
5)比较验证完成没有问题后,将代码及所需支持文件、库等转入目标嵌入式系统的集成开发环境进行集成和调试。
3 基于自动代码生成技术的弹载飞行器控制器软件实现
文中以控制算法构件代码生成为例,按以下步骤进行:
1)首先进行模型检验和模型等效化
图3所示为某型反坦克导弹控制系统闭环Simulink模型,以及控制器模型及其子系统模型。由闭环模型仿真可获得控制器模型的输入输出仿真结果。对模型进行检验、查错并修改,对不合适的模块进行等效代替,使模型适于代码生成。
图3 某型反坦克导弹控制系统模型及控制器模型
2)自动代码生成
编译模型,生成控制算法的标准C语言代码。模型一经确定,代码一次成功生成。
3)对生成的代码比较验证
将生成的此C代码和支持文件转入CC++集成开发环境中,对生成代码输入数据,计算输出结果。图4和图5所示为2路独立的控制指令的生成代码输出结果和仿真输出结果对比,从图中和计算结果可以看出,两者完全保持一致。
图4 指令1的模型仿真输出结果和生成代码输出结果
图5 指令2的模型仿真输出结果和生成代码输出结果
由以上对比可以获知,对于控制算法模型,采用从模型到代码自动生成技术可以获得高效、紧凑的代码,代码计算结果与模型仿真结果完全一致。
4 结论
除了弹载飞行控制器的产品代码外,从模型到代码自动生成技术还可以完成以下工作:
1)用于完成模型复算、验证,只需要改变生成代码的目标设置,生成的代码就可以用桌面计算机编译器系统编译成可执行程序,用于模型复算和验证。
2)生成飞行控制器硬件测试软件,需要建立硬件测试模型,自动生成代码,大大加快弹载飞行控制器测试软件实现工作。
使用从模型到代码自动生成技术,能够极大地加快弹载飞行控制器软件实现工作,生成的代码完全忠于算法模型、代码结构紧凑、效率高、可读性好、便于维护,符合国际安全标准认证。
自动代码生成技术不但可以用作控制算法加速仿真、硬件在线实时仿真等方面,还可以应用在其它弹载嵌入式系统软件实现中,完成不同任务,例如信号处理、机器视觉、图像处理等方面,以期大大缩短开发周期,提高产品可靠性,增强弹载飞行控制器研制部门的技术研发实力。
[1] 张海, 陈伟. DSP自动代码生成在数字化接收机中的应用 [J]. 测控技术, 2004, 23(Z1): 156-158.
[2] 陈金干, 魏学哲. 基于DSP的自动代码生成及其在电池管理系统中的应用 [J]. 电子技术应用, 2008(6): 43-46.
[3] 艾胜, 孙驰. 基于Matlab的NPC单相五电平H桥SPWM目标代码生成 [J]. 船电技术, 2009, 29(4): 13-17.
[4] 李强, 王民钢, 杨尧. 飞行控制系统快速原型设计与实现 [J]. 计算机测量与控制, 2009, 17(7): 1305-1307.
[5] 方正, 张淇淳, 齐玉成. 基于DSP的快速控制原型系统 [J]. 东北大学学报, 2009, 30(8): 1069-1073.
[6] 郭元彭, 卢子广, 杨达亮. 基于DSP代码自动生成的实时控制平台 [J]. 电力电子技术, 2010, 44(10): 65-67.
[7] 杜磊, 薛重德, 任志国. 基于DSP的自动代码生成及应用 [J]. 微处理机, 2010(2): 93-96.
[8] 范哲意, 周治国, 刘志文, 等. 基于TMS320DM642和模型化设计的图像跟踪实验系统 [J]. 实验技术与管理, 2013, 30(3): 74-77.
[9] 孔炜, 吴树高. 自动编码技术在嵌入式系统开发中的应用 [J]. 工业控制计算, 2013, 26(3): 6-7.
Design of Missile-borne Flight Controller by Means of Automatic Code Generation from Model
XU Tiejun,HUANG Chaofan,XU Tianmeng,WANG Gaitang,YE Jinhan
(No.203 Research Institute of China Ordnance Industries, Xi’an 710065, China)
In order to overcome problems existing in traditional flight controller program development mode, verify and validate technology of automatic code generation, it was applied in implementation of the flight controller program. As an example of a type of anti-tank missile flight controller model, following the development workflow, the code was generated using the Embedded Coder tools. The computing results produced by executing the code and that of the simulation of model were compared and verified, it showed remarkable agreement between the generated code and the model.
automatic code generation; model-based design; missile-borne flight controller
2014-12-10
徐铁军(1976-),男,陕西西安人,高级工程师,博士研究生,研究方向:工程电磁场计算,电路线路设计与仿真、弹载电子系统建模研究。
TJ765.2
A