主要内容

rl金宝appSimulinkEnv

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

自从R2019a

描述

rl金宝appSimulinkEnv函数创建一个强化学习环境从一个模型对象金宝app®模型。环境对象行为的一个接口,以便当你调用sim卡火车反过来,这些函数调用仿真软件模型生成代理经验。金宝app

例子

env= rl金宝appSimulinkEnv (mdl,agentBlocks)创建了强化学习环境对象env仿真软件模型金宝appmdlagentBlocks包含一个或多个路径强化学习代理模块mdl。如果你使用这种语法,每个代理块必须引用一个代理对象已经在MATLAB®工作区。

例子

env= rl金宝appSimulinkEnv (mdl,agentBlocks,obsInfo,actInfo)创建了强化学习环境对象env为模型mdl。这两种细胞数组obsInfoactInfo必须包含每个代理块的观察和操作规范mdl在相同的顺序出现agentBlocks

env= rl金宝appSimulinkEnv (___“UseFastRestart”,fastRestartToggle)创建一个强化学习环境对象env另外支持快速重启。使用这个语法的任何输入参数后以前的语法。

例子

全部折叠

创造一个仿真软件环金宝app境的使用训练有素的代理模型和相应的仿真软件创建仿真软件环金宝app境和培训代理的例子。

在MATLAB®加载代理工作区。

负载rlWaterTankDDPGAgent

创建一个环境rlwatertank块模型,它包含了RL代理。自从代理使用的块已经在工作区中,你不需要通过观察和操作规范来创建环境。

env = rl金宝appSimulinkEnv (“rlwatertank”,“rlwatertank / RL代理”)
env = 金宝appSimulinkEnvWithAgent属性:模型:rlwatertank AgentBlock: rlwatertank / RL代理ResetFcn: [] UseFastRestart:

验证环境进行一个简短的模拟两个示例。

validateEnvironment (env)

你现在可以训练和模拟环境中的代理使用火车sim卡,分别。

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

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

创建rlNumericSpecrlFiniteSetSpec分别为观察对象和动作信息。

观察是一个向量,它包含三个信号:正弦、余弦、和时间导数的角。

obsInfo = rlNumericSpec (1 [3])
obsInfo = rlNumericSpec属性:LowerLimit:无穷UpperLimit:正的名字:[0 x0字符串)描述:[0 x0字符串]维度:1[3]数据类型:“替身”

行动是一个标量表达力,可以三种可能的值,-2海里,0纳米和2Nm。

actInfo = rlFiniteSetSpec ([2 0 2])
actInfo = rlFiniteSetSpec属性:元素:[3 x1双)名称:[0 x0字符串)描述:[0 x0字符串]维度:[1]数据类型:“替身”

可以使用点符号来指定属性的值rlNumericSpecrlFiniteSetSpec对象。

obsInfo。Name =“观察”;actInfo。Name =“扭矩”;

指定代理块路径信息,并创建的强化学习环境仿真软件模型在前面的步骤中使用的信息提取。金宝app

agentBlk = mdl +“/ RL代理”;env = rl金宝appSimulinkEnv (mdl agentBlk、obsInfo actInfo)
env = 金宝appSimulinkEnvWithAgent属性:模型:rlSimplePendulumModel AgentBlock: rlSimplePendulumModel / RL代理ResetFcn: [] UseFastRestart:

你还可以包括一个重置函数使用点符号。对于本例,随机初始化theta0在模型中工作区。

env。ResetFcn = @(在)setVariable (,“theta0”randn,“工作区”mdl)
env = 金宝appSimulinkEnvWithAgent属性:模型:rlSimplePendulumModel AgentBlock: rlSimplePendulumModel / RL代理ResetFcn: @(在)setVariable (randn,“theta0”,“工作空间”,mdl) UseFastRestart:

创建一个环境仿真软件模型的例子金宝app训练多个代理执行协作任务

MATLAB的工作区中加载代理。

负载rlCollaborativeTaskAgents

创建一个环境rlCollaborativeTask代理模型,它有两个街区。自两块(使用的代理agentAagentB)已经在工作区中,您不需要通过观察和操作规范来创建环境。

env = rl金宝appSimulinkEnv (“rlCollaborativeTask”,(“rlCollaborativeTask /代理”,“B rlCollaborativeTask /代理”])
env = 金宝appSimulinkEnvWithAgent属性:模型:rlCollaborativeTask AgentBlock: [rlCollaborativeTask /代理rlCollaborativeTask /代理B] ResetFcn: [] UseFastRestart:

你现在可以模拟或火车内的代理环境使用sim卡火车,分别。

输入参数

全部折叠

金宝app仿真软件模型名称,指定为字符串或字符向量。模型必须包含至少一个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

选择切换快速重启,指定为“上”“关闭”。快速启动允许您执行迭代模拟没有每次都编译或终止仿真模型。

在快速启动的更多信息,见重新启动改善迭代模拟多快(金宝app模型)

输出参数

全部折叠

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

强化学习环境的更多信息,请参阅创建模型强化学金宝app习环境

版本历史

介绍了R2019a