用Simulink+KSP体验飞行器控制

KSP是一款航天爱好者喜闻乐见的游戏,它有个mod叫KRPC,提供了API供外部程序调用用以操纵游戏内的飞船。最近找到一个simulink版本的api客户端实现(其实就是把python的api函数用matlab调用再封装一次):XXXXXXXXXXXXXXXXXX/himemiyachikane/KRPCSimulink

于是来玩一玩:

首先实现个最简单的控制,空中定高,用两个带输出钳位的PID环,一个控制垂直速度,一个控制高度,这样一开始可以先定速上升:

image.png

由于现在还没法控制姿态,先用游戏里自带的SAS保持住姿态:

image.png

image.png

看起来很稳


再来个复杂点的,把火箭从发射台开到VAB厂房顶上:

先搭个控制姿态的流图:

由于KSP使用的是Unity引擎,里面用的四元数顺序是(x,y,z,w),而且是左手系,和通常书上的有点不一样,先要处理一下:

image.png

顺便转化成和箭体竖立时一致的Y轴向上的坐标系

KRPC似乎没法以箭体坐标系获取三轴角速度,大概是它认为从箭体坐标系看箭体本身角速度恒为零,于是先得获取从地面看的箭体三轴角速度值再转换到箭体坐标系上。

由于是箭体始终向上的用法,姿态变化不大,这之后可以直接转换成欧拉角与目标欧拉角做差输入控制器。

之后就是:

image.png

1:水平位置环路,根据水平位置误差产生水平速度目标

2:水平速度环路,根据速度误差产生姿态倾角目标

3:姿态环路,根据姿态欧拉角误差产生角速度目标

4:角速度环路,根据角速度误差输出三轴舵量控制矢量喷口和动量轮


用个状态机来控制整个系统:

hj.mp4 点击下载


这个框图的代码:

XXXXXXXXXXXXXXXXXX/gym487/KRPCSimulink/

运行:XXXXXXXXXXXx

[修改于 2年8个月前 - 2019/11/05 02:21:25]

来自:综合交流区 / 科创茶话
10
4
yuanfeng
2年8个月前
1楼

更硬核的ksp😄

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
阡陌徘徊
2年8个月前
2楼

大佬真厉害啊

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
以太LYB
2年8个月前
3楼

KSP玩家表示支持,明年KSP2发布,可以到时候再用KSP2这么玩。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
薛定谔的猫
2年8个月前
4楼

矩形弹道,好厉害

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
154454496
2年8个月前
5楼

这就是一个完美的火箭控制算法仿真平台啊

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
UIC
2年8个月前
6楼

+惯性导航获取位置=导弹

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zx-16533作者
2年8个月前 修改于 2年8个月前
7楼

引用 154454496 发表于 5 楼的内容:
这就是一个完美的火箭控制算法仿真平台啊

仿得并不真,但是好玩

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
一只小咩
2年8个月前
8楼

干得漂亮!多年前游戏之作,没想到真的发挥了作用

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
170050051624
2年8个月前
9楼

车可以控制吗?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
zx-16533
进士 学者
文章
125
回复
2668
学术分
4
2010/08/22注册,1年1个月前活动
暂无简介
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
加入关注取消关注
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
建议修改
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}