登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
Pixhawk飞控
›
浅谈飞控开发的仿真功能
返回列表
发新帖
查看:
750
|
回复:
0
浅谈飞控开发的仿真功能
[复制链接]
wu18852138052
wu18852138052
当前离线
积分
1772
窥视卡
雷达卡
53
主题
889
帖子
1772
积分
金牌飞友
金牌飞友, 积分 1772, 距离下一级还需 1228 积分
金牌飞友, 积分 1772, 距离下一级还需 1228 积分
积分
1772
飞币
876
注册时间
2017-8-23
发消息
发表于 2025-1-2 15:39:43
|
显示全部楼层
|
阅读模式
前阵子,有位朋友向笔者咨询如何设计飞控的仿真,尤其是类似航空或者汽车领域的那种半实物仿真,所以本文就简单讲讲飞控开发的仿真功能是什么样的。事先申明,本文中所描述的不一定非常准确,尤其是专业术语这块,只是简单聊聊笔者是怎么理解的,但是讲解的功能的本质应该是准确的。
首先,要知道什么是仿真?
算法层次来说,仿真就是模拟实际环境,对算法代码进行测试。推而广之,在嵌入式驱动甚至业务逻辑层次的代码,也可以在虚拟环境中进行仿真,从而测试验证准确性。
仿真有哪几种?
常见的仿真,通常指以下几种:
模型在环仿真MITL
软件在环仿真SITL
硬件在环仿真HITL
模型在环仿真MITL
可以简单理解成算法层次的仿真,比如在simulink中搭建一个PID控制器,然后同样搭建了被控对象的模型,比如飞行器的姿态模型,验证飞行器的姿态控制性能,这个就是模型在环仿真;
还有一种方式,就是离线的数据仿真,比如实际采集飞行器的IMU数据,在matlab中编写了姿态估计的M代码或者是simulink模块,通过导入数据,观察输出,从而验证设计的算法是否有效以及性能。
这两种都属于模型在环仿真,在完全虚拟的环境下,无任何设备的情况下,前期验证是否设计的功能有效;
软件在环仿真SITL
软件在环仿真与模型在环仿真类似,区别在于MITL的代码不是你将来烧写到飞控的代码,比如是m文件,而软件在环仿真就是通过编译器,将你的程序编程可烧写的代码,比如c语言,这个过程可以是由matlab自动生成(即通常所说的基于模型的开发方式),也可以由自己进行代码的转换。在将你的算法与模型都用c语言编写后,进行程序的运行,然后验证输出的结果是否与模型在环仿真有所出入,从而验证是否编译环节出现了问题,比如转换后的代码的数据类型,嵌入式编译环境的计算误差等。从某种角度来说,软件在环是模型在环的一种延伸。
以PX4飞控的SITL为例:
图中看出,只有控制信号,比如遥控器是外部输入的,而飞控程序和模型都是在仿真软件上,模型输入给程序假的传感器数据,状态请求等,而飞控计算后,得到三轴力矩和推力,输入给模型。
硬件在环仿真HITL:
在开发的下一阶段,这时候硬件同事已经将飞控硬件设计完成交给你了,有了真实的硬件了,这样你的软件功能代码就开始部署了,比如输入输出的接口等。
需要注意的是,SITL是专门需要在仿真软件中开发飞控代码的,与实际的飞控代码还是有所区别的,SITL的代码通常要执行更多的代码。
汽车领域的HIL台架:
PX4飞控的HITL:
硬件在环仿真(HITL)模式下标准的PX4 固件在真实的硬件上运行。JMAVSim 或Gazebo (运行在开发计算机上) 通过 USB或者串口完成与飞行控制器硬件平台连接。模拟器充当在 PX4 和QGroundControl 之间共享 MAVLink 数据的网关。
至于半实物仿真,简单理解如果你有了硬件,那就是半实物的仿真,当然这个说法不严谨,不过不重要。
在环仿真测试的重要性?
第一点、MIL在算法工程师看来是很重要的,毕竟总不能等东西都有了才开始进行工作吧。
第二、在无人机领域里,大量的测试是非常必要的,这样才能将飞控做成稳定可靠,而每一次的实际飞行,准备工作繁琐,且容易出现炸机,造成损失,有了HITL就可以提前测试出软件是否有bug。
说到底,会大大加速开发以及测试的方便。
SITL、HITL有不足吗?
标准的HITL,是由遥控器,连接飞控硬件,然后连接到PC端的地面站程序,根据遥控指令,通过返回的虚拟数据,计算出PWM指令,发送给PC端的仿真程序,飞行器的模型则是在PC仿真程序中计算的,这样由PWM得到模型的姿态与运动学,并进行显示。
这种HITL有个缺点就是:
首先需要PC端具有这一段仿真程序,即接收模型输入,计算模型输出。如果是SITL,则还要包含飞控程序,这样的话,开发工作量较大;
其次就是不具备实时要求。飞控程序有实时性要求,在这种环境下的测试,则只依赖与PC端的实时能力了。
有没有更简单、准确的方法?
答案就是,在HITL的基础上,将模型的计算也放入到飞控中计算,这样可以飞机的姿态和运动学数据正常发送给地面站,地面站只需要做显示即可。因此,开发上不需要额外做太多工作,其次也能达到仿真测试的目的。这种,就是俗称的硬件仿真SIH。
SIH有什么问题?
从测试角度来说,被测试的对象,飞控程序引入了额外的模型的计算代码,并需要对自身的业务逻辑进行一些修正,以便实现仿真功能。这样与你实际工作时的飞控代码其实是不一致的,但是个人觉得优势很明显,所以这个不太重要。
如何开发?
如果是SIH的话,只需要在飞控代码中写一段模型计算的代码即可,这里不再赘述,可以参看一些数学模型的推导等论文,进行编程实现。
HITL/SIL能够仿真出哪些指标?
故障诊断的测试;
导航/控制算法的测试;
业务逻辑功能代码的测试;
有一条需要注意,就是你没办法模拟出真实的飞行性能与手感,这些与你采用的模型精确度,以及仿真环境的精确度有关。
across说:一个有趣有用的公众号,分享笔者在无人机、无人驾驶、机器人等领域的技术开发心得与见解。扫描下方二维码,即可关注本公众号。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表