APP下载

基于SCADE的自动飞行控制系统设计与仿真

2015-12-07王禹曹义华

科技创新导报 2015年27期
关键词:仿真安全性

王禹 曹义华

摘 要:飞机飞行的安全性是航空业发展的重要课题,自动飞行控制是降低驾驶员工作负荷,提高飞行安全性的有效途径。利用高安全性应用开发环境SCADE,综合考虑飞机运动安全特性,通过数据流程图,平面状态以及安全状态机的建模方法,建立了飞机俯仰方向的自动飞行控制系统的模型。通过飞机仪表盘可视化以及襟翼状态仿真界面,利用验证模块,飞行数据测试等手段,完成了模型的可靠性验证并利用SCAD-KCG生成满足DO-178B民航A级标准的高可靠性嵌入式实时C语言代码。

关键词:SCADE 安全性 自动飞行控制 仿真

中图分类号:V24 文献标识码:A 文章编号:1674-098X(2015)09(c)-0003-04

Automatic Flight Control System Design and Simulation Based on SCADE

Wang Yu1 Cao Yihua2

(1.Sino-French Engineer School, Beihang University;2.Aeronautic Science and Engineering School, Beihang University,Beijing,100191,China)

Abstract:Aircraft flight safety is an important topic in the aviation industry development, the automatic flight control is the effective way to reduce pilot workload and improve flight safety.Considering the aircraft movement security features,automatic pitchingflight control system model is set up in a high security SCADE application development environment by the data flow diagram,surface state and safety state machine modeling method.Through designing the dashboard and flap state simulation interface,the reliability of the model validation is completed by using the authentication module and data test.A high reliability embedded real-time C language code which meets the DO-178B grade A standard of civil aviation is generated by SCADE-KCG.

Key Words:SCADE;Safety;Automatic flight control;Simulation

随着航空业的发展,飞机飞行的安全性越来越受到人们的关注,如何有效减轻驾驶员的驾驶压力,实现自动飞行控制系统是提高飞机飞行安全性的有效途径。

传统的飞机自动控制系统主要通过手工编写,工作量大,成本高且可靠性差。因此,寻求一种开发效率高,满足高安全性要求的飞行控制系统是目前国内外的研究热点。

该文利用SCADE开发环境,设计出一款无人机自动控制系统软件,实现了飞机仪表盘的可视化以及飞机的自动驾驶控制,建立数据库对模型进行了仿真模拟,验证了模型的正确性并生成了可编译的C语言程序。

1 SCADE软件开发环境介绍

SCADE是法国EstereI Technologies公司研制的一个用于开发的嵌入式软件的完整的工具包,具有一个高安全性应用开发环境,覆盖了嵌入式软件开发中从需求到嵌入式代码的整个流程,是一个以软件模型设计为中心而非传统的以程序代码为中心的软件开发工具。利用SCADE-KCG生成的程序代码达到了DO-178B民航A级标准,具有开发周期短、安全性高、交互界面好等优点。

SCADE的核心是LUSTRE语言,它是一种同步程序设计语言,适用于反应系统的编程。SCADE是基于同步假设原理,即假设反映系统的处理速度无限快,系统可以在一个可以忽略不计的瞬间响应输入并产生输出,利用数据流程图、平面状态机以及安全状态机进行建模的开发环境。数据流程图建模采用面向处理过程的思想来描述系统,平面状态机则用于描述简单的状态逻辑切换控制,描述系统的动态行为,而安全状态机提供了顺序、优先级、层次、并行的状态结构,用于处理复杂的状态。无论是平面状态机还是安全状态机,其面向的都是离散控制系统。

该文综合利用了这3种建模方式,实现了飞机自动飞行控制系统的设计与仿真。

2 飞行自动控制系统的设计

2.1 飞行自动控制的需求分析与整体设计

飞行自动控制系统主要用于飞行过程中的自动控制,主要由自动驾驶模块与验证模块组成。自动驾驶模块为飞机自动飞行控制部分的主体,主要分为警示模块,计算模块以及控制模块。验证模块主要用于验证控制系统的合理性,对输入输出信息进行对比使结果保持一致。

对于整个飞机控制系统而言,输入变量主要有:由机身上传感器上获得的机身前大气压P0以及机身上大氣压Pa,迎角Deg,是否展开起落架Train,操纵杆的位置Pos_deg,是否进入自动驾驶状态P_A;输出变量主要有:控制模块中的升降杆的位置Elevateur,警示模块中的起飞迎角警示A_Dec,失速警示A_Ecras,降落警示A_Desc,计算模块中的飞行速度V,爬升角Pente以及飞机飞行的高度h。

2.2 警示模块设计

警示模块主要用于飞机的安全起飞以及降落,主要从以下3个方面进行控制。

(1)对迎角的控制,以防止迎角过大造成的气流分离导致飞机失速;

(2)对起落架的控制,以防止飞机过于接近地面而使起落架无法展开;

(3)对降落速度的控制,以保证飞机降落的安全性。

由于飞机在飞行过程中可能存在瞬时扰动使得获取的数据存在暂时性的突变,而这会导致对警示模块中的3个分量的准确性造成影响,因此引入100 ms的时间控制来对数据进行验证,以保证警示模块中输出的结果满足实际需求。

2.3 计算模块设计

计算模块主要用于计算飞行速度,飞行高度以及爬升角。

对于飞行高度的计算,根据某飞机飞行数据可以得出压强,空气密度与飞行高度之间的关系如下:

对于飞行速度的计算公式可以根据Bernoulli方程给出:

对于爬升角的计算公式可以有如下关系给出:

2.4 控制模块设计

控制模块主要用于控制飞机的操纵系统来实现飞机的飞行姿态控制。通过控制操纵杆变量使得升降杆移动从而控制飞机的襟翼,达到飞行姿态控制的效果。

考虑到计算效率以及飞行的安全性等因素,对于飞行控制模块的设计主要从以下幾个方面着手。

(1)假设操纵杆的移动角度与升降杆移动位移成线性关系;

(2)升降杆的移动速度不能过快导致襟翼无法及时响应以及引起受力突变;

(3)升降杆的位移具有一定限制,从而保证襟翼在一定范围内移动。

出于以上几点考虑,对控制模块的设计如图2所示。

然而在实际飞行中,自动飞行控制存在一定的不稳定性,出于对飞机飞行的安全性考虑,在升降杆的控制上该文还引入了自动飞行控制与飞行员操纵的两个状态,如图3所示,即在自动飞行控制失效时可切换至驾驶员的操纵状态以确保飞机飞行的安全性。

2.5 自动驾驶模块的总体设计

综合警示模块,计算模块以及控制模块的设计,得出自动驾驶模块如图4所示。

2.6 验证模块设计

验证模块主要用于验证模型是否正确,数据的输出是否合理,其返回值为bool型变量,若为true则证明模型的建立正确。

3 数据测试与仿真

3.1 仿真模块设计

SCADE Display模块是基于人机界面(HMI)显示,可实现多功能显示,数字化仪表以及控制面板等功能的模块,在航空航天,轨道交通以及汽车工业上具有很大应用。利用SCADE Display模块,搭建飞行器仪表盘以及襟翼的状态,使得仿真结果可以可视化,以便可以正确读取飞机目前的状态。

飞机仪表盘的搭建如图5所示,飞机仪表盘的输入量为自动导航飞行控制系统的部分输入数据以及输出变量,通过内部转换使得数据得以可视化。

其中上方的角标为飞机飞行的方向,中间为飞机的迎角Deg,右边的度数为操纵杆的位置Pos_deg,左边的飞机飞行的速度V。下方的3个按钮分别对应警示模块中的起飞迎角警示A_Dec,失速警示A_Ecras以及降落警示A_Desc。

通过连接接口,随着测试数据的不断变化,仪表盘的数据也会随之相应变化,当警示生效时,下方的相应按钮会变成红色。在实际飞行中,通过机身上的传感器读出机身的机身前大气压P0以及机身上大气压Pa,迎角Deg,通过应用所设计自动驾驶模块以及仿真数据接口就可以实时读出飞机所处的状态。

襟翼的状态模型搭建如图6所示,襟翼的状态输入量为升降杆的位置Elevateur,通过襟翼的状态显示,对比飞机仪表盘显示的数据可以得出飞机在不同飞行状态下的襟翼的变化。

3.2 数据测试

利用某飞机飞行数据,创建项目自动飞行控制数据库,为了使模型更具有普遍性,除了引用了飞机整个航程中俯仰运动姿态的数据之外,还加入了偏航运动和滚转运动数据,以保证系统数据的完整性。

通过数据测试可以得到不同模块的变化量情况,图7为截取的飞机起飞阶段的部分数据测试数据变化的情况。利用之前建立的验证模块的数据返回值true可以得到模型的正确性,同时在数据测试与仿真的过程中,可以观测到仪表盘上数据的变化以及襟翼的变化,进一步验证了模型的准确性。

此外,SCADE软件还提供了数据的检测功能,可以直接得出数据的覆盖范围通过自动生成的报告结果显示,检测数据覆盖了自动控制系统的所有模块,符合数据测试的标准,验证了测试数据选择的有效性。

4 代码生成与实现

在仿真结果与数据测试的基础上,利用SCADE-KCG生成C语言代码,该代码满足DO-178B民航A级标准。

由于本研究的模型中的节点较多,因此取其中部分C语言程序进行说明。

计算模块中的爬升角计算C代码生成如下所述。

voidCalculPente_reset(outC_CalculPente *outC)

{outC->init = kcg_true;

DERIV_reset(&outC->_1_Context_1);

INITIALISATION_reset(&outC->Context_1);}

voidCalculPente (kcg_real h, kcg_real V, outC_CalculPente *outC){

kcg_realtmp;

kcg_bool tmp1;

outC->_L2 = V;

outC->_L11 = 0.0;

outC->_L12 = outC->_L2 > outC->_L11;

outC->_L9 = 0.0;

tmp1 = outC->_L12;

outC->_L1 = h;

outC->_L6 = 1.0;

INITIALISATION(&outC->Context_1);

outC->_L7 = outC->Context_1.Bool_Init;

DERIV(outC->_L1, outC->_L6, outC->_L7, &outC->_1_Context_1);

outC->_L3 = outC->_1_Context_1.S1;

if (tmp1) {outC->_L8 = outC->_L3 / outC->_L2;}

else {if (outC->init) {tmp = outC->_L9;}

else { tmp = outC->_L8;}

outC->_L8 = tmp;}

outC->_L5 = /* 1 */ ASIN(outC->_L8);

outC->Pente = outC->_L5;

outC->init = kcg_false;}

從爬升角的计算模块中生成的C语言代码可以看出,SCADE生成的C语言代码是以函数的形式给出的,函数的名字为设计过程中节点的名字,参数为一个结构体指针,结构体元素包含该节点的输入和输出变量。

5 结语

SCADE开发环境由于具有低成本,高开发效率以及高安全性等特点,在航空航天,汽车电子等领域得到广泛的应用,其安全性能已经被空中客车,欧洲直升机等公司采用,具有很好的效果。

该文利用SCADE开发环境,考虑到飞机飞行安全中的各种因素,综合利用3种建模方式对自动飞行控制系统进行了设计,综合了SCADE中的嵌入式系统理念,LUSTRE语言,反应式以及同步假设等优点,保证了控制系统的可靠性,并生成了符合DO-178B民航A级标准的C语言代码。

通过选取样机数据以及对系统的仿真,建立了飞行器仪表盘以及飞机襟翼的可视化模型,验证了自动飞行控制系统的正确性。

由于实际飞行中的飞机操纵系统更为复杂,本研究主要基于飞机的俯仰方向控制,对飞机的偏航控制以及滚转控制并没有深入研究,没有考虑飞机的稳定性能,对尾翼以及其他操纵部件的控制还亟待解决。

参考文献

[1] Camus J L,Dion B.Efficient development of airborne software with Scadesuite[J].Esterel Technologies,2003,62.

[2] 张合军,陈欣.基于SCADE的无人机自主导航飞行软件设计[J].计算机测量与控制,2007,15(10):1400-1402.

[3] Joshi A,Heimdahl M P E. Model-based safety analysis of simulink models using SCADE design verifier[C]//Computer Safety, Reliability, and Security. Springer Berlin Heidelberg, 2005:122-135.

[4] Abdulla P A,Deneux J, St?lmarck G, et al. Designing safe,reliable systems using scade[C]//Leveraging Applications of Formal Methods. Springer Berlin Heidelberg, 2006:115-129.

[5] 王群伟,吴成富,陈怀民,等.基于 SCADE的无人机三余度飞控系统设计及实现[J].测控技术,2007,26(4):52-54.

[6] 胡钢伟,李振水,高亚奎.SCADE软件开发方法研究[J].系统仿真学报,2009 (20):286-288.

[7] 林成文,吴成富.机载软件图形化设计与自动代码生成研究[D].西安:西北工业大学,2007.

[8] 颜雯清,李秀娟.SCADE平台下C代码的自动生成[J].计算机仿真,2007, 24(10):264-268.

[9] Labbani O,Dekeyser J L, Boulet P.Mode-automata based methodology for scade[C]//Hybrid Systems:Computation and Control.Springer Berlin Heidelberg,2005:386-401.

[10] 王辉,徐锦法.基于组件的飞行控制系统软件设计方法[J].计算机仿真, 2004,21(9):170-174.

猜你喜欢

仿真安全性
两款输液泵的输血安全性评估
既有建筑工程质量安全性的思考
某既有隔震建筑检测与安全性鉴定
米氮平治疗老年失眠伴抑郁症的疗效及安全性
一种帮助幼儿车内脱险应急装置的仿真分析
Buck开关变换器的基本参数设计及仿真分析
试析PLC控制下的自动化立体仓库仿真情况分析
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
ApplePay横空出世 安全性遭受质疑 拿什么保护你,我的苹果支付?