【Simscape】用Simscape实现三维物理仿真(六)——四旋翼定点悬停控制

仿真文件下载:(与毕设相关,延迟发布,敬请谅解!) 


上一篇博客是:【Simscape】用Simscape实现三维物理仿真(五)——双闭环倒立摆控制系统

       笔者承诺做一篇关于的飞行器的Simscape仿真,后来花了一整天做。确实要复杂一些。而且有一些小细节在设计仿真前很难注意到。这个系列的教程做完这一期就算完结了,有读者反应后面几篇博文技术有些跳跃,笔者的建议是从第一篇看起,因为在前几篇博文中提到的操作在下一篇博文中会被省略。下面开始进入正题。

1 导入机身并配置

(1)使用SolidWorks绘制一个机身(这个的过程确实省略了,逃)

(2)将其另存为STEP格式,只有这个格式可以被读取。

(3)在新建好的Simscape工程中找到一个Solid模块,将其导入:

 (4)在飞机的中心和四个电机位置分别设置坐标系:

2  添加螺旋桨以及参考地面

添加螺旋桨得到目的是为了方便标记机头方向,在后续的仿真中提供便利,用扁圆柱即可,添加参考地面是为了方便观察飞行器的姿态。

(1)螺旋桨不同的旋向使用的不同的颜色区分。并按照顺序连接:

(2)先给大家看一下连接好的样子:

3 添加关节

       四旋翼我们习惯是采用欧拉角来定义它的姿态,所以我们就不采用球关节了,此外飞机还有三个平动自由度,所以笔者在此给出一种相当方便的坐标系设计:

      这是经过多次尝试得到的最好方法,但是其仍然有一些缺陷,比如在控制的参数设置的不合适的时候,会出现死锁(Gimble Lock)现象。当然这是欧拉角坐标系的通病。

      这个级联关节组的基础坐标(B)与世界坐标系绑定,从动坐标系(F)连接到四旋翼的中心坐标系。

4 添加力,扭矩和传感器

       这个部分笔者需要多说几句,实际的飞行器中,航向扭矩的来源非常复杂,它既包含整个四旋翼系统因角动量守恒产生的扭矩,也包括旋翼与空气作用产生的相对扭矩。笔者曾经将这两者全部考虑进仿真,结果是仿真3秒所需要的时间差不多可以看完一场泰坦尼克号,因此为了避免仿真时间的爆炸,笔者最终采用了人工解算扭矩的办法,并且留出扭转系数可供编辑(不同机型的系数是不一样的)。

       传感器我基本全部引了出来。用不用看算法如何设计。

      最终的四旋翼飞行模型的连线是这样的:

5 封装成子模块

子模块方便调用,也可以很直观的看到四旋翼系统的输入与输出。

(1)Ctrl+A选中所有,鼠标右键,选择“将选中部分转换为子系统”:

(2)这样我们可以看到现在四旋翼模型已经是一个只有输入输出的整体了:

 6 添加反馈控制律

笔者在这里就用一个简单的PD控制算法做了姿态和位置的闭环,这个算法的设计属于基本操作,笔者不再赘述。设计好的整体结构如图所示:

这是整个过程中姿态和位置的曲线,可以看到都是收敛的,这套参数显然不是最优,只是给大家看个效果。 

 这是仿真的效果:

(不得不说,Simscape真是个厉害的功能,这个的设计人员相当强大!要是Simscape能支持一下渲染就更香了,嗯~)

Simscape的教程到这就结束了,这是我填坑的第二个系列,爱你们!

                                                                   ——ReadAir 2020/3/9 22:56


我是ReadAir,如果这篇教程能帮到你,请在右上角为我点个赞,谢谢!(求关注)

发布了51 篇原创文章 · 获赞 270 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/ReadAir/article/details/104755710
今日推荐