主要内容

Rl金宝appsimulinkenv.

使用中实现的动态模型创建强化学习环境金宝app

描述

Rl金宝appsimulinkenv.函数从Simulink中创建一个强化学习环境对象金宝app®模型。环境对象充当一个接口,因此当您调用SIM火车,这些功能依次调用Simulink模型来为代理生成体验。金宝app

例子

env.= rl金宝appSimulinkEnv (mdlagentBlocks创建强化学习环境对象env.对于Simuli金宝appnk模型mdlagentBlocks包含一个或多个加强学习代理程序块的路径mdl.如果使用此语法,则每个代理程序组必须引用已在MATLAB中的代理对象®工作区。

例子

env.= rl金宝appSimulinkEnv (mdlagentBlocksobsinfoActinfo.创建强化学习环境对象env.为模型mdl.两个单元阵列obsinfoActinfo.必须包含每个代理程序块的观察和动作规范mdl,与它们出现的顺序相同agentBlocks

env.= rl金宝appSimulinkEnv (___,'umerfastrestart',FastrestArtToggle.创建一个强化学习环境对象env.并另外启用快速重启。在上一个语法中的任何输入参数后使用此语法。

例子

全部折叠

控件中使用经过训练金宝app的代理和相应的Simulink模型创建Simulink环境创建Simul金宝appink环境和培训代理的例子。

在MATLAB®工作区中加载代理。

加载rlwatertankddpgagent.

创造一个环境rlwatertank模型,它包含一个RL Agent块。由于块使用的代理已经在工作空间中,您不需要通过观察和操作规范来创建环境。

env = rl金宝appSimulinkEnv ('rlwatertank'“rlwatertank / RL代理”
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlwatertank AgentBlock: rlwatertank/RL Agent ResetFcn: [] UseFastRestart: on . env = SimulinkEnvWithAgent with properties: Model: rlwatertank AgentBlock: rlwatertank/RL Agent ResetFcn: [] UseFastRestart: on

通过对两个样本执行一个简短的模拟来验证环境。

validateEnvironment (env)

您现在可以通过使用培训并模拟环境中的代理火车SIM, 分别。

对于这个例子,请考虑rlSimplePendulumModel金宝app仿真软件模型。这个模型是一个简单的无摩擦摆,它最初是向下悬挂的。

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

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

ObsInfo = rlnumericspec([3 1])%向量3个观测值:sin cos d /dt
obsInfo = rlnumericspec与属性:lowerlimit:-inf上唇:inf name:[0x0字符串]描述:[0x0字符串]尺寸:[3 1]数据类型:“double”
actInfo = rlFiniteSetSpec([-2 0 2])扭矩的%3可能的值:-2 nm,0 nm和2nm
ActInfo = rlfinitesetspec,具有属性:元素:[3x1 double]名称:[0x0字符串]描述:[0x0字符串]尺寸:[1 1]数据类型:“DOUBLE”

您可以使用DOT表示法为分配属性值rlNumericSpecrlfinitesetspec.对象。

ObsInfo.name =.'观察';actInfo。Name ='扭矩';

分配代理块路径信息,并使用先前步骤中提取的信息创建用于Simulink模型的增强学习环境。金宝app

agentBlk = [mdl'/ rl代理'];env = rl金宝appSimulinkEnv (mdl agentBlk、obsInfo actInfo)
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: [] UseFastRestart: on . env = SimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: [] UseFastRestart: on

您还可以使用点表示法包含重置功能。对于此示例,随机初始化Theta0.在模型工作区中。

env.resetfcn = @(in)setVariable(在,“theta0”,randn,“工作区”mdl)
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl) UseFastRestart: on

根据示例为Simulink模型创建一个环境金宝app训练多智能体执行协作任务

在MATLAB工作区中加载代理。

加载rlcollaborativetaskagents.

创造一个环境rlcollaborativetask.模型,它有两个agent block。由于两个块使用的代理(Agenta.AgentB.)已经在工作空间中,您不需要通过它们的观察和操作规范来创建环境。

env = rl金宝appSimulinkEnv ('rlcollaborativetask',[“rlCollaborativeTask /代理”“B rlCollaborativeTask /代理”])
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlCollaborativeTask AgentBlock: [rlCollaborativeTask/Agent A rlCollaborativeTask/Agent B] ResetFcn: [] UseFastRestart: on . env = SimulinkEnvWithAgent with properties: Model: rlCollaborativeTask AgentBlock: [rlCollaborativeTask/Agent A rlCollaborativeTask/Agent B] ResetFcn: [] UseFastRestart: on

您现在可以使用环境模拟或培训代理SIM火车, 分别。

输入参数

全部折叠

金宝appSimulink模型名称,指定为字符串或字符向量。模型必须至少包含一个RL代理堵塞。

代理块路径,指定为字符串、字符向量或字符串数组。

如果mdl包含一个单身RL代理块,指定agentBlocks作为包含块路径的字符串或字符向量。

如果mdl包含多个RL代理块,指定agentBlocks作为字符串数组,其中每个元素包含一个代理块的路径。

mdl可以包含RL代理未包含路径的块agentBlocks.这样的代理块作为环境的一部分,根据它们当前的策略选择操作。当你打电话SIM火车,不返回这些代理的经验,也不更新它们的策略。

在MATLAB环境中不支持多智能体仿真。金宝app

代理块可以在模型引用的内部。有关配置强化学习的代理块的更多信息,请参阅RL代理

观察信息,指定为规范对象,规范对象数组或单元格数组。

如果mdl包含单个代理块,请指定obsinfo作为一个rlNumericSpec对象,一个rlfinitesetspec.对象,或包含这些对象混合的数组。

如果mdl包含多个代理程序块,指定obsinfo作为单元阵列,其中每个单元格包含相应块的规范对象或规范对象数组agentBlocks

有关更多信息,请参见getObservationInfo

操作信息,指定为规范对象或单元格数组。

如果mdl包含单个代理块,请指定Actinfo.作为一个rlNumericSpecrlfinitesetspec.对象。

如果mdl包含多个代理程序块,指定Actinfo.作为一个单元格数组,其中每个单元格包含一个对应块的规范对象agentBlocks

有关更多信息,请参见getActionInfo

要快速重启的选项,指定为'上'“关闭”.快速重启允许您执行迭代模拟,而无需每次都编译模型或终止模拟。

有关快速重启的详细信息,请参见快速重启如何提高迭代模拟(金宝appSimulink)

输出参数

全部折叠

强化学习环境,作为一个返回金宝appSimulinkenvwithagent.对象。

有关强化学习环境的更多信息,请参阅创建Simul金宝appink强化学习环境

在R2019A介绍