虚拟飞控计算机:飞行控制系统验证与优化的利器

01.背景介绍

随着航空技术的飞速发展,飞行控制系统作为飞机的心脏,全面负责监测、调整和维持飞行器的姿态、航向、高度等参数,用以确保飞行的安全和稳定。为了满足这些要求,现代飞控系统通常采用先进的处理器和外设来确保其高效、稳定的运行。

▲C919模拟驾驶舱

然而,在实际应用中,受到成本、技术、安全等多种因素的限制,真实的处理器和外设往往难以满足测试和验证的需求。为解决这一困境,虚拟飞控计算机应运而生,它能够模拟出真实的处理器及外设,为飞控软件提供接近真实环境的运行支撑。

02.飞控计算机硬件技术方案

为实现飞控计算机的虚拟仿真,首先需要了解飞控计算机的硬件技术方案。现代飞控计算机的设计方案通常包括指令支路和监控支路两部分。

指令支路涉及飞行控制系统的实际控制部分,包括姿态控制、油门控制、舵面控制等。在指令支路中,飞控计算机会根据传感器提供的数据和控制算法的指导,计算出相应的控制指令,然后发送给执行器系统。

监控支路通常涉及故障检测、系统诊断、性能监测等功能。飞控计算机会定期检查传感器的数据、执行器的响应以及其他系统的运行情况,如果发现任何异常,则会采取相应的措施,如发出警报、停止指令支路的指令输出、采取容错控制或自动转换备用系统等,以保证飞行控制的安全和稳定。

飞控计算机的硬件架构拓扑图如下:

▲飞控计算机的硬件架构拓扑图

2.1 飞控计算机系统

飞控计算机的设计方案中,指令和监控支路分别采用了基于PowerPC和ARM架构的处理器,其余的硬件模块则主要依赖于FPGA来实现。这两条支路共享电源、时钟和复位,以确保处理器在相同的复位和时钟信号下同步运行。

2.2 系统功能和通讯

指令支路为不同单元提供分时分区同步中断,确保各任务能够同步运行;

数据传输借助基于FPGA的CLDL总线(一种总线通讯协议),实现指令支路与监控支路之间的通信。这种设计使得飞控计算机能够高效、安全地处理飞行控制指令,并实时监控飞机状态,从而确保飞行的安全性和稳定性;

飞控计算机通过以太网与上位机通信,允许上位机配置网络参数,使用指令获取系统软件中的变量数据,获得真实飞机运行状态及控制的关键参数。 

03.基于SkyEye的虚拟飞控计算机实现方案

与飞控计算机的硬件技术方案相对应,SkyEye仿真实现的虚拟飞控计算机的基本架构如下图所示:

▲SkyEye飞控计算机系统仿真基本架构

3.1 架构与同步机制

与真实硬件一致,基于SkyEye的虚拟飞控计算机由指令支路板卡和监控支路板卡构成。指令支路板卡包含CPU1和FPGA模型,监控支路板卡则包含CPU2和FPGA模型。两个支路的同步是通过SkyEye的同步工具实现的,该工具利用同步步长来确保指令支路与监控支路同步运行。在任何给定时刻,这两个支路的仿真时间都是相同的。 

3.2 同步中断设计

为了实现两支路的分时分区同步中断,基于实际硬件情况,虚拟飞控计算机将指令支路的同步中断传递给监控支路。一旦此中断被触发,指令支路和监控支路的同步中断任务将同步启动,确保两支路之间的同步运行。这种设计提高了系统的可靠性和稳定性,使得虚拟飞控计算机能够更好地模拟真实硬件的行为,并为飞控计算机系统软件的测试和分析提供了便利。

3.3 CLDL通信模拟

基于SkyEye的虚拟飞控计算机模拟了两支路间的CLDL通信协议。当指令支路需要向监控支路发送数据时,相关任务将数据传输给指令支路的CLDL模块,CLDL模块解析数据并通过网络发送给监控支路的CLDL模块,并由该模块将数据解析并保存到指定ID的CLDL缓冲区中。随后,监控支路的处理任务读取该缓冲区中相应ID的数据,并进行进一步的处理。

3.4 网络数据交互设计

基于SkyEye的虚拟飞控计算机通过以太网与上位机相连,确保数据传输的稳定性和高效性。为实现网络数据的收发,指令支路采用虚拟W5100网络接口芯片,保持与硬件使用芯片一致,监控支路采用TAP虚拟网卡模拟芯片GMAC模块。

这种配置保证了两条支路能快速、准确地接收和发送网络数据。一旦上位机完成网络IP和端口号的配置,便能通过发送指令获取飞控计算机软件的数据。这一功能使得上位机能实时监控飞控计算机软件的运行状态,并观察到软件内部各个变量的变化情况,为开发者、测试人员和操作员提供了极大的便利,使得他们能更直观地了解飞控计算机软件的运行状况,并及时发现、解决潜在问题。

04.总结

基于SkyEye虚拟飞控计算机技术不仅提供了一种新的开发方式,还对传统的开发模式进行了优化和替代。具体表现在以下几个方面:

1. 开发流程优化:通过逼真地仿真硬件技术路线实现全流程的仿真测试,使得开发流程更加高效、精准。

2. 早期验证与评估:实现早期阶段的验证与评估,通过提前发现问题并修复来降低后期风险和成本。

3. 并行开发与协同工作:支持多团队、多平台的并行开发与协同工作,提高开发效率。

4. 持续测试与迭代优化:通过不断地测试、分析和改进进一步提高飞控系统的性能和稳定性。

5. 可扩展性与灵活性:可根据技术不断发展随时进行更新和升级,以适应新的硬件设备和系统需求。

6. 安全性与可靠性提升:避免真实硬件可能出现的物理损伤或故障,提前发现潜在问题,进一步提高飞控系统的可靠性和稳定性。

综上所述,基于SkyEye的虚拟飞控计算机通过逼真仿真出真实飞控计算机的技术路线,为飞控系统软件的开发带来了显著的优势和价值。随着虚拟技术的不断发展和完善,相信虚拟飞控计算机将在未来发挥更加重要的作用,为航空工业的繁荣做出更大的贡献。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457396.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)-2.0.1

客户端注册临时实例,GRPC处理 客户端服务发现 及订阅处理

SpringCloud-创建多模块项目

在微服务架构中,项目的组织结构对于代码的维护和团队的协作至关重要。Spring Cloud作为一个强大的微服务框架,提供了丰富的功能和组件,同时也支持多模块项目的创建,使得代码结构更加清晰、易于管理。本文将介绍如何使用 Spring Cl…

LeetCode:26.删除有序数组中的重复项

26. 删除有序数组中的重复项 - 力扣(LeetCode) 目录 题目: 思路: 代码注释: 每日表情包: 题目: 思路: 没啥特殊的,老老实实双指针遍历数组,&#xff0…

JavaScript入门学习

JavaScript 一.什么是JavaScript与作用 JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言 嵌入HTML中,与Css一样。对浏览器事件作出响应操作HTML元素及节点。可以动态操作CSS样式。在数据被提交…

mac协议远程管理软件:Termius for Mac 8.4.0激活版

Termius是一款远程访问和管理工具,旨在帮助用户轻松地远程连接到各种服务器和设备。它适用于多种操作系统,包括Windows、macOS、Linux和移动设备。 该软件提供了一个直观的界面,使用户可以通过SSH、Telnet和Mosh等协议连接到远程设备。它还支…

【iOS分类、关联对象】如何使用关联对象给分类实现一个weak的属性

如何使用关联对象给分类实现一个weak的属性 通过关联对象objc_setAssociatedObject中的策略policy可知,并不支持使用weak修饰对象属性: typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {OBJC_ASSOCIATION_ASSIGN 0, //assignOBJC_ASSOCIATION…

数据结构第十天(排序算法总结)

目录 前言 常数时间复杂度:O(1) 线性时间复杂度:O(n) 线性对数时间复杂度:O(n log n) 平方时间复杂度:O(n^2) 对数时间复杂度:O(log n) 前言 排序算法的学习可以告一段落了。但算法的学习永不停止。 今天&…

【Git版本控制 01】基本操作

目录 一、初始配置 二、添加文件 三、查看日志 四、修改文件 五、版本回退 六、撤销修改 七、删除文件 一、初始配置 Git版本控制器:记录每次的修改以及版本迭代的一个管理系统。 # 初始化本地仓库:git init(base) [rootlocalhost gitcode]# gi…

作业:单身狗1

思路: 一:题目一开始就规定了这个数组的标准——只有一个数字出现一次,其他数字都是成对出现的,因此,重点就是如何排除成对的数,和保留单独的数 二:^的特点:相同为0,不…

『 C++ - STL 』unordered_xxx系列关联式容器及其封装(万字)

文章目录 🎡 unordered系列关联式容器🎡 哈希表的改造🎢 节点的设置与总体框架🎢 迭代器的封装🎠 迭代器的框架🎠 operator()运算符重载🎠 其余成员函数/运算符重载 🎢 迭代器begin(…

SpringBoot 事务管理Transactional 数据回滚 数据一致性

介绍 SpringBoot当中的事物他保证了一致性,要么全部一起成功(提交),要么一起失败,失败(回滚)后数据会回到当初的样子,是一组操作的集合。 事物类型 开启事物提交事物回滚事物 案…

小红的字符串中值

题目描述: 小红定义一个长度为奇数的字符串的“中值”为中间那个字符。例如"kou"的中值是o。 现在小红拿到了一个字符串,她想知道某个字符是多少个子串的中值。你能帮帮她吗? 输入描述: 输出描述: 一个整数,代表中值为chr的连续子串…