Matlab DDPG

文章目录

  • 1 rlSimulinkEnv
    • 1.1 说明
    • 1.2 例子
      • 1.2.1 使用工作空间Agent创建Simulink环境
      • 1.2.2 为Simulink模型创建强化学习环境
      • 1.2.3 创建Simulink多Agents环境
  • 2 创建Simulink环境和训练Agent
    • 2.1 创建环境接口
    • 2.2 创建DDPG Agent
    • 2.3 训练Agent
    • 2.4 验证已训练的Agent
  • 3 创建Simulink强化学习环境
    • 3.1 Action and Observation信号
    • 3.2 定制Simulink环境
  • 4 RL Agent
  • 5 Deep Deterministic Policy Gradient Agents
    • 5.1 Actor and Critic Functions
    • 5.2 Agent Creation
    • 5.3 Training Algorithm
    • 5.4 Target Update Methods
  • 参考链接

1 rlSimulinkEnv

1.1 说明

rlSimulinkEnv函数从Simulink®模型中创建强化学习环境对象。环境对象起接口作用,当调用sim或train时,这些函数反过来调用Simulink模型,为智能体生成经验。

  1. env = rlSimulinkEnv(mdl, agentBlocks)为Simulink模型mdl创建强化学习环境对象env,agentBlocks包含到mdl中一个或多个强化学习agent块的路径。如果使用这种语法,每个agent块必须引用MATLAB®工作空间中已经存在的agent对象。
  2. env = rlSimulinkEnv(mdl, agentBlocks, obsInfo, actInfo)为模型mdl创建强化学习环境对象env。两个单元数组obsInfo和actInfo必须包含mdl中每个agent块的观测和动作规范,与它们出现在agentBlocks中的阶数相同。
  3. env = rlSimulinkEnv( _ _ , ‘UseFastRestart’, fastRestartToggle)创建了一个强化学习环境对象env,并支持快速重启。在前面语法中的任何一个输入参数之后使用这个语法。

1.2 例子

1.2.1 使用工作空间Agent创建Simulink环境

在MATLAB®工作空间中加载agent。

load rlWaterTankDDPGAgent

为rlwatertank模型创建环境,其中包含一个RL Agent模块。由于区块所使用的agent已经在工作空间中,因此不需要通过观测和动作规范来创建环境。

env = rlSimulinkEnv('rlwatertank','rlwatertank/RL Agent')
env = 
SimulinkEnvWithAgent with properties:Model : rlwatertankAgentBlock : rlwatertank/RL AgentResetFcn : []UseFastRestart : on

通过进行两个样本时间的短暂模拟来验证环境。

validateEnvironment(env)

现在可以分别使用train和sim对环境中的Agent进行训练和仿真。

1.2.2 为Simulink模型创建强化学习环境

打开模型:

mdl = 'rlSimplePendulumModel';
open_system(mdl)

分别创建rlNumericSpec和rlFiniteSetSpec对象用于观察和动作信息。

obsInfo = rlNumericSpec([3 1]) % vector of 3 observations: sin(theta), cos(theta), d(theta)/dt
obsInfo = rlNumericSpec with properties:LowerLimit: -InfUpperLimit: InfName: [0x0 string]Description: [0x0 string]Dimension: [3 1]DataType: "double"
actInfo = rlFiniteSetSpec([-2 0 2]) % 3 possible values for torque: -2 Nm, 0 Nm and 2 Nm
actInfo = rlFiniteSetSpec with properties:Elements: [3x1 double]Name: [0x0 string]Description: [0x0 string]Dimension: [1 1]DataType: "double"

对于rlNumericSpec和rlFiniteSetSpec对象,可以使用点数表示法赋值属性值。

obsInfo.Name = 'observations';
actInfo.Name = 'torque';

分配智能体分块路径信息,利用前面步骤提取的信息为Simulink模型创建强化学习环境。

agentBlk = [mdl '/RL Agent'];
env = rlSimulinkEnv(mdl,agentBlk,obsInfo,actInfo)
env = 
SimulinkEnvWithAgent with properties:Model : rlSimplePendulumModelAgentBlock : rlSimplePendulumModel/RL AgentResetFcn : []UseFastRestart : on

还可以包括使用点符号的reset功能。对于该实例,在模型工作空间中随机初始化theta0。

env.ResetFcn = @(in) setVariable(in,'theta0',randn,'Workspace',mdl)
env = 
SimulinkEnvWithAgent with properties:Model : rlSimplePendulumModelAgentBlock : rlSimplePendulumModel/RL AgentResetFcn : @(in)setVariable(in,'theta0',randn,'Workspace',mdl)UseFastRestart : on

1.2.3 创建Simulink多Agents环境

在MATLAB工作空间中加载智能体。

load rlCollaborativeTaskAgents

为rlCollaborativeTask模型创建一个环境,该环境有两个Agent块。由于两个区块( agentA和agentB)所使用的智能体已经在工作空间中,因此不需要通过它们的观察和动作规范来创建环境。

env = rlSimulinkEnv('rlCollaborativeTask',["rlCollaborativeTask/Agent A","rlCollaborativeTask/Agent B"])
env = 
SimulinkEnvWithAgent with properties:Model : rlCollaborativeTaskAgentBlock : [rlCollaborativeTask/Agent ArlCollaborativeTask/Agent B]ResetFcn : []UseFastRestart : on

2 创建Simulink环境和训练Agent

该实例的原始模型为水箱模型:
在这里插入图片描述
对原模型进行以下修改:

  • 删除PID控制器,改由强化学习控制器;
  • 插入RL Agent模块
  • 串联观测向量 [ ∫ e d t , e , h ] T [\int edt, e, h]^T [edt,e,h]T,其中h是水箱高度, e = r − h e=r-h e=rh,r是参考高度;
  • 设置奖励 r e w a r d = 10 ( ∣ e ∣ < 0.1 ) − 1 ( ∣ e ∣ ≥ 0.1 ) − 100 ( h ≤ 0 ∣ ∣ h ≥ 20 ) reward=10(|e|<0.1)-1(|e|\ge0.1)-100(h\le0||h\ge20) reward=10(e<0.1)1(e0.1)100(h

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/284766.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建linux虚拟机系统:(安装Ubuntu镜像文件,包含语言设置、中文输入法、时间设置)

我下载的是清华大写开源软件镜像站中的ubuntu-20.04.6-desktop-amd64.iso这个镜像文件&#xff0c; 这个文件我下载完成之后没有解压&#xff0c;直接在创建虚拟机的时候选择的压缩包。 地址为&#xff1a;Index of /ubuntu-releases/20.04/ | 清华大学开源软件镜像站 | Tsin…

Git——IDEA中的使用详解

目录 Git1、IDEA中配置Git2、将本地项目推送到远程仓库2.1、创建项目远程仓库2.2、初始化本地仓库2.3、连接远程仓库2.4、提交到本地仓库2.5、推送到远程仓库 3、克隆远程仓库到本地4、基本操作4.1、代码提交到暂存区4.2、暂存区代码提交到本地库4.3、推送到远程仓库4.4、撤销本…

网络: 网络层

IP地址: 分为网络号和主机号. 用来标识主机 IP协议 IP协议报文 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节. 8…

HarmonyOS NEXT应用开发案例集

概述 随着应用代码的复杂度提升&#xff0c;为了使应用有更好的可维护性和可扩展性&#xff0c;良好的应用架构设计变得尤为重要。本篇文章将介绍一个应用通用架构的设计思路&#xff0c;以减少模块间的耦合、提升团队开发效率&#xff0c;为开发者呈现一个清晰且结构化的开发…

YOLOv8:Roboflow公开数据集训练模型

Roboflow公开数据集 Roboflow是一个提供计算机视觉数据集管理和处理工具的平台。虽然Roboflow本身并不创建或策划公开数据集&#xff0c;但它提供了一系列功能&#xff0c;帮助用户组织、预处理、增强和导出计算机视觉数据集。 官方网站&#xff1a;https://universe.roboflow…

FOCUS-AND-DETECT: A SMALL OBJECTDETECTION FRAMEWORK FOR AERIAL IMAGES

摘要 为了解决小对象检测问题&#xff0c;提出了一个叫做 Focus-and Detect 的检测框架&#xff0c;它是一个两阶段的框架。 第 一阶段包括由高斯混合模型监督的对象检测器网络&#xff0c;生成构成聚焦区域的对象簇 。 第二阶段 也是一个物体探测器网络&#xff0c;预测聚焦…

Web框架开发-Ajax

一、 Ajax准备知识:json 1、json(Javascript Obiect Notation,JS对象标记)是一种轻量级的数据交换格式 1 2 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。…

谧林涓露门禁

原神武器升级材料谧林涓露和门禁好像聂。 difference(){union(){cylinder(2, 10,10, $fn365);hull(){translate([15,0,0])cylinder(1,2,2,$fn365);cylinder(1,10,10,$fn365);}}translate([15,0,-1])cylinder(4,1,1,$fn365); }

swagger3快速使用

目录 &#x1f37f;1.导入依赖 &#x1f32d;2.添加配置文件 &#x1f9c2;3.添加注解 &#x1f96f;4.访问客户端 1.导入依赖 引入swagger3的依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artif…

智能驾驶域控制器行业介绍

汽车智能驾驶功能持续高速渗透&#xff0c;带来智能驾驶域控制器市场空间快速增 长。智驾域控制器是智能驾驶决策环节的重要零部件&#xff0c;主要功能为处理感知 信息、进行规划决策等。其核心部件主要为计算芯片&#xff0c;英伟达、地平线等芯 片厂商市场地位突出。随着消费…

【c语言】详解操作符(上)

1. 操作符的分类 2. 原码、反码、补码 整数的2进制表示方法有三种&#xff0c;即原码、反码、补码 有符号整数的三种表示方法均有符号位和数值位两部分&#xff0c;2进制序列中&#xff0c;最高位的1位是被当做符号位其余都是数值位。 符号位都是用0表示“正”&#xff0c;用…

二分算法(查找)

问题&#xff1a;在数组中查找某一个数字x4的下标 例&#xff1a;arr:1 3 4 6 10 20 21 22 显然&#xff0c;数字4的下标为3。 1、线性查找&#xff0c;一个个地去遍历&#xff0c;时间复杂度为O(n) 2、二分查找&#xff0…

国务院办公厅发布:政府类网站网页设计规范(试行)

国务院办公厅于2019年12月发布了《政府类网站网页设计规范&#xff08;试行&#xff09;》。该规范的发布旨在统一政府类网站的设计风格和标准&#xff0c;提升政府网站的用户体验和可访问性&#xff0c;推动政府信息公开和服务的提升。 该规范涵盖了政府类网站的各个方面&…

【Esp32-Cam模型训练相关问题解决方案】

Esp32-Cam模型训练相关问题解决方案 一、AttributeError: module everywhereml.data.ImageDataset has no attribute from_nested_folders现象解决方案 二、Connection to 192.168.x.xxx timed out(connect timeoutNone)三、卡在0%| |0/100 [00:00<?, ?it/s] 抛砖引玉&…

Linux之基础IO

1.C语言中的文件操作函数 文件的打开 path为文件路径&#xff0c;mode为打开方式&#xff0c;它们都是字符串。 代码演示&#xff1a; 此时&#xff0c;当前目录中并没有log.txt文件&#xff0c;但是没关系&#xff0c;fopen会在当前路径下创建log.txt文件。 简单来说&#xf…

数据分析-Pandas序列时间移动窗口化操作

数据分析-Pandas序列时间移动窗口化操作 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…

Python3 字典

字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key2 : value2, key3 : value3 } 键必…

MTransE翻译

MTransE翻译 阅读时间&#xff1a;2024.03.23 领域&#xff1a;知识图谱&#xff0c;知识对齐 作者&#xff1a;Muhao Chen等人 UCLA 出处&#xff1a;IJCAI Multilingual Knowledge Graph Embeddings for Cross-lingual Knowledge Alignment 用于交叉知识对齐的多语言知识图…

【Python】基础语法(一)

文章目录 1.注释2.关键字与标识符2.1关键字2.2标识符 3.变量4.数据类型4.1数字类型4.2类型转换函数4.3布尔类型 5.输入(input)与输出(print)5.1输入函数(input)5.2输出函数(print) 6.运算符6.1算术运算符6.2比较运算符6.3赋值运算符6.4逻辑运算符6.5运算符优先级 7.字符串7.1字…

mysql体系结构及主要文件

目录 1.mysql体系结构 2.数据库与数据库实例 3.物理存储结构​编辑 4.mysql主要文件 4.1数据库配置文件 4.2错误日志 4.3表结构定义文件 4.4慢查询日志 4.4.1慢查询相关参数 4.4.2慢查询参数默认值 4.4.3my.cnf中设置慢查询参数 4.4.4slow_query_log参数 4.4.…