首页 > 其他分享 >m基于强化学习的PID控制器simulink仿真,对比PI控制器和变结构PI控制器

m基于强化学习的PID控制器simulink仿真,对比PI控制器和变结构PI控制器

时间:2023-03-31 23:34:20浏览次数:38  
标签:控制器 PID Agent 学习 强化 PI 调整

1.算法描述

       PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制器适用于各种控制对象无法进行测量获得系统参数的情况,其根据控制对象的输出和参考控制变量的输入差进行实时的调整实现对未知参数控制对象的有效控制。PID控制器由比例调整模块,积分调整模块以及微分调整模块三个部分构成,那么其输入的误差信号e(t)与输出u(t)的关系为公式6:

 

 

 

 

 

 

      公式中,参数kp表示的是比例调整模块的系数,其作用是将系统的反馈误差e(t)根据参数 kp进行调节,使得调整后的控制对象的反馈误差减小。当比例系数kp取较大值的时候,那么控制器的调整速度较快,但是其抖动也较大,从而导致系统了不稳定性。当比例系数kp取较小值的时候,那么控制器调整速度较慢,但调整过程较为稳定。

 

       参数ki表示的是积分调整模块的系数,其作用将消除系统中存在的稳态误差,当存在稳态误差的时候,通过积分调节模块进行调节,直到完全消除稳态误差为止,之后积分调节功能停止工作,积分调节模块输出一个固定值。当积分调制系数ki​​​​​​​较小的时候,积分调节作用越强,反之,积分调节作用较弱,系统调整速度较慢。

 

      参数kd表示的是微分调整模块的系数,其主要是对系统反馈误差的变化率进行调整,其具有超前调整功能,可以预测系统反馈误差的变化率,因此可以在反馈误差产生之间将误差消除,因此通过设置微分调整参数,可以降低PID控制器的超调量,并加快系统的调整速度。

————————————————

 

       强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。

 

       强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process, MDP)。按给定条件,强化学习可分为基于模式的强化学习(model-based RL)和无模式强化学习(model-free RL),以及主动强化学习(active RL)和被动强化学习(passive RL)。强化学习的变体包括逆向强化学习、阶层强化学习和部分可观测系统的强化学习。求解强化学习问题所使用的算法可分为策略搜索算法和值函数(value function)算法两类。深度学习模型可以在强化学习中得到使用,形成深度强化学习。

 

      强化学习理论受到行为主义心理学启发,侧重在线学习并试图在探索-利用(exploration-exploitation)间保持平衡。不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。强化学习问题在信息论、博弈论、自动控制等领域有得到讨论,被用于解释有限理性条件下的平衡态、设计推荐系统和机器人交互系统 。一些复杂的强化学习算法在一定程度上具备解决复杂问题的通用智能,可以在围棋和电子游戏中达到人类水平 。

 

        强化学习是智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。

 

强化学习是从动物学习、参数扰动自适应控制等理论发展而来,其基本原理是:

 

       如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。

 

       强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。

 

        强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是Agent对所产生动作的好坏作一种评价(通常为标量信号),而不是告诉Agent如何去产生正确的动作。由于外部环境提供了很少的信息,Agent必须靠自身的经历进行学习。通过这种方式,Agent在行动一一评价的环境中获得知识,改进行动方案以适应环境。

 

        强化学习系统学习的目标是动态地调整参数,以达到强化信号最大。若已知r/A梯度信息,则可直接可以使用监督学习算法。因为强化信号r与Agent产生的动作A没有明确的函数形式描述,所以梯度信息r/A无法得到。因此,在强化学习系统中,需要某种随机单元,使用这种随机单元,Agent在可能动作空间中进行搜索并发现正确的动作。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

 

 

3.MATLAB核心程序

​​​​​​​

 

 

 

function y = fcn(u)
V1    = u(1);
V2    = u(2);
V3    = u(3);
V4    = u(4);
V5    = u(5);
 
 
kp1   = u(6);
kp2   = u(7);
kp3   = u(8);
kp4   = u(9);
kp    = u(10);
 
ki1   = u(11);
ki2   = u(12);
ki3   = u(13);
ki4   = u(14);
ki    = u(15);
 
kd1   = u(16);
kd2   = u(17);
kd3   = u(18);
kd4   = u(19);
kd    = u(20);
 
 
 
y     = [0,0,0,0,0];
V     = [abs(V1),abs(V2),abs(V3),abs(V4),abs(V5)]; 
V2    = [(V1),(V2),(V3),(V4),(V5)]; 
kp0   = [kp1,kp2,kp3,kp4,kp];
ki0   = [ki1,ki2,ki3,ki4,ki];
kd0   = [kd1,kd2,kd3,kd4,kd];
 
 
[VV,II]=min(V);
kpopt = kp0(II);
kiopt = ki0(II);
kdopt = kd0(II);
Vopt  = VV;
y(1)  = Vopt;
y(2)  = kpopt;
y(3)  = kiopt;
y(4)  = kdopt;
y(5)  = 0;

 

  

 

标签:控制器,PID,Agent,学习,强化,PI,调整
From: https://www.cnblogs.com/51matlab/p/17277837.html

相关文章

  • m基于PID控制算法的四旋翼无人机飞行控制simulink仿真
    1.算法描述  无人机采用常见的四旋翼无人飞行器,如图1所示。           PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制......
  • 项目一众筹网05_02_[树形开发]菜单管理、API文档发布到web服务器、配置文件里面修改to
    系列文章目录文章目录系列文章目录08-页面显示树形结构-前端-使用真实数据09-准备zTree的API文档(因为现在没有图标)==API文档发布到web服务器上去==配置文件里面修改tomcat的默认端口号(只需改动3个地方)10-前端-显示图标-分析思路(-页面显示树形结构)11-前端-显示图标-代码实现(-页面......
  • 常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)
    常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)多使用帮助文档类型取值范围和默认值Math类:​ 概念:帮助我们进行数学计算的工具类,里面的方法都是静态的,所以无需实例化这个类​ 常用方法:​ abs::获取绝对值 absExact:获取绝对值 rou......
  • scrapy爬虫框架(三)Spider的使用
      在前面已经简单介绍了spider的基础用法,那么今天我们来详细了解一下Spider的具体用法。一、Spider的运行流程  spider是scrapy框架中最核心的组件,其定义了爬取网站的逻辑和解析方式,而spider主要做两件事情:定义爬取网站的动作。分析爬取下来的网页。  那么他的运行流......
  • How to find the "usbmodem" of Raspberry Pi Pico on macOS All In One
    Howtofindthe"usbmodem"ofRaspberryPiPicoonmacOSAllInOneerrors/dev/tty.usbmodem0000000000001notexistbug❌#0000000000001❌$minicom-b115200-o-D/dev/tty.usbmodem0000000000001官方SDK文档❌bughttps://datasheets.raspberr......
  • SripingBoot 启程
    微服务论文(软实力)微服务(Microservices)——MartinFlower-船长&CAP-博客园(cnblogs.com)SpringBoot官方学习文档:https://spring.io/projects/spring-boot1、SpringSpring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:RodJohnson。Spring是为了解决企业级......
  • 后端基础——rom,ram,memory compiler
    一,memory基础1,导览Memory用来存储和读写的大量的二进制数据。按功能上分类,基本可以分为两大类:只读存储器(ROM)和随机存取存储器(RAM)。ROM只能读,不能写;RAM既能读又能写。RAM具有易失性。断电以后,RAM中保存的数据将全部丢失;而ROM中的数据则可以长久保存。RAM可以分为常用的SRAM和DRA......
  • 使用Apipost自动化测试工具来优化测试流程
    随着项目研发进程的不断推进,软件功能不断增多,对于软件测试的要求也越来越高。为了提高测试效率和减少测试成本,许多软件测试团队借助于自动化测试工具来优化测试流程。Apipost也提供了自动化测试工具,在本文中,我们将探讨如何借助Apipost自动化测试工具来优化测试流程。Apipost......
  • 细数N个获取天气信息的免费 API ,附超多免费可用API 推荐(三)
    前言市面上有N多个查询天气信息的软件、小程序以及网页入口,基本都是通过调用天气查询API去实现的。今天整理了一下多种场景的天气预报API接口分享给大家,有需要赶紧收藏起来。(apispace.com) 天气预报查询天气预报查询支持全国以及全球多个城市的天气查询,包含国内3400+个......
  • 各类电商平台批量获取商品信息 API 详细操作说明
    前言获取商品信息可以更加快捷的查看商品的详请参数,同理批量获取商品信息的话就可以查看多个商品的信息参数,便于我们查看整个店铺的数据情况方便运营管理。具体操作如下:先获取一个key和secret,登入测试网址,选择API名称-批量获取商品信息,输入自己的key和secret,点击测试​​​​​​......