You are on page 1of 63

分 类 号 


学 校代 码


学 号

硕 士 学 位论文


( 学 术 学位 

基 于 强 化 学 习 的 倒 立 摆 控 制 算 法研 究

杨文 乐

学 科 门 类 工 :


级 学 科 控 制 科 学 与 工 程


二 级 学 科 ; 控 制 理 论与 控 制 工 程

指 导 教 师 郑 :
崗 教授

徐开 亮 副 教 授

申 请 日 期 : 2 0 1 9 年 6 


独 创 性 声 明

本人 所 呈 交 的 学 位 论 文 是 在 导 师 指 导 下 进 行 的 研 究 工 作 及 取 得 的 成 果 。
尽 我所 知 

除 特 别 加 以 标注 的 地 方 外 论 文 中 不 包含 其 他 人 的 研 究 成 果 与我 同 工作 的 同 志 对本


, 。

文 的 研 究 工 作 和 成 果 的 任 何 贡 献 均 己 在 论 文 中 作 了 明 确 的 说 明 并 已 致谢 

本 论 文 及 其 相 关 资 料 若有 不 实 之 处 , 由 本 人承 担

切相 关 责 任 

论 文 作者 签名 :
年 《 月 ^ 日

学位论文使用 授权


本人 作 为 学 位 论 文 作 者 了 解 并 愿 意 遵 守 学 校 有 关 保 留 、
使 用 学位 论文 的 规 定 , 即 

在 导 师 的 指 导 下 创 作 完 成 的 学 位论 文 的 知 识 产 权 归 西 安 理 工 大 学 所 有 , 本 人今 后 在 使 用

或 发 表 该 论文 涉 及 的 研 宄 内 容 时 ,
会注 明 西 安理 工大 学 。
西 安 理 工 大 学 拥 有学 位 论 文 的

如 下使用 权 , 包括 ; 学 校可 以 保 存 学 位 论 文 ;
可 以采用影 印 、
缩 印 或其 他 复 制 手 段 保 存


论文 ;
可 以査 阅或借 阅 。 本 人授 权 西 安 理 工 大 学 对 学 位论 文 全部 内 容编 入 公 开 的 数 据 库


进行检 索 。
本 学位 论 文全 部或 部 分 内 容 的 公布 ( 包 括 刊登 ) 授 权 西 安理 工大 学研 宄 生 院

办理 

经 过 学 校保 密 办 公 室 确 定 密 级 的 涉密 学 位 论 文 , 按 照 相 关 保密 规 定 执 行
; 需 要进 

技 术 保 密

学 位
论文 s




西 安
理工 大
学 学

论文 技 术 保

申 请 表 》

内 容
进 行 保 密




西 安
理工 大 学 学 位论 文


保 密 申 请表 》 )




的 学 位 论
文 在 解密 后

适 用 本 授 权



文 作

签 名
: 、 导 师 签 名 :
 趣备 年

月 a 




  摘 要 


论文题 目 :
基 于 强 化 学 习 的 倒 立 摆控 制 算 法 研 究

学 科名 称 : 控制 理 论 与 控 制 工 程

研 宄 生 : 杨 文 乐 签 名 : 亦V 戈 i 

指 导教 师 : 郑 岗 教授  签 名 

徐开 亮 副 教 授签 名 :

4^ 3 -

S 

摘 

科 技 时 代 人 工 智 能 充 斥 在我 们 生 活 的 各个领 域 从 A , , I
p ha G o 到 Al p h a Z er o 都 在涂释


着 它 的 强 大 机 器 学 习 作 为人 工 智 能 的 核 心 。 ,
是 使 计 算 机 具 有 智 能 的 根本 途 径 强 化 学 习

 D

作 为 机器 学 习 研 究 领域 的 个 热 门 方 向 其 通过 智 能 体 与 环 境 的 交 互 作 用 从 中 汲 取 经 验

, 


以 自 学 习 的 方 式 不 断 更 新改 进 控 制 策 略 , 逐 步 达 到 最 优或 近 优 控 制 效 果 a
由 于强 化学习 是


种 无模 型 无 监 督 的 机 器 学 习 方法 因 此 具 有通 用 性 强 适用 范围 广泛 参数 自 整定 等 优


, ^ ,

点 3
能 够 极 大 降 低 控 制 系 统 的 设 计难度 和 人 力 投 入 ,
具 有 广 阔 的 应 用 前景 。 因此 f
研究 强


化 学 习 具 有 重 要 的 理 论 价 值 和 实 际 工 程应 用 价 值 

倒立摆系 统 是 个 多 变量 非 线 性 髙 阶次 强耦 合 的 不稳定系 统 能 够 模 拟反 映


、 、 、
自 ,

多 数 常见 的 控制对象 其 控 制 算 法 具 有 多 输入 单 输 出 的 特 点 因 而是 种 典 型 的 自 动控 制


, ,

理 论 研 宄 装置 。 以 该 问 题作 为 研 究 对 象 ,
能 够 有 效反 映 出 控 制 算 法在 实 际 应 用 系 统 中 的 随


动性 鲁 棒性 跟踪 及 镇 定性 等 问 题 因此 本文 以 级 直线 倒 立 摆 系 统 为 对 象 进行 深


、 、 。 , ,

度 强 化 学 习 算法 的 研 究 。 主要研 宄 内 容


成 果 如 下 

( 1 )
对 强 化 学 习 的 基础 概 念进 行 介 绍 并 分 析

通过对 常 用
强 化学 习 算
法 的 理论 推 导




尔 科
夫 决 策
过 程 各 参 数 分 析

为强化 学 习 以 及深 度 强 化 学 习 算 法 在 倒
立摆 控 制 系 统 

的 应 用 奠 定 了
理论 基
础 

( 2 )
通过 O p
e n A I  G


m 游戏 库


成 了
深 度 强 化学 习
D Q


法 双 、
网 络 D Q

算 法


法在 级直 立 平 衡控 表 三 控 法 可 


P G

算 线 倒 摆 制 中 的 实 验 仿 真
^ ,
结 果 明 种 制 算 均 以 恢

完 成 训
练 ,
达 到
对 倒 立摆 的 平 衡 控 制

在 此基础 上 论 ,
文 进

步 研 究 测 试 了
三 种 不 同
r e w a r


给 定 方 式
对 算 法 的 影 响
, 通过 实 验 比
较 ,
发现 线 性化 ew
r a r d
方 式

有 最 快
的 训
练 速 度


从而 为



习 在 真 实 倒
立 摆
控 制 训 练
提 供

重要 经 验 

建 基于 立 摆硬 件 验平 通过 控 对 立摆


3 ) P L C
( 直 5 P I D
搭 了 的 级 线 倒 实 台 制 算 法 倒

的 平 衡 控制 , 验证 了 实
验平 台 的 有 效 性 , 并 为

化 学 习


的 控
制 研 宄 提 供 了
测 试 基准 

基于 D 法 现 级直 立摆 经过 练 


( 4 ) N ,
实 了 。 5 0
Q 算 线 倒 的 起 摆 控 制 大 约 个 回




西安理工大学硕士学位论文

后,控制算法即可在 200 个控制周期(一个控制周期为 20ms)内,使摆杆由下垂位置摆


动到直立位置附近,完成倒立摆起摆控制。
(5)基于 Q 学习算法,研究了倒立摆平衡控制。针对真实控制环境中噪音较大、训
练量受限、部分训练样本难以获得的局限性,研究设计了具有多元训练策略的 off-policy
控制算法,该算法能够从人工示教或其他控制算法中获取经验,提高训练效率,从而通过
有限实验快速完成训练并获得更好的控制效果。由于该方法有效降低了实验训练量,从而
使强化学习算法以更小的人力投入,获得更好的控制效果,为强化学习在实际工程的应用
做了初步的实践,具有良好的应用前景。
关键词:强化学习;倒立摆;DQN 算法;PG 算法;Q 学习算法

II
  

A b str a c t
   

T i tl e :  R E S E A R C H  O N  N V E R T E D P E N D U L U M C O N T R O L A L G O R T H M


  I

B A S E D  O N R E N F O R C E M E M T  L E A R M M G

 S

Ma j
o r : D e te c t o nTe c h n o o g y a n d A u to m at
i l i c E
q u p m en
i 

Ham e : Wen
 l e YA N G S i g natu r e :  I
a yl


S u p e rv i sor :  P r o f  G a n g  Z H E N G S g n a t u
. i re 

P ro f .
 Ka i l i a n g  X U S i g n at u re :Y j


(J

A bs t ra c t

In  t h e age o f ec h n o l o if
art i c i al  i n t el li g en ce is  ub i qu ou s  in  all are as  o f o u r l iv es fr o m


t
gy  ,
i t

A l h aG o  to A l pha Zer o  As t he  c o r eo f  a r


t f
ic al  n t el l i e nc e m a ch ine  le ar n i n g i s  th e

m n
p . i i i
g ,

fu nd ame nt al w a
yt o m ake c om p u te r s i n tel l i ge nt  A s  a h o t d i re c t on i n the f

mn nw
i eld  o f

nm n n
ro
a ch i 



lear nin re search ,


re i fo rce e tle arn in

nm uu m n n
le a sfr th e i terac tio


b e t ee th e a e n ta nd th e


g g g

mn m
e v iro n e n t,
an d c o n tin u o sly 

u nm
d ate sa n d i ro e sth eco n tro lstrate i a self learn i


p p gy  g  

m
to g ra d all ach iev eo ti alo r -

nu n m  
e ar o ti alc on tro le ffec ts.
B ec au se rei fo rc e en tle a rn in


 y  p p is


g


a o d el free a d  n su

n m w
ervise d  a ch i e  le arn in eth o d ,
 it h as th e ad v an ta


es o f stro n


p g  g 



unm w
v ersatilit , id e a ca tio n ran

om
p p li e se lf tu i f ar a e tc ,
ete rs, h ic h c an re atl


n n
y  g , g o p , g y red ceth e

nm
d e si n d i c lt a d an o erin u to f
th ec tr ls e an d h a sb ro ad ap p lic atio

mn vn
g y  p p y st ,


ro s ec ts.


T h ere fo re ,
 th e stu d fre i fo rc e e n tle arn in

vu
y o g 
h a s i
po
rta tth e oretic al alu e a d
p
rac tic al

en n
g i ee r
i n ga lic atio n  al e.

mmm v n


p p

n m m
T h e in v erted e n d u lu s ste isa 

u n m
u lti ar
i ab le , o n lin e ar,
h ig h o rd er,stro n g ly co

umom
mnn
p y  led


m n
self stab les ste th a tc an si late  o stc c o trolob e c ts .
Itsco tro lalg o r h as

u um
y o j i th 

th e ch arac ter

n m
i stic s o f u lti le in u t a d  sin g le o u t

nv
p p t, so it is a ty ic al a to atic .
 C o n tro l


p p

th eo ry rese arch d e v ice .

wu
T ak i th is r b le asth e re se arch o b

n o mnr
p o ec t,
itc a e f ec ti ely refle c tth e

n a
g j


fo llo  ro b stn e ss,
 track in g  a

nm u
mm

u p , d  sta b iliz at
i o f  th e c on tr o l alg orith i  th e p ctic al

a lica tio nn -

nm
s ste .
T h erefo re ,
th isp ap ertak e sth e f
i rst ord erli

nu
e ari v e rte d en d u l s ste

mm n
pp y p y

asth eo b e cta d st d ie sth ed ee rei forc e e n tle arn in .


j p al o rith T h e ai rese arc h c o n te n ts


g g

unn
an d 
resu ltsareasfollo

  m
s:

n n u
l In tro d ce a d a al z e th e b a sic

mu m
c o n ce s o f rein forc e

vn m nn m nn
( ) y p t e t le arn i


 T h ro
gh
th e

m M
th e o reticald eri of th e c o

v n
atio o nl sed re in fo rce e tle arn i al o r
i th a d th ea al sis

o mn
y  g g y

o f th e ara e te rso fth e  ark o d ec isio ro c e ss ,


p p th eth e retic alb asisforth ere in fo rce e 




西安理工大学硕士学位论文

learning and the application of the deep reinforcement learning algorithm in the inverted
pendulum control system is laid.
(2)Through the OpenAI Gym game library, the experimental simulation of deep
reinforcement learning DQN algorithm, dual network DQN algorithm and PG algorithm in the
balance control of the first linear inverted pendulum is completed. The results show that all
three control algorithms can complete the training quickly and achieve the balance control of
the inverted pendulum. On this basis, the paper further studies and tests the effects of three
different reward methods on the algorithm. Through experimental comparison, it is found that
the linearized reward method has the fastest training speed, which provides a reinforcement
learning for real inverted pendulum control training. Important experience.
(3)The hardware experiment platform of the first-level linear inverted pendulum based on
PLC is built. The balance control of the inverted pendulum is verified by the PID control
algorithm. The validity of the experimental platform is verified and the test benchmark is
provided for the control research of the reinforcement learning algorithm.
(4)Based on the DQN algorithm, the swing control of the first-order linear inverted
pendulum is realized. After about 100 training rounds, the control algorithm can swing the
pendulum from the sagging position to the upright position within 200 control cycles (one
control cycle is 20ms) to complete the inverted pendulum swing control.
(5)Based on Q-learning, the inverted pendulum balance control is studied. Aiming at the
limitations of real control environment, such as high noise, limited training and difficult to
obtain some training samples, an off-policy control algorithm with multi-training strategy is
designed. It can be obtained from artificial teaching or other control algorithms. Experience,
improve training efficiency, and thus quickly complete training and obtain better control effects
through limited experiments. Because the method effectively reduces the amount of
experimental training, so that the reinforcement learning algorithm can achieve better control
effects with less manpower input, and has made preliminary practice for the application of
reinforcement learning in practical engineering, and has a good application prospect.
Keywords:reinforcement learning; inverted pendulum; DQN algorithm; PG algorithm; Q
learning algorithm

II
目录

目录
1 绪论 ........................................................................................................................................... 1
1.1 研究背景及意义 ............................................................................................................. 1
1.2 国内外研究现状 ............................................................................................................. 1
1.2.1 强化学习研究现状 ............................................................................................... 2
1.2.2 深度强化学习研究现状 ....................................................................................... 2
1.2.3 倒立摆控制研究现状 ........................................................................................... 4
1.3 研究工作及内容安排 ..................................................................................................... 4
2 理论基础 ................................................................................................................................... 7
2.1 引言 ................................................................................................................................. 7
2.2 强化学习基础理论 ......................................................................................................... 7
2.2.1 强化学习基础概念 ............................................................................................... 7
2.2.2 马尔科夫决策过程(MDP) .............................................................................. 7
2.2.3 强化学习模型及四要素 ....................................................................................... 8
2.2.4 强化学习常用算法 ............................................................................................... 9
2.3 深度强化学习基础概念及常用算法 ........................................................................... 12
2.4 一级直线倒立摆基础理论 ........................................................................................... 14
2.5 小结 ............................................................................................................................... 16
3 基于深度强化学习的倒立摆平衡控制仿真实验 ................................................................. 17
3.1 引言 ............................................................................................................................... 17
3.2 基于 DQN 算法的倒立摆平衡控制仿真实验 ............................................................ 17
3.3 基于双网络 DQN 算法的倒立摆平衡控制仿真实验 ................................................ 20
3.4 基于 PG 算法的倒立摆平衡控制仿真实验 ................................................................ 22
3.5 小结 ............................................................................................................................... 23
4 基于 PLC 的倒立摆硬件实验平台搭建................................................................................ 25
4.1 引言 ............................................................................................................................... 25
4.2 实验平台搭建原理 ....................................................................................................... 25
4.3 基于 PID 的倒立摆平衡控制 ...................................................................................... 26
4.4 小结 ............................................................................................................................... 28
5 基于深度强化学习 DQN 算法的倒立摆起摆控制 .............................................................. 29
5.1 引言 ............................................................................................................................... 29
5.2 倒立摆起摆过程描述 .................................................................................................... 29
5.3 DQN 算法倒立摆起摆控制 .......................................................................................... 30
5.4 小结 ............................................................................................................................... 33
6 基于强化学习 Q 学习算法的倒立摆平衡控制 .................................................................... 35

I
西安理工大学硕士学位论文

6.1 引言 ............................................................................................................................... 35
6.2 Q 学习算法倒立摆平衡控制 ........................................................................................ 35
6.3 引入经验回放的 Q 学习算法倒立摆平衡控制 .......................................................... 39
6.4 改进型 Q 学习算法倒立摆平衡控制 .......................................................................... 40
6.5 实验结果对比 ............................................................................................................... 43
6.6 小结 ............................................................................................................................... 47
7 总结与展望 ............................................................................................................................. 49
7.1 总结 ............................................................................................................................... 49
7.2 展望 ............................................................................................................................... 49
致谢 ............................................................................................................................................. 51
参考文献 ..................................................................................................................................... 53

II
绪论

1 绪论

1.1 研究背景及意义
作为人工智能的核心,机器学习的根本目的是使计算机能够具备模拟甚至实现人类的
学习活动的能力,对它的研究可以促进人工智能的发展[1]。强化学习是目前机器学习研究
领域的一个热门方向,吸引了多个学科专家学者的目光。强化学习根源于机器学习与学习
心理学的融合,其根据动物学习心理学的相关原理知识,采用动物和人类学习中的“试错”
机制[2],一方面采用已经发现的有效行为,另一方面探索没有被发现的行为,通过智能体
与外界环境的交互获得即时反馈信息,做出最佳决策并采取行为。在人工智能领域由于其
卓越的决策能力而备受瞩目。然而,对于环境的特征提取需要依靠人工来完成,对于复杂
高维的问题就显得非常棘手,所以强化学习的发展始终受限,但近几年随着深度学习发展,
算法可以从原始的图像直接提取出高维数据的特征,为复杂环境的认知问题提供了一种新
的方法。由于深度学习具有强感知能力,弱决策能力,而强化学习具有强决策能力,但对
感知问题无法解决。因此,将两种算法结合起来,扬长避短,能够为复杂状态下的感知决
策问题提供思路。
倒立摆系统是一种典型的自动控制理论研究装置,在倒立摆系统的控制过程中能够有
效的反应随动性、鲁棒性、跟踪及镇定性等关键问题[3],因此,倒立摆系统逐渐成为广大
学者验证控制方法正确性及有效性的典型对象[4][5]。所以本文以一级直线倒立摆系统为载
体进行强化学习算法以及深度强化学习算法的研究。通过对近几年有关强化学习算法的文
献研究后,发现绝大多数都只是在仿真研究,在实物控制方面的研究非常少,众所周知,
在真实的工业现场环境中,会存在很多噪声干扰,与仿真的理想环境具有很大区别。本文
搭建了以 PLC 为核心的一级倒立摆硬件实验平台,在该硬件平台中电机转速较小,动态
性能一般,通过上位机与 PLC 之间的通信来驱动步进电机对倒立摆的控制,会存在一定
的时间滞后,齿轮换向也会出现打滑、间隙,还有种种摩擦带来的控制噪声,所以该平台
还原了部分真实工业现场的环境,通过该实验平台对强化学习以及深度强化学习的研究成
果,具有在实际工程领域的应用价值。

1.2 国内外研究现状
随着人类社会的飞速发展,强化学习以及深度强化学习在越来越多复杂的现实场景任
务中,取得了突破,利用深度学习来自动学习大规模输入数据的抽象表征,并以此表征为
依据进行强化学习的训练 [6] ,优化解决问题的策略。在很多挑战性领域中,谷歌的
DeepMind 人工智能研究团队构造并实现了人类专家级别的智能体(agent)。这些 agent
对自身知识的构建和学习都直接来自原始输入信号,无需任何的人工编码和领域知识[7]。
因此深度强化学习是一种端对端的感知与控制系统,有很强的通用性,具有广阔的应用前
景[8][9]。

1
西安理工大学硕士学位论文

1.2.1 强化学习研究现状
强化学习(Reinforcement Learning,RL)作为一类机器学习方法,最早可以追溯到
Thorndike 对动物心理学方面的研究,1954 年,Marvin Lee Minsky 遵循学习心理学中相关
理论在其博士论文中实现了一种人工学习系统,即随机神经模拟强化计算器[10],并于 1961
年正式提出强化学习概念,其理论的形成在上个世纪七八十年代,理论的基础为 1957 年
Bellman 提出的动态规划方法(Dynamic Programming,DP),即马尔科夫决策过程 [11][12]
(Markov decision progress),动态规划本质上讲是一种非线性规划方法,基本思想就是
将问题分解成一系列子问题,通过子问题的解,得到原问题的解[13]。1977 年,美国学者
Paul J. Werbos 首次提出了自适应动态规划(ADP),该方法有效地解决了动态规划"维数灾"
的难题[14]。1988 年,Sutton 将动态规划理论和蒙特卡洛算法相融合提出了时间差分算法,
基于时间差分的强化学习算法又叫 TD 算法[15],是当前强化学习研究领域的基础,1989
年,Watkin 提出了一种强化学习领域中的经典算法 Q 学习算法,该算法利用环境状态-
智能体执行动作组合而成的智能体奖励来完成对整个智能体决策过程的训练和设计
[16][17]
。1994 年,Rummry 提出 Sarsa 算法,其与 Q 学习算法同为单步更新,但更新的目
标值不同。1996 年 Bersekas 提出解决随机过程中优化控制的神经动态规划方法。2006 年
Kocsis 提出了置信上限树算法。2009 年 kewis 提出反馈控制只适应动态规划算法。2014
年 silver 提出确定性策略梯度(Policy Gradents)算法[18]。然而,对于环境的特征提取需
要依靠人工来完成,对于复杂高维的问题难以处理,所以强化学习的发展始终受限。但近
年来,随着深度学习的崛起,强化学习感知能力差的问题得到了解决,使其处在了发展的
高速期。

1.2.2 深度强化学习研究现状
2013 年底,谷歌人工智能研究团队 DeepMind 发表文章 Playing Atari with Deep
Reinforcement Learning,在强化学习任务中,首次成功运用深度学习,通过无监督的学习
方法实现从单纯图像输入来玩 Atari2600 游戏的效果。通过对算法的改进,使得 DQN 在
Atari 几乎一半的游戏中超过人类水平。2015 年,DeepMind 团队提出了深度 Q 网络(DQN),
该算法是一种端到端(end-to-end)的学习方式[19][20]。在 Atari 游戏控制中达到了与人类
不相上下的控制效果。DQN 作为深度强化学习研究领域的重要开创,引起了众多学者以
及研究团队的关注并且进行了大量改进,例如分布式 DQN、双重 DQN、带优先级经验回
放的 DQN、竞争架构 DQN、引导 DQN 以及异步 DQN 等[21]。
此后,研究人员提出了深度 SARSA 算法,该算法是一种在线策略强化学习算法。实
验证明在一些 Atari 视频游戏上,深度 SARSA 算法的性能要优于 DQN[22]。Anschel 等针
对深度强化学习算法的不稳定性做了一定的改善,提出了平均 DQN 算法,达到了降低目
标函数方差的效果。实验结果表明,在 ALE 测试平台上,平均 DQN 的性能要超过 DQN
和双重 DQN[23][24]。分类 DQN 算法作为传统 DQN 的一种变体,对深度强化学习从分布式
方面做了分析。它将奖励值看做一个近似分布,并且采用贝尔曼方程来学习这个近似分布,
2
绪论

在 Atari 视频游戏上的平均表现超过了大部分基准算法。噪声 DQN 是在动作空间中通过


噪声注入来进行探索性行为,经过实验发现带有参数噪声的深度强化学习将比分别带有动
作空间参数和进化策略的传统强化学习效率更高[25]。
为了得到最优的策略,基于值迭代的深度强化学习算法需要先求解出各个状态下每种
行为的状态行为值,然后利用状态行为值去更新策略,是一种间接求取最优策略的方法,
而在许多现实场景中,我们往往对直接得到最优策略有更浓厚的兴趣。为此,有学者提出
了一种求解最优策略更加直接的方法,即直接用一个带参数的深度神经网络来进行参数化
表示策略,并利用策略梯度的方法来有优化策略,这样就形成了基于策略的深度强化学习
算法。2015 年,Schulman 等人提出了区域信赖的最优化(TRPO)方法[26]解决了学习率
如何确定的问题。
尽管基于值迭代的深度强化学习算法和基于策略迭代的深度强化学习算法在机器人
控制以及其他任务中已经取得了不错的效果,但是在一些复杂真实场景下的机器人操作任
务中,由于大量的训练数据难以在线获得以及行为之间存在连续性,导致在训练过程中常
常出现局部最优解的情况。针对此问题,有学者将基于值迭代的深度强化学习算法和基于
策略迭代的深度强化学习算法的核心相结合,形成了基于 Actor-Critic 框架的深度强化学
习算法[27]。基于 AC 框架的算法具有两个网络,Critic 是值函数网络,它的作用是对策略
进行评估,Actor 是策略网络,它的作用是利用梯度来改进策略。实验表明,基于 AC 框
架的算法效率更高,速度更快。
在 AC 框架的深度策略梯度算法的思想基础下。Lillicrap 等人提出了一种深度确定性
策略梯度(DDPG)算法,解决了连续动作空间上的问题。对策略采用策略网络进行更新,
策略网络与 AC 框架中 Actor 相对应;利用值网络来逐渐逼近状态行为值函数,并且将梯
度信息提供给策略网络,值网络与 AC 框架中 Critic 相对应。在 DDPG 中,目标函数为带
衰减的奖励和,然后采用随机梯度下降方法来对目标函数进行端对端的优化。实验表明,
DDPG 不仅在一系列连续动作空间的任务中表现稳定,而且求得最优解所需的时间步也远
远少于 DQN[28][29]。然而在复杂环境下,由于噪声干扰,确定性策略的 DDPG 方法并不适
用,针对噪声环境下策略具有随机性的问题,Heess 等人提出了随机值梯度(SVG)方法,
将 DDPG 算法扩展为一种随机环境下的策略优化过程。后来,Heess 等人使用循环神经网
络,提出了循环确定性策略梯度(RDPG)和循环随机值梯度(RSVG)方法[30],此后,
Schulman 等人提出了一种形式化的随机计算图模型,开展了同时包含随机性和确定性操
作的复杂深度策略梯度的研究[31]。
近几年,传统的深度学习算法在外界环境的感知理解方面已经表现的相当优异,强化
学习通过深度学习的感知不断更新策略,达到策略的最优化。伴随着 AlphaGo 和 AlphaZero
首次在复杂控制任务中表现超越人类,强化学习在人工智能领域取得的成果倍受瞩目,创
造了更高的机器智能,人工智能即将对我们的生活造成天翻地覆的变化。

3
西安理工大学硕士学位论文

1.2.3 倒立摆控制研究现状
倒立摆控制系统的研究是从上世纪 60 年代开始的,1966 年,Schaefer 等人利用
Bang-Bang 控制理论,成功将一个曲轴稳定在了倒置位置[32]。1972 年 Sturgen 等人利用极
点配置方法完成了二级倒立摆的平衡控制[33]。1976 年 Mori 首次对倒立摆系统进行线性化
处理,设计出了 PID 控制器[34]。
国内对于倒立摆的研究始于 80 年代,从一级倒立摆到二级直至三级四级,倒立摆控
制方法有了很大的进展,如模糊控制、神经网络、强化学习等。2001 年李洪兴等人实现
了三级倒立摆的实物控制,并在第二年完成了四级倒立摆的平衡控制[35]。2004 年张义明
等人使用线性二次状态控制器(LQR)和线性二次输出控制器(LQY)实现了二级倒立摆系
统的平衡控制。2015 年 Wang 等人通过引进神经网络对 Q 学习算法难以处理状态变量维
度过大的问题进行了优化,实现了一级倒立摆的平衡控制。

1.3 研究工作及内容安排
本文以一级直线倒立摆系统为载体,通过对强化学习 Q 学习算法以及深度强化学习
DQN 算法、双网络 DQN 算法、PG 算法的理论研究,首先在 Python 语言环境下借助 OpenAI
Gym 游戏库分别完成了基于 DQN 算法、双网络 DQN 算法、PG 算法的倒立摆平衡控制
仿真,在 DQN 算法的仿真中通过对比不同 reward 给定方式下神经网络的训练速度,得出
了针对于倒立摆平衡控制系统训练速度最快的线性化 reward 给定方式。其次搭建了基于
PLC 的一级直线倒立摆硬件实验平台,并通过传统控制算法 PID 对硬件实验平台的有效
性做了验证。在倒立摆硬件平台上完成了基于 DQN 算法的倒立摆起摆控制。最后针对于
单纯 Q 学习算法在自学习过程中训练速度慢,部分样本经验在探索中很难获得的缺点,
研究设计了具有多元训练策略的改进型 Q 学习算法,完成了改进型 Q 学习算法在倒立摆
硬件实验平台的平衡控制。
本文研究内容的章节安排如下:
第一章:绪论,主要介绍了研究强化学习的重要理论意义以及强化学习和深度强化学
习的研究现状,分析了常见的倒立摆控制方法。
第二章:首先介绍了强化学习、深度强化学习的基础原理以及常用算法,最后对倒立
摆系统进行了建模以及定性分析。
第三章:主要介绍了在 Pyhthon 编程环境下利用 OpenAI Gym 游戏库完成了深度强化
学习 DQN 算法、双网络 DQN 算法以及 PG 算法对一级直线倒立摆平衡控制的仿真实验,
在 DQN 算法的仿真实验中通过对比不同 reward 给定方式下神经网络的训练速度,得出了
针对于倒立摆平衡控制系统训练速度最快的线性化 reward 给定方式。
第四章:主要介绍了一级倒立摆的硬件平台搭建。并且采用传统的 PID 控制方法对
一级倒立摆实现了平衡控制,验证了平台的有效性,为后续强化学习的研究提供了测试基
准。
第五章:在硬件平台实现了 DQN 算法一级直线倒立摆的起摆控制。表明了 DQN 算
4
绪论

法在倒立摆起摆控制的有效性。
第六章:针对单纯的 Q 学习算法在实际应用中部分训练样本难以获得的问题,研究
设计了具有多元训练策略的的改进型 Q 学习算法,完成了改进型 Q 学习算法在一级直线
倒立摆硬件平台的平衡控制。并通过改进型 Q 学习算法与人工精良调参 PID 算法对倒立
摆平衡控制效果的测试对比,得出面向离散控制的改进型 Q 学习算法对倒立摆平衡控制
效果已经十分接近于连续控制的 PID 算法,而改进型 Q 学习算法相比 PID 控制算法具有
参数自整定不需人力调参,通用性更强,适用范围更广泛,能够极大降低控制系统的设计
难度和人力投入等优点,具有良好的应用前景。
第七章:对工作进行总结并给出了下一步的工作方向。

5
西安理工大学硕士学位论文

6
理论基础

2 理论基础

2.1 引言
本章首先对强化学习、深度强化学习基础概念以及模型进行介绍并分析。其次通过对
马尔科夫决策过程各参数进行分析以及对常用强化学习算法理论推导,为强化学习以及深
度强化学习算法在倒立摆控制系统中的应用奠定了理论基础。最后通过对一级直线倒立摆
的系统建模对该系统给出了定性分析。

2.2 强化学习基础理论
2.2.1 强化学习基础概念
强化学习(Reinforcement learning)是机器学习的重要方法之一[36][37],被广泛的应用于
智能控制、分析预测等领域。其通过智能体与环境的不断交互反馈,利用反馈信息不断更
新策略,最终获得最优决策。智能体在训练过程中,通过不断试错,获得环境反馈的评价,
从而积累经验,更新策略,将得到的累积奖惩值最大化。其不需要正确的指导信息,只需
要通过不断试错的方法来获得训练样本,最终达到最优的行为策略。
目前强化学习已经成为机器学习领域的核心研究方向之一[38]。其示意图如图 2-1 所
示:

图 2-1 强化学习示意图
Fig.2-1 Enhanced learning schematic

2.2.2 马尔科夫决策过程(MDP)
马尔科夫决策过程(Markov Decision Process)是指,智能体未来的状态只与当前的
状态以及行为有关,而与之前所有的历史状态无关。强化学习问题是基于马尔科夫决策过
程的[39]。马尔科夫决策过程由四元组(S,A,P,R)构成,其中 S 为智能体环境状态集,A 为智
能体有可能选择的行为集,R 为奖惩函数,P 为系统状态转移概率, R  s, a, s ' 为智能体在环
境状态 s 下选择行为 a 从而使环境到达状态 s 的奖惩值, P  s, a, s ' 为系统在状态 s 下采
7
西安理工大学硕士学位论文

取行为 a 使环境状态转移到 s ' 的概率[40]。作为强化学习的模型,马尔科夫决策过程在很多


实际问题中有很强的适用性,例如自动控制领域的人机交互系统、自动驾驶系统、导航系
统等。
MDP 分为有终止状态的和没有终止状态的,有终止状态的称为情节式(episode)任
务,例如下棋、玩游戏等,如果到达终止状态,状态就不能再改变,没有终止状态的称为
连续式任务。
在 MDP 中,所有状态-行为值 Q 均可通过解线性系统的贝尔曼方程获得:贝尔曼方
程如式 2-1 和式 2-2 所示:
Q  s, a   R  s, a     P  s, a, s 'Q  s ',   s ' 
 
(2-1)
s'
 
Q  R   P Q (2-2)
式 2-1 中:
Q  s, a  ——状态 s 下采用策略 π 选择行为 a 的状态行为价值;

R  s, a  ——在状态 s 下选择行为 a 所获得的瞬时奖惩值;


 ——衰减因子;
P  s, a, s ' ——在状态 s 下选择行为 a 转移到状态 s ' 的概率;
Q  s ',   s '  ——下一状态 s ' 下状态行为价值。

式 2-2 中:

Q ——状态行为价值;
R ——瞬时奖惩值;
P ——状态转移概率。

在已知模型的 MDP 中可以通过动态规划等方法获得最优解,而在未知模型中,智能


体通过与环境的不断交互,获得训练样本  s, a, r , s ' ( s ' 为下一时刻状态),通过对策略
的不断更新,从而达到最优策略。

2.2.3 强化学习模型及四要素
图 2-2 为标准的强化学习模型图。

动作 a

奖惩值r
智能体 环境

状态 s

图 2-2 强化学习模型图
Fig.2-2 Reinforced learning model diagram
智能体在当前状态 s 下选择行为 a,通过环境反馈给智能体的奖惩信息以及到达的状
态再来决定下一时刻的行为[41]。
8
理论基础

强化学习四要素分别为模型、策略、奖惩函数和值函数。
(1)模型
模型是对环境的一种抽象表达方式,智能体在状态 s 下选择行为 a 后环境通过计算得
到下一时刻状态 s ,并且反馈给智能体一定的奖惩值 r,在环境模型中,智能体能够更多
的对下一过程进行预测。
(2)策略
策略是状态到行为的一种映射[42],智能体将观察到的环境状态作为输入,经过训练
的策略 π 得出当前的行为 a。策略集是智能体选择行为的重要支撑,是整个系统的核心。
(3)奖惩函数
奖惩函数是智能体与环境交互中获得的评价性反馈信号。通常为一常数,数值大小代
表了奖惩力度,可以是正数的奖励值,也可以是负数的惩罚值。
(4)值函数
值函数是更新策略的关键因素,是强化学习的核心组成部分,它是当前状态下所选择
的行为对后续一系列状态所造成影响的整体评价。值函数模型如式 2-3 所示:

V

 s t     i r t i, 0    1 (2-3)
i 0

式 2-3 中:
V

 s t  ——从状态 s t 开始累计获得奖惩值的期望;
i ——步数;
 ——衰减因子;
r t i ——瞬时奖惩值
与奖惩函数的瞬时评价不同,值函数是对当前状态下选择的行为对于后续所有状态影
响的整体评价。有些行为可能在当前状态下获得了一个很高的瞬时奖惩值,但从长远来看,
该行为未必是很好的。值函数取值就不是很大。相反,有些行为就目前来看并不是一个很
好的选择,获得的奖惩值也较小,但从长远来看,却有一个很高的价值,其值函数就会较
大。

2.2.4 强化学习常用算法
强化学习算法主要分为基于值迭代以及基于策略迭代两种 [43]。常见的基于值迭代的
算法有 Q 学习算法和 Sarsa 算法两种,基于策略迭代的有策略梯度(PolicyGradient,PG)
算法,本节分别对 Q 学习算法、策略梯度算法加以说明。
(1)Q 学习算法
1989 年 Watkins 提出 Q 学习,又称 off-policy TD 学习[44],是强化学习中最经典的方
法之一。Q 学习[45]迭代时采用当前状态-行为值 Q  s, a  作为估计函数。通过表格的形式

来记录其值的大小,其形式如式 2-4 所示:


Q  s, a   E  r t 1   r t  2   r t 3  ... | At  a, S t  s 
 2
(2-4)
9
西安理工大学硕士学位论文

式中:
Q  s, a  ——所有即时奖励的期望;

r ——即时奖励值;
 ——衰减因子;
At —— t 时刻智能体在行为空间 A 中所选择的行为;
S t ——状态空间 S 中智能体在 t 时刻所到达的状态。
通过下一时刻状态的最大行为值函数完成当前时刻状态行为值函数的更新,其更新形
式如式 2-5 所示:

Q  s t , a t   Q  s t , a t    r t 1   max Q  s t 1, a   Q  s t , a t 
a
 (2-5)

式中:
Q  s t , a t  ——状态 s t 下选择行为 a t 的状态行为值函数;

 ——学习率;
r t 1 ——状态 s t 下选择行为 a t 的瞬时奖惩值;
 ——衰减因子;
Q  s t 1, a  ——下一时刻的状态行为值函数。
Q学习算法流程如下:
1)初始化 Q  s, a  ;
2)每个 episode 执行以下操作:
a.采样得到状态变量 s;
b.在状态变量 s 下采用  -greedy 策略选择行为 a 并执行,状态转移到 s ' 并得到奖
惩值 r;根据式(2-5)更新状态行为值函数 Q  s, a  并令 s  s ' 。重复 b 操作直至达到
该 episode 训练结束条件;
3)重复 2)直至训练结束。
(2)策略梯度(PolicyGradient,PG)算法
基于值迭代的 Q 学习算法是一种间接的学习方式,而基于策略迭代的 PG 算法则是
通过更新策略直接选择行为[46]。
策略网络定义如式 2-6 所示:
 (a | s, ) (2-6)
式中:
a ——当前状态 s 下选择的行为;
s ——当前状态;
 ——策略网络的参数(即神经网络每一层的权值  和偏移 b );
 ——在状态 s 下选择的策略。
策略网络用于计算在状态 s 下,每一个行为的选择概率。通过概率,来选取行为。该
网络通常由多个全连接网络构成,当输入为图像时,开始的几层可能为卷积层。中间几层
10
理论基础

的激活函数没有特殊限制。最后一层的激活函数应当是 sigmoid 或 softmax,区别在于,


如果 action 只有两个选择(即二分),则可以使用 sigmoid,也可以使用 softmax。如果 action
有多个可能,则使用 softmax。通用算法中,一般都是使用 softmax。
Softmax 激活函数定义如式 2-7 所示:
zj
e
(2-7)
e i
zi

式中:
z i ——神经网络第 i 个神经元的输出值。
从状态s出发,策略  所能产生的预期奖惩值(reward)如式2-8所示:
E    (s)    a  (a | s, ) f (s, a) (2-8)

式中:
  ( s) ——在状态s下采用策略π获得的预期奖惩值;
f (s, a) ——在状态s下选择行为a所能获得收益的期望值。
策略更新的目标是,针对每一个状态s,选择最好的行为(即令该行为的选择概率最大
化),从而使reward的期望值最大。为此,需要计算出该期望对于  的梯度场,计算过程如
式2-9所示:
 E    ( s )     j  (a j | s,  ) f ( s, a j )
  j f ( s, a j )  (a j | s,  )
  (a j | s,  )
  j f ( s, a j ) (a j | s,  )
 ( a j | s,  ) (2-9)
  j f ( s, a j ) (a j | s,  ) log  (a j | s,  )
  j  (a j | s,  ) f ( s, a j ) log  (a j | s,  )

 E  log  (a j | s,  ) f ( s, a j ) 

可以看出, log  (a j | s, ) f (s, a j ) 表征了在(s, a)状态下改进策略的梯度方向。因此,


策略网络的目标函数如式2-10所示:
max log  (a j | s, ) f ( s, a j ) (2-10)
显然,当 f (s, a j )  0 时,应当改进  使得 log  (a j | s , ) 增大(增大状态s下, a j 被选择
的概率);当 f (s, a j) 0 时,应当改进  使得 log  (a j | s, ) 减小(减小状态s下, a j 被选择的
概率)。f(s, a)通常通过Q学习算法获得,因此目标函数也可以表示为式2-11形式:
log   a j | s,  Q  s, a j  (2-11)
对于批量样本,目标函数如式2-12所示:
1
n
 log   a | s,  Q  s, a  (2-12)

式中:
n——样本数量。
11
西安理工大学硕士学位论文

通过式2-11或式2-12的目标函数对策略网络参数的不断优化,达到对策略的最优解,
完成对智能体的训练。PG是一种蒙特卡洛算法,通常情况下,需要记录每个时间步的状
态变量、行为、奖惩值。每完成一个episode(情节式任务),则从最后时刻开始,反向
计算每个时刻的状态行为值。完成神经网络参数的更新。

2.3 深度强化学习基础概念及常用算法
传统的强化学习局限于动作空间和样本空间都很小,且一般是离散的情境下。然而比
较复杂的、更加接近实际情况的任务则往往有着很大的状态空间和连续的动作空间。当输
入数据为图像,声音时,往往具有很高维度,传统的强化学习很难处理,深度强化学习就
是把深度学习对于高维输入的感知与强化学习的决策结合起来。其模型图如图 2-3 所示:

DL感知 RL决策
智能体

观察 奖惩 动作

环境

图 2-3 深度强化学习模型图
Fig.2-3 Deep reinforcement learning model
通过深度学习对环境的感知,将观察到的信息传递给智能体,用于智能体决策并执行
动作,再通过环境得到相应的奖惩值不断更新决策能力,最终达到智能体自动寻优的训练
效果。常见的深度强化学习算法有 DQN(Deep Q Network)、AC(Actor Critic)、DDPG(Deep
Deterministic Policy Gradient)等。本节只对本文中用到的 DQN 算法及双网络 DQN 算法做
以说明。
在解决状态变量以及行为空间维度较低(如一维、二维)时,基于表格形式的 Q 学
习算法还可以对 Q 表格进行训练,然而当遇到一些复杂问题时,这种问题的状态变量维
度都比较高,构建的 Q 表格就会非常庞大,基于表格形式的 Q 学习算法将难以训练,这
时候我们将神经网络与 Q 学习算法结合起来,利用神经网络来代替 Q 表格,就可以解决
维度较大难以训练的问题。
然而将 Q 学习算法与神经网络相结合时又存在一些问题:
(1)用于训练的状态是一个序列,该序列中前后的状态高度相关。
(2)Q 参数有微小更新就会导致策略发生巨大变化,并因此导致训练样本分布的巨
大变化。
12
理论基础

(3)目标 Q 函数和 Q 估计函数之间的参数联系,每次更新的目标都是固定上次更新


的参数得来,优化目标跟着优化过程一直在变。
DQN 算法将 Q 学习算法与神经网络有效结合在一起,通过引入经验回放机制(将实
验所得的经验样本一并存储在经验池 replay_buffer 中每次随机抽取部分样本进行训练),
打破了样本之间的相关性,同时平滑了数据分布,解决了 Q 学习算法与神经网络结合的
前两个问题。
第三个问题则是在深度强化学习 DQN 算法的基础上引入目标 Q 网络改进的。通过在
线 Q 函数参数更新一定周期之后再去更新目标 Q 网络的参数,从而降低了目标 Q 函数与
Q 估计函数之间的相关性,提高了算法的收敛性。这就是对 DQN 进行提升后的双网络
DQN 算法,其算法框图如图 2-4 所示:

DQN损失函数

误差函数的梯度 Q  s, a,  max aQ  s, a, 


argmax aQ  s, a; 
每隔N时间步
拷贝参数
环境 估计值网络 目标值网络

s
(s,a)
s
r

 s, a, r, s
经验池

图 2-4 双网络 DQN 算法框图


Fig.2-4 Dual network DQN algorithm block diagram
对估计值网络进行初始化,并将其初始化的网络参数传递给目标值网络。智能体以环
境给出的当前状态 s 作为估计值网络的输入,经过估计值网络计算得出该状态下各个行为
的状态行为值(Q 值),并以 1   的概率选择估计值网络输出最大 Q 值的行为(以  的
概率随机选择行为,为智能体提供一定的探索性能),得到环境反馈的即时奖惩值 r 以及
下一时刻的状态变量 s ,将实验得来的训练样本  s, a, r , s  存储在经验池中,当训练样本累
积到一定数量后,每次从经验池中随机抽取一部分的训练样本,将样本中  s, a  提供给估
计值网络用以得到 Q 估计 , s 提供给目标值网络,输出下一时刻状态变量 s 下每个行为 Q
值的最大值, Q 估计 为当前状态 s 下选择行为 a 的 Q 值, Q目标 如式 2-13 所示:
Q目标=r   max Q  s, a  (2-13)
a

式中:
13
西安理工大学硕士学位论文

r——在状态 s 选择行为 a 到达状态 s 时的瞬时奖惩值;


 ——衰减因子;
max Q  s, a  ——下一时刻状态 s 下最大 Q 值。
a

  为损失函数,对估计值网络不断更新,每隔一定的时间步 N 将参数
2
以 Q目标-Q 估计
拷贝给目标值网络,最终完成对智能体的训练。

2.4 一级直线倒立摆基础理论
一级直线倒立摆系统主要由小车、摆杆以及导轨组成,其物理示意图如图 2-5 所示:

图 2-5 一级直线倒立摆系统物理示意图
Fig.2-5 Physical schematic diagram of a linear inverted pendulum system
(1)建立模型
倒立摆系统是一种典型的复杂系统,倒立摆系统模型的建立通常采用牛顿力学分析方
法和 Lagrange 方程法,建模过程中通常将空气阻力、皮带弹性、皮带与小车之间的摩擦
以及齿轮间隙等次要因素忽略。本文通过参考文献[47],采用 Lagrange 方程法[48]对一级直
线倒立摆进行建模。对系统作如下假设:
1) 摆杆为刚体;
2) 忽略摩檫力;
3) 齿轮不打滑;
4) 皮带不会出现拉伸。
Lagrange 方程如下所示:
L  q, q   T  q, q   V  q, q  (2-14)
式中:
L——拉格朗日算子;
q——系统广义坐标;
T——系统动能;
V——系统势能。
经过推理计算,系统动能与势能分别如式 2-15,2-16 所示:
1 1 2
T  M x 2  m x 2  mlx cos   ml 2 (2-15)
2 2 3

V  mgl cos  (2-16)


14
理论基础

式中:
M ——小车质量(1.096 Kg)
x ——小车位移
m ——摆杆质量(0.109 Kg)
l ——转动轴心到摆杆质心距离(0.25m)
 ——摆杆与竖直向上方向的夹角
在广义坐标系  下只有摩擦力作用,故式 2-17 成立。
d L L
 0 (2-17)
dt  
倒立摆系统状态变量为  x, , x,  ,设
  f ( x, , x, ) (2-18)
在平衡位置附近进行泰勒级数展开,并线性化可得:
  k 11x  k 12  k 13x  k 14  k 15x (2-19)
带入数据计算得出系统状态方程如式 2-20,式 2-21 所示:
0 1 0 0 0 
0 0 0 0 1 
x X   u (2-20)
0 0 0 1 0 
   
0 0 29.4 0  3 
1 0 0 0  0 
Y   X   u (2-21)
0 0 1 0  0 
(2)定性分析
1)稳定性:
由式 2-20,式 2-21,经过计算可得系统的开环特征根分别为:
1   2  0,  3  5.4222,  4  5.4222
由于  3  0 ,因此倒立摆系统不稳定。
2)能控性:
倒立摆系统能控性矩阵如式 2-22 所示:
M   A AB 2
AB A B 
3
(2-22)
经计算得出该矩阵满秩,因此倒立摆系统能控。
3)能观性:
倒立摆系统能观性矩阵如式 2-23 所示:

 
T
M A CA CA
2
CA
3 (2-23)

经计算得出该矩阵满秩,因此倒立摆系统能观。

15
西安理工大学硕士学位论文

2.5 小结
本章主要介绍了强化学习及倒立摆的相关基础知识。首先介绍了强化学习的基本概
念、模型以及一些主要的强化学习算法,其次介绍了深度强化学习的基础概念以及常用算
法,最后介绍了倒立摆的工作原理,并对直线一级倒立摆进行了定性分析,为下文的工作
奠定了理论基础。

16
基于深度强化学习的倒立摆平衡控制仿真实验

3 基于深度强化学习的倒立摆平衡控制仿真实验

3.1 引言
本章完成了深度强化学习 DQN 算法、双网络 DQN 算法以及强化学习 PG 算法对一
级直线倒立摆的平衡控制仿真实验,在 DQN 算法对倒立摆平衡控制仿真中,通过三种
reward 给定方式的训练结果对比,得出了针对于倒立摆平衡控制,线性化 reward 给定方
式训练速度更快的结论。

3.2 基于 DQN 算法的倒立摆平衡控制仿真实验


本次仿真在 Python 语言环境下借助谷歌 OpenAI Gym 开源游戏库 CartPole(一级直
线倒立摆)游戏环境来研究 DQN 算法,倒立摆游戏画面如图 3-1 所示:

图 3-1 Cartpole 仿真画面


Fig.3-1 Cartpole simulation screen
该游戏环境对状态变量、行为空间、倒立摆小车的运动空间、倒立摆平衡角度范围以
及画面的渲染都给出了定义。其中状态变量(state)为 4 维,分别为小车位置,小车速度,
摆杆角度,摆杆角速度。行为分别为沿水平方向向小车左或右施加 10N 的力移动。小车
的移动空间为(-2.4,2.4)(游戏画面最左侧到最右侧),摆杆以垂直向上角度为 0。平衡
角度范围为  -12 ,12  。超出移动空间或者角度范围,则认为此次控制结束。
(1)DQN 算法参数设置及说明
衰减因子  是 DQN 算法中非常重要的参数,它是目前状态下选择的行为对后续所有
状态产生影响的一个衰减,取值一般为 0.9 到 0.99 之间,本次实验取 0.99。经验池的样
本存储空间取 100000,每次训练随机抽取 32 份样本进行神经网络的训练。
基于值迭代的 DQN 中同样关键的是 reward 的制定,由于训练过程具有一定的随机性,
reward 制定的过于稀疏,对于训练量的要求就非常的大,reward 制定的密集,又可能让
训练满足于局部优。所以不同 reward 的制定对于训练速度以及训练结果都会有不同程度
的差异。本次仿真取如下三种不同的 reward 奖励机制作以对比,为下文硬件实验平台的
平衡控制提供经验。
1)倒立摆保持平衡的每个 step,无论角度大小,位置在哪,只要不满足该 episode(情
17
西安理工大学硕士学位论文

节式任务,即一次实验)结束条件,reward 即为 1(恒定值 reward 给定方式)


2)保持平衡的每个 step,reward 取线性化的奖励值,在 0 度角 reward 最大为 1,在
边缘角度±12 度最小为 0。(线性化 reward 给定方式)
3)倒立摆每个 step 只在  -1,
1  范围内 reward 为 1(稀疏化 reward 给定方式)
(2)神经网络的搭建
神经网络的搭建采用三层全连接神经网络,输入层神经元数量与状态变量的维度相同
为 4 个,隐层神经元个数为 20,输出层神经元个数与行为空间中行为数量相同为 2 个。
隐层激活函数为 Relu 函数,其它层无激活函数。神经网络的输入为状态变量 s t ,输出为
  为损失函数对神经网络进
2
在该状态下所选择行为的 Q 估计值 Q  s t , a t  。以 Q目标-Q 估计
行更新, Q目标 由式 2-13 可得。
采用 Adam 优化器作为神经网络优化器。对于神经网络的学习率,过大的学习率会造
成训练过程不稳定,不容易收敛,甚至发散。而过小的学习率又会导致训练速度太慢。一
般取值在 0.001 到 0.01 之间,本次取 0.002。
(3)实验过程说明
首先对神经网络参数进行初始化,然后以每个 episode 中上限 200 个 step 进行实验,
在实验过程中将得到的样本 s, a, s, r  逐一存入经验池中提供神经网络随机抽取训练。平
衡控制实验与神经网络训练同步进行,倒立摆每走一步,神经网络训练一次。满足以下任
一条件,该 episode 实验结束。
1)小车走出移动空间;
2)摆杆角度超出  -12 ,
12  的范围空间;
3)200 个 step 全部走完。
在实验过程中,我们会加入一个随机因子  ,即就是在实验中我们不一定每次都要选
择当前状态下最大 Q 值的行为,而是以  的概率随机选择行为空间中的任一行为,以 1- 
的概率选择当前状态下最大 Q 值的行为,这种选择行为的方式可以保证我们在实验中具
有一定的探索性,避免陷入局部优,这样获得训练样本的方法被称作  -greedy 法。对于  ,
我们在刚开始训练中取一个较大的数 0.3,然后随着训练步数的增加逐渐减小,最小到
0.01。每 20 个 episode 实验,对训练出的神经网络做 3 个 episode 测试,以每个 episode
中上限 200 个 step 进行测试,然后对他所坚持的 step 进行平均。在测试过程中不再选用
 -greedy 的方法,而是以完全贪婪的准则(即只选取 Q 值最大的行为)选取每个状态变
量下 Q 值最大的行为。不断重复上述实验,直到测试结果中倒立摆能连续 10 次达到每个
episode 上限 200 个 step 的平衡控制,实验结束。
(4)实验结果与分析
经过对倒立摆平衡控制的训练与测试,恒定值奖励方式下的 DQN 算法倒立摆平衡控
制仿真曲线如图 3-2 所示。其中图(a)为训练过程中倒立摆每个 episode 保持平衡步数的
曲线,图(b)为每训练 20 个 episode 测试三次平均的测试结果曲线,由图(a)可以看出,
18
基于深度强化学习的倒立摆平衡控制仿真实验

倒立摆系统刚开始完全不知道怎样去保持平衡,在训练与测试中每个 episode 只能坚持十


几步,随着探索未知状态下的行为选择,结合训练得出的已知的状态行为选择,倒立摆经
过训练逐渐提高每个 episode 实验所能坚持的步数。由图 3-2 可知在训练了 140 个 episode
后,倒立摆系统已经可以达到在训练与测试中每个 episode 上限 200 步的平衡控制。

(a)训练图 (b)测试图
图 3-2 恒定值奖励方式下 DQN 算法倒立摆平衡控制仿真曲线
Fig.3-2 DQN algorithm inverted pendulum balance control simulation curve under constant value reward
mode
图 3-3 为线性化奖励值方式下 DQN 算法倒立摆平衡控制仿真曲线,其中图(a)为训
练过程中倒立摆每个 episode 保持平衡步数的曲线,图(b)为每训练 20 个 episode 测试
三次平均的测试结果曲线,由图 3-3 可以看出线性化的 reward 给定方式在训练了大概 80
个 episode 后倒立摆系统在训练与测试中均达到了每个 episode 上限 200 个 step 的平衡控
制。

(a)训练图 (b)测试图
图 3-3 线性化奖励值方式下 DQN 算法倒立摆平衡控制仿真曲线
Fig.3-3 DQN algorithm inverted pendulum balance control simulation curve under linearized reward value
mode
图 3-4 为稀疏化奖励值方式下 DQN 算法倒立摆平衡控制仿真曲线,其中图(a)为训
练过程中倒立摆每个 episode 保持平衡步数的曲线,图(b)每训练 20 个 episode 测试三
次平均的测试结果曲线,由图 3-4 可以看出较稀疏的 reward 给定方式在训练了大概 180
个 episode 后倒立摆系统在训练与测试中均达到了每个 episode 上限 200 个 step 的平衡控
19
西安理工大学硕士学位论文

制。

(a)训练图 (b)测试图
图 3-4 稀疏化奖励值方式下 DQN 算法倒立摆平衡控制仿真曲线
Fig.3-4 DQN algorithm inverted pendulum balance control simulation curve under sparse bonus value mode
通过仿真实验,三种 reward 给定方式下的 DQN 算法均完成了一级直线倒立摆的平衡
控制,达到每个 episode 上限 200 个 step 的平衡。将三种 reward 给定方式做以对比可以发
现,较稀疏的 reward 给定方式,在训练前期提升比较缓慢,在大概 70 个 episode 训练后
才逐渐有了改善,这也导致了整体训练速度的缓慢,需要 180 个 episode 才能达到训练目
的,反观线性化的 reward 给定方式,在 25 个 episode 训练后,每个 episode 所能达到的
step 已经明显在逐渐提高。最终 80 个 episode 的训练就达到了上限 200 步的平衡控制。恒
定值 reward 给定方式在 40 个 episode 训练后,每个 episode 所达到的 step 逐渐提高,在
140 个 episode 的训练后达到平衡控制。所以在保证倒立摆平衡控制的基础上,线性化的
reward 给定方式是三种 reward 给定方式中训练速度最快的。

3.3 基于双网络 DQN 算法的倒立摆平衡控制仿真实验


双网络 DQN 算法是在 DQN 算法的基础上通过引入目标 Q 网络进行改进的。由于单
神经网络的 Q 估计值与目标 Q 值都是通过 Q 估计网络得到的,相关性较强,所以在单网
络的 DQN 中加入目标 Q 网络,目标 Q 值直接通过目标 Q 网络得到。目标 Q 网络的参数
不经过训练,通过 Q 估计网络的参数更新一定周期之后再传递给目标 Q 网络,一定程度
的降低了目标 Q 函数与估计 Q 函数之间的相关性。提高了神经网络的收敛性能。
与上节 DQN 算法倒立摆平衡控制的仿真实验相似,本次实验同样在 Python 语言环
境下借助 OpenAI Gym 开源游戏库 CartPole(一级倒立摆)游戏环境来研究双网络 DQN
算法。
(1)双网络 DQN 算法参数设置
衰减因子  取 0.99。经验池的样本存储空间为 100000,每次训练随机抽取 32 份样本
进行训练,Reward 给定方式为训练速度与训练结果较好的线性化奖励方式。在每个 step
中 0 度角 reward 最大为 1,在边缘角度±12 度最小为 0。
(2)神经网络的搭建
20
基于深度强化学习的倒立摆平衡控制仿真实验

采用三层全连接神经网络,输入层、隐层、输出层神经元数量分别为 4 个、20 个、2


个。隐层激活函数为 Relu 函数,其它层无激活函数。Q 估计网络的输入为状态变量 s t ,
输出为在该状态下所选择行为的 Q 估计值 Q  s t , a t  。目标 Q 网络的输入为下一时刻状态
  为损失函
2
变量 s t 1 ,输出为下一时刻状态变量下的最大 Q 值 Q max  s t 1 。以 Q目标-Q 估计
数,Q目标 由式 2-13 可得。采用 Adam 优化器作为神经网络优化器。神经网络的学习率  取
0.002。Q 估计网络每更新 10 次,将参数传递给目标 Q 网络,完成目标 Q 网络的更新
(3)实验过程说明
首先对神经网络的参数初始化,然后采用  -greedy 的实验方法以每个 episode 中上限
200 个 step 进行实验,获取神经网络训练样本。平衡控制实验与神经网络训练同步进行,
倒立摆每走一步,神经网络训练一次。  初始取 0.3,随着训练步数的增加逐渐减小至最
小值 0.01。满足以下任一条件,该 episode 训练结束。
1)小车走出移动空间;
2)摆杆角度超出  -12 ,
12  的范围空间;
3)200 个 step 全部走完。
每训练 20 个 episode,对训练出的神经网络采用贪婪法则测试三个 episode,每个
episode 上限 200 个 step,然后对他所保持平衡的 step 求取均值。不断重复上述实验,直
到测试结果中倒立摆能连续 10 次达到每个 episode 上限 200 个 step 的平衡控制,实验结
束。
(4)实验结果与分析
双网络 DQN 算法倒立摆平衡控制仿真曲线如图 3-5 所示,其中图(a)为训练过程中
倒立摆每个 episode 保持平衡步数的曲线,图(b)为每训练 20 个 episode 三次测试结果
平均的结果图。

(a)训练图 (b)测试图
图 3-5 双网络 DQN 算法倒立摆平衡控制仿真曲线
Fig.3-5 Dual network DQN algorithm inverted pendulum balance control simulation curve
由实验结果可知,双网络的 DQN 算法在 50 个 episode 的训练后逐渐有了提升,大概
100 个 episode 的训练后完成了一级倒立摆的平衡控制任务。验证了双网络 DQN 算法对一
级直线倒立摆平衡控制的有效性。由于训练过程中存在小概率的随机行为选择,所以会存
21
西安理工大学硕士学位论文

在小的起伏,但在测试中完全贪婪的行为选择。避免了小概率的随机,所以控制效果良好。

3.4 基于 PG 算法的倒立摆平衡控制仿真实验
基于值迭代的 DQN 算法是一种离线学习方法。而基于策略的 PG(policy gradients)
算法是一种在线学习方法。相比较 DQN 这种通过行为评价的间接学习法,PG 通过更新
策略直接选择行为,更加直接。
本次仿真同样在 Pycharm 语言环境下借助 OPEN AI Gym 开源游戏库 CartPole(一级
倒立摆)游戏环境来研究 PG 算法。
(1)PG 算法参数设置
衰减因子  取 0.99。经验池的样本存储空间为 100000,每次训练随机抽取 32 份样本
进行训练,Reward 给定为线性化奖励方式。在每个 step 中 0 度角 reward 最大为 1,在边
缘角度±12 度最小为 0。
(2)神经网络的搭建
采用三层全连接神经网络,输入层神经元数量为 4 个,隐层神经元 20 个,输出层神
经元 2 个。隐层激活函数为 Relu 函数。隐层激活函数为 tanh。神经网络的输入为状态变
量 s t ,输出为行为空间中每个行为的选择概率。采用 Adam 优化器作为神经网络优化器。
神经网络学习率取 0.002。由于 Adam 神经网络优化器是以最小化损失函数来完成对神经
网络的更新,因此损失函数为- log   a j | s,  Q  s, a j  。其推导过程在第二章已经有明确的
讲解,本节不再赘述。
(3)实验过程说明
对神经网络初始化后,以每个 episode 中上限 200 个 step 进行实验,满足以下任一条
件,该 episode 训练结束。
1)小车走出移动空间
2)摆杆角度超出-12 度到 12 度的范围空间
3)200 个 step 全部走完
每完成一个episode实验,则从最后时刻开始,反向计算每个时刻的状态行为值,完
成神经网络参数的更新。由于策略梯度算法对倒立摆平衡控制的训练过程本身也是对其训
练结果的测试,所以本节实验不再专门设置测试实验来验证训练效果。
对上述实验过程不断重复进行,直到神经网络达到收敛,并且连续10个episode达到
上限200个step的倒立摆平衡控制,实验结束。
(4)实验结果及分析
PG 算法倒立摆平衡控制仿真曲线如图 3-6 所示,由图可知,倒立摆在训练了大概 100
个 episode 后保持平衡的步数达到上限 200 步,达到收敛,控制效果良好。验证了 PG 算
法对一级直线倒立摆平衡控制的有效性。

22
基于深度强化学习的倒立摆平衡控制仿真实验

图 3-6 PG 算法倒立摆平衡控制仿真曲线
Fig.3-6 Strategy gradient algorithm inverted pendulum balance control simulation curve

3.5 小结
本章在 Python 语言环境下,利用 OpenAI Gym 游戏库中 Cartpole 游戏首先完成了深
度强化学习 DQN 算法对一级直线倒立摆平衡控制的仿真实验,在实验中通过三种 reward
给定方式训练结果的比较,得出了更有利于倒立摆平衡控制的线性化 reward 给定方式,
为后文的倒立摆硬件平台平衡控制提供了宝贵的经验。最后,分别完成了双网络 DQN 算
法以及 PG 算法对一级直线倒立摆平衡控制的仿真实验,实验结果表明,两种控制算法对
倒立摆的平衡控制均具有有效性。由于一级直线倒立摆系统并不是非常复杂,所以未能体
现出 PG 算法、双网络 DQN 算法在收敛性能上的优势。

23
西安理工大学硕士学位论文

<此页空白>

24
基于 PLC 的倒立摆硬件实验平台搭建

4 基于 PLC 的倒立摆硬件实验平台搭建

4.1 引言
本章首先介绍了一级直线倒立摆系统硬件平台的搭建过程与原理,最后完成了基于
PID 算法的倒立摆平衡控制实验,验证了硬件平台的有效性。

4.2 实验平台搭建原理
本文硬件实验平台的搭建以 PLC 为基础,通过上位机与 PLC 之间的实时通信完成对
步进电机的控制,从而达到对倒立摆的控制。硬件平台框图如图 4-1 所示:
上位机

模式切换 PLC模块

驱动器 编码器
手动控制左右开关

步进电机

限位开关 倒立摆

图 4-1 基于 PLC 的倒立摆硬件实验平台结构框图


Fig.4-1 Block diagram of PLC-based inverted pendulum hardware experiment platform
倒立摆在运动过程中,通过连接在摆杆上的编码器获得摆杆偏移信号,并以 A、B 向
的方式向 PLC 发送脉冲(摆杆旋转一圈,编码器发送 2400 个脉冲)。PLC 通过内部高速
计数器读取编码器发送的脉冲数,利用 A、B 向的前后顺序判断摆杆正反向旋转,并将 A、
B 向脉冲数叠加起来,再结合 PLC 之前发送给步进电机伺服驱动器的脉冲数,一并通过
RS-232 串口通信发送给上位机,经过上位机处理得到摆杆角度以及小车位置,然后将相
应控制信号通过另一 RS-232 串口下发给 PLC。PLC 将收到的控制信号转化为脉冲数与方
向信号发送给步进电机伺服驱动器,完成对步进电机的控制,控制周期为 20ms。其中 PLC
输入端还接入了手动、自动模式切换按钮以及左、右限位开关。通过模式切换按钮可以手
动驱动小车左右水平运动,方便实验操作。左右限位开关是防止小车与导轨两侧进行碰撞,
损坏实验平台。
本次硬件平台 PLC 选用西门子 S7-200,其 CPU 是晶体管输出型的 ST20,电压为
24VDC,电流较小为 0.5A,输出频率可以高达 100KHz,支持高速脉冲输出。伺服驱动器
选用纳川科技 M542H 步进电机驱动器,编码器选用 LPD-3806-600BM-G5-24C 相对式编
25
西安理工大学硕士学位论文

码器。硬件系统的接线图如图 4-2 所示:


SB1 SB2 SB3 SQ1 SQ2
DC GND 驱动器
DC
PUL+ GND

PUL- +V 步进电机
1M 0.2 0.3 0.4 2M 1.2 1.3 L+ M D
A相绕组+
DIR+ A+
DIa 24V DC
DIR- A相绕组-
A-
INPUTS ENA+ B+ B相绕组+

OUTPUTS ENA- B- B相绕组-

DQa 24V DC

2L+ 2M 0.2 0.3 L+ M

图 4-2 硬件系统接线图
Fig.4-2 Hardware system wiring diagram
PLC 输入端 0.2、0.3、0.4 接口分别与手动驱动小车左、右水平运动按钮、手动自动
模式切换按钮相连接,1.2、1.3 分别与左、右光电式限位开关连接,输出端 0.2、0.3 接口
分别与步进电机伺服驱动器控制脉冲信号输入端、方向信号输入端相连接。
搭建好的倒立摆硬件系统如图 4-3 所示:

图 4-3 倒立摆系统硬件平台实物图
Fig.4-3 Inverted pendulum system hardware platform physical map

4.3 基于 PID 的倒立摆平衡控制


为了验证实验平台的有效性,本节采用了基于 PID 算法的一级倒立摆平衡控制实验,
实验原理如图 4-4 所示:
26
基于 PLC 的倒立摆硬件实验平台搭建

输入 + 输出
PID 倒立摆

编码器

图 4-4 PID 算法倒立摆平衡控制原理图


Fig.4-4 PID algorithm inverted pendulum balance control schematic
经过对 PID 控制器的细致调参,单闭环 PID 对倒立摆平衡控制的摆杆角度变化如图
4-5 所示:

图 4-5 PID 算法倒立摆平衡控制曲线


Fig.4-5 PID algorithm inverted pendulum balance control curve
由图 4-5 可以看到在未到达限位开关时,摆杆能较好的实现平衡,但由于只有角度环
而未加位置环,小车会朝着限位开关运动,最终触碰限位开关,导致实验失败。因此接下
来采用双闭环 PID 对一级直线倒立摆进行平衡控制。图 4-6 为倒立摆的双闭环 PID 平衡
控制原理图,其中外环为位置 PID 控制器,内环为角度 PID 控制器。
输入 + + 输出
PID2 PID1 倒立摆

- -

编码器

位置传感器

图 4-6 双闭环 PID 算法倒立摆平衡控制原理图


Fig.4-6 Double closed loop PID algorithm inverted pendulum balance control schematic
通过对双闭环 PID 的细致调参,双闭环 PID 对倒立摆平衡控制 1000 个控制周期的摆
杆角度变化图如图 4-7 所示,可以看出以角度环为内环的基础上,加入外环位置环,可以
较好的实现一级倒立摆的平衡控制任务。经过测试,该 PID 对倒立摆的平衡控制可以达
到 10000 步以上,实现长时间稳定。满足了后续强化学习对倒立摆控制方面的硬件需求。
27
西安理工大学硕士学位论文

图 4-7 双闭环 PID 算法倒立摆平衡控制曲线


Fig.4-7 Double closed loop PID algorithm inverted pendulum balance control curve
4.4 小结
本章主要讲述了一级倒立摆系统硬件平台的搭建原理、元器件选取以及接线原理,最
后采用 PID 控制算法对平台的有效性做了验证,为后续强化学习算法在倒立摆控制方面
的研究提供了硬件基础。

28
基于深度强化学习 DQN 算法的倒立摆起摆控制

5 基于深度强化学习 DQN 算法的倒立摆起摆控制

5.1 引言
本章首先介绍了倒立摆起摆控制过程以及一些起摆控制方法,然后设计了基于强化学
习 DQN 算法的倒立摆起摆控制实验。实验结果表明了 DQN 算法对于一级直线倒立摆起摆
控制的有效性,最后,在起摆测试中通过手动施加作用力的方式增加了扰动实验,实验结
果表明,在扰动作用下,倒立摆系统依然可以通过不断摆动最终到达起摆成功角度区域,
实现倒立摆的起摆控制。

5.2 倒立摆起摆过程描述
一级直线倒立摆的起摆控制,实质就是倒立摆系统从摆杆竖直向下的状态在外力作用
下到达摆杆竖直向上状态的过程。起摆过程如图 5-1 所示:

图 5-1 倒立摆起摆过程示意图
Fig.5-1 Schematic diagram of the inverted pendulume
一般情况下,由于受到导轨长度的制约,一个单向力 F 不能使摆杆从竖直向下位置
(   0 )摆起到达竖直向上位置(    或    )。因此起摆过程可以分为以下几个步
骤:
1)外力 F 下,小车从静止状态沿导轨水平运动,由于惯性,摆杆从竖直向下位置
(   0 )开始摆起到 0     / 2 位置。
2)沿力 F 相反方向施加力 F,摆杆由 0     / 2 位置摆动到  / 2    0 位置。
3)沿力 F 方向施加作用力 F,摆杆由  / 2    0 位置摆动到 0     / 2 位置。
4)不断重复 2)3)步,直到摆杆达到竖直向上位置(    )结束。
由于倒立摆系统输入、输出的非线性关系,许多常用的线性控制理论均不适用。基于
非线性理论,目前常用的倒立摆起摆控制方法主要有时间最优控制、拟人智能控制、能量
反馈以及强化学习等[49][50]。
基于时间最优控制的 Bang-Bang 控制方法采用极小值解决时间最优控制问题,优点
是容易实现,且反应速度快,缺点是控制比较粗糙,控制效果不太理想。拟人智能控制需
要记录起摆过程中大量的参数变化,然后通过计算机对于数据的处理实现实时控制。能量
反馈控制主要通过控制倒立摆系统中摆杆的能量来达到起摆控制。强化学习通过其独有的
“试错”机制,不断尝试各种状态下可选择的行为,利用给定的奖励机制,最大化当前状态
下所能获得的奖励,从而通过自学习方式不断探索最优行为来达到起摆控制。

29
西安理工大学硕士学位论文

5.3 DQN 算法倒立摆起摆控制


(1)DQN 算法参数设置
本次实验以小车位置、摆杆角度、以及摆杆差分得到的摆杆角速度为状态变量(三维),
行为是以电机最大转速驱动小车水平向左、水平向右运动以及原地不动(三种行为)。对
于 reward 给定,我们以摆杆瞬时角度的绝对值大小取线性化的奖励方式(摆杆竖直向下
角度为 0,奖励最小为 0。摆杆角度的绝对值越大奖励越大,摆杆垂直向上时奖励最大为
1.8),折扣因子 γ 取 0.99,经验池的样本存储空间取 100000,每次训练随机抽取 32 份样
本进行神经网络的训练。
(2)神经网络的搭建
采用三层全连接神经网络,输入层神经元个数与状态变量维度相同为 3 个,隐层神经
元个数为 10,输出层神经元数量与行为空间维度相同为 2 个。隐层激活函数为 Relu 函数。
其它层无激活函数。神经网络的输入为状态变量 s t ,输出为在该状态变量下所选择行为
  为损失函数,Q
2
的 Q 估计值 Q  s t , a t  。以 Q目标-Q 估计 目标 由式 2-13 可得。采用 Adam 优
化器作为神经网络优化器。神经网络的学习率取 0.001。
(3)实验过程说明
首先对神经网络进行初始化,然后采用  -greedy 的实验方法以每个 episode 中上限 300
个 step 进行实验。  初始取 0.3,随着训练步数的增加逐渐减小至最小值 0.01。在实验过
程中将得到的样本 s, a, s, r  逐一存入经验池中提供神经网络随机抽取训练。起摆控制实
验与神经网络训练同步进行,倒立摆每走一步,神经网络训练一次。满足以下任一条件,
该 episode 实验结束。
1)小车到达限位开关
2)300 个 step 全部走完
3)摆杆角度   178
不断重复上述实验,直至测试中倒立摆摆杆能够从竖直向下的初始位置,通过不断摆
动积攒能量到达竖直向上位置附近,实验结束。
(4)实验结果与分析
经过 50 个 episode 训练后,摆杆已经可以通过来回摆动最终到达竖直向上位置附近,
完成了起摆的控制任务,采用贪婪策略对训练好的神经网络进行一次起摆的测试,起摆过
程实物图如图 5-2 所示:

30
基于深度强化学习 DQN 算法的倒立摆起摆控制

(a) (b)

(c) (d)

(e) (f)

31
西安理工大学硕士学位论文

(g) (h)
(a,b,c,d,e,f,g,h 分别为从初始位置开始最终超越竖直向上位置的起摆过程图)
(a, b, c, d, e, f, g, h are the starting process diagrams that eventually go beyond the vertical position from the
initial position.)
图 5-2 起摆过程实物图
Fig.5-2 Lifting process physical map
摆杆角度变化如图所示 5-3 所示:

图 5-3 DQN 算法倒立摆起摆测试摆杆角度变化图


Fig.5-3 DQN algorithm inverted pendulum pendulum test pendulum angle change diagram
由图 5-3 可以看出摆杆在小车的带动下从竖直向下位置(   0 )开始不断摆动积攒
动量,经过大概 200 步的控制,最终进入到起摆成功角度区域(   178 ),成功的实现
倒立摆的起摆控制。验证了 DQN 算法对一级直线倒立摆起摆控制的有效性。
在起摆过程中,通过手动施加一个反向作用力对起摆进行干扰,扰动作用下的摆杆角
度变化如图 5-4 所示:
32
基于深度强化学习 DQN 算法的倒立摆起摆控制

扰动

图 5-4 扰动作用下 DQN 算法倒立摆起摆测试摆杆角度变化图


Fig.5-4 DQN algorithm under the action of the pendulum swing test pendulum angle change diagram
由图 5-4 可以看出在扰动作用下,摆杆依然可以通过不断摆动最终到达起摆成功角度
区域,实现倒立摆的起摆控制。

5.4 小结
本章采用三层全连接神经网络完成了 DQN 算法在一级直线倒立摆硬件实验平台的起
摆控制,在大概训练了 50 个 episode 后,摆杆通过不到 200 个控制周期(每个控制周期
20ms)就可以完成从竖直向下位置(0 度)开始最终超越竖直向上位置(180 度)的起摆
控制任务,控制效果良好。

33
西安理工大学硕士学位论文

34
基于强化学习 Q 学习算法的倒立摆平衡控制

6 基于强化学习 Q 学习算法的倒立摆平衡控制

6.1 引言
本章在 Q 学习算法的基础上研究设计了具有多元训练策略的改进型 Q 学习算法,完
成了一级直线倒立摆硬件实验平台的平衡控制。

6.2 Q 学习算法倒立摆平衡控制
Q 学习算法是一种针对离散状态空间以及离散动作空间的表格式学习方法,其主要通
过更新表格中各种状态下所有行为的状态行为值(Q 值)来完成智能体(本节指倒立摆)
的自学习过程。最后通过一个完善的 Q 表格达到对智能体的控制。
(1)Q 学习算法设计
本次实验选取的状态变量为两维,分别是前一时刻倒立摆角度值(状态变量 s1 )与
当前时刻倒立摆角度值(状态变量 s 2 )(通过连续两个时刻的角度值,即可得到此时角
度值以及角度变化量和角度的变化方向)。由于该实验平台电机最大转速较小,当角度偏
离竖直向上位置超过 2.4 度时,将无法完成对倒立摆的平衡控制,因此本文将状态变量的
角度值变化范围限定到-2.4 度到+2.4 度。行为是驱动电机转动的不同脉冲信号。
Q 表格为三维,由状态变量 s1 、状态变量 s 2 以及各种行为构成。考虑到过于精细的
Q 表格在训练量以及训练难度上要求更高,而过于粗糙的表格训练结果又不太理想,经过
反复训练测试,最终将状态变量 s1 取值与状态变量 s 2 取值均线性化的离散为 33 个。状态
变量 s1 与 Q 表格第一维元素的对应关系如表 6-1 所示。状态变量 s 2 与 Q 表格第二维的对
应关系和 s1 与第一维对应关系类似,只是换成了与第二维对应。行为空间由驱动电机转
动的 23 个不同脉冲信号构成,对于控制精度要求更高的 0 速左右行为要更多,行为空间
中各个行为与 Q 表格第三维元素对应关系如表 6-2 所示(行为数值代表脉冲频率,正负
号代表脉冲方向)。最终建立 Q 表格的大小为(33,33,23),并对其初始化。
奖励方式取在仿真结果中训练速度与效果较好的线性化奖励机制,0 度角 reward 最
大为 1,边缘角度±2.4 度最小为 0。由于每次实验均要手动将摆杆转至 0 度附近,然后扶
着摆杆开始训练,具有较大的噪音。所以将学习率调到比较小的 0.1。衰减因子取 0.99。
表 6-1 状态变量 s1 离散化表
Tab.6-1 State variable discretization table
状态变量 s1 Q 表格第一维元素
[-2.4,-2.25) 0
[-2.25,-2.1) 1
[-2.1,-1.95) 2
[-1.95,-1.8) 3
... …
[1.8,1.95) 29
[1.95,2.1) 30
[2.1,2.25) 31
[2.25,2.4] 32
35
西安理工大学硕士学位论文

表 6-2 行为与 Q 表格第三维元素对应表


Tab.6-2 Behavior and Q table third-dimensional element correspondence table
行为 -63 -50 -40 -30 -25 -20 -15 -12
第三维元素 0 1 2 3 4 5 6 7
行为 -9 -6 -3 0 3 6 9 12
第三维元素 8 9 10 11 12 13 14 15
行为 15 20 25 30 40 50 63
第三维元素 16 17 18 19 20 21 22
(2)实验过程说明
采用  -greedy 实验方法以每个 episode 中上限 500 个 step 进行实验。倒立摆每经过一
个 step,利用该 step 中  s, a, r , s  数据对 Q 表格训练一次。  初始取 0.3,随着训练步数的
增加逐渐减小至最小值 0.01 不再变化,每训练 20 个 episode,采用贪婪法则对训练出的 Q
表格测试三次,对三次保持平衡的 step 数进行平均。每个 episode 训练的结束条件为:
1)摆杆角度超出-2.4 度到 2.4 度的范围空间
2)达到上限 500 个 step
不断重复上述实验,直至测试结果中,倒立摆能连续 10 个 episode 达到上限 500 个
step 数的平衡控制,实验结束。
(3)实验结果与分析
500 个 episode 的训练过程中,倒立摆平衡控制结果曲线如图 6-1 所示,图 6-1(a)
为训练中倒立摆每个 episode 保持平衡的 step 数,图 6-1(b)为训练过程中每 20 个 episode
采用贪婪法则对训练出的 Q 表格进行测试的平均 step 数。

(a)训练图 (b)测试图
图 6-1   0.1,   0.99 ,倒立摆平衡控制结果曲线
Fig.6-1   0.1,   0.99 ,Inverted pendulum balance control result curve

由图 6-1(a)可以观察到在 500 个 episode 的训练中倒立摆平衡步数最大达到 80 个


step。且大多数在 10 到 40 个 step 之间。由图 6-1(b)可以看出对于训练出的 Q 表格的
测试结果最多不超过 50 个 step,通过训练,每个 episode 所能保持平衡的 step 数并没有
显著的提高,没有达到实验目的。基于以上结果,我们分析可能由于学习率设置的过大导
致实验结果不理想,因此将学习率 α 调小至 0.05,其他各参数与训练方法保持不变,重
36
基于强化学习 Q 学习算法的倒立摆平衡控制

新进行 500 个 episode 的实验,实验结果如图 6-2 所示,图 6-2(a),图 6-2(b)分别为


倒立摆训练过程中每个 episode 保持平衡的 step 数和每 20 个 episode 测试三次的平均 step
数。

(a)训练图 (b)测试图
图 6-2   0.05,   0.99 ,倒立摆平衡控制结果曲线
Fig.6-2   0.05,   0.99 ,Inverted pendulum balance control result curve

图 6-2 可以看出经过 500 个 episode 的训练,倒立摆每个 episode 所能保持平衡的 step


数同样没有改善。综合两次实验结果,我们分析可能因为衰减因子 γ 设置过大,0.99 衰减
100 次为 0.36,即就是说倒立摆在在当前状态变量下所选择行为得到的 reward 对 100 个
step 之前的 Q 值计算仍然具有较大的影响,因此将衰减因子 γ 减小至 0.97,学习率调至
原来 0.1 不变,其他参数与训练方法保持不变,再次进行 500 个 episode 的实验,实验结
果如图 6-3 所示:

(a)训练图 (b)测试图
图 6-3   0.1,   0.97 倒立摆平衡控制结果曲线
Fig.6-3   0.1,   0.97 ,Inverted pendulum balance control result curve

图 6-3(a)为训练过程中倒立摆每个 episode 保持平衡的 step 数,图 6-3(b)为训练


过程中每 20 个 episode 采用贪婪法则对训练出的 Q 表格进行测试的平均 step,由图 6-3
可以看出经过 500 个 episode 的训练,倒立摆每个 episode 所能坚持的 step 依然没有明显
变化。
综合上述三次实验,我们得出学习率 α 与衰减因子 γ 的取值大小对本次倒立摆平衡控
37
西安理工大学硕士学位论文

制实验的失败并不是最直接的原因。因此我们猜测可能是 Q 表格训练量的不足导致了实
验的失败,基于以上猜想,我们将本节第一次实验重新进行,并对实验时 Q 表格中每组
状态变量  s1, s 2  的训练次数做以记录,每组状态变量的训练次数如表 6-3,表 6-4 所示(由
于训练主要集中在状态变量  s1, s 2  表格的对角线区域所以只取表格左上角和右下角部分
观察即可)。
通过观察表中数据,可以看到大部分状态的训练量只有不到 50 次,而每组状态变量
对应的行为有 23 种,平均下来每种行为只训练了 2 次,训练量严重不足,导致了本次实
验失败。
表 6-3 部分状态变量对应训练量
Tab.6-3 Partial state variables correspond to the amount of training
s2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
s1
0 33 36 17 9 9 10 4 2 1 0 0 0 0 0 0 0

1 53 63 44 31 19 12 5 4 2 1 0 1 0 0 0 0

3 41 51 40 40 26 11 5 11 6 1 1 0 0 0 0 0

4 29 60 58 70 64 24 8 6 7 6 4 0 0 0 0 0

5 20 62 64 67 81 63 35 11 7 1 1 0 0 0 0 0

6 13 27 30 66 73 80 50 35 7 12 5 7 5 1 0 0

7 0 4 13 41 70 75 59 57 29 19 4 3 2 0 0 0

8 2 5 13 23 56 92 61 75 51 28 6 5 3 2 0 0

9 0 0 2 5 13 30 93 80 160 80 39 19 14 4 1 0

10 3 2 1 4 11 19 40 90 141 155 78 35 13 4 0 4

11 2 3 2 3 2 11 7 21 50 113 142 94 84 35 6 19

12 9 3 2 1 4 11 19 40 37 92 121 178 58 53 59 33

13 0 0 0 0 2 0 1 13 13 48 119 116 198 83 55 32

14 0 0 0 0 0 0 0 0 5 17 32 84 151 615 116 48

15 0 0 0 0 0 2 0 2 7 14 24 41 63 134 188 74

表 6-4 部分状态变量对应训练量
Tab.6-4 Partial state variables correspond to the amount of training
s2
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
s1
16 97 64 12 4 3 1 1 0 0 0 0 0 0 0 0 0

17 169 124 79 30 8 2 1 1 0 0 0 0 0 0 0 0

18 71 132 78 58 28 10 7 27 15 12 8 1 0 0 0 0

38
基于强化学习 Q 学习算法的倒立摆平衡控制

s2
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
s1
19 42 67 105 70 55 21 4 3 4 1 1 1 0 1 0 0

20 14 25 54 84 72 56 25 14 5 0 0 0 0 0 0 0

21 3 15 25 63 77 60 47 27 11 4 0 0 0 0 0 0

22 0 2 9 22 58 73 57 52 30 9 5 1 1 0 0 0

23 0 2 3 6 15 36 34 45 52 33 12 6 4 4 1 0

24 0 3 4 4 10 35 54 64 57 40 20 5 8 2 1 1

25 2 5 1 6 2 9 16 36 52 56 39 21 15 3 3 4

26 0 1 0 0 3 3 6 25 29 36 45 43 22 22 5 2

27 0 0 1 0 3 4 1 5 11 29 33 37 38 19 4 5

28 0 0 0 0 0 2 0 1 5 10 13 28 46 45 11 14

29 0 0 0 0 0 0 1 1 3 5 9 19 34 44 45 31

30 0 0 0 0 0 0 0 5 0 4 3 10 22 34 32 34

6.3 引入经验回放的 Q 学习算法倒立摆平衡控制


上节实验中由于对 Q 表格训练量的严重不足,导致了 Q 学习算法一级直线倒立摆平
衡控制实验的失败,由于每次倒立摆平衡控制实验需要手动开始实验的方式,过于耗费精
力,因此本节不采用人工增加实验量的方法来提升 Q 表格的训练量,而是在原来人工实
验的基础上引入经验回放的方法,达到增加 Q 表格训练量的目的。该方法将已经训练过
的 数 据  s, a, r , s  ( s 为 下一时刻 状态 )不再直接 丢弃 ,而是将它们存储在 经验池
replay_buffer 中,每个 step 随机抽取一部分用来训练 Q 表格,快速提升训练量。
(1)Q 学习算法设计
状态变量、行为的选取以及与 Q 表格元素的对应关系均与上节相同,取线性化奖励
机制作为 reward 给定方式,在 0 度角 reward 最大为 1,在边缘角度±2.4 度最小为 0。学
习率 α 为 0.1,衰减因子 γ 为 0.97。
(2)实验过程说明
采用  -greedy 的实验方法以每个 episode 中上限 500 个 step 进行实验。将实验过程中
获得的经验样本  s, a, r , s  逐一存储在经验池 replay_buffer 中,获得的经验样本超过 32 份
后(每个 step 获得一份经验样本),每经过一个 step,Q 表格在经验池中随机抽取 32 份
样本进行训练。 初始取 0.3,随着 Q 表格训练量的增加逐渐减小至最小值 0.01 不再变化,
每经过 20 个 episode 的训练,采用贪婪法则对训练出的 Q 表格进行三次平衡控制实验,
对三次保持平衡的 step 数进行平均。每个 episode 训练结束的条件也与上节相同。
不断重复上述实验,直至测试结果中倒立摆能连续 10 次达到每个 episode 上限 500
39
西安理工大学硕士学位论文

个 step 数的平衡控制,实验结束。
(3)实验结果与分析
引入经验回放的 Q 学习算法在 500 个 episode 训练过程中,倒立摆平衡控制结果曲线
如图 6-4 所示:

(a)训练图 (b)测试图
图 6-4 引入经验回放的倒立摆平衡控制结果曲线
Fig.6-4 Inverted pendulum balance control result curve with experience playback
图 6-4(a)为训练过程中倒立摆每个 episode 保持平衡的 step 数,图 6-4(b)为训练
过程中,每 20 个 episode 采用贪婪法则对训练出的 Q 表格倒立摆平衡控制测试三次的平
均 step 数,由图 6-4(a)可以看出经过训练倒立摆每个 episode 所能达到的平衡 step 数逐
渐增多,开始时每个 episode 能保持平衡的 step 数大约不到 50 步,随着实验量与 Q 表格
训练量的增加,倒立摆保持平衡的步数逐渐提升,最高时可以达到 250 个 step,但在稳定
性上效果较差,训练速度依旧缓慢。图 6-4(b)显示了随着训练量的增加,Q 表格对倒
立摆平衡控制的测试结果不断提升,最大达到 100 个 step 数。较上节的结果有了一定的
提升。但在控制效果上仍然不理想。
在训练与测试实验中,我们发现经过训练,倒立摆在状态变量中间区域的控制效果良
好,但在状态变量边缘位置非常容易因为行为选择错误而导致整个实验失败。分析其原因
可能是状态变量的边缘位置训练量不足,为此,我们对 500 个 episode 实验后状态变量
 s1, s 2  的训练量作以探究,经过对训练量的查看,发现中间区域的训练量平均可以达到
五千次左右,最高可以达到 1 万多次,但在边缘位置的训练量大多都只有不到 100 次。分
析其原因,主要是边缘位置训练样本稀缺。
受限于电机转速,此次实验的状态变量取值空间较小,因此边缘位置的训练情况对于
整体实验的影响较大,而边缘状态的训练样本较中间状态又难以获得,所以解决 Q 表格
边缘位置训练样本稀缺的问题是本次实验的关键。

6.4 改进型 Q 学习算法倒立摆平衡控制


引入经验回放的 Q 学习算法相对于传统的 Q 学习算法对一级直线倒立摆的平衡控制有
了一定的提升,但边缘位置训练样本的缺乏导致了倒立摆的平衡控制效果依然不理想。
40
基于强化学习 Q 学习算法的倒立摆平衡控制

解决边缘位置训练样本稀缺的一种方法是继续大量增加实验量,但这种方法获得的经
验样本绝大多数都集中在状态变量的中间区域,边缘位置极其少,大约只能占到中间区域
的 1%到 2%,效率太低。而且在很多的工业现场也不允许如此大的实验量去获取足够多的
经验样本,人力、物力消耗太大。
强化学习算法分为两类,一类是 On-policy 学习算法(如 sarsa),另一类是 Off-policy
学习算法(如 Q 学习)。On-policy 学习算法是指在实验中生成样本的策略(从状态变量
到行为的映射)与训练的策略是同一种策略,而 Off-policy 学习算法是实验中生成样本的
策略与训练的策略不同,这意味着它可以使用在实验期间任何时候收集的样本,无论这些
样本是如何产生的,也就是说这些训练样本可以通过智能体在环境的探索中获得,也可以
通过其他的控制算法的控制经验而获得。基于 Off-policy 算法的这种特性,本文研究设计
了具有人工示教的改进型 Q 学习算法,针对本次实验状态变量边缘位置的训练样本难以
获得,引入一个参数粗调的 PID 控制器对倒立摆进行平衡控制,通过 Q 学习算法中随机
行为对倒立摆平衡控制探索得到的自学习经验和这个参数粗调的 PID 控制器对倒立摆平
衡控制的一些经验相结合来训练 Q 表格,完成改进型 Q 学习算法在一级直线倒立摆的平
衡控制。之所以选用一个参数粗调的 PID 控制器,是因为这个粗糙的 PID 比较容易帮助
我们获得 Q 学习算法在之前探索中难以获得的状态变量边缘位置的训练样本,而且获得
的经验也是相对正确的经验,加快强化学习算法的训练速度。
改进型 Q 学习算法流程如下:
1)初始化 Q  s, a  ,s  S , a  A ,初始化经验池容量 D、随机抽取样本数量 M、每个 episode
训练 step 数上限 T,将其他控制算法(如 PID)的输出离散化为与 Q 表格行为相同的数
值。
2)连续执行 N 个 episode 以下操作:
a.采样得到当前状态变量 s;
b.在当前状态 s 下根据   greedy 策略确定行为 a 并执行,获得 reward 值 r,采样
得到状态变量 s ,将(s,a,r,s ,训练结束判定)存储到经验池 replay_buffer。并令 s  s ,
若经验池样本数大于 M,Q 表格随机抽取 M 个样本逐个进行训练,根据式 2-7 更新 Q  s, a  ,
若未达到该 episode 训练结束条件,重复 b 操作,若达到该 episode 训练结束条件,则该
episode 训练结束。
3)执行一次以下操作:
a.采样得到状态变量 s;
b.在状态 s 下根据其他控制算法(如 PID)确定行为 a 并执行,获得 reward 值 r,
采样得到状态变量 s ,将(s,a,r, s ,训练结束判定)存储到经验池 replay_buffer。
并令 s  s ,若经验池样本数大于 M,Q 表格随机抽取 M 个样本逐个进行训练,根据式
2-7 更新 Q  s, a  ,若未达到该 episode 训练结束条件,重复 b 操作,若达到该 episode 训练
结束条件,则该 episode 训练结束。
41
西安理工大学硕士学位论文

4)不断重复 2)3)直至训练结束。
(1)改进型 Q 学习算法设计
状态变量、行为的选取以及与 Q 表格元素的对应关系均与上节相同,取线性化奖励
机制作为 reward 给定方式,在 0 度角 reward 最大为 1,在边缘角度±2.4 度最小为 0。学
习率 α 为 0.1,衰减因子 γ 为 0.97。
(2)实验过程说明
采用  -greedy 的实验方法以每个 episode 中上限 500 个 step 进行实验。每经过 20 个
episode 的实验,加入一次 500 个 step 的 PID 倒立摆平衡控制实验,由于 PID 控制器输出
的控制量是连续的。所以在实验前,需要先将 PID 的输出离散化为与 Q 表格行为相同的
数值,这样由 PID 控制实验所获得的经验样本才能用于 Q 表格的训练。将实验获得的经
验样本逐一存储在经验池 replay_buffer 中,获得的经验样本超过 32 份后(每个 step 获得
一份经验样本),每经过一个 step,Q 表格在经验池中随机抽取 32 份样本进行训练。 初
始取 0.3,随着 Q 表格训练量的增加逐渐减小至 0.01 不再变化,每经过 20 个 episode 的
训练,采用贪婪法则对训练出的 Q 表格进行三次平衡控制实验,对三次保持平衡的 step
数进行平均。每个 episode 训练结束的条件与之前相同。
不断重复上述实验,直至测试结果中倒立摆能连续 10 个 episode 达到上限 500 个 step
数的平衡控制,实验结束。
(3)实验结果与分析
在实验过程中我们发现在学习到较粗糙 PID 对直线倒立摆平衡控制的经验后,Q 表
格对状态变量边缘位置的控制效果有了极大的改善,在 200 个 episode 训练过程中,改进
型 Q 学习算法倒立摆平衡控制结果曲线如图 6-5 所示,其中图(a)为训练过程中倒立摆
每个 episode 保持平衡的 step 数,图(b)为训练过程中每 20 个 episode 采用贪婪法则对
训练出的 Q 表格倒立摆平衡控制测试的平均 step 数。

(a)训练图 (b)测试图
图 6-5 改进型 Q 学习算法倒立摆平衡控制结果曲线
Fig.6-5 Improved Q learning algorithm inverted pendulum balance control result curve
由图 6-5 可以看出,随着训练量的提升,倒立摆可以保持平衡的 step 逐渐上升,只需
要大概 180 个 episode 的实验,就可以达到上限 500 步的平衡控制。实现了改进型 Q 学习
42
基于强化学习 Q 学习算法的倒立摆平衡控制

算法在一级直线倒立摆的平衡控制任务。验证了改进型 Q 学习算法对一级直线倒立摆平
衡控制的有效性。
在倒立摆平衡控制测试实验中,通过手动作用力的方式加入扰动,增加扰动的实验结
果如图 6-6 所示:

图 6-6 扰动作用下 Q 学习算法倒立摆硬件平台平衡控制测试曲线


Fig.6-6 Disturbance action Q learning algorithm inverted pendulum hardware platform balance control
test curve
由图 6-6 可知,在扰动作用下,倒立摆仍然可以实现平衡控制。

6.5 实验结果对比
由于倒立摆平衡控制算法中没有一个绝对标准的对比模型,所以本文以工业中最常见
的 PID 算法和上节训练好的 Q 表格在硬件实验平台对倒立摆的平衡控制效果作以对比,
将两种算法分别做 10 次平衡控制测试,通过测试的平均方差来反映倒立摆平衡控制的稳
定性。
Q 表格倒立摆平衡控制测试的摆杆角度变化如图 6-7 所示,角度平均值与方差如表
6-5 所示:
表 6-5 改进型 Q 学习算法倒立摆平衡控制摆杆角度变化均值与方差
Tab.6-5 Improved Q learning algorithm inverted pendulum balance control pendulum angle change mean and
variance
实验标号 a b c d e f g h i j
平均值 0.0768 -0.0091 -0.0539 0.0684 0.1266 0.0912 -0.0348 0.2219 0.0534 -0.1109
方差 0.3984 0.3677 0.3394 0.4144 0.3146 0.3561 0.3206 0.4412 0.3757 0.3546
平均方差 0.3683

43
西安理工大学硕士学位论文

(a) (b)

(c) (d)

(e) (f)

(g) (h)
44
基于强化学习 Q 学习算法的倒立摆平衡控制

(i) (j)
(a,b,c,d,e,f,g,h,i,j 分别为第一次到第十次的测试曲线)
(a, b, c, d, e, f, g, h, i, j are the first to tenth test curves respectively)
图 6-7 改进型 Q 学习算法倒立摆平衡控制摆杆角度变化曲线
Fig.6-7 Improved Q learning algorithm inverted pendulum balance control pendulum angle variation curve

人工精良调参 PID 倒立摆平衡控制摆杆角度变化如图 6-8 所示,角度平均值与方差如


表 6-6 所示:
表 6-6 人工精良调参 PID 倒立摆平衡控制摆杆角度变化均值与方差
Tab.6-6 Artificial fine tuning PID inverted pendulum balance control pendulum angle change mean and
variance
实验标号 a b c d e f g h i j
平均值 0.0324 -0.0809 -0.0934 0.0466 -0.0897 -0.1067 0.0104 -0.0845 -0.0927 -0.1167
方差 0.2506 0.3559 0.2983 0.2249 0.3596 0.2437 0.2543 0.2948 0.2868 0.3412
平均方差 0.2910

(a) (b)

(c) (d)
45
西安理工大学硕士学位论文

(e) (f)

(g) (h)

(i) (j)
(a,b,c,d,e,f,g,h,i,j 分别为第一次到第十次的测试曲线)
(a, b, c, d, e, f, g, h, i, j are the first to tenth test curves respectively)
图 6-8 PID 倒立摆平衡控制摆杆角度变化曲线
Fig.6-8 PID inverted pendulum balance control swing angle variation curve
通过以上对比实验可以得出以下结论:
1)通过训练好的 Q 表格对倒立摆平衡控制的测试结果可以发现,在 10 次测试中倒
立摆均可以达到上限 500 步的平衡控制,摆杆偶尔会到达角度值较大的边缘位置,但绝大
多数时候可以稳定在平衡位置 1 度以内的区间内,控制效果良好。
2)通过表 6-5 与表 6-6 对比可以发现 Q 表格与人工精良调参 PID 控制下倒立摆均可
以围绕摆杆竖直向上位置保持平衡,但 Q 表格对倒立摆平衡控制的平均方差稍大于 PID,
46
基于强化学习 Q 学习算法的倒立摆平衡控制

摆杆角度变化较大一些,平衡性稍差,分析其原因,主要是改进型 Q 学习算法针对的是
离散状态空间以及离散行为空间,而 PID 属于连续控制,控制量远比改进型 Q 学习算法
精细,所以在控制效果上改进型 Q 学习算法比 PID 稍差,但也十分接近。而 Q 学习算法
相比 PID 也有参数自整定不需人力调参,通用性更强,适用范围更广泛,能够极大降低
控制系统的设计难度和人力投入等优点。

6.6 小结
在硬件实验平台中,基于 Q 学习算法的倒立摆平衡控制由于实验量不足,导致了 Q
表格训练量缺乏,而在真实环境中不允许过大的实验量,而且也比较耗费人力的情况下,
研究设计了具有多元训练策略的改进型 Q 学习算法,该算法解决了真实环境中实验量受
限、部分训练样本难以获得的问题,弥补了中间状态变量与边缘状态变量训练量的不足,
完成了倒立摆平衡控制,为强化学习在实际工程的应用做了初步的实践。

47
西安理工大学硕士学位论文

48
总结与展望

7 总结与展望
7.1 总结
本文以多变量、非线性、高阶次、强耦合的倒立摆系统为载体,完成了部分强化学习
与深度强化学习算法的研究,目的在于将强化学习算法在实物控制方面的应用做以探究。
针对真实控制环境中噪音较大、训练量受限、部分训练样本难以获得的局限性,研究设计
了具有多元训练策略的改进型 Q 学习算法,并利用该算法完成了倒立摆硬件实验平台的
平衡控制。
具体研究内容有以下几点:
(1)通过查阅文献,对强化学习、深度强化学习的研究现状进行分析总结。
(2)对本文中用到的强化学习、深度强化学习基础概念以及模型进行介绍并分析。
通过对马尔科夫决策过程各参数进行分析以及几种常用强化学习算法理论推导,为强化学
习以及深度强化学习算法在倒立摆控制系统中的应用奠定了理论基础。
(3)在 Python 语言开发环境下利用 OpenAI Gym 游戏库完成了深度强化学习 DQN
算法、双网络 DQN 算法、强化学习 PG 算法在一级直线倒立摆平衡控制的实验仿真,仿
真结果表明,三种控制算法均可以快速完成神经网络的训练达到一级直线倒立摆的平衡控
制,通过 DQN 算法在一级直线倒立摆平衡控制仿真实验中三种 reward 给定方式的训练结
果比较,得出在倒立摆平衡控制中线性化 reward 给定方式对神经网络的训练速度更快,
为硬件平台实现倒立摆平衡控制奠定了基础。
(4)完成了基于 PLC 的一级直线倒立摆硬件实验平台搭建,介绍并分析了实验平台
搭建的流程以及工作原理,通过上位机与 PLC 之间的实时通信完成倒立摆系统的控制。
并采用传统控制算法 PID 对一级直线倒立摆的平衡控制,验证了实验平台的有效性,为
后续强化学习算法在一级直线倒立摆硬件平台的控制提供了基础。
(5)采用三层全连接神经网络完成了 DQN 算法在一级直线倒立摆硬件实验平台的
起摆控制,在大概训练了 50 个回合后,摆杆通过不到 200 个控制周期
(每个控制周期 20ms)
就可以达到从竖直向下位置(0 度)开始最终超越竖直向上位置(180 度)的起摆控制任
务。
(6)研究设计了具有多元训练策略的 off-policy 改进型 Q 学习算法,并通过该算法
完成了倒立摆的平衡控制。该算法一方面利用人工经验、或其他算法经验加快强化学习算
法训练速度,另一方面通过强化学习算法的自学习能力对控制系统自寻优,自主提高控制
系统控制精度,从而以更小的人力投入,获得更好的控制效果,为强化学习在实际工程的
应用做了初步的实践,具有良好的应用前景。

7.2 展望
本文将强化学习 Q 学习算法与传统控制方法相结合研究设计了具有多元训练策略的
改进型 Q 学习算法,并且通过该算法完成了倒立摆的平衡控制,为强化学习在实际工程
49
西安理工大学硕士学位论文

的应用做了初步的实践,但仍然存在着一些不足与进一步扩展的空间。
(1)改进型 Q 学习算法仍然是基于表格形式的,因此对于状态变量维度较大的控制
系统,Q 表格将会变得极其庞大,难以训练,具有一定的局限性。
(2)本文所研究的 DQN 算法、双网络 DQN 算法以及研究设计的改进型 Q 学习算
法均针对的是离散状态空间,离散动作空间。故如何将这些算法扩展到连续空间是下一步
的研究方向之一。

50
致谢

致谢

从开始研究生生活的第一天起,郑岗老师以及徐开亮老师对我们每个学生的安排都很
细致,从学生的兴趣以及基础能力方面为我们每个人选择了更合适自己的课题,每周定期
汇报,对每个人近阶段所做工作以及课题方面的进展做以监督,而且平时也会对一些重要
的理论性的知识进行讲解,并且组织大家讨论学习。两位老师平时也是严于律己,尤其在
科研以及教导学生方面,不容一点马虎,在研究生阶段遇到二位老师是我的荣幸。在生活
中两位老师和蔼可亲,平易近人,使我们感到与二位老师的相处倍感亲切,不会有一点压
力。
非常感谢西安理工大学控制科学与工程学科的所有老师,感谢老师们孜孜不倦、默默
无闻的奉献,在这里我衷心的说一声老师,你们辛苦了。同样要感谢的还有 710 教研室的
一众伙伴们,在平时的学习生活中你们给了我很大帮助。使我感受到教研室有一种家的感
觉,谢谢你们。
最后,我要感谢我的妻子,在我论文完成阶段给了我很大的帮助,路漫漫,愿与尔携
手同行。

51
西安理工大学硕士学位论文

52
参考文献

参考文献

[1] 钱征.基于强化学习的倒立摆控制研究[D].北京:北京工业大学,2005.
[2] 程玉虎.连续状态—动作空间下强化学习方法的研究[D].北京:中国科学院自动化研究
所,2005.
[3] 丁丽.直线倒立摆控制策略的对比研究[D].山东:齐鲁工业大学, 2015
[4] 张东军,从爽.倒立摆控制系统研究综述[J].控制工程,2003,7 (10): 9-12.
[5] 韩复健.倒立摆系统的发展研究及意义[J].山东工业技术,2014 (17):144-144.
[6] 夏旻,宋稳柱,施必成,等.基于加权密集连接卷积网络的深度强化学习方法[J].计算机应
用,2018,38(8):2141-2147.
[7] 赵冬斌,邵坤,朱圆恒,等.深度强化学习综述:兼论计算机围棋的发展[J]. 控制理论与应
用, 2016, 33(6):701-717.
[8] 吴睿.基于深度强化学习的游戏博弈策略的研究与实现[D]. 吉林大学, 2018.
[9] 赵星宇,丁世飞.深度强化学习研究综述[J]. 计算机科学, 2018, 45(7):1-6.
[10] 季挺.非参数化值函数逼近强化学习研究[D].江西:南昌大学,2018.
[11] 陆鑫,高阳,李宁等.基于神经网络的强化学习算法研究[J].计算机研究与发展,2002,
39(8): 981-985.
[12] 张汝波,顾国昌.强化学习理论,算法及应用[J].控制理论与应用,2000,17(5) :637-642.
[13] 廖慧芬,邵小兵.动态规划算法的原理及应用[J]. 中国科技信息, 2005(21):42-42.
[14] Werbos P J. Foreword - ADP: The Key Direction for Future Research in Intelligent Control
and Understanding Brain Intelligence[J]. IEEE Transactions on Systems Man &
Cybernetics Part B, 2008, 38(4):898-900.
[15] Sutton R S. Temporal credit assignment in reinforcement learning[J]. Journal of
Community Psychology, 1984, 34(5):601-616.
[16] Watkins J C H and Dayan P. Q-learning [J]. Machine Learning, 1992,8(3):279 -292.
[17] R.S.Sutton,Learning to predict by the methods of temporal differences[J],Machine.
Learning, 1988(3):944-944.
[18] 陈科雯.基于深度卷积神经网络的人脸表情识别方法[D].四川:西安电子科技大学,2017.
[19] 郭勤.基于深度强化学习的视频游戏决策模型研究与应用[D]. 江西理工大学, 2018.
[20] 王康.基于深度强化学习在游戏上的应用[D]. 沈阳理工大学, 2018.
[21] 李蓓蓓.基于深度神经网络的特征提取算法及其应用研究[D]. 江南大学, 2018.
[22] Elfwing S, Uchibe E, Doya K. Sigmoid-weighted linear units for neural network function
approximation in reinforcement learning[J]. Neural Netw, 2018(21):77-78.
[23] Anschel O, Baram N, Shimkin N. Averaged-DQN: Variance Reduction and Stabilization
for Deep Reinforcement Learning[J], Machine. Learning, 2016(8):14-15.
53
西安理工大学硕士学位论文

[24] Anschel O, Baram N, Shimkin N. Deep Reinforcement Learning with Averaged Target
DQN[J], Machine. Learning, 2016(33):61-64.
[25] 唐振韬,邵坤,赵冬斌等.深度强化学习进展:从 AlphaGo 到 AlphaGo Zero[J].控制理论与
应用,2017,34(12):1529-1546.
[26] 郭宪.基于 DQN 的机械臂控制策略的研究[D].北京:北京交通大学,2018.
[27] 颜志鹏.基于深度强化学习的游戏控制算法研究与实现[D].四川:电子科技大学,2018.
[28] Plappert M, Houthooft R, Dhariwal P, et al. Parameter Space Noise for Exploration[J],
Machine. Learning, 2017(26):85-88.
[29] Tavakoli A, Pardo F, Kormushev P. Action Branching Architectures for Deep
Reinforcement Learning[J],Machine. Learning,2017(18):35-36.
[30] 刘全,翟建伟,章宗长等深度强化学习综述[J].计算机学报,2018,41(1):1-27.
[31] Sun R,Merrill E,Peterson T. From implicit skills to explicit knowledge: a bottom-up model
of skill learning [J]. Cognitive Science, 2001, 25(2):203-244.
[32] 王贞卫.倒立摆的非线性控制研究及虚拟现实[D] 新疆:新疆大学, 2008
[33] 崔平,翁正新.基于状态空间极点配置的倒立摆平衡控制[J]. 实验室研究与探索, 2003,
22(2):70-72.
[34] 杜岗,徐静.倒立摆系统数学建模与 PID 控制器实现[J]. 连云港职业技术学院学报, 2013,
26(2):19-23.
[35] 李洪兴,苗志宏,王加银.四级倒立摆的变论域自适应模糊控制[J]. 中国科学:技术科学,
2002, 32(1):65-75.
[36] 刘忠,李海红,刘全.强化学习算法研究[J].计算机工程与设计,2008,29(22): 5805-5809.
[37] 陈学松,杨宜民.强化学习研究综述[J].计算机应用研究,2010,27(8): 2834-2838.
[38] 尤 树 华 , 周 谊 成 , 王 辉 . 基 于 神 经 网 络 的 强 化 学 习 研 究 概 述 [J]. 电 脑 知 识 与 技
术,2012,(28):6782-6786.
[39] 施梦宇.强化学习中基函数构造方法研究[D].江苏:苏州大学,2015.
[40] 李楠.基于强化学习算法的多智能体学习问题的研究[D].江苏:江南大学,2006.
[41] 孙魁,吴成东.强化学习模型及其在避障中的应用[J].山东工业技术,2016,(1):261-263.
[42] Sutton R S, Barto A G. Reinforcement Learning: An Introduction[J]. IEEE Transactions on
Neural Networks, 1998, 9(5):1054-1054.
[43] Thrun S, Littman M L. Reinforcement Learning: An Introduction[J]. IEEE Transactions on
Neural Networks, 2005, 16(1):285-286.
[44] Lin L J. Self-improving reactive agents based reinforcement learning, planning and
teaching [J] Machine Learning, 1992, 8(4):293-321.
[45] 杨善林,罗贺,胡小建. 基于 Q 学习的自主 Agent 模型[C] 全国开放式分布与并行计算学
术会议. 2006.
54
参考文献

[46] 尤树华.贝叶斯强化学习中策略迭代算法研究[D]. 苏州大学, 2016.


[47] 毛文杰. 强化学习在倒立摆起摆及平衡控制中的应用研究[D].西安理工大学,2018.
[48] 宋君烈,肖军,徐心和.倒立摆系统的 Lagrange 方程建模与模糊控制[J].东北大学学报(自
然科学版),2002,23 (4):333-336.
[49] 郭晓玉,高军伟,齐继红等.基于能量的倒立摆系统摆起控制的研究[J].信息技术与信息
化, 2008(4):88-89.
[50] 肖力龙,彭辉.基于拉格朗日建模的单级倒立摆起摆与稳定控制[J].自动化技术与应用,
2007, 26(4):4-7.

55

You might also like