智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6788|回复: 18
打印 上一主题 下一主题

四轴系统入门基本知识,理论分析,非航模知识

[复制链接]

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
76
威望
42
贡献
26
兑换币
25
注册时间
2015-10-20
在线时间
4 小时
跳转到指定楼层
1#
发表于 2015-10-20 17:08:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 MQBdiy 于 2015-10-20 17:13 编辑

我的博客文章,分享给大家。也希望能和大家进行技术交流。
四轴(1)-飞行原理

总算能抽出时间写下四轴文章,算算接触四轴也两年多了,从当初的模仿到现在的自主创作经历了不少收获了也不少。朋友们也经常问我四轴怎么入门,今天就简单写下四轴入门的基本知识。尽量避开专业术语和数学公式。

1、首先先了解下四轴的飞行原理。

四轴的一般结构都是十字架型,当然也有其他奇葩结构,比如工字型。两种的力学模型稍微有些不一样,建议先从常规结构入手(其实是其他结构我不懂)。

常规十字型结构 其他结构


常规结构的力学模型如图。


力学模型

对四轴进行受力分析,其受重力、螺旋桨的升力,螺旋桨旋转给机体的反扭矩力。反扭矩影响主要是使机体自旋,可以想象一下直升机没有尾桨的情况。螺旋桨旋转时产生的力很复杂,这里将其简化成只受一个升力和反扭矩力。其它力暂时先不管,对于目前建模精度还不需要分析其他力,顶多在需要时将其他力设为干扰就可以了。如需对螺旋桨受力进行详细研究可以看些空气动力学的书,推荐两本,

空气螺旋桨理论及其应用    (刘沛清,北航出版社)

空气动力学基础上下册 (徐华舫,国防科技大学)

网易公开课:这个比麻省理工的那个飞行器构造更对口一些。

荷兰代尔夫特理工大学公开课:空气动力学概论

以上这些我是没看下去,太难太多了,如想刨根问底可以看看。

解释下反扭矩的产生:

电机带动螺旋桨旋转,比如使螺旋桨顺时针旋转,那么电机就要给螺旋桨一个顺时针方向的扭矩(数学上扭矩的方向不是这样定义的,可以根据右手定则来确定方向)。根据作用力与反作用力关系,螺旋桨必然会给电机一个反扭矩。

在转速恒定,真空,无能量损耗时,螺旋桨不需要外力也能保持恒定转速,这样也就不存在扭矩了,当然没有空气也飞不起来了。反扭矩的大小主要与介质密度有关,同样转速在水中的反扭矩肯定比空气中大。

因为存在反扭矩,所以四轴设计成正反桨模式,两个正桨顺时针旋转,两个反桨逆时针旋转,对角桨类型一样,产生的反扭矩刚好相互抵消。并且还能保持升力向上。六轴、八轴…类似。

我们控制四轴就是通过控制4个升力和4个反扭矩来控制四轴姿态。

如力学模型图,如需向X轴正方向前进,只需增加桨3的转速,减少桨1的转速,1、3桨的反扭矩方向是一样的,一个加一个减总体上来说反扭矩没变。此时飞机已经有向X轴方向的分力,即可前行。

如需向X轴偏Y轴45°飞行,那么增加桨2、3的转速,减少桨1、4的转速,即可实现。

如果将X正作为正前方,那么就是”十”模式,如果将X轴偏Y45°作为正前方向,那就是”×”模式。理论上这两种都可以飞行,”十”模式稍微比”×”模式好计算,但是”十”模式不如”×”模式灵敏。

四轴如需向任意方向飞行只需改变电机的转速,至于电机转速改变的量是多少,增量之比是多少就需要算法了。对于遥控航模,不需要知道具体到度级别的方向精度,飞行时手动实时调节方向即可。

四轴除了能前后左右上下飞行,还能自旋,自旋靠的就是反扭矩,如需顺时针旋转,只需增加桨1、3转速,减少2、4转速,注意不能只增加桨1、3而不减少2、4,这样会造成总体升力增加,飞机会向上飞的。

理想情况下,四轴结构完全对称,电机转速一样,飞机就可以直上直下飞行。但事实和理想还是有差距的,不存在完全对称的结构,也没有完全一样的电机螺旋桨。所以需要飞控模块进行实时转速调节,这样才能飞起来,不像直升机,螺旋桨加速就能飞。

2、分析完飞行原理,接下来分析四轴飞行器系统的主要部件。

四轴整体系统如所示,整个系统主要包括:飞控、电机、电机驱动、电池、遥控接收机、无线模块、机体(图中没画出来)。

对于diy类大四轴,电机主要用无刷电机,电机学分类是同步电机,这类电机机械特非常好,一般这类电机驱动用的是成品电调,全称电子调速器,给电调输入50Hz 的PWM信号通过调节脉宽调节电机转速。四轴上电机是不用考虑反转的。

同步电机模型各种运动控制书上都有,但这里我不打算直接对电机建立模型,原因是即使模型建立出来了,电机参数也不能很好的测量,会导致计算结果和实际有较大的偏差。我们实际关心的是电机外部特性。知道外部特性然后应用此外部特性即可。

对于电机执行机构,我们可以测量输入输出响应,这里输入是PWM脉宽,输出是转速,也可以把升力和反扭矩当做输出。如果把转速当做输出,那么还需要测量转速与升力和反扭矩的关系,因为最终是力影响的姿态而不是转速。测量升力的时候一定要分地面和空中两种情况测量。不同的地面和空中气流是不一样的,越低地效越明显,要问为什么自己看动力学书籍去。电机模型相关东西我会另写一篇文章,这篇主要是一些入门知识。

初学者可以不必管电机模型,知道pwm给的越多升力越大就可以了。

对于小四轴,电机一般用的是直流电机,这类驱动可以用mos管自己搭就可以了。pwm频率就不必限制到50Hz,可以5k、50k甚至更高。

四轴上一般是单电源供电,飞控板供电可以用带BEC输出的电调上的电。小四轴就自己画个稳压模块。

其他无线模块主要用于一些附加的功能,比如实时发送各种监测数据,也可以发送图像等等。

有些无人机带云台,实际也是驱动+电机的结构。

下一篇介绍飞控。

除非注明,MQBdiy社区所有文章均为原创,转载请以链接形式标明本文地址

本文地址   http://www.mqbdiy.com/quadrotor_1/

回复

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
76
威望
42
贡献
26
兑换币
25
注册时间
2015-10-20
在线时间
4 小时
2#
 楼主| 发表于 2015-10-20 17:14:30 | 只看该作者
四轴(2)-飞控板及控制原理

飞控板是整个控制四轴最核心的东西,也是它把四轴变得比直升机还好控制。飞控板最主要的功能是计算四个电机的控制量,如何计算就牵扯到各种算法了,这里我不详细展开说。

主控芯片读取各个传感器数据,然后对各种数据进行融合,然后能得出机体的姿态信息,什么是姿态信息呢?就是给你一个坐标系,给你一个已知长宽高的长方体,给你姿态信息,然后你就可以在坐标系里把这个长方体画出来了,你知道在哪个位置上画,也知道是怎么放置的,是某个角朝上还是某个楞平行于坐标轴,这些都能知道。这就是姿态信息的意义。

姿态的表示方法有很多,有四元数,欧拉角,旋转矩阵,轴角表示等。各自有各自的优缺点。且都能相互转换,有相应的公式。四元数,旋转矩阵在数学计算上比较方便。欧拉角物理意义最为明确,直观,方便用于控制。所以,可以用四元数,旋转矩阵来进行计算,将结果转化为欧拉角,用欧拉角进行PID控制。

欧拉角的叫法比较多,在航空上一般叫做:

俯仰角(pitch)、横滚角(roll)、航向角(yaw)。

还有一种叫法:

章动角、旋进角、自转角。

还有其他的,一共有12中表示,这里举了两个例子,其他的可能有名字也可能只是数学符号。名字不同物理意义也不同,这里的横滚角和旋进角不是一个东西,不要混用。

这个图表示的是章动角,旋进角,自旋角

这个图表示的是俯仰角、横滚角、航向角

pitch

roll

yaw

如图,

绕X轴旋转的叫做横滚(roll),

绕Y轴旋转的叫做俯仰(pitch),

绕Z轴旋转的叫做航向(yaw)。

注意:这里的x、y、z轴指的是原始坐标轴,也就是固定不变得坐标轴,而不是随机体变化的坐标轴。章动角那一系列坐标轴是变化的,要分清。

用这三个欧拉角就可以表示机体的姿态了。

实际上姿态信息一共六个,除了这个三个欧拉角信息外,还有三个位置信息,即x、y、z坐标。为了方便,后面所有的姿态信息都不包括位置信息,两者分开说。


通过三个欧拉角任意组合,就可以表示不同的姿态了,由于刚体转动不可交换定律,欧拉角旋转是有顺序的,同样的角度,不同的旋转顺序是不同的。先俯仰30°再横滚40°,与先横滚40°再俯仰30°表达的姿态是不一样的。但是在小角度可以近似,小角度情况下,刚体转动是可交换的。深层原因暂时先不推导,可以看下理论力学课本。后面文章补上。

欧拉角的求法,这个淘宝上有串口输出欧拉角的惯性模块,用的是mpu6050的dmp,很方便,几十块钱也不贵,就是频率有些低100Hz,对控制要求不高可以试试。

如果要自己编程也可以,网上有很多C函数,输入惯性数据,输出就是角度。惯性数据针对不同的函数要求不同,有的要求陀螺仪、加速度计,有的要求陀螺仪、加速度计和电子罗盘,有的还可能要求更新时间作为输入参数。这就看具体函数具体形式了。注意这些数据并不一定用的原始数据,可能需要简单的一些平滑滤波或其他滤波,传感器也需要矫正的。这里的滤波和卡尔曼滤波、互补滤波等不是一个东西,分不清的话可以把卡尔曼滤波等叫做卡尔曼算法,互补算法,这样更明确。我入门时用的是IMU和AHRS互补算法。资料挺多的,可以网上搜下。后面我会专门分析下这俩算法。挺巧妙的。

如果也不想用现成的算法,也可以自己设计下算法,普遍的方法有卡尔曼滤波(KF)、拓展卡尔曼(EKF)、采样卡尔曼滤波(UKF)、粒子滤波(PF)以及简单的互补滤波及其变形。关心姿态算法的可以多看看这些资料。

简单介绍下各个传感器的作用:

陀螺仪:测量机体三维角速度。

加速度计:测量重力加速度在机体坐标轴上的分解加速度(不考虑外部加速度)。

电子罗盘:测量磁场在机体坐标轴上分磁场强度。

这三者结合通过一些算法可以得到机体姿态。有的只用到陀螺仪和加速度计,这样计算出的姿态yaw是不准的,会随着时间慢慢飘移,在一些小四轴中很常见,小四轴中体积小电子罗盘容易受到电机干扰,所以不用。yaw即使慢慢飘移也不要紧,可以通过遥控器调整。小四轴一般飞行距离不会太远。甚至有的四轴只用到陀螺仪,例如KK四轴,这样三个角度都会慢慢飘移,需要更高的控制技巧了。

气压计:测量高度,坐标系中的Z轴值大小。

GPS: 测量机体位置,坐标轴的X、Y坐标,高度信息一般用气压计代替。

摄像头:测量机体位置信息,坐标轴中的X、Y、Z,精度比GPS高。室内也可以工作。


现在有了欧拉角,那么怎么进行控制呢?这里我们只考虑小角度情况下,小角度没有绝对的界限,为了方便说明,这里定到30°以下吧。也就是说我们的机体始终保持pitch、roll在30°以内,yaw暂时不管。

先一个一个角度的看,拿pitch来说,以Y轴为对称轴,2、4电机关闭。pitch对应的是螺旋桨1、3,设1桨抬头时pitch为正,设定的目标值是pitch = 0;当前pitch – 0 = pitch;1桨抬头那么就把差值pitch乘以系数Kp,折算到pwm值上。然后1桨原pwm减去这个值,3桨加上这个值就可以了。这里的Kp就是PID中的P参数,这个Kp的物理意义也包含了单位转化,从角度的量纲转化到脉宽的量纲。这只是进行了P调节,还可以加上I和D调节,具体参考网上各种各样PID实现代码。

由于四轴对称性,roll和pitch一样,pitch只管1、3电机,roll只管2、4电机,互不影响。当两个轴分别能调平衡这个四轴就能水平飞行了。当然还可能会自旋。这是因为没有对yaw进行调节。

对角反扭矩是一样的,即1、3一样,2、4一样。这样我们可以看成只有两个扭矩,一正一反。当扭矩不为零时,四轴会旋转,yaw也会变化,根据yaw的变化值进行PID调节,算出的量同时加减在对角桨上。对角的螺旋桨转速同时变化是不会影响水平角度。

将三个欧拉角分别进行PID控制,将计算的量叠加到电机信号pwm上即可,事实上pwm占空比与升力的关系并不是线性的,占空比变成二倍,升力不一定变成二倍。但可以近似成线性,毕竟还有pid万能的调参呢。

这是对欧拉角进行pid控制的原理。也是最简单,最明确的方法。

对于pid调参提些建议,pid控制一定要在欧拉角准确的情况下控制,欧拉角都不准还调个屁。调单轴PID时可以搭个平衡木,将四轴的六个自由度转化为一个,(六自由度分别为,空间坐标x、y、z,绕xyz的角速度)。调参不一定先调P,调到等幅振荡时再调I或D,这种方法在四轴上很难行的通,基本上调到等幅振荡基本不可能(这是我的实验结果)。通过对四轴建模你会发现,整个系统最终简化为二阶系统,表明单P控制是不可能稳定的,最少PD控制才能稳定, 这样调参时你可以PD一起调,在稳定之后慢慢改参数。

另外有些人做PID控制时把陀螺仪输出的角速度作为D控制,理论依据就是角度的微分就是角速度,不严格的话可以这样说。这样做控制效果确实比用D控制好,但是这种控制方法不应该叫做PID控制,实际是PI控制加角速度反馈控制。这是两个控制器。设采样周期和控制周期一样,对于数字陀螺仪来说,这里的采样周期就是读取陀螺仪寄存器里的数据的读取周期。数字陀螺仪的本身采样周期是通过相应寄存器配置的。所以并不是读取周期和控制周期一样,角速度就等价于微分D除以时间。

解释下为什么要限制到小角度,因为控制时,是针对三个欧拉角分别控制的,是同时计算,是不分先后顺序的,计算结果直接叠加。这种控制只有在小角度下才有效。

最后说一下遥控器,遥控器分手柄和接收头,接收头每一个通道对应遥杆一个方向。接收头的信号是50Hz PPM(脉位调制)信号,不同的摇杆位置对应不同的脉宽,MCU通过采集脉宽就可达到信息的传递。

50Hz也就是一帧20ms,每2ms对应一个通道,理论上最多10通道,但是同步脉冲也需要就时间,所以最多9通道。这些通道pwm是错开的,所以不用担心多个脉冲的上升沿同时到来。

有些DIY的是数传遥控器,发送的是数字信息,直接通过数字传递消息,例如典型的NRF24L01遥控器。

先介绍到这,后面继续补充。


除非注明,MQBdiy社区所有文章均为原创,转载请以链接形式标明本文地址

本文地址 [url=http://www.mqbdiy.com/quadrotor_2/]http://www.mqbdiy.com/quadrotor_2/[/url]




补充内容 (2015-10-20 21:13):
关于旋转坐标轴,需要更正下,不是围绕原始坐标轴旋转。原文:“注意:这里的x、y、z轴指的是随机体变化的坐标轴。每次旋转后产生一个新的坐标轴,再次旋转是围绕新的坐标轴”,自己的帖子居然都不让改,太不友好...
回复 支持 反对

使用道具 举报

28

主题

2228

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
15822

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章资源大师奖章

QQ
威望
7433
贡献
4215
兑换币
5195
注册时间
2013-12-9
在线时间
2087 小时
3#
发表于 2015-10-21 12:06:39 | 只看该作者
正好需要学习
回复 支持 反对

使用道具 举报

0

主题

356

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5251
威望
2761
贡献
1652
兑换币
1908
注册时间
2013-10-28
在线时间
419 小时
毕业学校
电大
4#
发表于 2015-10-22 00:59:58 | 只看该作者
:):):):)
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
26
威望
16
贡献
8
兑换币
8
注册时间
2015-10-25
在线时间
1 小时
毕业学校
华南理工大学
5#
发表于 2015-10-25 18:45:41 | 只看该作者
讲的浅显易懂,外行的人也基本能明白个大概,
原理结合编程,
希望楼主以后能有更多 的经验同我们分享,
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

高级会员

Rank: 4

积分
525
威望
257
贡献
154
兑换币
161
注册时间
2014-11-18
在线时间
57 小时
6#
发表于 2015-10-28 00:08:44 | 只看该作者
终于有方向怎么学了,谢谢楼主,为中华民族的伟大复兴贡献了自己的力量
回复 支持 反对

使用道具 举报

0

主题

356

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5251
威望
2761
贡献
1652
兑换币
1908
注册时间
2013-10-28
在线时间
419 小时
毕业学校
电大
7#
发表于 2015-10-28 00:30:28 | 只看该作者
:handshake
回复 支持 反对

使用道具 举报

1

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2028
威望
975
贡献
691
兑换币
650
注册时间
2015-6-10
在线时间
181 小时
毕业学校
wuhan
8#
发表于 2015-11-3 13:11:40 | 只看该作者
说的易懂真好,很多资料看了一头雾水,还不知道个所以然
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
威望
149
贡献
75
兑换币
85
注册时间
2013-3-6
在线时间
39 小时
9#
发表于 2015-11-4 16:20:31 | 只看该作者
楼主太帅啦,讲得这么清晰,详细
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
45
威望
25
贡献
14
兑换币
14
注册时间
2015-11-16
在线时间
3 小时
毕业学校
大连理工大学
10#
发表于 2015-11-16 16:00:46 | 只看该作者
谢谢楼主提供,讲得真好。即好懂又说明问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 04:44 , Processed in 0.238013 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表