连接Xplane与simulink
Xplane拥有不错的视景、飞机外形建模,飞机种类也较多,支持座舱内部视角,也支持多种外部视角(跟踪、环绕等),可以模拟不同情况的风、雨雪等天气,也可模拟飞机重心、重量变化,甚至可以模拟多种飞行中的故障,尽管其飞机动力学模型可能并不逼真,但拥有如此多全面且易用的功能也足以成为一个好用的模拟平台。另一方面,simulink作为常用的控制律设计软件,配合上MATLAB强大的数据分析功能,可以对飞机进行全面的仿真、辨识与控制工作,唯一的缺点就是MATLAB无法提供丰富的飞机模型和3维视景。所以,联合使用Xplane与simulink是将两个软件进行优势互补,最终形成一个完整、易用的仿真、辨识与控制平台。本文参考网络资料,给出可用的simulink文件以及网络设置方法,具体如下。
文末将提供以上simulink文件,其有4部分组成:
红框,simulink实时模块
将这个模块放入simulink模型中,模型就会以实际时间运行,因为Xplane是以实际时间模拟飞机运动的,所以这个模块必不可少。(某些电脑在加入这个模块后,运行会导致电脑重启,暂时找不到解决方案)
绿框,simulink向Xplane发数
这部分负责将舵偏、油门的数值发送给Xplane,需要设置simulink的发送端口、Xplane的接收端口及其他信息,可以参考如下设置
Simulink中设置远端IP和端口
Xplane中设置接收端口
蓝框,simulink接收Xplane发数
这部分负责接收Xplane发送的飞行参数并解码,可以参考以下设置:
设置Xplane数据输出,勾选上图中“通过UDP网络”的8个框,即将这些参数进行输出,在右侧选择输出速率和网络配置。
设置simulink数据接收,端口号、IP等都要与Xplane数据输出相匹配
紫框,控制系统
这部分封装了一个简单的控制系统,如下图
此控制系统可以保持机翼水平,并将空速和俯仰角控制到期望值。控制俯仰角按方波变化的效果如图
蓝线为期望俯仰角,黄线为实际俯仰角
其他说明
Ini.m文件负责进行初始化,指定升降舵配平值和油门配平值
参考资料:
https://github.com/alireza787b/X-Plane-11-Simulink-Real-Time-Communication
页:
[1]