1 / 13
文档名称:

APM飞控源码分析.docx

格式:docx   大小:48KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

APM飞控源码分析.docx

上传人:liuquan9999 2022/6/22 文件大小:48 KB

下载得到文件列表

APM飞控源码分析.docx

相关文档

文档介绍

文档介绍:APM飞控系统介绍
APM 飞控系统是国外的一个开源飞控系统,能够支持固定翼,直升机, 3 轴, 4 轴, 6 轴飞行器。在此我只介绍固定翼飞控系统。
APM飞控系统主要结构和功能
组成
功能
飞控主芯片
面,使飞机迅速达到这个爬升角,而尽快完成高度偏差的消除。但飞机的高度升高或降低后,必然造成空速的变化,因此采用油门来控制飞机的空速,即当空速低于目标空速后,在当前油门的基础上增加油门,当前空速高于目标空速后,在当前油门的基础上减小油门。这种控制方式的好处是能对高度的变化进行第一时间的反应,因此高度控制较好,缺点是当油门失效时,比如发动机熄火发生时,由于高度降低飞控将使飞机保持经过限幅的最大仰角,最终由于动力的缺乏导致失速。
但是以上仅仅是控制理论。在实际控制系统中,由于有些参量并不能较准确地测得,或者测量时数据不稳定,所以并不能完全按照上述的控制理论控制。例如空速的测量时相当不准确的,而且数据波动较严重,这样,就无法完全按照上述理论
进行控制,必须在其基础上进行适当修改。以下以使用空速计情况和不使用空速计情况对 APM飞控系统进行阐述。
(1),使用空速计情况
在 使 用 空速 计 的情 况 下 , 升 降 舵 是 由 空 速 控制 。
update_current_flight_mode() 调用 calc_nav_pitch(
) 调用 nav_pitch
= -
(airspeed_error, dTnav)
。 nav_pitch 就是导航
俯仰角,也就是说,使用空速计时,
APM系统对利用空速偏差 airspeed_error

为输入量进行导航级的俯仰角控制。
在使用空速计的情况下,油门是由飞机机械能偏差控制,也就是空速误差和
高度误差共同决定。 update_current_flight_mode( )
调用 calc_throttle( )
调用

=

+
(energy_error, dTnav);

+=(
*
);
式 中 energy_error = airspeed_energy_error
+
( float )altitude_error
*
,是空速动能偏差,加上飞机重力势能偏差。可以看出,油门是由设定的巡
航油门 、机械能偏差 PID 调节量和升降舵通道补偿共同决定,
但是巡航油门是设定值,是固定的。 默认是 0,所以,实际上油门的增减是由机械能偏差控制的。
所以,使用空速计时, APM飞控系统的油门升降舵控制属于空速控制升降,机械能控制油门方案,类似于第一种控制方案,但是又有点区别。
(2),不使用空速计情况
不使用空速计时,升降舵是由高度偏差控制。
中 调 用 calc_nav_pitch( )

update_current_flight_mode( )
调 用 nav_pitch =
。所以升降舵的控制,
是由高度误差 altitude_error 作为 PID 调节的输入量。
不使用空速计时,油门是由导航俯仰角控制。 update_current_flight_mode( )
调用 calc_throttle( ) 调用
if (nav_pitch >= 0)
{
= throttle_target +
( - throttle_target) * nav_pitch / ;
}
else
{
= throttle_target -
(throttle_target - ) * nav_pitch / ;
}
可以看出此时的油门控制是利用的是比例调节,依据的比例关系是
= 。
二,如何让飞机飞往目标
要使