文档帮助中心文档
创建金宝app基于参考模型的强化学习模型
env = createIntegratedEnv (refModel newModel)
[env, agentBlock obsInfo actInfo] = createIntegratedEnv (___)
[___) = createIntegratedEnv (___、名称、值)
env.= createIntegrateenv(refModel,newModel)创建一个模型金宝app®指定的名称的模型newModel并返回钢筋学习环境对象,env.,对于这个模型。新模型包含一个RL代理块并使用参考模型refModel作为强化学习环境,用于训练此块指定的agent。
env.= createIntegrateenv(refModel,newModel)
env.
refModel
newModel
例子
[env.,AppertBlock.,obsInfo,Actinfo.) = createIntegratedEnv (___)返回到的块路径RL代理块在新模型和参考模型的观察和行动数据规范中,obsInfo和Actinfo.,分别。
[env.,AppertBlock.,obsInfo,Actinfo.) = createIntegratedEnv (___)
AppertBlock.
obsInfo
Actinfo.
[___) = createIntegratedEnv (___,名称,价值)使用使用一个或多个指定的端口、观察和操作信息创建模型和环境接口名称,价值对参数。
[___) = createIntegratedEnv (___,名称,价值)
名称,价值
全部收缩
此示例使用:
此示例显示了如何使用CreateIntegrateenv.从实现代理的系统的Simulink模型开始创建环境对象。金宝app这样的系统通常被称为植物,开环系统,或参考系统,而包括代理的整体(集成)系统通常被称为闭环系统。
CreateIntegrateenv.
对于本例,使用中描述的飞行机器人模型火车DDPG代理控制飞行机器人作为参考(开环)系统。
打开飞行机器人模型。
open_system (“rlFlyingRobotEnv”)
初始化状态变量和采样时间。
%初始模型状态变量theta0 = 0;x0 = -15;y0 = 0;% 采样时间ts = 0.4;
创建Simulink模金宝app型IntegrateNv.包含在闭环中连接到代理块的飞行机器人模型。该函数还返回钢筋学习环境对象env.用于培训。
IntegrateNv.
env = createIntegratedEnv (“rlFlyingRobotEnv”,“IntegratedEnv”)
env = 金宝appSimulinkEnvWithAgent with properties: Model: IntegratedEnv AgentBlock: IntegratedEnv/RL Agent ResetFcn: [] UseFastRestart: on
该函数还可以将块路径返回到新集成模型中的RL Agent块,以及参考模型的观察和操作规范。
[〜,AgentBlk,观察info,ActionInfo] = createIntegrateenv(“rlFlyingRobotEnv”,“IntegratedEnv”)
AppletBlk ='IntemitedEnv / RL代理'
observationInfo = rlNumericSpec with properties: LowerLimit: -Inf UpperLimit: Inf Name: "observation" Description: [0x0 string] Dimension: [7 1] DataType: "double"
ActionInfo = rlnumericspec具有属性:lowermit:-inf上唇:inf name:“动作”描述:[0x0字符串]尺寸:[2 1]数据类型:“double”
在需要修改中描述、限制或名称的情况下,返回块路径和规范是有用的observationInfo和actionInfo.在修改规范之后,您可以从集成模型创建一个环境IntegrateNv.使用rl金宝appSimulinkEnv功能。
observationInfo
actionInfo
rl金宝appSimulinkEnv
此示例显示了如何调用CreateIntegrateenv.使用名称值对指定端口名称。
第一个论点CreateIntegrateenv.是这个名字参考金宝app包含代理必须与之交互的系统的Simulink模型。这样的系统通常被称为植物,或开环系统。对于此示例,参考系统是水箱的模型。
打开开环式水箱模型。
open_system (“rlWatertankOpenloop.slx”)
设置用于生成观测的离散积分器块的采样时间,以便模拟运行。
Ts = 1;
输入端口被调用u(而不是行动),并调用第一和第三个输出端口y和停止(而不是观察和结束)。使用名称值对指定端口名称。
u
行动
y
停止
观察
结束
env = createIntegratedEnv (“rlWatertankOpenloop”,“IntegratedWatertank”,...“ActionPortName”,“u”,'abangationportname','是','isdoneportname',“停止”)
Env = 金宝appSimulinkenVwithAgent具有属性:型号:IntegratedWaterTank AppertBlock:IntegratedWaterTank / RL代理resetFCN:[] UseFastrest:ON
新模型IntegratedWatertank包含与代理块中的闭环连接的参考模型。该函数还返回用于培训的强化学习环境对象。
IntegratedWatertank
引用模型名,指定为字符串或字符向量。这是实现代理需要与之交互金宝app的系统的Simulink模型。这样的系统通常被称为植物,开环系统或参考系统,而包括代理的整体(集成)系统通常被称为闭环系统。新的Simuli金宝appnk模型使用该参考模型作为增强学习环境的动态模型。
新的模型名称,指定为字符串或字符向量。CreateIntegrateenv.使用此名称创建一个S金宝appimulink模型,但不保存该模型。
指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“IsDonePortName”、“stopSim”
秒杀
'abangationportname'
“观察”
参考模型观测输出端口名,指定为逗号分隔对组成'abangationportname'和一个字符串或字符向量。指定ObservationPortName当参考模型的观测输出端口名称不为时“观察”.
ObservationPortName
“ActionPortName”
“行动”
参考模型动作输入端口名称,指定为逗号分隔对组成“ActionPortName”和一个字符串或字符向量。指定ActionPortName当引用模型的操作输入端口的名称不是时“行动”.
ActionPortName
“RewardPortName”
“奖励”
参考模型奖励输出端口名,指定为逗号分隔对组成“RewardPortName”和一个字符串或字符向量。指定RewardPortName当参考模型的奖励输出端口的名称不是时“奖励”.
RewardPortName
'isdoneportname'
“结束”
参考模型完成标志输出端口名,指定为逗号分隔对组成'isdoneportname'和一个字符串或字符向量。指定IsDonePortName当参考模型的done标志输出端口的名称不是时“结束”.
IsDonePortName
“ObservationBusElementNames”
要为其创建规范的观察总线叶元素的名称,指定为字符串数组。要为Simulink总线对象中的元素子集创建观察规范,请指定金宝appBusElementNames.如果没有指定BusElementNames,则为总线中的每个叶元素创建一个数据规范。
BusElementNames
ObservationBusElementNames仅当观测输出端口为总线信号时适用。
ObservationBusElementNames
例子:“观察业务”,[“SIN”“COS”]使用名称创建观察总线元素的规范“罪”和“因为”.
“观察业务”,[“SIN”“COS”]
“罪”
“因为”
'观察discreteElements'
离散观察规范元素的有限值,指定为逗号分隔对组成'观察discreteElements'和一个名称值对的单元格数组。每个名称值对由元素名称和离散值数组组成。
若参考模型的观测输出端口为:
总线信号,指定由此指定的总线的一个叶子元素的名称ObservationBusElementNames
非总线信号,指定观察端口的名称,如ObservationPortName
指定的离散值必须是指定观察信号的数据类型。
如果您没有为观察规范元素指定离散值,则该元素是连续的。
例子:ObservationDiscretElements,{“观察”,[1 0 1]}指定具有默认端口名称的非信徒观测信号的离散值观察.
ObservationDiscretElements,{“观察”,[1 0 1]}
例子:'观察分离上调',{'齿轮',[ - 1 0 1 2],'方向',[1 2 3 4]}指定离散值'齿轮'和“方向”总线动作信号的叶子元素。
'观察分离上调',{'齿轮',[ - 1 0 1 2],'方向',[1 2 3 4]}
'齿轮'
“方向”
“ActionDiscreteElements”
离散动作规范元素的有限值,指定为逗号分隔对组成“ActionDiscreteElements”和一个名称值对的单元格数组。每个名称值对由元素名称和离散值数组组成。
如果参考模型的动作输入端口为:
一个总线信号,指定总线的叶元素的名称
非总线信号,指定动作端口的名称,如ActionPortName
指定的离散值必须可转换为指定动作信号的数据类型。
如果您没有为操作规范元素指定离散值,则该元素是连续的。
例子:ActionDiscretElements,{“行动”,[1 0 1]}为带有默认端口名的非总线动作信号指定离散值“行动”.
ActionDiscretElements,{“行动”,[1 0 1]}
例子:'ActionDiscretElements',{'Force',[ - 10 0 10],'扭矩',[ - 5 0 5]}指定离散值'力量'和'扭矩'总线动作信号的叶子元素。
'ActionDiscretElements',{'Force',[ - 10 0 10],'扭矩',[ - 5 0 5]}
'力量'
'扭矩'
金宝appSimulinkenvwithagent.
强化学习环境界面,返回为一个金宝appSimulinkenvwithagent.对象。
到新模型中的代理块的块路径,作为字符向量返回。要在新的Simulink模型中培训代理,必须创建代理并在金宝appRL代理块所示AppertBlock..
有关创建代理的详细信息,请参见加固学习代理人.
rlnumericspec.
rlfinitesetspec.
观察数据规范,作为以下内容之一返回:
rlnumericspec.对象为单一连续观测规范
rlfinitesetspec.单个离散观察规范的对象
多个规范的数据规范对象数组
操作数据规范,返回如下内容之一:
rlnumericspec.对象的一个连续操作规范
rlfinitesetspec.对象的单个离散操作规范
用于多个操作规范的数据规范对象数组
bus2rlspec.
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系您当地的办公室