强化学习实战(四)基于强化学习的倒立摆控制策略Matlab实现(附代码) 二刷

简介: 强化学习实战(四)基于强化学习的倒立摆控制策略Matlab实现(附代码) 二刷

本文将之前的一篇基于强化学习的倒立摆控制策略Matlab实现文章再次进行了扩充。

问题描述

  大多数先进控制技术都需要对过程及其环境有较深的了解,一般用拉普拉斯变换或动态微分方程来描述过程动态特性。然而在过程控制领域,许多系统过于复杂,或者其内在规律难以了解,因此很难得到过程的定量知识,也即无法建立起精确的数学模型,但是我们能够获得这些系统的一些输入输出数据。

  在被控对象的模型未知,只有数据可用的情况下,设计一个控制器,依据系统的输入输出数据进行自我学习调节,最终实现对控制对象的控制。为了使得设计的自我学习控制算法具有一般性,控制对象需是复杂的、不稳定的、非线性系统。

摘要

  针对模型未知只有数据可用的复杂非线性偏微分系统,本文设计了一种基于强化学习的数据驱动学习算法,从与控制对象的交互中学习优化策略。首先建立倒立摆的数学模型,但是只是利用其产生输入输出数据。基于输入输出数据,在未知倒立摆数学模型情况下,实现对倒立摆的控制。

1.引言

  作为人工智能的核心,机器学习的根本目的是使计算机能够具备模拟甚至实现人类学习活动的能力,对它的研究可以促进人工智能的发展。强化学习是目前机器学习研究领域的一个热门方向,吸引了多个学科专家学者的目光。强化学习根源于机器学习与学习心理学的融合,其根据动物学习心理学的相关原理知识,采用动物和人类学习中的“试错”机制,一方面探索没有被发现的行为,通过智能体与外界环境交互获得即时反馈信息,做出最佳决策并采取行为。在人工智能领域由于其卓越的决策能力而备受瞩目,然而,对于环境的特征提取需要依靠人工来完成,对于复杂高维的问题就显得非常棘手,所以强化学习的发展始终受限,但近几年随着深度学习发展,算法可以从原始的图像直接提取出高维数据的特征,为复杂环境的认知问题提供了一种新的方法。由于深度学习具有强感知能力,弱决策能力,而强化学习具有强决策能力,但对感知问题无法解决。因此,将两种算法结合起来,扬长避短,能够为复杂状态下的感知决策问题提供思路。

  倒立摆系统是一种典型的自动控制理论研究装置,在倒立摆系统的控制过程中能够有效的反应随动性,鲁棒性,跟踪及镇定性等关键问题,因此,倒立摆系统逐渐成为广大学者验证控制方法正确性及有效性的典型对象。所以本文以一级倒立摆为控制对象进行实验,能够充分验证给予输入输出数据的控制系统性能。

  传统控制结构(如PID控制算法),在处理复杂的非线性、时变、耦合及参数、结构不确定的动态控制系统时,易超出其平衡点邻域。控制性能较差,且其参数整定调节过程繁琐。1973年Zadeh[1]提出将模糊逻辑应用于控制理论,简化系统设计的复杂性,使其适用于非线性、时变、模型不完全的控制系统中。但难以建立一套系统的模糊控制理论,解决模糊控制机理,系统化设计方法。2011年Lin [2-3]提出一种基于强化学习的自适应控制优化算法,并将其成功运用于地铁调度控制。2014年Modares[4]提出一种基于经验回放的自适应控制结构,解决神经网络收敛效率低地问题。

  随着硬件设施的发展,计算机运算速度加快,深度学习邻域得到了飞速的发展。2015年谷歌DeepMind团队提出一种深度强化学习算法DQN[5-6],并在游戏Atari 2600,星际争霸,围棋[7]等领域验证其算法的通用性和优越性。

本文基于Q-Learning的强化学习算法的无模型控制结构,无需设计复杂的控制算法,且能够适用于复杂非线性偏微分系统。通过动力学方程建立的物理引擎作为智能体与环境交互对象,于其交互迭代,最终实现对控制对象的自学习控制。

2.倒立摆模型建立

  倒立摆控制系统是一个多变量、非线性、高阶次、强耦合的自不稳定系统,能够模拟反映多数常见的控制对象,其控制算法具有多输入,单输出的特点,因而是一种典型的自动控制理论研究装置。以该问题作为研究对象,能够有效反应出控制算法在实际应用系统中的随动性、鲁棒性、跟踪及镇定性等问题。通过对倒立摆的控制,可以较好检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。

3.基于无模型强化学习控制结构的实施流程

  强化学习是智能体在环境给予的奖励的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。以控制对象的动力学方程建立物理引擎,作为其环境交互对象,并定义其奖励,使智能体获取的奖励最大化,达到控制目的。其大体结构如图二所示:

4.实验结果分析

  通过训练好的Q表对倒立摆平衡控制的测试结果可以发现,倒立摆可以达到1000步的平衡控制,偶尔会达到角度、位置的边缘,但是绝大多数的时候能够稳定在平衡位置内,控制效果良好。

5.结论

  由于强化学习算法是基于数据驱动的控制算法,强化学习算法相比经典的控制算法(PID),通用性更强,适用范围更广,能够极大降低控制系统的设计难度和人力投入等优点。

但是强化学习算法需要与控制对象进行交互,而这种交互在实际控制问题中比较难以获取,可以通过给予输入输出数据先进行系统辨识,之后基于辨识后的系统进行交互,再应用于实际系统交互进行训练,能够极大地加快系统的收敛速度。

6.参考文献

[1] Zadeh L A. Outline of a new approach to the analysis of complex systems and decision processes[J]. IEEE Transactions on systems, Man, and Cybernetics, 1973 (1): 28-44.

[2] Lin W S. Optimality and convergence of adaptive optimal control by reinforcement synthesis[J]. Automatica, 2011, 47(5): 1047-1052.

[3] Lin W S, Sheu J W. Optimization of train regulation and energy usage of metro lines using an adaptive-optimal-control algorithm[J]. IEEE Transactions on Automation Science and Engineering, 2011, 8(4): 855-864.

[4] Modares H, Lewis F L, Naghibi-Sistani M B. Integral reinforcement learning and experience replay for adaptive optimal control of partially-unknown constrained-input continuous-time systems[J]. Automatica, 2014, 50(1): 193-202.

[5] Mnih V, Kavukcuoglu K, Silver D, et al. Playing Atari with Deep Reinforcement Learning[J]. Computer Science, 2013.

[6] Mnih V, Kavukcuoglu K, Silver D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540):529.

[7] Silver D, Huang A, Maddison C J, et al. Mastering the game of Go with deep neural networks and tree search[J]. Nature, 2016, 529(7587): 484-489.

[8] 蒋国飞, 吴沧浦. 基于Q学习算法和BP神经网络的倒立摆控制[J]. 自动化学报, 1998(05):88-92.

7.代码附录

  完整代码 文档 后台回复:倒立摆二刷。

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关文章
|
3月前
|
机器学习/深度学习 运维 供应链
需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)
需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)
|
4月前
|
算法 安全 新能源
【EI复现】基于主从博弈的新型城镇配电系统产消者竞价策略【IEEE33节点】(Matlab代码实现)
【EI复现】基于主从博弈的新型城镇配电系统产消者竞价策略【IEEE33节点】(Matlab代码实现)
|
3月前
|
算法 调度 决策智能
【复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略(Matlab代码实现)
【复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略(Matlab代码实现)
|
3月前
|
存储 并行计算 算法
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
202 4
|
3月前
|
调度
【发】促进可再生能源发电消纳的用户侧典型资源需求响应策略(Matlab代码实现)
【发】促进可再生能源发电消纳的用户侧典型资源需求响应策略(Matlab代码实现)
|
3月前
|
算法 调度 决策智能
【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)
【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)
133 7
|
3月前
|
机器学习/深度学习 存储 算法
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
327 0
|
3月前
|
运维 算法 安全
基于变异粒子群算法的主动配电网故障恢复策略(Matlab代码实现)
基于变异粒子群算法的主动配电网故障恢复策略(Matlab代码实现)
|
3月前
|
机器学习/深度学习 供应链 算法
【考虑经济性的储能运行优化】储能的运行优化,以经济效益最大为目标,使用三种不同的方法求解储能最优运行策略(Matlab代码实现)
【考虑经济性的储能运行优化】储能的运行优化,以经济效益最大为目标,使用三种不同的方法求解储能最优运行策略(Matlab代码实现)
|
4月前
|
机器学习/深度学习 算法 机器人
基于Qlearning强化学习的2DoF机械臂运动控制系统matlab仿真
本项目基于Q-learning强化学习算法,实现对二自由度机械臂的运动控制仿真。通过MATLAB 2022a平台,验证了算法在状态、动作与奖励机制下的学习效果,展示了机械臂自主学习达到目标位置的能力。内容涵盖理论模型、算法原理与核心代码实现。
157 7

热门文章

最新文章