基于自适应神经模糊推理系统的四旋翼无人机高度控制在树莓派 平台上的实现

1 引言

比例积分微分(PID)[3]类型的控制器在树莓派平台上被广泛用作线性且易于实现的控制器,应用于无人驾驶航空器(UAVs)。四旋翼飞行器的设计由于其旋翼构型简化了控制动力学,四旋翼飞行器在无人机应用中占据主导地位。然而,PID控制器在这些四旋翼飞行器实现中面临着参数优化和调参的挑战[1]。

优化和整定PID参数的方法有多种,例如:科恩–库恩法、齐格勒–尼科尔斯法、泰鲁斯–卢伊本法、自动调谐法、Fer‐tick法、奇安科内和马林法以及内模控制[11]。一些优化算法,如蝙蝠算法、细菌觅食优化、遗传算法、蜂群算法、蝙蝠算法、蚁群优化和混合蛙跳算法,也可用于此目的[9]。这些优化算法通常对噪声和影响系统动力学的自然变异性较为敏感,并对系统的稳定性产生较大影响。近年来,人们重新关注在PID参数的设计与估计中使用神经网络和模糊逻辑。神经模糊控制器对代表动态变化环境的输入数据具有适应性,这被认为在无人驾驶航空器设计中具有实用价值[7, 8, 10]。

本文中,我们提出并报告了自适应神经模糊推理系统(ANFIS)的实现细节,该系统所需的可训练参数较少,并对其进行了分析自适应神经模糊推理系统结构作为四旋翼无人机自适应控制系统一部分的性能。

2 自适应神经模糊推理系统概述

自适应神经模糊推理系统结构结合了模糊逻辑的推理原理和人工神经网络的学习特性。

2.1 模糊逻辑原理

可能存在某些自然现象,若不考虑一定程度的非概率性不确定性,则无法对其进行准确建模。对这类不确定性进行建模的一种方法是使用模糊逻辑。传统的模糊系统会利用语言值,这些值并不精确,也无法用数值表示,例如“较高”、“较低”、“更暖和”等。

这些值基于人类专家的系统知识。模糊值或模糊集没有严格的(也称为清晰的)数值边界,在模糊集中,这些边界是逐渐衰减的。例如,公式1表示严格数值集合A,它包含某个参数x所有大于0的值。换句话说,集合A具有严格的数值边界0。

$$
A = {x | x > 0} \quad (1)
$$

然而,如果集合A是模糊的,则边界条件(>0在该情况下)将是一个连续衰减的函数,如图1所示。在此示例中,模糊集的边界由均值为c、标准差为r且参数为x的高斯函数表示,见公式2。

$$
f_{\text{Gauss}}(x) = \exp\left(-\frac{(x - c)^2}{r^2}\right) \quad (2)
$$

描述模糊集边界条件的函数称为隶属函数(MF)。模糊隶属函数(MF)的值通常分布在0到1之间,而属于该隶属函数的x参数的范围称为“论域”或“论域”X。

模糊集的主要用途是通过所谓的模糊If‐Then规则对特定系统输出集进行条件化处理:

$$
\text{if } X \in {A}, \text{ then } Y \in {B} \quad (3)
$$

第一部分X ∈ {A}称为前提或前提条件,最后部分Y ∈ {B}称为结果或结论。模糊如果‐那么规则的简单示例:“如果铁的颜色是红色,则金属温度高。”在此示例中,X是颜色,A是红色,Y是温度,B是高。

一条规则可以包含多个前提参数,因此某些输出集可以同时作为多个输入条件的结果。基于模糊If‐Then规则的原理,可以获得系统模型的非线性逼近,但精确建模需要上述专家对规则进行精确设置。此外,这种模糊建模的精度可能受到用于系统描述的规则数量和复杂性的影响。

经典模糊逻辑应用的主要缺点之一是对外部专家调整规则的强依赖性。解决此问题的方法是通过学习算法引入规则条件以及输入/输出参数的自调整。

2.2 学习

标记的输入‐输出数据对的可用性为迭代调整系统模型提供了机会。对于给定输入,根据期望输出与实际输出之间的差异(或误差)来调整模型参数。这是用于训练人工神经网络的核心自适应原则。类似的學習方法也可应用于模糊网络。

2.2.1 反向传播

反向传播算法是一种递归获取误差度量相对于特定节点参数在每个节点处的梯度向量的方法。其基于以下逻辑:

参数a的变化 → 节点输出的变化 → 总体输出的变化 → 误差变化

这意味着参数a的变化会引起误差的变化,因此误差可以在网络中反向传播到包含该参数的节点。根据该节点处的微分误差度量,可以调整参数a以最小化整个系统的误差。

反向传播是训练ANFIS结构前提(隶属函数)参数的核心原理。有关集成反向传播的详细说明,请参见[4]。

2.2.2 最小二乘估计器

基于误差反向传播的梯度下降被认为是一种计算速度慢的学习算法。然而,正如稍后将介绍的那样,自适应神经模糊推理系统的输出对结论参数呈线性依赖关系,因此为了加速网络训练,针对这些参数采用了替代的快速线性学习算法,而不是梯度下降。这种针对自适应神经模糊推理系统的线性训练方法最初在[4]中提出并进行了详细描述。

2.3 ANFIS结构

将模糊推理系统与人工神经网络的学习原理相结合,形成了自适应神经模糊推理系统,该系统最初由姜哲提出[4]。图2给出了一个具有2个输入、每个输入2个隶属函数的ANFIS网络示例,该网络对应的由4条如果‐那么规则构成的输入空间分割如图3所示。通常建议使用Sugeno型推理系统,其中模糊规则的结论参数表示为多项式函数:

$$
\text{if } X \in A \text{ and } Y \in B, \text{ then } Z = f(X, Y)
$$
where
$$
f(X, Y) = pX + qY + r
$$

Layer 1 第一层中每个节点的功能是根据相关输入和隶属函数生成输出,见公式4

$$
\text{Out} {1,i} = \mu {A_i}(X), \text{ where } i \text{ is node with } X \text{ input}
$$
$$
\text{Out} {1,i} = \mu {B_i}(Y), \text{ where } i \text{ is node with } Y \text{ input} \quad (4)
$$

每个隶属函数μ可以采用适当的参数化函数表示,例如三角形或梯形。然而,由于梯度下降法的可微性质,建议使用可微的替代函数,如高斯、S形或广义钟形函数。描述这些函数形状的参数称为前提(或前件)参数,并在反向传播误差校正过程中进行更新。

Layer 2 该层节点的功能是计算与某一条特定规则相关联的所有隶属函数输出的乘积,见公式5。所产生的输出可被视为该节点所关联规则的触发强度或规则权重。

$$
\text{Out} {2,i} = \mu {A_i}(X) \cdot \mu_{B_i}(Y) \quad (5)
$$

第三层 第三层节点对每条规则的权重进行归一化,见公式6

$$
\text{Out}_{3,i} = \bar{w}_i = \frac{w_i}{\sum_i w_i} \quad (6)
$$

示意图0

第4层 第4层用于将归一化规则权重与相应的结论参数相乘f。通常,结论参数有两种常见形式:基于一阶或零阶Sugeno模糊模型7。

$$
\text{Out}_{4,i} = \bar{w}_i f_i, \text{ where } f_i = (p_i X + q_i Y + r_i) \text{ for first order model, or } f_i = r_i \text{ for zero order model} \quad (7)
$$

第5层 通常,该层由单个节点组成,该节点通过对前一层所有输出信号进行求和来产生输出,见公式8

$$
\text{Out}_5 = \sum_i \bar{w}_i f_i \quad (8)
$$

从公式8可以看出,系统输出线性依赖于每条规则的结论参数之和,见公式9

$$
\text{Out}_5 = \bar{w}_1 f_1 + \bar{w}_2 f_2 + \cdots + \bar{w}_n f_n = (\bar{w}_1 X)p_1 + (\bar{w}_1 Y)q_1 + (\bar{w}_1) r_1 + \cdots + (\bar{w}_n X)p_n + (\bar{w}_n Y)q_n + (\bar{w}_n) r_n \quad (9)
$$

假设前提参数固定,输入数组和归一化规则权重$\bar{w}_i$将为常数,因此总体输出线性依赖于结论参数$p_1, q_1, r_1, p_2, q_2, r_2, \ldots, p_n, q_n,$和$r_n$。基于此假设,最小二乘估计方法是调整结论参数的可行选项。

梯度下降仍用于更新前提参数。根据链式求导法则,使用以下通用公式10来计算相对于前提参数的微分误差,其中i是与包含参数a的隶属函数相关的规则范围,Out5,d是期望输出,$\frac{\partial \mu}{\partial a}$是隶属函数对参数α的偏导数。

$$
\frac{\partial E_p}{\partial a} = -2(\text{Out}_{5,d} - \text{Out}_5) \frac{\partial \mu}{\partial a} \left( \frac{1}{\mu} \sum_i \bar{w}_i(f_i - \text{Out}_5) \right) \quad (10)
$$

这两种学习方式都被集成到ANFIS网络中。此外,两种学习类型都提供了整合离线、在线和批量学习方法的机会。

2.4 ANFIS优点

ANFIS的模糊特性使其能够在默认网络结构几乎无需调整的情况下,同时处理模糊输入和精确输入输出。此外,ANFIS作为一种机器学习工具,具有强大的非线性泛化能力。而且,由于可调参数较少,并可应用线性学习技术,其学习速度得以加快,尤其是与经典人工神经网络[5]相比。最后,可以从训练后的网络中提取如果‐那么规则,这使得人类操作员有可能解释ANFIS近似系统模型,前提是规则的数量和复杂性不会超出该人类操作员的理解能力。

2.5 ANFIS缺点

默认ANFIS结构的主要缺点是随着输入数量和隶属函数数量的增加,可扩展性差。例如,采用输入空间的网格分割方法将需要$M^N$条离散规则来描述系统,其中M为每个输入的隶属函数数量,N为输入数量。该问题也被称为“维度灾难”,因此自适应神经模糊推理系统的实际应用仅限于少量离散输入。解决此问题的一种方法是尝试不同的分割方法,但这将需要更复杂的算法来为初步系统描述选择隶属函数的数量和类型。

此外,仍然依赖外部专家来设置初始ANFIS条件和规则。最后,由于依赖计算量较大的梯度下降法来调整部分参数,限制了自适应速度,尤其是在高度动态系统的在线学习中。

因此需要一个更快的系统,应考虑使用一些更快速的替代方案来应对复杂的ANFIS结构。

3 自适应神经模糊推理系统实现

基于自适应神经模糊推理系统的飞行控制框架在计算上要求较高,尤其是与默认的控制器(如PID)相比,因此硬件需求显著提高。因此,飞行控制是在树莓派3微型计算机上实现的。由于其紧凑的尺寸、低重量、可控的功耗以及足够的计算硬件和软件支持,树莓派3成为该应用的合理选择。

3.1 树莓派3和Navio2

树莓派是实现机器人设计和项目的流行平台(图4)。可用的硬件使得这种小型计算机能够轻松地与各种传感器和执行器连接。此外,其计算资源和软件支持流行的编程语言和环境,例如Python、C/C++、Java等。而且,由于操作系统基于Unix,因此允许高度的软件自定义。树莓派微型计算机作为紧凑型机器人项目平台的普及,推动了专用兼容硬件和软件的发展,旨在简化此类项目的开发过程。Emild公司的Navio2就是一个用于此类应用的专用硬件/软件套件的绝佳示例。

它包含了实现四旋翼无人机飞行控制所需的所有传感硬件。此外,Emild公开提供了Navio2的软件源代码,因此可以根据具体应用需求对其进行定制。

本项目设计的无人机基于经典的X型四旋翼飞行器模型。四个带有固定螺旋桨的无刷电机安装在机臂的末端,并且负责可变推力的产生。对应电机三相的导线连接到安装在机架四个臂上的30A多旋翼电调。根据这些导线连接方式的不同,电机可以顺时针或逆时针旋转。电机与电调的连接方式为:左前和右后电机顺时针旋转,右前和左后电机逆时针旋转。每个电调使用基于MOSFET(金属氧化物半导体场效应晶体管)的高频快速开关系统,通过控制电源通断的占空比,调节供电功率,从而控制电机转速。电调连接至Navio2的1–4号输出引脚,以获取由遥控接收机(连接至PPM/SB第0引脚)发送、并由树莓派处理的输入信号。

整个系统的电力由固定在底板下方的锂聚合物电池提供。该四芯电池提供14.8伏特电压和5000毫安时容量,最大放电倍率为50C。

四旋翼飞行器电气部件的框图如下图所示。5展示了微控制器与传感器的连接方式以及信号处理过程。

遥控器(RC)通过PPM信号将横滚、俯仰、偏航和推力的目标值确定并传输至Navio2的PWM/S总线输入引脚。随后,该信号会根据Navio2集成传感器所获取的实际测量值进行校准。使用了两个传感器,即MPU9250 9轴惯性测量单元和LSM9DS1 9轴惯性测量单元,它们均包含三轴陀螺仪、三轴加速度计和三轴磁力计,用于获取四旋翼飞行器的偏航、俯仰和横滚特性。采用两个功能相同的传感器是为了获得更精确的数据,以提高四旋翼飞行器的稳定性。无人机的海拔由内置MS5611气压计测量,精度为10厘米,该数据进而影响负责推力生成的信号,以确保平稳上升/下降。

外接天线的U‐blox M8N Glonass/GPS/Beidou模块连接至Navio2,负责保持四旋翼飞行器沿设定航线飞行。这些测量值和目标信号值由树莓派3收集,并进行处理以计算最终信号,再通过Navio2的第1至第4引脚发送给四旋翼飞行器的四个电调(ESC)。

示意图1

3.2 树莓派实现、自适应神经模糊推理系统指标与性能

所提出的自适应神经模糊推理系统网络在python3环境中开发,并部署在树莓派3平台上。部署后,该软件经过了多次测试,以分析其运行性能和兼容性。首先,研究了处理学习过程的能力,

示意图2

包括离线和在线两种情况。最后,应在精度、响应时间和整体稳定性方面与常用的PID控制器进行比较。比较两种控制技术的主要方法是分析稳定化参数,例如调节时间、超调量以及在稳定点周围的振荡幅度。这可以通过比较对控制信号变化的响应来实现。

3.3 离线与在线学习的性能

神经网络有两种主要的学习方法:离线和在线。

3.3.1 离线学习

这种方法基于整个训练数据集产生的累积误差。因此,网络参数仅在训练数据集结束且计算出训练数据集的累积误差后进行调整。同一数据集可以多次使用,以提高给定数据集的训练精度,每次训练迭代称为一个训练周期。

离线学习和训练后的网络的性能可以通过对非线性系统(如混沌时间序列)的预测来进行分析。自适应神经模糊推理系统的离线学习已在Mackey‐Glass微分延迟上进行了测试。目标是训练ANFIS网络基于过去样本数量,以离线方式对混沌时间序列进行预测。在公式11中给出了用于验证自适应神经模糊推理系统在树莓派上性能的输入配置。

$$
[x(t - 18), x(t - 12), x(t - 6), x(t), x(t + 6)] \quad (11)
$$

离线学习的ANFIS网络预测结果如图6所示。该网络针对4个输入、每个输入2个隶属函数进行仿真,通过输入空间的网格划分,共生成16条规则。其均方根误差为0.065。

示意图3

3.3.2 在线学习

这种学习方法用于根据当前输入‐输出数据对产生的瞬时误差来更新网络参数,而不考虑整个训练数据集的累积误差。

类似于离线学习,也对在线学习进行了预测测试。在线预测结果如图7所示。产生的均方根误差为0.188。

对预先离线训练的网络进行额外的在线训练的效果进行了研究。结果如图8所示,其均方根误差为0.104。

从给出的结果可以看出,离线训练提供了最佳性能。然而,如果没有合适的训练数据,在线学习仍可考虑用于预测。与离线学习相比,组合学习导致精度降低。

4 控制系统概述

四旋翼无人机自主控制与稳定化系统的设计是整个无人机设计中最具有挑战性的环节之一。这类设备的飞行力学所遵循的运动学和动力学特性高度复杂且为非线性。此外,它属于欠驱动系统,意味着仅通过四个电机无法直接且独立地控制全部六个自由度,例如俯仰、横滚、偏航角度以及相对于XYZ轴的位置。由于控制相关的这些复杂性,至少需要在基本层面上对四旋翼飞行器的飞行动力学进行分析。

4.1 四旋翼动力学概述

首先,每个电机产生的总推力由公式12给出,其中x是电机转速,b是升力常数。

$$
T = b x^2 \quad (12)
$$

需要注意的是,通常认为Z轴方向向下为正,因此总向上推力由公式13给出,其中mg是无人机的总重量,Ti是每个电机产生的推力。

$$
F_t = mg - \sum_{i=1}^{4} T_i \quad (13)
$$

接下来,给出无人机在XYZ各方向上产生的扭矩,见公式14,其中r为机臂长度,Di是每个电机产生的阻力,k为阻力常数。

$$
\sigma_x = r b (x_4^2 - x_2^2)
$$
$$
\sigma_y = r b (x_1^2 - x_3^2)
$$
$$
\sigma_z = D_1 - D_2 + D_3 - D_4
$$
$$
D_i = k x_i^2 \quad (14)
$$

最后,无人机的状态向量由公式15给出,其中x;y;z;hr;hp;hy为自由度参数,即XYZ坐标和角度,而$\dot{x}$、$\dot{y}$、$\dot{z}$、$\dot{h}_r$、$\dot{h}_p$、$\dot{h}_y$分别为上述参数的变化率。

$$
X = (x, y, z, h_r, h_p, h_y, \dot{x}, \dot{y}, \dot{z}, \dot{h}_r, \dot{h}_p, \dot{h}_y) \quad (15)
$$

4.2 PID控制

对四旋翼无人机进行稳定化的典型技术是为每个旋转角度使用PID控制。根据当前角度及其各自的变化率的测量值,并与期望值D的差值进行比较,控制器调节电机转速以校正无人机的姿态。

许多仿真已提出使用PD控制器代替PID,以简化数学计算并实现更稳健的稳定化[2, 6]。根据该方法,仅针对每个旋转角度使用比例和微分系数Kp和Kd,因此控制方程如公式16所示。

$$
\sigma_x = K_{pr}(D h_r) + K_{dr}(D \dot{h} r)
$$
$$
\sigma_y = K
{pp}(D h_p) + K_{dp}(D \dot{h} p)
$$
$$
\sigma_z = K
{py}(D h_y) + K_{dy}(D \dot{h} y)
$$
$$
T = K
{pz}(D Z) + K_{dz}(D \dot{Z}) \quad (16)
$$

每个控制器对每个电机速度的贡献由公式17给出。

$$
x_1 = \sigma_y + \sigma_z + T
$$
$$
x_2 = -\sigma_y + \sigma_z + T
$$
$$
x_3 = \sigma_x + \sigma_z - T
$$
$$
x_4 = -\sigma_x + \sigma_z - T \quad (17)
$$

4.3 自适应神经模糊推理系统辅助控制

在此设置中,自适应神经模糊推理系统的目的是设计并实现PID/PD控制器的替代方案,使其能够在动态环境中进行最优性能表现。首先,应获取适当的训练数据。可以利用PID控制的四旋翼飞行器来获取训练用的输入‐输出对,其中输入为误差和误差变化率,输出为电机转速的变化量。这些数据可以在不同情况下使用不同的最优PID参数获得。例如,对于高度控制器,可以记录在指令将悬停高度增加1米或减少0.5米时采用不同PID参数所对应的最优PID响应。通过多次响应实验记录此类数据,可为ANFIS控制器生成合适的训练数据。类似于高度控制器,也可以为俯仰、横滚和偏航的ANFIS控制器生成相应的训练数据。

所提出的训练数据获取方法已用于收集自适应神经模糊推理系统高度控制器的训练数据。该方法基于比例微分控制器的不同实验:将飞行高度分别增加0.5、1、1.5和2米,以及以相同数值降低飞行高度,比例微分高度控制器参数如表1所示。训练数据已在MATLAB和Simulink环境中完成采集,并对自适应神经模糊推理系统高度控制器进行了验证。

自适应神经模糊推理系统网络已基于广义钟形隶属函数离线训练,共5个输入的隶属函数。已训练了50个训练周期,结果如图9所示。所提出控制器的性能已在模拟响应不同高度变化指令的情况下进行了测试。

已在传统PD(Kp = 15,Kd = 8)控制器上进行了相同的测试(图10)。

示意图4

示意图5

表1 训练PID控制器参数
0.5米上升 0.5米下降 1米上升 1米下降 1.5米上升 1.5米下降 2米上升
Kp 95 105 145 110 115 120 250
Kd 33 32 45 30 40 35 90

示意图6

示意图7

5 讨论

从获得的结果可以看出,传统的PID型控制器对于较小的阶跃变化或预先调优以维持的特定阶跃变化往往更加可靠;而ANFIS网络则在较大幅度的海拔变化情况下表现出更理想的结果,具有最小的超调量和较短的上升时间。然而,在较小变化指令下会出现明显的海拔超调量。此问题可能是由于针对较小误差场景的训练数据不足或训练不足所导致。但需要注意的是,过度训练将导致过拟合,即网络在训练期间表现优异,但在处理其他数据集时无法保持相同的性能。

通过增加训练数据的多样性、扩大实验范围以及进行更严格的训练(同时考虑过拟合问题),自适应神经模糊推理系统的性能可以进一步提升。作为替代方案,可以考虑采用在线学习方法,以减少对专用训练数据集的依赖。

需要注意的是,对于树莓派等移动平台,应考虑在线训练,因此在未来工作中还需解决一些额外的问题,例如计算能力和电池续航。树莓派3是一款计算能力有限的微型计算机。优化该资源的分配至关重要。首先,应考虑维持所有四个基于自适应神经模糊推理系统的控制器(海拔、俯仰、横滚和偏航)运行所需的计算需求。此外,机载在线学习和控制参数调优将需要额外的资源。最后,还应考虑无人机的其他附加功能。例如,可能希望无人机能够作为远程传感器节点或视频信号发射器,因此可用于控制器的资源可能会更加有限。

电池供电的四旋翼无人机是移动平台,因此能源供应有限。由于ANFIS网络增加了计算能力需求,结果运行与维护期间,能耗 tends to be higher, which limits the 空中覆盖。

可以看出,与传统PID型控制器相比,ANFIS控制器在物理实现中的主要问题之一是计算需求更高,尤其是在考虑在线学习的情况下。解决此问题的一种方法是限制隶属函数的数量和复杂性。虽然精度可能会受到影响,但这种权衡总体上仍可能是有益的。此外,可以考虑梯度下降学习的替代方案,例如元启发式算法。

通过引入进化原则,经典ANFIS架构甚至可以进一步修改,从而改变网络的整体结构,而不仅仅是某些前提和结论参数。这样,可以最小化动态环境对飞行的影响,例如动态变化的风或天气条件。

可靠的自适应无人机控制器的可用性将拓宽小型无人机的应用范围。稳定自主无人机可被设计用于执行远程地理感知任务。自调节无人机能够在存在风、雨和雪等动态干扰的情况下,保持预设的航行轨迹并执行编程任务。多架无人机可用于自动覆盖和测绘大范围陆地区域,并作为远程移动平台用于传感数据采集与处理,这正是本项目最初的设计目标。这种可靠的控制器有助于优化来自传感器节点的地震数据采集,因为它能保持无线传感器发射器与无人机接收器之间稳定的距离。这一参数对本项目至关重要,由于需要采集大量数据,而基于ZigBee的收发协议可用的数据速率有限,因此期望最大化数据交换速率。

6 结论

自适应神经模糊网络系统被视为用于四旋翼无人机飞行控制和稳定化的传统PID控制器的替代方案。研究表明,此类架构可作为通用高度控制器使用,尤其是在需要剧烈高度变化的情况下。本项目的未来工作可能朝多个方向发展。首先,对ANFIS性能在其他飞行控制器(俯仰、横滚、偏航)中的应用进行仿真和测试。其次,在物理的树莓派无人机上部署基于ANFIS的控制器,并考察软件和硬件两方面的限制。此外,还可针对相同的控制器应用测试其他类型的神经模糊架构,例如协作式ANFIS或进化型神经模糊网络,并考虑以下特性:快速收敛学习、在线适应、低计算复杂度。

最后,计划开发专用的神经模糊模拟硬件,用于处理所有与ANFIS相关的数据和算法。基于CMOS技术、忆阻器和交叉阵列的神经形态电路正在被考虑用于神经模糊电路实现。预计此类专用硬件集成到四旋翼无人机框架后,将减轻树莓派和Navio2的处理负载。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐