飞行控制计算机软件设计论文

2022-04-29

摘要 本文提出了一种基于CAN总线的飞行模拟器座舱系统的设计方案,分析了某型飞机飞行模拟器座舱系统的功能和总体结构,将模拟器座舱内的信号根据种类和分布位置,分成多个总线节点,并给出了节点的硬件和软件设计方法。实践证明,基于CAN总线的飞行模拟器座舱系统具有可靠性高、实用性强、扩展灵活、开发周期短及性价比高等特点。下面是小编为大家整理的《飞行控制计算机软件设计论文(精选3篇)》的相关内容,希望能给你带来帮助!

飞行控制计算机软件设计论文 篇1:

基于AMESim/Matlab的飞行模拟器仿真设计

基于AMSim和Matlab联合仿真技术是近年发展的一项新技术,它充分利用AMESim和Matlab的接口技术将2个优秀的专业仿真软件结合起来,解决了系统建模难题,为了验证该联合仿真技术在飞行模拟器上的仿真效果,本文对飞行模拟器运动平台进行AMESim/Matlab联合仿真建模,获得了良好的效果。

1引言

飞行模拟器是当今世界仿真技术的重要研究领域,广泛应用于民用和军用航空领域。但模拟器由于其组成结构复杂、交联机构多,特别是运动平台参数不好设置,导致研制周期长、投入大、经济效益低,目前广泛使用的一些仿真软件,如AMESim,Matlab,ADAMS等,由于自身软件设计的局限性,造成依靠单一的仿真技术难以达到预期的目标。

为了提高飞行模拟器运动平台的建模精确度,改善控制系效果,采用AMESim和Matlab二种软件,进行了联合仿真。仿真结果表明,利用AMESim和Matlab的各自优势的联合仿真具有良好的仿真效果,节约了研发成本,为模拟器进一步研发打下良好基础。

2飞行模拟器运动平台工作原理

飞行模拟器运动平台由控制计算机、接口系统、液压汞站和伺服系统组成,控制计算机实时接收飞行方程解算出的与控制运动装置有关的各种信息,经D/A变换、前置滤波和伺服放大后成为伺服阀的输入信号,进而驱动液压缸平滑、稳定的伸缩,实时产生期望的过载、姿态及振动等运动信息;同时液压缸的伸长量经位移传感器传送给接口系统,通过A/D变换后输入给控制计算机,作为检测和控制信息。

3飞行模拟器运动平台联合仿真

3.1 AMESim环境下建模

AMESim软件采用面向系统原理图建模方法,便于工程技术人员掌握,其自带的智能求解器能保证运算精度并具有良好的拓展性。

具体建模步骤如下:

(1)在AMESim/Sketch mode模式下根据系统物理构成搭建清晰直观的物理模型;

(2)在AMESim/Submodel模式下为搭建物理模型选择子模型;

(3)在AMESim/Parameter模式下根据实际参数设置AMESim模型参数,具体的模型参数设置如下:

液压缸初始位移0 mm;活塞直径120 mm;杆直径80 mm;质量块500 kg;静摩擦力0.8 N;安全阀压力:28 MPa;汞排量50 ml/r;伺服阀各通路额定流量500 L/min;额定电流30 Ma;伺服阀阻尼比3;额定电流:40 Ma。

2.2 AMESim/Matlab下系统建模

AMESim虽然可以提高系统的建模精度,但在控制算法、数值处理上不是很强大;而Matlab中的Simulink具有强大的数值计算能力,在数值计算及控制领域得到了广泛应用,但建模的精度不高。采用联合仿真技术将2个专业的软件结合起来,取长补短、发挥各自的优势,提高仿真的精度。

具体实现步骤为:

①在AMESim中采用绘图模式建立系统模型,并为Simulink的控制模块构建一个图标;

②在AMESim子模型模式下為系统各个模块选择合适子模型;

③在AMESim中输入各系统参数;

④在运行模式下运行程序,将AMESim模型转化为Simulink中可调用的S函数;

⑤在Simulink中构建控制函数,在S-function模块参数设置函数名称。

4系统仿真分析

在Simulink中输入阶跃信号,设置好仿真周期和采样周期,从图1和图2可以看到飞行模型器运动平台曲线跟踪基本保持不变,图3可以看到跟踪误差较小,说明采用联合仿真技术改善了系统建模的精度,提高了系统的稳定性。

5结束语

利用AMESim/Matlab联合仿真技术,实现了飞行模拟器运动平台的仿真研究,仿真结果表明,采用联合仿真技术建立的模型仿真效果好,系统稳定无超调,拥有较好的稳定性和动态品质,为飞行模拟器的研发和改进、国防和工业现代化建设打下了良好基础。

作者:万舒 吴健楠 许学顺

飞行控制计算机软件设计论文 篇2:

基于CAN总线的飞行模拟器座舱系统设计

摘要 本文提出了一种基于CAN总线的飞行模拟器座舱系统的设计方案,分析了某型飞机飞行模拟器座舱系统的功能和总体结构,将模拟器座舱内的信号根据种类和分布位置,分成多个总线节点,并给出了节点的硬件和软件设计方法。实践证明,基于CAN总线的飞行模拟器座舱系统具有可靠性高、实用性强、扩展灵活、开发周期短及性价比高等特点。

关键词 CAN总线;飞行模拟器;座舱系统;仿真控制

The design of cabin system based on CAN-bus for Flight Simulator

WANG Shu-yunGU Shu-shanTIAN Jie-rongLIN Ya-jun

(Department of Simulating, Navy Flying Academy, Huludao 125001, China)

【Key words】CAN bus; Flight Simulator; Cabin system; Simulation and controlling

0 引言

随着飞行仿真技术的发展,现代飞行模拟训练的独特功能和巨大效益使其成为逐渐实现质量、素质建军的一种重要手段和武器装备研制的重要内容。飞机飞行训练模拟器主要由座舱系统、振动抖动系统、视景系统、仿真解算系统、评分数据库管理系统、音响系统、教员控制台系统和网络通信接口系统组成。座舱系统作为飞行模拟器的重要组成部分,由于它所采集的信号种类繁多、数量庞大,同时控制对象又比较复杂、并且各个对象、信号是并行、独立地工作,因此如果采用传统的集散式数据管理方式,就需要专门的数据采集卡和运动控制接口卡,采用多条并行信号线,布线繁琐,整套系统就会显得臃肿,设备维修、维护也相当困难,严重影响飞行模拟器的可靠性、稳定性和可扩展性等重要指标。本文所讨论的某型飞机飞行训练模拟器座舱系统采用CAN总线控制技术代替传统的集散式控制系统,实践证明:基于CAN总线系统设计具有结构简单、可靠性高、功能强大、扩展性好的突出优点。

1 引言

CAN总线是德国BOSCH公司80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1.25Mbps,波特率低于5Kbps时通信距离可长达10Km。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持[1]。

在目前常用的工业现场总线中,CAN总线是最早具有国际标准的现场总线。同时在所有现场总线中,CAN总线具有实时性好、抗干扰性和可靠性高、机制灵活和易于扩充等优点。另外,由于CAN总线特有的非破坏性的总线竞争仲裁方式,使其具有比其它总线更明显的优势[2]。

2 座舱系统的模拟与设计

本文所讨论的某型飞机飞行模拟器座舱系统采用与飞机实际座舱尺寸1∶1的比例进行仿真,其设计内容主要包括以下几个方面:操纵系统、操纵负荷系统、指示系统和仪表系统。各系统的功能分别集中于一个CAN总线的控制节点上来实现,上位机是一台工业控制计算机,主要负责对各节点的控制和飞行动力学方程的解算,从而形成一个完整的控制网络[3]。系统结构框图如图1所示。

操纵系统

该型飞机操纵系统的操纵设备主要有驾驶杆、脚蹬(方向舵)、油门、刹车、变距、鱼鳞片、升降舵调整片、冷气瓶旋钮、高度预选器旋钮和相关开关、电门等。飞行员通过操纵系统可实现对飞机的操纵控制,操纵系统主要完成对模拟器内部各信号的采集工作,同时转换为计算机可识别的信号,发送到上位机。该型飞机操纵系统的操纵设备主要有驾驶杆、脚蹬(方向舵)、油门、刹车、变距、鱼鳞片、升降舵调整片、冷气瓶旋钮、高度预选器旋钮和相关开关、电门等。飞行员通过操纵系统可实现对飞机的操纵控制,操纵系统主要完成对模拟器内部各信号的采集工作,同时转换为计算机可识别的信号,发送到上位机。

根据所采集信号的类别,操纵设备又可分为模拟量操纵设备和开关量操纵设备。操纵系统设计实现是:驾驶杆俯仰、倾斜、方向舵、油门、刹车、变距选用直滑电位器;冷气瓶旋钮、应急放起落架旋钮、鱼鳞片、升降舵调整片、选用旋转电位器;高度预选器旋钮、地平仪俯仰零位选用微型电位器。飞行员的模拟操纵量(行程或转角),通过机械传动装置转换成电位器电刷行程,在经电位器电刷将电压值送到A/D模块进行模/数转换。开关量设备通过I/O模块对座舱内各各电门位置和按钮状态采样。传感器电源采用稳压电源单独供电,传输线采用屏蔽线。根据所采集信号的类别,操纵设备又可分为模拟量操纵设备和开关量操纵设备。操纵系统设计实现是:驾驶杆俯仰、倾斜、方向舵、油门、刹车、变距选用直滑电位器;冷气瓶旋钮、应急放起落架旋钮、鱼鳞片、升降舵调整片、选用旋转电位器;高度预选器旋钮、地平仪俯仰零位选用微型电位器。飞行员的模拟操纵量(行程或转角),通过机械传动装置转换成电位器电刷行程,在经电位器电刷将电压值送到A/D模块进行模/数转换。开关量设备通过I/O模块对座舱内各各电门位置和按钮状态采样。传感器电源采用稳压电源单独供电,传输线采用屏蔽线。

上位机通过飞行动力学方程及相关的数学模型解算形成各种控制信号,控制其它系统工作,完成飞行模拟仿真过程。

仪表系统

仪表系统为飞行员提供飞机的航向、姿态、速度及发动机工作状态等信息。其核心部件为多个基于CAN总线的步进电机控制器(仪表控制器),通过控制步进电机带动指针转动来模拟飞机实装仪表的指示。

本文所设计的仪表控制器最大工作频率为25KHz,每次可输入最大步长为32000步。为了实现表针上电、复位及掉电时的自动归零,我们外接了接近开关作为位置传感器。本控制器通过接收上位机的指令,实现对仪表指针转动方向、频率和角度的控制。

操纵负载系统

操纵负荷系统为飞行员提供逼真的操纵感觉。本文所研究的操纵负荷系统主要是指杆力模拟系统,为飞行员提供驾驶杆纵向和横向的操纵感觉,其核心部件为一个基于CAN总线的力矩电机控制器,可实现力梯度系数、阻尼系数和杆中立位置三个参数的控制。

指示系统

指示系统是由开关量输出控制模块和座舱仪表板上的一些指示灯、警告信号灯、数码管等设备组成,这部分设备的控制信号经上位机逻辑解算后得出,然后由单片机控制,其中数码管显示采用静态显示,指示灯和警告信号灯控制根据电压及电流特性进行驱动。

3 关键技术

仪表控制器的硬件设计

座舱系统的硬件设计主要是指模拟信号采集模块、开关信号采集模块、开关信号输出模块、力矩电机控制器和仪表控制器等CAN总线节点的硬件设计。本文仅以仪表控制器为例介绍CAN总线节点的硬件设计方法。

仪表控制器的硬件部分主要是指节点微处理器与CAN总线通信控制器之间的接口电路、CAN总线通信控制器与收发器之间的接口电路[4]以及微处理器与步进电机驱动器之间的接口电路设计。仪表控制器与总线连接框图以及仪表控制器结构电路图分别如图2和图3所示。

本文所设计的仪表控制器所采用的通信控制器为SJA1000,主要完成CAN的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等;总线收发器为PCA82C250,实现CAN控制器和通讯线路的物理连接,提高CAN总线的驱动能力和可靠性;微处理器为80C51单片机。SJA1000不直接与总线连接,是因为SJA1000的总线驱动能力有限,中间需经CAN收发器和总线连接。

采用SJA1000作为CAN通信控制器,有以下特点:SJA1000是独立CAN通信控制器,它是PHILIPS公司的PCA82C200CAN控制器的替代产品,SJA1000具有BasicCAN和PeliCAN二种工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0B协议。此外,SJA1000可连接各种微控制器接口,并具有总线访问优先权控制、强有力的错误处理能力、无损结构的逐位仲裁等特性。[5]

仪表控制器软件设计

仪表控制器的软件设计主要包括主程序(系统初始化、任务调度等)、SJA1000初始化子程序、数据发送子程序和数据接收子程序[6]、步进电机控制子程序。主程序流程图如图4所示。

SJA1000的初始化只有在复位模式下才可以进行。主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000回到工作状态进行正常的通信任务。数据接收子程序负责节点报文的接收及处理总线脱离、错误报警、接收溢出等情况,SJA1000报文的接收采取中断控制方式。

操纵负荷系统设计

操纵负荷系统中脚蹬力矩由于在空中随速度、高度等的变化不明显,因而采用弹簧来模拟。所以,飞行员的操纵负荷感觉主要取决于操纵驾驶杆的感觉,操纵负荷系统也就变为驾驶杆力模拟系统。

驾驶杆操纵负荷模拟系统为飞行员提供驾驶杆纵向/横向操纵操纵感觉。杆力模拟系统采用力矩电机输出,通过控制器和相应的测距、限位、传动机构使作用在驾驶杆上的操纵力与飞机当前的速度、高度及飞行姿态相匹配,从而使飞行员获得飞行过程中相应的驾驶杆操纵感觉。

力矩电机的控制原理是通过CAN总线接口输出三个控制参数,一是力梯度系数,二是阻尼系数,三是调整片位置。前两个参数经过控制器输出后控制力矩电机输出力矩大小,第三个参数通过设置调整片位置来控制调整驾驶杆中立位置。在该控制器下工作的力矩电机完全能够模拟驾驶杆操纵负荷感觉。系统控制原理如图5所示。

杆力梯度主要来源于升降舵上的气动力,升降舵上的力矩与升降舵上的轴位置、升降舵面积、动压及舵偏角有关。力矩的变化主要是受到动压及舵偏角的影响,所以影响杆力的因素主要是动压及舵偏角,可用下式表示力的大小:

(1)

其中k1为杆力调整系数,q为动压, 为舵偏角量。

升降舵调整片的主要目的是为了配平杆力。在杆中立点处杆力为零,通过调整片来调整杆中立点的位置可在不改变杆位移的条件下使杆力配平为零,所以杆力梯度总表达式为:

(2)

其k2舵偏角调整系数, 为调整片偏转量。

杆的阻尼主要来自三个方面,机械间固有的摩擦,机械固件的惯性,以及升降舵上下偏转时的气动摩擦。那么阻尼表达式为:

(3)

其中 为机械间的摩擦力,k3、k4分别为惯性量及气动摩擦调整系数,t为时间量, 为飞机的速度。

将杆力梯度和阻尼的值送给力矩电机控制器,就可以控制杆力的大小。在调整时,通过调节杆力梯度和阻尼系数来适应飞行员的操纵感觉。

4 结束语

采用CAN总线技术实现飞行模拟器座舱系统,可大大简化飞行模拟器的研制工艺,也提高了系统的可靠性。同时,通过调整软件就可以适应不同机型飞行模拟器的研制需求,因而具有广泛的推广价值。应用实践证明,该系统通信可靠、性能稳定,仿真程度高,完全适合飞行训练的需要。

参考文献[参考资料]

[1] 邬宽明.CAN总线原理和应用系统设计(M).北京航空航天大学出版社,1996.

[2] 李小京.CAN总线在高精度超低功耗仪表中的应用(J).化工自动化及仪表.2001,28(3):58~60.

[3] 陈育良.基于CAN总线电源控制系统设计(J).海军航空工程学院学报.2006,21(1):137~138.

[4] 周凤余.基于SJA1000的CAN总线接口电路的设计与实现(J).微计算机信息,1999,(6):25~27.

[5] 肖朝辉.基于CAN总线的车载智能仪表设计(J).自动化与仪表.2005,(3):31~33.

[6] 邹继军.基于SJA1000的CAN总线系统智能节点设计(J).单片机与嵌入式系统应用. 2001,(12): 26~31.

作者简介: 王述运(1972-),男,工学硕士,高级工程师,主要研究领域为飞行器仿真; 谷树山(1971-),男,工学学士,工程师,主要研究领域为仪表测控与仿真; 田杰荣(1981-),男,工学学士,讲师,主要研究领域为计算机控制与仿真;林亚军(1970-),男,工学博士,副教授,主要研究领域为计算机控制.

作者:王述运 谷树山 田杰荣 林亚军

飞行控制计算机软件设计论文 篇3:

SCADE平台下的图形化设计和代码自动生成

摘要:随着航空机载软件功能和复杂性的提高,采用传统的人工编码方法来已不能满足其效率和安全性要求,因此寻求一种更有效的航空机载软件设计方法势在必行。本文研究了一种航空机载软件开发方法—高安全性开发环境SCADE,并以飞机自主导航软件为例,按照SCADE软件的程序设计流程,即通过直观的图形化建模和模拟仿真自动生成可直接面向工程的安全嵌入式C代码。实验结果表明,SCADE在很大程度上实现了软件开发的自动化,节约了开发成本和开发时间。

关键词:软件开发;SCADE;高安全性;自动代码生成

Modeling and Auto-generation of C code on SCADE bench

(zhangxiaochun,jinping,sunquanyan)

(.Flight Control Department of SADRI, Shanghai, 200436)

1.引言

长期以来航空机载软件设计一直采用手工编码来实现,软件生命周期中所有的工作都是围绕着编码工作进行,是一个典型的V型开发流程。手工编码工作量大,开发效率不高,并且手工编写过程中某一局部的错误或失误,常常要花费大量的人力物力来修复。如何保证在最短的时间内开发高质量的软件是航空机载软件开发所面临的挑战,SCADE高安全性应用开发环境就是在这样的背景下应运而生【1】。

2.基于SCADE的图形化建模技术

SCADE作为一种高安全性的嵌入式软件开发环境,覆盖了嵌入式软件开发的整个流程,DO-178B标准规定了40个对软件开发过程的验证进程目标,使用SCADE可以完全省略其中21个,13个目标的工作量可因SCADE的使用而减少,其代码生成器(KCG)是目前世界上唯一的满足DO-178B民航A级标准的代码生成器,相比于手工编码,极大地减少了编码和测试工作。据国外文献报道,用以SCADE为主体的开发方法和代码生成流程,能自动生成70%~90%的嵌入式代码,并且将开发成本降低至50%,大大提高软件开发效率【2】。

使用SCADE进行开发时,软件生命周期中所有工作都是围绕着详细设计,即SCADE模型展开的,其开发流程是一个基于模型的Y型开发流程。软件模型在整个系统开发工程中占据着重要地位。使用模型可以提高开发者对整个系统的观察深度和控制复杂度的能力,给不同的开发阶段提供全局统一的视图和指导,提高软件质量、生产率和可靠性。建模也是进行形式化分析和验证的基础【3】。

对于嵌入式系统既有离散的状态变化又有连续的时间行为。从传感器采样数据,经过控制逻辑和数学运算,产生输出,到执行机构,如图1所示。SCADE提供了两套机制来进行图形化建模:数据流图和安全状态机。这两套机制都建立在严格的数学模型基础之上,具有严格的数学语义,它们保证了设计模型的精确性、完整性、一致性和无二义性。SCADE把这两套开发机制很好地融合在一起,能够适合于不同类型的系统尤其是混合系统的开发。

1) 数据流图

数据流图适用于连续控制系统的建模,主要用于传感器等时间间隔采样、信号处理、计算并输出等,以用户定义的输入输出变量为接口,使用一些运算符,如算术算符、逻辑算符、时序算符、case操作符、if-then-else操作符等,用节点为功能单元,组成复杂的层次结构,以图形化的方法搭建软件模型。

2) 安全状态机

SCADE提供安全状态机来描述离散化状态控制逻辑,主要用于响应外部中断或处理内部事件,安全状态机(SSM)是有限状态机的图形化实现,其图形化方法是用一系列的状态、转移和信号来表示反应系统的控制逻辑。系统的进展用状态和状态之间的转移来表示,转移用信号来触发,SSM开发环境如图2所示。

安全状态机以可视的状态(State)和转移(Transition)来进行建模,用信号(Signal)结合转移条件(Condition)控制系统流程。状态代表系统的模式,只有“激活”和“不激活”两种状态,SSM的状态用方框表示,可以体现层次关系,并行关系。层次化的状态框可以设置互斥状态exclusive(OR)和并行状态parallel(AND),互斥状态就意味着同一时刻仅有一个状态处于活动状态;若设置成并行状态,则所有的状态都可能在同一时刻处于活动状态,并行的状态应该在其父状态被激活的时候同时被激活,而激活顺序一般按照“从外至里,从上至下”的规则排列。

3.基于SCADE的代码自动生成技术

3.1代码生成机制

代码自动生成的原理是根据建模平台的当前目标系统模型,由代码生成器自动生成某种语言的源代码。具体来说,生成代码的信息来源有两个:模型属性(控制代码生成方式即如何生成)和元素规范(控制代码生成内容即生成什么)。【4】

由SCADE图形描述转换为高质量的C代码,需要经过以下两个步骤:

1) SCADE2Lustre:SCADE是以图形建模为基础的软件开发环境,这一步是将方程式、参数块等图形转变成Luster语言描述,然后删除图像信息,并将多个文件模型整合到一个文件中;

2) Luster2C:将Luster语言描述转换成面向工程的C语言。

具体流程如图3所示。

3.2代码自动生成

软件模型设计完成后,需要对其进行模拟仿真。SCADE仿真器是一个强大的可视化的图形调试工具,可以在设计过程中验证软件是否满足功能要求,其输入/输出可以用文本或表格的形式给出,还可以由TCL语言来驱动【5】。SCADE仿真和代码生成工具栏如图4所示。

利用SCADE仿真器对软件模型进行仿真,经检验正确无误后,点击代码自动生成按钮,对其进行代码自动生成。

SCADE代码生成器有两个显著的特点,第一,SCADE所生成的代码完全面向工程,可以直接嵌入到所开发的系统中去而不需要做任何的修改;第二,SCADE基于严格的数据理论,它保证所生成代码的正确性,保证所生成代码的行为和仿真的行为的一致性。

4.开发实例

本文以某型飞机的自主导航软件设计为例,来说明基于SCADE的软件设计过程。

4.1需求分析

自主导航飞行主要是指在没有人直接参与的条件下由控制系统自动的控制飞机按规定航线的飞行。航线通常由通过直线或圆弧线连接多个航点构成。航点信息包括该航点的航点号、经度、纬度、高度、任务字、控制字等信息。自主导航飞行控制系统根据飞机经、纬度、高度等信息,计算出实际飞行轨迹和预置航线的位置偏差,经过控制律解算,对飞机三个舵面进行控制,改变飞机飞行姿态,从而使飞机按规划航线自主飞行【6】。

自主导航过程如图5所示。

4.2 SCADE环境下建模

针对飞机导航过程的需求分析,使用SCADE开发环境进行软件模型设计,导航软件主要包含两部分内容,即参数计算和飞行状态切换。导航过程中所需参数的解算通过数据流图来实现,该部分的输入参数是GPS提供的飞机的经纬度信息、AHRS提供的航向信息、航线信息等,输出参数包括:纵向模态切换指令,横侧向模态切换指令,当前航段指定高度,当前航段指定航向角,当前侧偏距,当前待飞距。飞行模态切换通过安全状态机实现,根据数据流图解算出的模态切换指令进行相应的模态切换。每一个模态输出控制律解算所需的参数和发动机油门。

横侧向导航控制是通过副翼舵和方向舵两个舵面来控制飞机在水平面的航迹运动,横侧向飞行模态为航迹跟踪。纵向导航控制是在垂直面内对应飞行航迹偏差的控制,用于控制飞机按照预定的轨迹爬升或下降进入某一高度的某一地理坐标位置,纵向飞行模态包括爬升、平飞、下滑,纵向各个模态之间的触发信号(climb, glide, level),通过比较飞机当前高度与预定的航线高度得出。

利用SCADE中的安全状态机实现的自主导航模态切换如图6所示。

数据流图与安全状态机共同实现自主导航功能模块,其连接图如图7所示。

4.3 代码自动生成与集成

导航软件模型设计完成之后,对其进行仿真验证,正确无误后点击代码生成按钮进行代码的自动生成。SCADE生成的代码相当于一个函数块,在编译环境中嵌入生成的代码,必须另外添加主函数。主函数一般是个循环调用生成代码的过程,SCADE代码的输入与输出通过接口与底层支持软件衔接。代码集成主要分以下三个步骤:

1) 定义一个结构体调度SCADE生成函数的接口,结构体成员为SCADE根节点的输入与输出;

2) 添加主函数,编写SCADE生成代码与底层支持软件的接口函数;

3) 主程序中调用主函数。

将生成的代码与支持代码在VC++6.0编译器下编译链接,进行软件集成,生成可执行文件。

4.4 代码测试与分析

任务代码的大致执行时间通常采用测量同一代码执行多次的累计时间来实现。本文使用clock函数测量时间,clock函数精度为毫秒级,对于短时间内的定时或延时可以达到毫秒级。以下函数段为测量执行时间的具体实现。

startT=clock( );

for(a=0; a

{

/*put user task code here */

}

endT=clock();

printf("The time is %f",(double)(endT-startT));

在相同的环境下,对SCADE生成代码与相应的手写代码进行执行时间测试,测试结果如表1所示。从表1可以看出,执行同样步数,SCADE生成代码的执行效率略高于手写代码执行效率。

SCADE满足一系列的安全性特征,例如没有死代码、没有死循环等,基于SCADE平台进行软件开发在很大程度上实现了软件开发的自动化,节约了开发时间,提高了开发效率。SCADE模型的设计方法和设计流程直接影响生成代码的质量,因此,在设计过程中通过改进设计方法和设计流程可以进一步优化代码。

4.5仿真验证

本文的仿真实验是在一套飞行控制计算机半物理仿真平台上进行的,仿真系统包括飞行控制计算机、传感器仿真计算机、遥控遥测与地面检测计算机;将集成后的可执行文件下载到飞控计算机中,飞行控制计算机进行实时运算,产生输出量,控制飞机仿真模型,在仿真控制台上观察数据和曲线变化,并根据解算出来的经纬度绘制飞行轨迹,绘制的飞行轨迹如图8所示。其中蓝色的为目标航迹,黄色的为实际飞行航迹,可见飞行轨迹与规划的航线基本一致,设计的软件达到设计要求。

5结束语

采用SCADE对飞机导航软件实例研究,可以得到以下结论:

1. SCADE建模机制基于严格的数学理论,排除了传统软件开发中难以发现的安全性隐患,减少测试工作量和测试时间。

2. SCADE生成代码的执行效率与手工代码的执行效率相当。

3. 采用SCADE开发航空机载软件是可行的,且可在很大程度上节省开发时间,提高开发效率。

参考文献:

[1] Jean-Louis Camus,Bernard Dion,Efficient Development of Airborne Software with SCADE Suit,Esterel Technologies,2003

[2] Anjali Joshi,Mats P.E. Heimdahl,Model-Based Safety Analusis of Simulink Models Using SCADE Design Verifier,SAFECOMP,2005:122-135

[3] 杨向忠,安锦文,催文革,嵌入式自动代码生成技术应用研究[J],弹箭与制导学报,2008,28(3):151-154

[4] Labbani,Ouassila,Mode-automata based methodology for scade,Lecture Notes in Computer Science,v3414,Hybrid Systems: Computation and Control - 8th International Workshop,HSCC 2005,2005:386~401

[5] 徐爱春,章坚民,基于XML/XSLT代码自动生成技术研究,杭州,杭州电子工业学报,2004,24(4):64-68

[6] 吴了泥,黄一敏,基于Stateflow技术多模态飞行控制律仿真,杭州电子科技大学学报,2005,25(4):34-37

作者简介:章晓春(1985-),男,硕士,助理工程师,主要研究领域为飞控计算机及机载软件

作者:章晓春 金平 孙全艳

上一篇:功能性与装饰性室内设计论文下一篇:思想政治课情感教学管理论文