中国科技核心期刊      中国指挥与控制学会会刊     军事装备类重点期刊
Command & Control

Quadcopter UAV attitude control based on DDPG

  • HUANG Xijie
Expand
  • Army Command Academy,Nanjing 210045, China

Received date: 2023-05-23

  Revised date: 2023-06-21

  Online published: 2024-04-01

Abstract

Aiming at the problems of difficult implementation and poor robustness of quadrotor UAV attitude control in unknown environment, an intelligent attitude control method based on deep deterministic strategy (DDPG) algorithm is proposed. Firstly, based on the Euler-Poincare equation, the dynamic model of the quadrotor is established by computer symbolic derivation. Secondly, the attitude controller of the quadcopter is designed based on the DDPG algorithm, and the attitude error, attitude angular velocity error and control law penalty items are introduced into the reward function design. Finally, the performance of the controller is verified by setting different initial state values, changing the structural parameters of the quadcopter, and introducing noise. The simulation results show that the controller can guide the quadrotor to respond quickly to the desired attitude and maintain stability, and also show good generalization ability.

Cite this article

HUANG Xijie . Quadcopter UAV attitude control based on DDPG[J]. Command Control and Simulation, 2024 , 46(2) : 115 -121 . DOI: 10.3969/j.issn.1673-3819.2024.02.016

四旋翼无人机(本文简称四旋翼)具有结构简单,操作灵活,智能集成等特点,目前已被广泛应用于军事、航拍、植保、巡检等多个领域[1-2],其任务的多样性、环境的复杂性对姿态控制的精确度、自主性和智能化程度提出了越来越高的要求。然而,四旋翼自身强耦合、欠驱动、多变量、非线性等特点以及外部环境的不确定性,给控制器的设计带来了很大挑战。
目前,国内外关于四旋翼姿态控制的研究已经做了大量工作,提出了很多经典的控制算法。其中,PID算法因其设计简单,不依赖模型,参数易整定等优点,应用最为广泛,但其在抗干扰方面表现较弱;滑模控制算法[3]通过引入滑模面,能够获得较强的鲁棒性和抗干扰性,但同时也带来了抖震等问题;backstepping[4-6]、自适应[7-8]、状态反馈[9]等算法具有很好的非线性特性,但对四旋翼动力学模型的依赖度较高,在仿真阶段能取得很好的控制效果,但在实际飞行验证时,控制效果通常大打折扣,对于未知环境带来的影响,也难以有效应对。
近些年,随着人工智能技术的发展,多种智能控制算法也相继应用于四旋翼的姿态控制中。例如,Koch等[10]将强化学习(Reforcement Learning,RF)算法引入四旋翼姿态控制器设计中,取得了优于传统PID算法的控制精度和性能; Bălaşa BăzvanIonuţ等人[11]采用近端策略优化(Proximal Policy Optimization,PPO)算法设计控制器,以应对环境干扰,实现四旋翼姿态稳定控制;Gao等[12]针对四旋翼的姿态控制问题,提出了一种将BP神经网络和自适应线性自抗扰控制相结合的方法,提高了四旋翼对负载质量变化的适应性;Zatout等[13]为提高四旋翼姿态稳定性,分别采用粒子群、蝙蝠算法和布谷鸟搜索3种群体智能算法来优化四旋翼的模糊逻辑控制器。
因此,本文聚焦四旋翼在未知环境下的姿态控制问题,结合国内外研究现状,受智能控制的启发,基于深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法构建环境模型、设计并训练控制器,最后通过仿真实验,分析验证控制器的有效性和泛化能力。

1 四旋翼动力学模型

本节主要建立描述四旋翼动力学特性的数学模型,所描述的四旋翼可视作单刚体,几何中心与质心大致重合,对角旋翼旋转方向相同,相邻方向相反,具体如图1所示,结构参数及含义可参考表1
图1 四旋翼结构图

Fig.1 Structure diagram of quadrotor

表1 四旋翼模型参数

Tab.1 Quadrotor model parameters

符号 含义 数值
m 四旋翼质量 0.875 kg
g 当地重力加速度 9.8 m/s2
L 质心到旋翼转轴长度 0.225 m
CT 旋翼升力系数 1.0792×10-5
CQ 旋翼扭矩系数 1.8992×10-7
R 旋翼半径 0.125 m
ρ 当地空气密度 11.69 kg/m3
Ix 绕机体x轴的转动惯量 9.5065×10-3
Iy 绕机体y轴的转动惯量 1.00×10-2
Iz 绕机体z轴的转动惯量 1.658×10-2
图1F1~F4为各旋翼旋转所产生的升力,且
Fi= 1 2ρACTR2 Ω i 2,i=1,2,3,4
式中:AR2为旋翼转动面积;Ωi为各旋翼转速。
通过调整4个升力的大小,可实现四旋翼的姿态及位置控制,具体为
U 1 = F 1 + F 2 + F 3 + F 4 U 2 = L ( F 2 - F 4 ) U 3 = L ( F 3 - F 1 ) U 4 = K ( F 1 - F 2 + F 3 - F 4 )
式中:U1为高度控制力,为各旋翼产生的升力之和;U2为滚转控制力矩;U3为俯仰控制力矩;U4为偏航控制力矩;K为旋翼扭矩和升力系数之比,即K=CQ/CT
为便于描述及动力学建模,首先,定义如下两个坐标系:
1)E-XYZ:惯性坐标系,该坐标系与地球固连;
2)B-xyz:机体坐标系,该坐标系原点固连于四旋翼质心处,xy轴分别指向图1所示的1号、2号电机方向,z轴垂直于机身平面向上。其中,x轴正方向为四旋翼的机头方向。四旋翼相对惯性坐标系的位姿可通过该坐标系相对于E-XYE的变换来表征。
其次,令pe=[x,y,z]T表示四旋翼质心相对E-XYE坐标系的位置,η=[ϕ,θ,ψ]T表示四旋翼的姿态,其中,ϕθψ为欧拉角,分别表示滚转、俯仰和偏航角;令ω=[p,q,r]Tv=[u,v,w]T分别表示四旋翼相对B-xyz坐标系的角速度和线速度。因此,四旋翼的广义坐标和伪速度可表示为q=[pe,η]Tp=[ω,v]T
系统的坐标系、广义坐标、伪速度等定义好后,即可分析四旋翼的关节数据、刚体数据、刚体之间的拓扑关系以及整个系统的能量和受力情况。然后,基于如式(3)所示欧拉-庞卡莱方程,推导四旋翼的动力学模型。
q ˙=V(q)p
M(q) p ˙+C(q,p)p+F(p,q,u)=0
式中:V为运动学矩阵,是伪速度向量与广义速度向量的转换矩阵;M为惯性矩阵;C为科氏力和离心力矩阵;F为包含空气动力、重力以及控制输入力向量[14]
具体推导过程为
1)定义关节数据
r1={6}; H1=IdentityMatrix[6];
q1={ϕ, θ, ψ, x, y, z}; p1={p, q, r, u, v, w};
JointLst={{r1, H1, q1, p1}};
2)定义刚体数据
com1={0, 0, 0}; mass1=m; out1={2, {0, 0, 0}};
Inertia1={{Ix, 0, 0}, {0, Iy, 0}, {0, 0, Iz}};
BodyLst={{com1, {out1}, mass1, Inertia1}};
3)定义刚体的拓扑关系
TreeLst={{{1, 1}}};
4)定义刚体系统的势能、非保守力、广义输入力/力矩等
PE=0;
Q={U2, U3, U4, 0, 0, U1};
5)动力学建模
{V, JX, JH, M, Cp, Fp, p, q}=CreateModel[JointLst, BodyLst, TreeLst, g, PE, Q, V, JX, JH];
Equations=MakeODEs [p, q, V, M, Cp, Fp, t]
通过计算机推导,得到上述VMCF等参数矩阵的符号表达,代入式(3),再通过相应的简化处理,最终得到四旋翼动力学模型为
  ϕ ¨ = U 2 I x θ ¨ = U 3 I y ψ ¨ = U 4 I z x ¨ = U 1 m ( C ϕ C ψ S θ + S ϕ S ψ )
y ¨ = U 1 m ( C ϕ S ψ S θ - S ϕ C ψ ) z ¨ = U 1 m C ϕ C θ - g
式中:Sφ=sin φ,Sθ=sin θ,Sψ=sin ψ,Cφ=cos φ,Cθ=cos θ,Cψ=cos ψ

2 基于DDPG的四旋翼姿态控制器设计

2.1 DDPG算法原理

DDPG算法由DeepMind团队提出,是一种基于Actor-Critic框架的强化学习算法。该算法适用于解决连续动作空间的控制问题[15-16],能够直接输出确定性动作,而非动作的概率分布。算法架构主要包括环境、经验回放池(replay buffer)、Critic和Actor深度神经网络模块等,具体如图2所示。
图2 DDPG算法架构

Fig.2 DDPG algorithm architecture

图2中,经验回放池主要存储Agent与环境交互产生的数据,以解决传统Actor-Critic算法中样本数据关联的问题。Critic和Actor均采用Online和Target双网络结构,其中,Target网络主要借鉴DQN算法的fixed-target思想,以提高学习过程的稳定性。
在网络训练过程中,Agent首先通过不断与环境交互,产生数据单元(st, a - t, rt, st+1),并将其存储到经验回放池。其中,st表示Agent在t时刻的状态; a - t=at+nt表示在t时刻引入随机噪声nt后的动作;at为Online Actor网络拟合出的确定性策略函数at=μ(st);rtst+1分别表示 a - t与环境交互产生的奖励以及下一时刻的状态。
当经验回放池中数据量达到可采样条件后,采取mini-batch方法从中采集N*(si, a - i,ri,si+1)组训练样本,送入Critic和Actor深度神经网络模块计算更新网络参数。其中,N表示单次训练样本数;下标i∈[0,N)表示N组训练样本的序号。
网络模块中,Online Actor网络的作用是拟合确定性策略函数a=μ(s),其输入为当前状态s,目的是采取梯度上升方法,通过最大化状态值函数Q(s,a)来更新网络参数,如式(5)所示,从而选出最佳动作。
θθ+β 1 N i = 1 Nθa(si,θ)[∇aQ(si,a,η)]
式中:θ为待更新网络参数;β为网络学习率;N为单次训练样本数;Q(si,a,η)为Online Critic网络拟合出的状态动作值函数。
Online Critic网络的作用是拟合状态动作值函数Q(s, a -),其输入为当前的状态s和为提高智能体探索能力而引入随机噪声的动作 a -,目的是采取随机梯度下降方法,通过最小化损失函数L来更新网络参数,从而评价衡量Actor网络选出的最佳动作,指导其生成下一阶段的动作,其损失函数定义如式(6)~(8)所示。
L= 1 N i = 1 N δ i 2
δi=yi-Q(si, a -(si,θ),η)
yi=ri+γQ'(si+1,a(si+1,θ'),η')
式中:N为单次训练样本数;δi为TD误差;ri为当前即时回报;γ为折扣因子;Q(si, a -(si,θ),η)为Online Critic网络拟合出的Q值;Q'(si+1,a(si+1,θ'),η')为Target Critic网络输出的Q值; a -(si,θ)为当前引入随机噪声后的动作;a(si+1,θ')为Targe Actor网络预测的下一时刻动作,作为Target Critic网络的输入以计算Q';η为待更新网络参数;θ'为Target Actor网络参数;η'为Target Critic网络参数。
通过最小化L,得到网络参数η的更新方式为
ηη+α 1 N i = 1 NδiηQ(si, a -(si,θ),η)
式中:α为网络学习率。
与Online网络参数更新不同,Target网络的参数采用软更新(soft update)的方式实现,具体如式(10)所示。
θ'τθ+(1-τ)θ'
η'τη+(1-τ)η'
式中:τ∈(0,1)为软更新因子。

2.2 控制器设计

将四旋翼抽象为具有感知和决策能力的Agent,其在未知环境的姿态控制问题可描述为马尔可夫决策过程(Markov Decision Processes,MDP)[17],该过程可通过一个四元组(s,a,p,r)来表示,其中,s为Agent的状态空间;a为Agent的动作空间;p为状态转移概率,表示执行动作a后,Agent从状态s转移到下一个状态s'的概率;r为奖励函数,表示在当前s下采取a,发生状态转移后从环境中获得的即时回报。
基于DDPG的四旋翼姿态控制器设计,核心就是MDP的实现,具体工作包括设计状态空间、动作空间、奖励函数,以及在环境模型未知,即p未知的条件下,通过设计深度神经网络结构,拟合出确定性策略。

2.2.1 状态空间和动作空间

为减少神经网络的数据处理负担,本节选取四旋翼的3个姿态角和3个姿态角速度作为状态空间,即s=(ϕ,θ,ψ, ϕ ˙, θ ˙, ψ ˙)。动作空间则主要选取四个旋翼升力,即a=(F1,F2,F3,F4)。

2.2.2 奖励函数

奖励函数是本控制器设计的重点,是达到控制效果的关键。为克服稀疏奖励导致的网络学习效率低,甚至是不收敛等问题,本节采取引导型奖励函数设计,通过加入不同惩罚项,引导四旋翼智能体找到姿态控制的最佳策略。
1)为使四旋翼达到期望姿态,引入姿态角误差惩罚项:
Ra=-|ϕd-ϕ|-|θd-θ|- | ψ d - ψ 5
2)为使四旋翼保持姿态稳定,引入姿态角速度惩罚项:
Rv=- | ϕ ˙ d - ϕ ˙ 15- | θ ˙ d - θ ˙ 15- | ψ ˙ d - ψ ˙ 30
3)因模型未对四旋翼位置进行控制,为抑制训练过程中出现虽能够获取较高奖励,但不符合实际飞行控制的情况,例如,在实验测试中出现的输出策略为全部稳定维持为0或临界值附近等情况,引入控制力/力矩惩罚项:
Ru=- | U 2 | 10- | U 3 | 10-|U4|- | U 1 - m g | 50
因此,每个回合中,每个步长的奖励函数最终可表示为
Rs= 2 + R a + R v + R u ,   d o n e = f a l s e - 5 , d o n e = t r u e
式中:done为四旋翼是否超过最大安全姿态角的标志位,在训练过程中,如果done为true,则直接给出-5的惩罚,并结束本回合训练。否则,除了RaRvRu三个惩罚项,在每个step中,还要给出值为2的奖励,以鼓励Agent完成更多步长,尽可能避免其为抑制得到更多惩罚采取保守行为,从而导致提早结束回合训练。

2.2.3 神经网络设计

本文Online Critic和Target Critic网络结构相同,皆由1个输入层、2个隐藏层和1个输出层构成,神经元与下一层神经元之间采取全连接方式。其中,输入层包括6个状态输入神经元和4个动作输入神经元;2个隐藏层各包含256个神经元,激活函数都为elu函数;输出层包含1个神经元,输出对应状态和动作的Q值。
Online Actor和Target Actor网络结构与上述Critic大致相同,区别在于Actor网络输出层包含4个神经元,采取tanh非线性激活,输出4个旋翼的控制升力。

3 仿真分析

本节通过数值仿真验证分析DDPG算法对四旋翼姿态稳定控制的有效性以及泛化能力。具体任务包括两项:一是令四旋翼从不同初始状态出发,在控制器作用下,达到目标姿态并保持稳定;二是在其他条件不变情况下,分别改变四旋翼部分结构参数、引入随机噪声,将四旋翼从初始状态驱动到目标状态并保持稳定。
本实验的仿真环境基于Python3.7编写,通过PyCharm Community Edition 2020.1和Anaconda3实现;神经网络采用tensorflow2.1深度学习框架构建;模型训练及验证通过PC实现,平台主要参数如表2所示。
表2 平台参数

Tab.2 Platform parameters

操作系统 CPU GPU 内存
Win10 9代i7 NVIDIA GeForce GTX 1650 16 GB
DDPG算法及训练模型的相关参数及数值如表3所示。
表3 算法模型参数

Tab.3 Algorithm model parameters

符号 含义 数值
c_lr Critic网络学习率 0.001
a_lr Actor网络学习率 0.000 1
M replay buffer容量 100 000
γ 折扣因子 0.99
τ 软更新率 0.002
N 单次训练样本数 128
μ OU噪声均值 0
θ OU噪声均值项系数 0.15
δ OU噪声布朗运动项系数 0.2
在模型训练阶段,通过每回合的平均奖励和平均损失来衡量算法的收敛情况,如图34所示。
图3 训练过程的平均回合奖励

Fig.3 Average episode rewards of training

图4 训练过程的平均回合损失

Fig.4 Average episode loss of training

图3显示,在约280个回合之前,平均奖励无上升趋势,此阶段主要向经验回放池存放数据,未对模型进行训练,对应图4中这一阶段的平均损失数据为nan。之后,在约1000个训练回合前,平均奖励波动上升,这一阶段,神经网络参数不断优化更新,但模型尚未得到充分训练,存在图4所示的平均训练损失,控制效果相对较差。但在1000回合之后,除在1500回合前后受状态随机初始值影响导致的波动,平均奖励基本收敛于2,平均损失也基本收敛于0,表明网络已经学到了相对有效的控制策略。
训练结束后,保存网络结构及网络参数,在模型验证阶段,将其导入以验证控制器效果。
首先,设置姿态角的参考值均为0,在四旋翼安全有效控制范围内,随机初始化状态值,并将其输入训练好的Online Actor神经网络中,输出4个旋翼升力,再根据式(4),更新姿态角。通过随机输入不同的初始状态值,得到滚转、俯仰和偏航姿态角响应曲线分别如图5a)b)所示。
图5 不同初始状态下的姿态响应曲线

Fig.5 Attitude angle response curves under different initial states

图5a)b)中虚线表示参考姿态角,实线为实际响应曲线。可以看出,尽管初始状态不同,但四旋翼的3个姿态角在约2 s后,均基本收敛于参考值,且经计算,图5b)中3个姿态角的稳定误差分别为0.007 24°、-0.341 38°和1.535 68°,误差相对较小,能够满足姿态稳定控制要求。
图5b)对应的4个动作输出,即4个旋翼升力的响应曲线如图6所示。
图6 旋翼升力响应曲线

Fig.6 Rotor lift response curve

图6显示,Online Actor网络输出的4个旋翼升力变化相对平滑,在1 s之前,为尽快达到姿态控制目标,升力变化相对较大。但在约2 s后即趋于稳定,并保持在2.15 N附近。经计算,此阶段4个旋翼产生的升力之和U1与四旋翼的重力8.575 N基本抵消,表明四旋翼不会持续上升或下降,而是能稳定在一定高度,从而进一步验证了引入控制力/力矩惩罚项的奖励函数的有效性。
其次,通过改变四旋翼臂长L,以及在控制律中加入OU噪声,分别验证在环境未知条件下,模型的泛化能力和鲁棒性,其姿态角响应曲线分别如图7a)b)所示。
图7 泛化能力测试

Fig.7 Generalization ability test

图7a)显示,在L分别为0.125 m、0.225 m、0.375 m和0.45 m时,其他参数不变,四旋翼从相同初始状态出发,均能在0.8 s左右达到稳定状态。其中,在俯仰、偏航通道,响应曲线几乎重合。同样,从图7b)也可以看出,在其他条件不变的情况下,向控制律中引入噪声,四旋翼的控制效果几乎不受影响,其姿态角在0.8 s左右达到稳定状态。图7表明,通过泛化能力测试,本文所训练的模型对于四旋翼的结构参数的改变以及在未知环境中受到随机扰动条件下,均具有较好的鲁棒性。

4 结束语

本文针对四旋翼在环境未知条件下的姿态控制问题,基于DDPG算法设计了姿态控制器,并在奖励函数设计中,分别针对姿态控制误差、姿态角速度控制误差以及控制输出不符合实际等问题引入惩罚项。仿真结果表明,所设计的控制器具有响应速度快,平滑稳定,泛化能力好,鲁棒性强等优点,具备对未知环境的自主适应和学习的能力。后续工作中,将针对消除控制器稳态误差方面作进一步研究。
[1]
SHI L T, LI B Q, SHI W X, et al. Visual servoing of quadrotor UAVs for slant targets with autonomous object search[J]. Proceedings of the Institution of Mechanical Engineers, Part I: Journal of Systems and Control Engineering, 2023, 237(5): 791-804.

DOI

[2]
史民, 翟羽佳, 马俊, 等. 基于拦截无人机反制“低慢小”目标的新型防御系统[J]. 指挥控制与仿真, 2021, 43(6): 21-28.

DOI

SHI M, ZHAI Y J, MA J, et al. A new defense system against low-slow-small targets by UAV interceptor[J]. Command Control & Simulation, 2021, 43(6): 21-28.

[3]
WANG Z J, ZHAO T. Based on robust sliding mode and linear active disturbance rejection control for attitude of quadrotor load UAV[J]. Nonlinear Dynamics, 2022, 108(4): 3 485-3 503.

[4]
JIANGDAGGER Z P, NIJMEIJER H. Tracking control of mobile robots: a case study in backstepping[J]. Automatica, 1997, 33(7): 1 393-1 399.

DOI

[5]
SABIHA A D, KAMEL M A, SAID E, et al. Dynamic modeling and optimized trajectory tracking control of an autonomous tracked vehicle via backstepping and sliding mode control[J]. Proceedings of the Institution of Mechanical Engineers, Part I: Journal of Systems and Control Engineering, 2022, 236(3): 620-633.

DOI

[6]
MAARUF M, HAMANAH W M, ABIDO M A. Hybrid backstepping control of a quadrotor using a radial basis function neural network[J]. Mathematics, 2023, 11(4): 991.

DOI

[7]
沈炜皓, 李众. 四旋翼无人机的反步RBF网络自适应控制[J]. 指挥控制与仿真, 2020, 42(2): 89-94.

DOI

SHEN W H, LI Z. Backstepping RBF network adaptive control for quadrotor unmanned aerial vehicle[J]. Command Control & Simulation, 2020, 42(2): 89-94.

[8]
AHMADI K, ASADI D, NABAVI-CHASHMI S Y, et al. Modified adaptive discrete-time incremental nonlinear dynamic inversion control for quad-rotors in the presence of motor faults[J]. Mechanical Systems and Signal Processing, 2023, 188: 109 989.

[9]
TORRES F, RABHI A, LARA D, et al. Fuzzy state feedback for attitude stabilization of quadrotor[J]. International Journal of Advanced Robotic Systems, 2016, 13(1): 2.

[10]
KOCH W, MANCUSO R, WEST R, et al. Reinforcement learning for UAV attitude control[J]. ACM Transactions on Cyber-Physical Systems, 2019, 3(2): 1-21.

[11]
BĂLAŞA R I, BÎLU M C, IORDACHE C. A proximal policy optimization reinforcement learning approach to unmanned aerial vehicles attitude control[J]. Land Forces Academy Review, 2022, 27(4): 400-410

[12]
GAO Y L, ZHU G X, ZHAO T. Based on backpropagation neural network and adaptive linear active disturbance rejection control for attitude of a quadrotor carrying a load[J]. Applied Sciences, 2022, 12(24): 12 698.

DOI

[13]
ZATOUT M S, REZOUG A, REZOUG A, et al. Optimisation of fuzzy logic quadrotor attitude controller-particle swarm, cuckoo search and BAT algorithms[J]. International Journal of Systems Science, 2022, 53(4): 883-908.

DOI

[14]
刘云平, 黄希杰, 李先影, 等. 四旋翼飞行器的滑模PID轨迹跟踪控制[J]. 机械科学与技术, 2017, 36(12): 1 859-1 865.

LIU Y P, HUANG X J, LI X Y, et al. Trajectory tracking control of quad-rotor unmanned aerial vehicles based on sliding mode PID[J]. Mechanical Science and Technology for Aerospace Engineering, 2017, 36(12): 1 859-1 865.

[15]
SILVER D, LEVER G, HEESS N, et al. Deterministic policy gradient algorithms[C]// Proceedings of the 31st International Conference on International Conference on Machine Learning-Volume 32,2014: I-387.

[16]
殷宇维, 王凡, 吴奎, 等. 基于改进DDPG的空战行为决策方法[J]. 指挥控制与仿真, 2022, 44(1): 97-102.

DOI

YIN Y W, WANG F, WU K, et al. Research on air combat behavior decision-making method based on improved DDPG[J]. Command Control & Simulation, 2022, 44(1): 97-102.

[17]
石轲. 基于马尔可夫决策过程理论的Agent决策问题研究[D]. 合肥: 中国科学技术大学, 2010.

SHI K. Research on Agent decision problem based on Markov decision process theory[D]. Hefei: University of Science and Technology of China, 2010.

Outlines

/