我是靠谱客的博主 还单身鸡翅,最近开发中收集的这篇文章主要介绍多旋翼姿态控制中前馈的作用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

多旋翼姿态控制中前馈的作用

PX4中偏航通道的控制使用到了前馈,关于这个前馈环节对系统性能的具体影响,此前我一直理解的比较模糊,直到最近和zing大神交流后才有了新的理解;本篇博文主要来从不同角度解释前馈对系统性能带来的影响。

首先来看姿态环控制的框图(以偏航角为例,图中笔误写成了 θ theta θ,本应是 ψ psi ψ),经典的姿态控制采用的是级联PID的形式,且组合形式为P-PID(关于这样选型的原因我在后续博客中将会进行进一步的阐述);虚线圈出部分为前馈环节。

在这里插入图片描述

首先先回答下面两个问题:

Q:为何偏航通道需要加入前馈?

A:由于偏航通道响应较慢(多旋翼飞行器的俯仰和滚转运动由旋翼的升力力矩产生,偏航运动由旋翼的反扭矩来产生,而升力力矩要比反扭矩大得多(可从旋翼的升力系数和反扭矩系数中看出),这造成了偏航运动能力相比滚转和俯仰运动能力要弱,相应地响应速度就慢),故在偏航通道内环加入前馈环节;

Q:加入前馈有什么优点?

A:直观上来讲,使得控制速度更快,提高了系统的响应速度。

为什么前馈提高了系统的响应速度?

简而言之:控制器的滞后主要来自于积分(分析积分环节的频域响应可知,中高频段的相角滞后严重),前馈的作用是跳过积分器,直接从输入到输出,以提高系统的响应速度。

以上图的系统为例,我们令PID控制器环节的传递函数为 G c ( s ) = K p + K i s + K d s G_c(s)=K_p+frac{K_i}{s}+K_d s Gc(s)=Kp+sKi+Kds

由梅森公式可以直接得到

不加前馈的闭环传递函数为:

G 1 b s = P G c J s 2 + G c s + P G c G_{1b}{s}=frac{PG_c}{Js^2+G_c s+PG_c} G1bs=Js2+Gcs+PGcPGc

不加前馈的开环传递函数为:

G 1 k s = P G c J s 2 + G c s G_{1k}{s}=frac{PG_c }{Js^2+G_c s} G1ks=Js2+GcsPGc

加入前馈的闭环传递函数为:

G 2 b s = P K + P G c J s 2 + G c s + P K + P G c G_{2b}{s}=frac{PK+PG_c }{Js^2+G_c s+PK+PG_c } G2bs=Js2+Gcs+PK+PGcPK+PGc

加入前馈的开环传递函数为:

G 2 k s = P K + P G c J s 2 + G c s G_{2k}{s}=frac{PK+PG_c}{Js^2+G_cs} G2ks=Js2+GcsPK+PGc

首先考虑特殊情况 K d = K i = 0 K_d=K_i=0 Kd=Ki=0,则 G c = K p G_c=K_p Gc=Kp为常数,传递函数为二阶系统,很容易看出加入前馈后系统的开环增益变大(此时加入前馈等价于增加开环增益),这将使系统的响应速度变快,稳态误差减小;同时系统的自然频率变大,阻尼比不变,相应的系统的闭环带宽增加,系统能够响应更多的高频分量使得控制系统的快速性提高。

接下来考虑更一般的情况 G c ( s ) = K p + K i s + K d s G_c(s)=K_p+frac{K_i}{s}+K_d s Gc(s)=Kp+sKi+Kds各项参数均不为0

加入前馈的开环传递函数为:

G 1 k s = P K d s 2 + ( P K + P K p ) s + P K i ( J + K d ) s 3 + K p s 2 + K i s G_{1k}{s}=frac{P K_d s^2+(PK+PK_p)s+PK_i}{(J+K_d)s^3+K_ps^2+K_is} G1ks=(J+Kd)s3+Kps2+KisPKds2+(PK+PKp)s+PKi

不加前馈的开环传递函数为:

G 1 k s = P K d s 2 + P K p s + P K i ( J + K d ) s 3 + K p s 2 + K i s G_{1k}{s}=frac{P K_d s^2+PK_ps+PK_i}{(J+K_d)s^3+K_ps^2+K_is} G1ks=(J+Kd)s3+Kps2+KisPKds2+PKps+PKi

在matlab中选取如下的一组参数来进行分析:

P = 3.5;
Kp=2.5;
Ki=0.55;
Kd=1;
K=0.5:0.5:5;%前馈环节系数
J=0.05;

加入前馈之后系统的开环传递函数伯德图:

在这里插入图片描述

从开环伯德图可以看出,前馈项主要改变了开环波德图的中频段幅值曲线,高频段和低频段的幅值曲线几乎不变;对照之前博客介绍过的三频段理论,可以看出,中频段的斜率变得更缓,使得系统的剪切频率增大,根据高阶系统的经验公式

t s = K t π ω c t_{s}=frac{K_{mathrm{t}} pi}{omega_{c}} ts=ωcKtπ

我们可以看到调节时间变短了,这意味着更快的响应速度,但是相应的系统的相角裕度减小,对应了系统超调量将变大。(相角裕度越大,超调量越小)

加入前馈之后系统的闭环传递函数伯德图:

在这里插入图片描述

从闭环伯德图可以看出,加入前馈后系统的闭环带宽有明显提升,这意味着系统的快速性得到提升,与此同时高频段的幅值没有明显增加,这表明前馈并没有明显放大高频噪声对系统的影响。同样的,加入前馈使系统出现了谐振峰值,表现为时域相应会出现超调。

附上一张时域相应曲线可以更清楚地看出这一点:
在这里插入图片描述

最后

以上就是还单身鸡翅为你收集整理的多旋翼姿态控制中前馈的作用的全部内容,希望文章能够帮你解决多旋翼姿态控制中前馈的作用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部