强化学习实战(四)基于强化学习的倒立摆控制策略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

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

相关文章
|
2月前
|
算法
基于模糊控制算法的倒立摆控制系统matlab仿真
本项目构建了一个基于模糊控制算法的倒立摆控制系统,利用MATLAB 2022a实现了从不稳定到稳定状态的转变,并输出了相应的动画和收敛过程。模糊控制器通过对小车位置与摆的角度误差及其变化量进行模糊化处理,依据预设的模糊规则库进行模糊推理并最终去模糊化为精确的控制量,成功地使倒立摆维持在直立位置。该方法无需精确数学模型,适用于处理系统的非线性和不确定性。
基于模糊控制算法的倒立摆控制系统matlab仿真
|
1月前
|
资源调度 算法
基于迭代扩展卡尔曼滤波算法的倒立摆控制系统matlab仿真
本课题研究基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF、迭代UKF和迭代EKF的控制效果。倒立摆作为典型的非线性系统,适用于评估不同滤波方法的性能。UKF采用无迹变换逼近非线性函数,避免了EKF中的截断误差;EKF则通过泰勒级数展开近似非线性函数;迭代EKF和迭代UKF通过多次迭代提高状态估计精度。系统使用MATLAB 2022a进行仿真和分析,结果显示UKF和迭代UKF在非线性强的系统中表现更佳,但计算复杂度较高;EKF和迭代EKF则更适合维数较高或计算受限的场景。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于Qlearning强化学习的小车弧线轨迹行驶控制matlab仿真
**MATLAB 2022a仿真实现Q-learning控制小车弧线行驶,展示学习过程及奖励变化。Q-learning是无模型强化学习算法,学习最优策略以稳定行驶。环境建模为二维平面,状态包括位置、朝向,动作涵盖转向、速度。奖励函数鼓励保持在轨迹上,用贝尔曼方程更新Q表。MATLAB代码动态显示轨迹及奖励随训练改善。**
68 15
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于强化学习的路径规划matlab仿真,对比QLearning和SARSA
本仿真展示了使用MATLAB 2022a实现的Q-Learning路径规划算法。通过与环境交互,智能体学习从起点至终点的最佳路径。Q-Learning采用off-policy学习方式,直接学习最优策略;而SARSA为on-policy方法,依据当前策略选择动作。仿真结果显示智能体逐步优化路径并减少步数,最终实现高效导航。核心代码片段实现了Q表更新、奖励计算及路径可视化等功能。
63 0
|
4月前
|
机器学习/深度学习 算法 索引
m基于Qlearning强化学习的小车倒立摆控制系统matlab仿真
在MATLAB 2022a中模拟的Q-learning倒立摆控制显示出稳定平衡效果。Q-learning算法通过智能体与环境交互学习最佳控制策略,以维持摆杆直立。算法基于状态s和动作a更新Q值表,目标是最大化未来奖励。系统状态包括小车位置、速度、杆角度及角速度。动作是小车加速度。当状态或动作空间大时,用神经网络近似Q函数,DQN通过经验回放和目标网络稳定学习。核心代码涉及状态更新、贪婪策略选择动作及环境反馈,实时更新摆杆和小车位置。
63 6
|
5月前
|
机器学习/深度学习 算法 安全
m基于Qlearning强化学习工具箱的网格地图路径规划和避障matlab仿真
MATLAB 2022a中实现了Q-Learning算法的仿真,展示了一种在动态环境中进行路线规划和避障的策略。Q-Learning是强化学习的无模型方法,通过学习动作价值函数Q(s,a)来优化智能体的行为。在路线问题中,状态表示智能体位置,动作包括移动方向。通过正负奖励机制,智能体学会避开障碍物并趋向目标。MATLAB代码创建了Q表,设置了学习率和ε-贪心策略,并训练智能体直至达到特定平均奖励阈值。
93 15
|
2月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
126 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
2月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
100 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
2月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
73 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
5月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度