概述
创建simulink的集成环境模型
- createIntegratedEnv
- 语法
- 描述
- 实例
- Create Environment from a Simulink Model
- Create an Integrated Environment with Specified Port Names
- 输入参数
- Name-Value Pair Arguments
- 输出参数
如果参考模型具有适当的操作输入端口,观察输出端口和标量奖励输出端口,则可以自动创建包含该参考模型和RL Agent块的Simulink模型。此函数返回模型的环境对象,操作规范和观察规范。
createIntegratedEnv
使用参考模型作为环境,创建用于强化学习的Simulink模型。
语法
env = createIntegratedEnv(refModel,newModel)
[env,agentBlock,obsInfo,actInfo] = createIntegratedEnv(___)
[___] = createIntegratedEnv(___,Name,Value)
描述
env = createIntegratedEnv(refModel,newModel)使用newModel指定的名称创建Simulink®模型,并为此模型返回一个强化学习环境对象env。 新模型包含一个RL Agent块,并将参考模型refModel用作强化学习环境,用于训练此块指定的智能体。
[env,agentBlock,obsInfo,actInfo] = createIntegratedEnv(___)返回新模型中RL Agent块的块路径以及参考模型obsInfo和actInfo的观察和动作数据规范。
[___] = createIntegratedEnv(___,Name,Value)使用使用一个或多个Name,Value对参数指定的端口,观察值和操作信息来创建模型和环境接口。
实例
Create Environment from a Simulink Model
本示例说明如何使用createIntegratedEnv从实现代理程序需要与之交互的系统的Simulink模型开始创建环境对象。 这样的系统通常被称为工厂,开环系统或参考系统,而包括智能体的整个(集成)系统通常被称为闭环系统。
打开模型。
open_system('rlFlyingRobotEnv');
初始化状态变量和采样时间。
% initial model state variables
theta0 = 0;
x0 = -15;
y0 = 0;
% sample time
Ts = 0.4;
创建Simulink模型IntegratedEnv,其中包含以闭环方式连接到智能体块的飞行机器人模型。 该函数还返回强化学习环境对象env,用于训练。
env=createIntegratedEnv('rlFlyingRobotEnv','IntegratedEnv')
该函数还可以返回新的集成模型中的RL智能体块的块路径,以及参考模型的观察和操作数据规范。
[~,agentBlk,observationInfo,actionInfo]=createIntegratedEnv('rlFlyingRobotEnv','IntegratedEnv')
如果您需要修改observationInfo和actionInfo中的描述,限制或名称,并随后使用函数rlSimulinkEnv从集成模型IntegratedEnv创建环境,则此功能很有用。
Create an Integrated Environment with Specified Port Names
本示例说明如何使用“名称和值”对调用函数createIntegratedEnv来创建集成(闭环)Simulink环境和相应的环境对象。
createIntegratedEnv函数的第一个参数是参考Simulink模型的名称,该模型包含与智能体进行交互的系统。 这种系统通常称为工厂或开环系统。 对于此示例,参考系统是水箱的模型。
打开开环水箱模型
open_system('rlWatertankOpenloop.slx');
出现上述情况,点击箭头所指方向,打开实例模型。
设置用于生成观测值的离散积分器块的采样时间,以便可以运行仿真。
Ts=1;
由于输入端口称为u(而不是动作),而第一个和第三个输出端口称为y和stop(而不是观察值和isdone),因此在调用函数createIntegratedEnv时,请使用“名称和值”对指定正确的名称。
env=createIntegratedEnv('rlWatertankOpenloop','IntegratedWatertank','ActionPortName','u','ObservationPortName','y','IsDonePortName','stop')
这将创建新模型IntegratedWatertank,其中包含以闭环方式连接到智能体块的参考模型。 该函数还返回强化学习环境对象env,用于训练。
输入参数
refModel — Reference model name
string | character vector
参考模型名称,指定为字符串或字符向量。 这是Simulink模型,用于实现与智能体进行交互的系统。 这样的系统通常被称为工厂,开环系统或参考系统,而包括智能体的整个(集成)系统通常被称为闭环系统。 新的Simulink模型使用此参考模型作为强化学习环境的动态模型。
newModel — New model name
string | character vector
新模型名称,指定为字符串或字符向量。 createIntegratedEnv使用此名称创建Simulink模型,但不保存模型。
Name-Value Pair Arguments
指定可选的逗号分隔的名称,值参数对。 Name是参数名称,Value是相应的值。 名称必须出现在引号中。 您可以按任意顺序指定多个名称和值对参数,例如Name1,Value1,…,NameN,ValueN。
示例:“ IsDonePortName”,“ stopSim”将参考模型的stopSim端口设置为isdone信号的源。
‘ObservationPortName’ — Reference model observation output port name
“observation” (default) | string | character vector
ObservationPortName”和字符串或字符向量组成。 当参考模型的观察输出端口的名称不是“ observation”时,请指定observationPortName。
‘ActionPortName’ — Reference model action input port name
“action” (default) | string | character vector
ActionPortName”和字符串或字符向量组成。 当参考模型的动作输入端口的名称不是“ action”时,请指定ActionPortName。
‘IsDonePortName’ — Reference model done flag output port name
“isdone” (default) | string | character vector
参考模型完成标志输出端口名称,指定为以逗号分隔的一对,由“ IsDonePortName”和字符串或字符向量组成。 当参考模型的完成标志输出端口的名称不是“ isdone”时,请指定IsDonePortName。
‘ObservationBusElementNames’ — Names of observation bus leaf elements
string array
要为其创建规范的观察总线叶子元素的名称,指定为字符串数组。 要为Simulink总线对象中的元素子集创建观察规范,请指定BusElementNames。 如果未指定BusElementNames,则会为总线中的每个叶子元素创建一个数据规范。
只有当观察输出端口是总线信号时,observationBusElementNames才适用。
示例:‘ObservationBusElementNames’,[“ sin”“ cos”]为名称为“ sin”和“ cos”的观察总线元素创建规范。
‘ObservationDiscreteElements’ — Finite values for observation specifications
cell array of name-value pairs
离散观测规范元素的有限值,指定为由“ ObservationDiscreteElements”和名称-值对的单元格数组组成的逗号分隔对。 每个名称/值对均由元素名称和离散值数组组成。
如果参考模型的观察输出端口为:
-
总线信号,指定由ObservationBusElementNames指定的总线叶元素之一的名称。
-
非总线信号,指定观测端口的名称,如 ObservationPortName。
指定的离散值必须可转换为指定观察信号的数据类型。
如果您没有为观察规范元素指定离散值,则该元素是连续的。
示例:‘ObservationDiscretElements’,{‘observation’,[-1 0 1]}指定具有默认端口名称观察的非总线观察信号的离散值。
示例:‘ObservationDiscretElements’,{‘齿轮’,[-1 0 1 2],‘方向’,[1 2 3 4]}指定总线动作信号的“齿轮”和“方向”叶元素的离散值。
输出参数
env — Reinforcement learning environment
SimulinkEnvWithAgent object
强化学习环境界面,作为SimulinkEnvWithAgent对象返回。
agentBlock — Block path to the agent block
character vector
新模型中智能体块的块路径,作为字符向量返回。 要在新的Simulink模型中训练代理,您必须创建一个智能体,并在agentBlock指示的RL代理块中指定智能体名称。
有关创建代理的更多信息,请参见Reinforcement Learning Agents。
obsInfo — Observation data specifications
rlNumericSpec object | rlFiniteSetSpec object | array of data specification objects
观测数据规范,以下列之一返回:
-
单个连续观察规范的rlNumericSpec对象
-
单个离散观测规范的rlFiniteSetSpec对象
-
多个规格的数据规格对象数组
actInfo — Action data specifications
rlNumericSpec object | rlFiniteSetSpec object | array of data specification objects
操作数据规范,以下列之一返回:
-
单个连续动作规范的rlNumericSpec对象
-
单个离散操作规范的rlFiniteSetSpec对象
-
用于多个动作规范的数据规范对象数组
最后
以上就是羞涩蜻蜓为你收集整理的MATLAB强化学习工具箱(十)创建simulink的集成环境模型createIntegratedEnvName-Value Pair Arguments的全部内容,希望文章能够帮你解决MATLAB强化学习工具箱(十)创建simulink的集成环境模型createIntegratedEnvName-Value Pair Arguments所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复