直升机的一揽子:从控制到性能估算
徐枭涵2020/01/16原创 航空技术 IP:香港
关键词
无人机直升机控制px4

一直对直升机颇有兴趣,之前在知乎上也写过一些直升机相关的文章,最近打算认真做一个进行无人机集群的试验。四轴做试验飞行时间实在是太痛苦叻

把实验室一台落灰许久的泰世 X3电直折腾了起来,装了个飞控,娱乐时间拿来折腾下直升机飞控算个消遣,倒是可以实现手动姿态-高度控制和GPS悬停了。对于这个问题,也有了一番体会。


这篇文章写完是个大工程,我以后抽空更新吧。


首先声明,此文章只能代表我最近大半个月忙里偷闲对直升机的经验,也算是自己小小的一个总结,我对小型电动直升机也是十足的新手。此文章仅仅描述的是和常见的小型多旋翼飞行器(phantom比如)相近的一千克左右量级的小型电子直升机。而答主浅薄的经验也只是片面之词,诸位仅供参考。欢迎有经验人士查漏补缺
我们用于实验的飞机尺寸参数如下

image.png


把450级别的小电直控起来,变成一架无人机,并非是一件太难的事情。


我们在谈论控制的时候,一般很少谈论的是控制本身,而是和控制相关的一揽子:观测,规划与控制。而这三者其实最简单的反倒是控制本身。


在实践中,多旋翼的飞行控制会被分成几个模块,用于位置控制的位置和速度控制器,他们的输出一般是飞机给定的姿态与油门量。(btw,固定翼一般是没有XY平面速度的控制器的,直接从位置输出到姿态)


姿态控制


首先说明,我自己的姿态控制器是在px4的mc_att_control(PX4/Firmware)基础上修改而来,代码在我的github上,文后有链接。

首先说,直升机和多旋翼控制最大的不同在于多旋翼基本上使用螺旋桨转速控制一切,而直升机主旋翼转速是固定的,靠旋翼和尾翼攻角的改变控制。从此带来的一系列问题。

用于多旋翼飞行器或者小型固定翼无人机姿态的控制器则分为内环和外环,内环是角速度控制,外环为姿态控制。(名词暂时不做具体解释,等有空了再写成科普)。而这个里面真正需要大量调节的其实是姿态控制器的内环角速度环,还有位置控制器的速度环。因为这两个是和飞机动态最相关的。

直升机和多旋翼飞机有类似的动力学特性(虽然事实上因为陀螺效应的原因直升机的控制力矩和真实偏转的姿态方向有90度的相位差,还有十分复杂的挥舞问题,但在悬停状态下表现的特性十分接近),在SO(3)空间内完全可控的姿态(也就是你可以让飞机在空中保持任何你保持的姿势,传统意义上的固定翼飞行器则不行)。在实践中,我发现几何上有一点复杂性的SO(3)控制直升机可以完全沿用多旋翼的控制器。也就是一个SO3上的角度差的P控制器足以解决问题。

关于姿态控制可以参考 @YY硕 的论文
多旋翼姿态控制时先tilt再torsion有什么好处? – YY硕的回答 – 知乎 XXXXXXXXXXXXXXXXXXXXX/question/61819700/answer/191420312
有所不同的是在角速度控制上面,本身角速度控制是一个简单的PID控制器,分别控制飞机的roll pitch yaw的旋转,控制率本身没什么好说的。

不同的是

    一则,是直升机的螺旋桨旋转会带来巨大的陀螺仪噪音,根据转速不同有变化,比如我的Gaui X3使用1880kv,4s电池在70%的转速飞行,大约是36hz的额外噪音,需要使用滤波器剔除掉。而如果使用的飞控减震效果不好的话,巨大的噪音会直接把姿态估计搞歪(比如使用pixhawk1的话roll会歪30度,使用内置减震的pixhawk 2.1则无此问题)。这虽然不是控制问题,但观测不足带来的系统控制偏差比控制器调的烂其实更严重。

    二是,对于无论多旋翼还是固定翼而言,总推力值的改变都会带来飞机三轴灵敏度的改变。需要针对不同的油门情况改变角速度的控制参数。


不同的是直升机的油门控制被拆分为总距(定速情况下可以理解为旋翼的平均角度)和旋翼转速。而旋翼转速在飞行中是固定不变的。

对于多旋翼而言,thrust油门量的改变会直接放大roll pitch 控制量的灵敏度(因为控制量是线性叠加到油门量上,而电子调速器的性质下推力和油门量的关系是非线性)yaw则不会受到影响,因为电子调速器的控制量对应的是线性的螺旋桨反力矩。和yaw控制力矩的产生是线性的。

所以在mc_attcontrol中,有一个pid_attenuations的函数用于在thrust增加时减小roll pitch的pid参数的大小。

对于直升机而言,这个关系完全不同。直升机的推力改变有两种方式(请参阅推力控制部分),其中总距的改变并不会造成roll pitch 灵敏度的改变–因为总距也好roll pitch 的控制量也好都来自主旋翼攻角的改变。主旋翼作为一块旋转的机翼,在失速前升力对攻角当然是线性的。


但总距的改变会带来额外的yaw反力矩,从而造成改变的yaw力矩(不过调好的yawrate的pid控制器甚至不需要前馈就可以处理的很好。)

直升机上会转变飞机控制灵敏度的是旋翼转速,当旋翼转速增加后,我们通过调小总距获得悬停,会发现有可能本来能控制的非常稳定的姿态开始震动,这是因为转速增加后因为使用旋翼角度来产生的控制力矩会二次方跟着转速增加。直升机的高度控制通过总距(也是旋翼角度)来实现,也会变得非常灵敏。而直升机的尾桨一般使用齿轮或者皮带和主桨联动,灵敏度也会二次方增加。

所以在直升机通过改变总距获得推力时,pid参数不应发生改变;改变转速后,pid参数应该集体变小。


高度油门控制


前文提到,直升机的高度(油门)控制和多旋翼有本质的不同,在(无论是油动还是电动)直升机上,人们更新使用固定桨速的旋翼,通过改变电直的旋翼攻角(总距)来改变总的推力。

对于电直而言,首先这要求了有定速能力的电子调速器。

(好盈的定速电调,良心到不需要打广告)
一般的航模电调控制量对应于螺旋桨的反向力矩,而电压下降后功率转速都会下降,载荷下降后转速会上升。我在一段时间内使用好盈的固定翼电调控制直升机(无定速功能),在使用中,仅仅听声音就可以听出来在总距减小后由于负载减小,直升机的旋翼转速上升的很明显。这对高度控制是极为不利的。当然有人问是不是可以直接控制转速来控制升力,最大的问题在于直升机的旋翼尺寸大,加速减速都较慢,达不到控制要求。远不如特性良好的舵机。

好在一套40-60A好盈的定速电调也就两三百人民币,足够使用。当使用定速电调后,无论电池电压下降还是总距增加旋翼负载增加,定速电调内置的PID控制器都会努力把转速维持在一个统一的大小。

于是在使用中,我们只需要控制总距就可以改变升力大小。总距的改变也就是直接拉三个舵机即可。
所以在飞行控制中,直升机转速可以是给定的,或者可以由旋钮给出。像我会习惯性使用一个固定的旋翼转速大小,因为在实测中这个旋翼转速和总距搭配可以得到较低的悬停功率。
所以在编写飞控的时候,需要拆开桨速和总距,px4原有的actuator_control(3)通道因为有解锁机制保护还是应该对应于螺旋桨转速,但是这个值应该是固定或者由rc的辅助通道输入,仅仅需要解锁机制保护即可,而总距却应该和thrustsp对应。

另一个问题是,直升机主桨带来的气流和压差会对气压计的高度估计造成大的唯一。
在实践中,发现如此修改后,px4的默认高度控制器足以稳定直升机的高度(而且表现相当惊艳),旋翼对气压计的干扰由于也较为稳定(主要还是pixhawk 2.1的cube气压计做得好)没有让飞机的高度无法控制。


XXXXXXXXXXXXXXXXXX/xuhao1/firmware_heli 是我的px4直升机飞控修改版,在gaui x3上飞的很好,能够在室外大风环境下悬停。



最近在设计一架完全使用电机直驱的直升机,用于集群研究,之后会更新相关的文章在这里,这次就先谈到控制吧。

之后主要要试一下在直升机上使用VIO(视觉惯性里程计),并且把直升机改装成一个真正的自主飞行平台。

2020-1-16.png


[修改于 4年3个月前 - 2020/01/19 16:48:32]

来自:航空航天 / 航空技术
0
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

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

所属专业
上级专业
同级专业
文件下载
加载中...
{{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)}}