当前位置: 首页 > news >正文

基于软件在环的飞控机建模仿真

安全关键系统(Safety-Critical System,SCS)是指由于某些行为或组合行为能够引发整体系统失效,继而导致财物损失、人员受伤等严重影响的系统,诸多安全关键领域如航空航天、核电系统、医疗设备、交通运输等领域的系统都属于安全关键系统,而这些系统中大部分核心功能是由软件实现的。

当前正处于“工业4.0”与“中国制造2025”的时代,随着时代发展进程不断加速,软件功能也越来越强大、复杂性越来越高。近几十年来,由软件失效导致安全关键系统失效进而引发重大事故的情况屡见不鲜:

  • 1996年,NASA发射Ariane5运载火箭在发射37秒后就被迫自行引爆,原因为控制飞行的软件发生了故障:在64位浮点数跳至16位浮点数的过程中发生了整数溢出问题。本次事故造成了高达25亿美元的经济损失。

  • 2009年,空客公司的A330-200型客机测速仪结冰,其飞控软件仍提供了错误的攀升信号。由于软件未设定飞机的高度上限,最终导致飞机坠毁,祖上228名机组人员及乘客无一生还,其中包含9名中国乘客。

  • 2018年10月以及2019年3月波音公司的两起737Max飞机先后坠毁的事件导致了包括机组人员在内的346人死亡,中美欧等多个国家将该飞机列为禁飞机型,波音公司因此遭受了上亿美元的损失。通过后续的事故调查,主要原因在于不完善的软件设计和不合格的适航审查。

如何进一步提高机载软件安全性,一直是航空航天领域重要的研究方向。

机载软件安全性是指通过软件验证减少机载软件生命周期内的错误,直到软件错误在可控范围内,进而保证软件在使用过程中不具备引发系统危害的能力。软件安全性分析是指对特定飞行危害发生的所有途径和因素进行分析建模,得到危害场景的模型进行分析,识别机载软件中可能造成严重后果的潜在危害,同时确定消除或降低危害的方法。

机载软件的安全性需从两个方面思考:

  1. 开展软件安全性分析及验证工作:从系统的安全性分析出发获得系统安全需求,识别其中由软件导致的危险,从而获取软件的安全规约,用于对软件进行形式化验证,保证软件设计的正确性。
  2. 开展机载软件的适航目标符合性验证工作:将适航认证标准与软件实现的功能相结合,确定软件的安全等级,分配相应的适航目标,在软件开发过程证明软件满足相应的适航目标来确保软件的安全性。

飞控系统作为飞机机载系统的核心,是安全关键关联度最高的机载系统软件之一。飞控系统包括纷繁复杂的飞行控制软件,主要完成飞行传感器数据处理、飞行姿态控制和余度管理任务,对保证飞机安全性和可靠性起着关键作用,但是现实中与飞控软件相关的研发测试过程依旧举步维艰。其主要原因是硬件设备研发成本高且周期长,并且软件程序研发和测试过程严重依赖于实体硬件,同时也缺乏有效的调试手段,无法快速、高效、准确地定位问题,导致软件研发陷入冗长的周期循环中。为应对飞控系统软件(特别是多核和多节点的复杂系统)的开发测试困境,仿真模拟技术应运而生。

数字化与工业相结合诞生了数字孪生技术。应用数字孪生技术搭建一套虚实同步的飞控系统,建立传感器、样机与仿真模型同步运行的方式方法,即可将飞控机的逻辑控制模式应用在虚拟模型中,解决复杂嵌入式系统的硬件平台在成本、可用性、可控性、可调试性、可检测性、容错检错测试等方面的问题。

天目全数字实时仿真软件SkyEye是基于可视化建模的硬件行为级仿真平台。基于SkyEye搭建的虚拟飞控机板卡可实现飞控软件程序烧录及运行功能,虚拟飞控机与硬件实物测试效果一致,满足飞控软件功能和性能要求,同时具备“软件在环”技术验证效果。项目还可与Keil、FMU环境集成仿真,进行计算周期精度验证与控制数据解算验证,解决飞控领域的安全关键问题。

▲SkyEye基于软件在环的飞控机建模仿真案例

http://www.lryc.cn/news/372179.html

相关文章:

  • github ssh key的SHA256是什么
  • HyperBDR新版本上线,自动化容灾兼容再升级!
  • python学习—合并多个Excel工作簿表格文件
  • 如何把路由器设备的LAN口地址为三大私网地址
  • Java多线程-StampedLock(原子读写锁)
  • (源码)一套医学影像PACS系统源码 医院系统源码 提供数据接收、图像处理、测量、保存、管理、远程医疗和系统参数设置等功能
  • 【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
  • # RocketMQ 实战:模拟电商网站场景综合案例(五)
  • Cesium4Unreal - # 009 直接加载显示shapefile
  • Release和Debug的区别?Release有什么好处?【面试】
  • DevExpress 控件和库
  • 车载以太网测试
  • 181.二叉树:验证二叉树(力扣)
  • 陪诊小程序开发,陪诊师在线接单
  • 【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号
  • 2024-6-10-zero shot,few shot以及无监督学习之间的关系是什么
  • C语言|十进制数转换任意进制数
  • 驱动开发(二):创建字符设备驱动
  • Golang:使用时会遇到的错误及解决方法详解
  • r语言数据分析案例25-基于向量自回归模型的标准普尔 500 指数长期预测与机制分析
  • 解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题
  • MySql通过 Procedure 循环删除数据
  • Spring Boot 的启动原理、Spring Boot 自动配置原理
  • 不会开发的你也能管理好企业漏洞,开源免费工具:洞察(insight II)
  • java实现两个不同对象的集合复制
  • bind failed: Address already in use
  • LabVIEW结构体内部缺陷振动检测
  • RK3568技术笔记六 新建 Ubuntu Linux 虚拟机
  • Web前端博客模板下载:一站式解决方案与深度探索
  • Docker部署常见应用之大数据实时计算引擎Flink