主要内容

rl金宝appSimulinkEnv

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

描述

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])% 3的观测向量:罪(θ),因为(θ)、d(θ/ dt
obsInfo = rlNumericSpec属性:LowerLimit:无穷UpperLimit:正的名字:[0 x0字符串)描述:[0 x0字符串]维度:1[3]数据类型:“替身”
actInfo = rlFiniteSetSpec ([2 0 2])% 3转矩可能值:2 Nm, 0和2 Nm
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仿真软件模型名称,指定为字符串或字符向量。

代理块路径,指定为一个字符串,特征向量,或字符串数组。

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

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

mdl可以包含RL代理模块的路径是不包括在吗agentBlocks。等代理模块的行为环境的一部分,选择行为根据其当前的政策。当你打电话sim卡火车这些代理的经验,不回来,他们的政策不更新。

多代理仿真不支持MATLAB环境。金宝app

代理模块可以在一个模型的参考。有关配置的更多信息代理的强化学习,明白了RL代理

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

如果mdl包含一个代理,指定obsInfo一个数组的rlNumericSpec对象的数组rlFiniteSetSpec这样的对象的对象或混合。

如果mdl包含多个代理街区,指定obsInfo作为一个单元阵列,每个单元格包含规范对象数组中相应的块agentBlocks

有关更多信息,请参见getObservationInfo

行动信息,指定为规范对象的数组或单元阵列。

如果mdl包含一个代理,指定actInfo一个数组的rlNumericSpec对象的数组rlFiniteSetSpec对象,或混合的对象。

如果mdl包含多个代理街区,指定actInfo单元阵列,每个单元格包含规范对象数组中相应的块agentBlocks

有关更多信息,请参见getActionInfo

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

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

输出参数

全部折叠

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

强化学习环境的更多信息,请参阅为强化学习创建金宝app仿真软件环境

介绍了R2019a