首页 > 其他分享 >基于强化学习的倒立摆平衡车控制系统simulink建模与仿真

基于强化学习的倒立摆平衡车控制系统simulink建模与仿真

时间:2024-08-02 23:39:52浏览次数:14  
标签:状态 simulink 建模 学习 奖励 Learning 强化 倒立

1.算法仿真效果

matlab2022a仿真结果如下(完整代码运行后无水印):

 

 

 

 

 

 

2.算法涉及理论知识概要

       基于强化学习的倒立摆平衡车控制系统是一个典型的动态系统控制问题,它通过不断的学习和决策过程,使倒立摆维持在垂直平衡位置,即使受到外力干扰或系统内部噪声影响。强化学习在此类问题中的应用,展示了其在解决复杂控制问题中的强大潜力。

 

2.1强化学习基础

       强化学习(Reinforcement Learning, RL)是一种通过与环境交互学习策略的机器学习方法,目的是最大化长期奖励。其核心要素包括状态(State, s)、动作(Action, a)、奖励(Reward, r)、策略(Policy, π)和环境(Environment)。在倒立摆平衡控制问题中:

 

状态 s:描述系统当前的配置,通常包括倒立摆的角度θ、角速度θ˙、小车的位置x和速度x˙。

动作 a:控制小车向左或向右施加的力,如-10N至10N的力。

奖励 r:每一步给予智能体的反馈,例如,当倒立摆保持平衡时给予正奖励(如+1),当倒立摆倒下或偏离预定范围时给予负奖励或终止。

策略 π:基于当前状态选择动作的策略,目标是找到最优策略π∗最大化期望累积奖励。

2.2 倒立摆模型

倒立摆系统可由以下二阶线性微分方程组描述其动力学特性:

 

 

 

其中,g是重力加速度,l是摆长,m是摆的质量,b是摩擦系数,u是小车对系统施加的控制力。

 

2.3 Q-Learning算法应用于倒立摆控制

      Q-Learning是一种无模型的强化学习算法,通过学习一个动作价值函数Q(s,a)来决定在给定状态下采取什么行动。该函数表示在状态s采取动作a后,预期能获得的累积奖励。Q-Learning的更新规则如下:

 

 

 

这里,α是学习率,γ是折扣因子,rt+1​是采取动作at​后立即获得的奖励,st+1​是下一个状态。

 

       由于倒立摆控制问题的维度较高,经典的Q-table可能不切实际,因此常采用DQN来解决。DQN使用深度神经网络近似Q函数,可以处理高维状态空间。其关键创新在于引入了经验回放(Experience Replay)和固定Q-targets,以减少关联性和提高学习稳定性。

 

       经验回放是指将智能体与环境交互的历史数据存储在经验池中,然后在更新网络参数时随机抽取一批样本来学习,这有助于打破数据之间的相关性,提高学习效率。固定Q-targets则是指在网络更新时,目标Q值基于一个较慢更新的网络来计算,避免了目标函数的剧烈波动。

 

3.MATLAB核心程序

 

 

标签:状态,simulink,建模,学习,奖励,Learning,强化,倒立
From: https://www.cnblogs.com/51matlab/p/18339816

相关文章

  • 数学建模实战快速入门
    数学建模实战快速入门前言:数学建模竞赛是一个对参赛者的发散思维、数理逻辑能力以及资料搜集和处理问题的能力有着较高要求的综和性竞赛,希望获得好的奖项的参赛者需要对次提前进行充足的准备,包括提前找到最合适自己的小伙伴,提前了解和准备好各类需要的软件工具,并提前了解......
  • 【PowerDesigner数据建模使用笔记】
    PowerDesigner使用技巧背景思考尝试如何显示表备注、表字段备注从数据库更新到模型注意事项背景使用PowerDesigner来进行数据建模的时候,表属性字段一个个输入有点太过繁琐、痛苦。思考有没其他的更好方式来快速进行数据建模,省去逐个数据表属性的键盘敲打出来呢尝......
  • flowable记录第一次建模并执行的过程
    流程:员工张三创建流程,李主管审批通过。首先创建一个表单,我们点击【表单】标签页,在右上角点击【创建表单】按钮输入表单名称、表单key和表单描述,并点击下方的【创建新表单】按钮表单创建成功,进入之后,我们设计简单的表单,从左侧拖拽【文本】和【数字】组件,然后点击左上角的【保......
  • 数学建模 1 层次分析法
    学习资源声明:【哔哩哔哩】大师兄数学建模第二讲层次分析法根据资料学习,加入了一些个人的理解,整理成这篇笔记。1层次分析法的定义层次分析法:通过相互比较确定各准则对于目标的权重,及各方案对于每一准则的权重,这些权重在人的思维过程中通常是定性的,而在层次分析法中......
  • 数学建模 1 层次分析法(上机篇)
    学习资源声明:大师兄数学建模第二讲层次分析法通过学习,加以个人思考整理得此篇笔记,含大量实操图片记录。1MATLAB基础操作语句(实用版)快速查询网站:MATLAB命令快速查询网站   我们只需要掌握基本的语法即可,在实际比赛和科研中,即查即用,养成查工具资料和帮助文档的习惯......
  • Python-PLAXIS自动化建模技术与典型岩土工程
    原文链接:Python-PLAXIS自动化建模技术与典型岩土工程https://blog.csdn.net/2301_78164062/article/details/140607885?spm=1001.2014.3001.5501一:Plaxis软件及PlaxisPythonAPI环境搭建1、Plaxis2D\Plaxis3D软件2、面向对象编程语言Python及其开发环境Spyder3、Plaxis输......
  • 数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体
    往期推荐大数据HBase图文简介-CSDN博客数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客数仓常见名词解析和名词之间的关系-CSDN博客目录0.前言0.1浅谈维度建模0.2数据分析模型1.何为数据仓库1.1 为什么不直接用业务平台的数据而要建设数仓?1.2 数据仓库特......
  • Simulink仿真中出现“Output argument ‘y‘ is not assigned on some execution path
        在simulink中添加函数时,经常由于代码的不完全,导致在simulink仿真时经常会出现“Outputargument'y'isnotassignedonsomeexecutionpaths."的错误,这是由于在编写程序时,对于输出y的赋值没有考虑全面,如下所示的代码:functiony=fcn(u)ifu>7y=1;......
  • 【数学建模导论】Task03 时间序列与投资模型
    前言按照时间排下来的序列,如果比较长的话(数据体量大),一下子看不出什么规律,此时我们就需要用到本篇章的建模方法了。当然预测模型可以按照以下学习路径机器学习(多层感知机、卷积)=>时间序列(LSTM、RNN等)1时间序列的基本概念基本概念顾名思义就是有时间性的序列典型......
  • 数学建模--拟合算法
    目录拟合与插值的区别常用的拟合算法应用实例总结最小二乘法在不同数据分布下的性能表现如何?傅里叶级数拟合在图像处理中的应用案例有哪些?贝叶斯估计法与最大似然估计法在参数估计中的优缺点分别是什么?最大似然估计法(MLE)优点:缺点:贝叶斯估计法(BayesianEstimation)优......