首页 / 一种奖励函数及采用该函数的振动抑制强化学习算法

一种奖励函数及采用该函数的振动抑制强化学习算法实质审查 发明

技术领域

[0001] 本发明涉及强化学习技术领域,具体为一种奖励函数及采用该函数的振动抑制强化学习算法。

相关背景技术

[0002] 目前传统的伺服驱控器采用传统pid控制算法结合参考轨迹输入整形的方法进行振动抑制,需要已知较为精确的产品的动力学模型。首先需要对被控对象进行精准的动力学模型搭建,该步骤需要多年的实验数据作支撑;其次在生产制造加工装配过程中需要对产品的一致性要求很高,该步骤对加工制造生产的机床控制精度要求很高;真实应用时,还需要对每款具体的产品进行单体的模型辨识,该步骤需要标定人员进行的产品参数标定,造成较高的标定成本。
[0003] 现代人工智能技术的发展日新月异,已经在技术应用领域产生翻天覆地的影响,引领着新一代的技术革命。其中最具有通用解决方案前景的强化学习是其中翘楚,强化学习已经应用在围棋、电子游戏、自动驾驶、生物医药设计、健康预测、机器人控制等领域。
[0004] 目前强化学习在伺服驱控领域的应用很少,用于振动抑制更是空白。如果将强化学习应用到伺服驱控领域,可以开创一种控制方法的新思路,应用成功之后则能带来强化学习的一系列优点,如在仿真中就能解决第一段提出的各种传统控制方法的问题。而如何将伺服驱控的控制性能指标转换为强化学习中的奖励函数,目前尚未有可供参考的资料,这也是横梗在强化学习在基础工业应用上的拦路虎,本发明着重处理奖励函数设计的问题,即如何把真实场景中的伺服驱控振动抑制的控制应用需求,转化为强化学习中的学习目标,从而为强化学习在该领域的应用搭建有效的途径。

具体实施方式

[0097] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0098] 请参阅图1和图8,本发明提供一种技术方案:本实施例设计了一种基于强化学习的伺服驱控器振动抑制控制的奖励函数设计,该步骤是使用强化学习解决实际工业伺服产品应用问题的一个关键步骤,是构建真实应用场景问题与强化学习问题之间的纽带,通过在学习过程中迭代式地尝试与挑选并改进,最终在强化学习中搭建出符合真实应用需求的奖励函数。
[0099] 具体实施方式:
[0100] 第一步:搭建被控对象的线性离散化数学模型
[0101] 具体步骤:
[0102] 根据牛顿第二定律、扭转胡克定律,将机器人单关节电机负载模型抽象为两个刚体、两个旋转副及一个扭簧相连接的力学模型并分别建立动力学响应方程及变形方程,其动力学响应方程及变形方程分别为:
[0103]
[0104] 其中,物理量M表示扭矩,J表示转动惯量,α表示角加速度,B表示旋转阻尼,ω表示角速度,θ表示角度,物理量的下角标分别表示所对应的物体,其中下角标m代表电机,ml代表联轴器,l代表载荷。特别的,Min代表输入扭矩,Kml表示联轴器的等效扭转刚度。
[0105] 第二步:构建基于MDP的强化学习
[0106] 强化学习在数学上的理想化形式为有限马尔可夫决策过程MDP,它是一种通过交互式学习来实现目标的理论框架。交互过程如下图2所示,强化学习本质是学习行动策略πθ(at|st),它根据当前状态st做出行动at的;行动at作用到电机模型,模型根据系统状态转移p·(st+1|st,at)更新下一时刻的状态st+1。本实施例应用中,状态St=(θm,θm),θm为电机高速端·
的位置,θm为电机高速端的速度。动作at为输入扭矩Min。收益rt为当前步骤获得的奖励,其具体设计见第三步。
[0107] MDP过程如图3所示。每一个小三角都代表图1中的交互过程,该过程一直持续到该幕结束。
[0108] 单次采样的轨迹定义为τ=(s1,a1,r1,…st,at,rt,…,sT,aT,rT),其发生的概率为[0109]
[0110] 该条轨迹的回报定义为:
[0111] 式中,γ为折扣因子,γ∈(0,1]。
[0112] 强化学习的目标就是最大限度地提高长期收益,也就是最大化期望回报,期望回报的定义为 即求取行动策略网络的参数θ,根据该参数下的行动策略进行采样得到的轨迹,期望回报值最大。所以优化问题变为
[0113]
[0114] 上式优化问题中最重要的函数为r(st,at),也即当前状态动作的奖励函数,它决定强化学习的学习目标,决定训练过程是否能够收敛。下一步主要讲解奖励函数的设计。
[0115] 第三步:奖励函数的设计
[0116] 伺服驱控器在电机振动抑制控制问题中的目标为快速、平稳地从当前位置到达目标位置,且超调量小于某个值δ,到达目标位置之后稳定无振荡,要求很高的控制精度。
[0117] 此处超调量的定义为σ=θl_max‑θl_cmd;θl_max为负载在运动过程中达到的最大值,θl_cmd为期望的负载命令值。由于θl的值无法获得,属于欠驱动系统,所以常规的控制无法凑效,一般都会在到达目标位置时产生很大的超调且会来回振荡。
[0118] 首先,奖励函数要反应出最直接的目标,即控制电机到达目标值θl_cmd,那么设计的奖励函数的主要构成便是与θl_cmd相关的奖励函数,如图4所示,本实施例提出以下三种与目标值相关的奖励函数的形式:
[0119] 每种类型的函数都可以有多种函数的超参设计。针对振动抑制中超高控制精度的要求,在Δθ=|θl‑θl_cmd|较低时赋予较高的奖励更合理;本实施例中最终使用的位置相关的奖励函数为指数衰减+线性函数的组合,即指数衰减之后紧接线性函数。其函数形式如下,
[0120]
[0121] 奖励函数的第二个主要成分为对超调量σ的惩罚。针对超调惩罚,如图5所示,本实施例同样使用三种基本形式的奖励函数:
[0122] 但因为超调奖励是惩罚项,所以需要将上图中的曲线整体平移到横坐标之下;且超调较小时,使用线性函数,超调较大时,使用对数衰减,即强行抑制超调量。其函数形式如下:
[0123]
[0124] 奖励函数的第三个成分为电机位置的奖励,其形式与负载端的位置奖励一样。
[0125] 奖励函数的第四个成分为输入扭矩的惩罚,该惩罚项能够降低能量损耗,而且在到达目标值之后能够抑制电流的振荡,降低对机械结构的损伤,其函数形式如下:
[0126] r(Min)=‑|Min|*r(Δθ)
[0127] 综上所述,总的奖励函数为上述四个成分的累计
[0128] r(s,a)=w1r(Δθl)+w2r(σ)+w3r(Δθm)+w4r(Min)
[0129] 式中,wi代表第i项奖励函数的权重
[0130] 第四步:强化学习训练过程
[0131] 设计好奖励函数之后,接下来用强化学习中SAC算法来求解该优化问题,该算法使用熵正则化的方式来最大化期望回报与熵(保持策略的探索性)之间的权衡。
[0132] SAC包含Actor行动策略网络πθ(a|s),行动策略优化的目标为:
[0133]
[0134] 其中,θ为行动策略的网络参数,s为当前状态, 为经验池,ξ为从正态分布 取值的变量,Q为状态价值网络,φ为价值网络参数,α为权重,π为行动策略。
[0135]
[0136] 其中, 为采样的动作,μ为均值,σ为标准差。
[0137] SAC中的含有两个状态行动价值网络,其优化的损失函数为:
[0138]
[0139] 其中,φi为第i个行动价值网络的参数,d为该状态是否为终止状态,y为当前状态动作对的目标值,其计算公式为:
[0140]
[0141] 其中,r为当前的收益,γ为折扣因子, 为从行动策略采样的动作
[0142] 行动策略和价值网络的网络结构都由多层全连接层+多层LSTM+多层全连接层构成。网络结构分别如图6和图7所示,构差异在于,行动策略网络输入为状态s,输出为行动a;行动价值网络输入为状态动作对(s,a),输出为行动价值Q(s,a)。
[0143] SAC算法包括以下步骤:
[0144] 1)初始化策略π网络参数θ,Q函数网络参数φ1,2,初始化经验池 将Q参数赋值给目标Q网络参数φtarg,1←φ1,φtarg,2←φ2;
[0145] 2)观测状态s,并从策略选择动作a~πθ(·|s),在环境中执行该动作,并观测下一时刻的状态s',收益r,及结束标志d,将状态转移对(s,a,r,s',d)存储到经验池 中,如果s'为结束状态,则重置环境;
[0146] 3)采集了K步状态对后,进行L次如下更新步骤4)‑步骤8):
[0147] 4)从经验池 随机采集一组状态转移对组成B={(s,a,r,s′,d)},
[0148] 5)计算Q函数的目标值:
[0149]
[0150] 6)使用单步梯度下降更新Q函数的权值参数,其梯度值为:
[0151]
[0152] 7)使用单步梯度上升更新策略网络的权值参数,其梯度值为
[0153]
[0154] 其中, 为从πθ(·|s)采样的值,它通过重参数化技巧使得对θ可导
[0155] 8)更新目标网络参数
[0156] φtar,i←ρφtar,i+(1‑ρ)φi,fori=1,2
[0157] 11)重复步骤2)至步骤8)直到收敛。
[0158] 也可以采用PPO算法求解该强化学习的问题,请参阅图10,
[0159] 强化学习的基本概念定义清晰之后,结合第三步中环境变化的方式,接下来用强化学习中PPO算法来求解该问题。
[0160] PPO是一种在线策略更新算法,该算法需要定义Actor行动策略网络πθ(at|st),代表在状态st下采取动作的at的概率分布;Critic状态价值评估网络 代表状态st下的状态价值。这两种神经网络的网络架构都由多层全连接层+多层LSTM+多层全连接层构成,神经网络的架构如下图所示,Actor输出At,Critic输出V(St)。
[0161] 强化学习的最终优化的目标为 使用SGD来优化PPO算法中的策略目标为:
[0162]
[0163]
[0164] 其中,ε为一个参数系数,代表示新的行动策略与旧的行动策略之间的差异变化。为状态(s,a)下的优势函数。
[0165] 使用域泛化技术的PPO算法整体流程如下:
[0166] 1)定义Actor行动策略网络,代表在状态下采取动作的的概率分布;Critic状态价值评估网络,代表状态下的状态价值,Actor输出At,Critic输出V(St);强化学习的最终优化的目标为,使用SGD来优化PPO算法中的策略目标为:
[0167]
[0168]
[0169] 其中,为一个参数系数,代表示新的行动策略与旧的行动策略之间的差异变化为状态下的优势函数;
[0170] 2)初始化行动策略网络、状态价值评估网络中的网络参数;
[0171] 3)采用多线程并行技术,每个线程使用域随机化设置,确定当前线程使用的仿真使用的环境,总共设置N个环境;
[0172] 4)在每个线程中,从初始状态s0开始,行动策略网络πθ(at|st)不断根据当前状态st选取选取动作at(使用正态映射来保持动作的探索性),作用于环境获得下一时刻的状态st+1,不断重复该过程直到该线程中的轨迹结束;形成单次采样的一整条轨迹τ=(s0,a0,r0,s1,a1,r1,…st,at,rt,…,sT,aT,rT)。总共采集N条长度为T的轨迹。
[0173] 5)将每个线程中生成的轨迹组合成(st,at,rt)经验池;对经验池中的每一个状态st,计算当前状态的状态价值
[0174] 6)根据经验池中的数据和当前的状态价值函数估计每个状态动作对的优势值;
[0175] 7)通过最大化PPO‑Clip目标来更新策略,策略优化的梯度方向为
[0176]
[0177] 式中,i代表第i条轨迹,一共采样N条轨迹,t代表当前时刻使用策略梯度上升更新行动策略网络中的网络参数来优化参数,具体使用Adam算法来获得;
[0178] 8)根据最小均方误差原则来回归拟合状态价值函数,其目标定义为
[0179]
[0180] 求取的新的状态真值,使用梯度下降法来更新状态价值网络中的网络参数;9)不断重复3)~8)的过程,直到训练次数满足一定的条件终止训练。
[0181] SAC算法流程简图见图8。
[0182] 步骤五:根据SAC训练结果调整奖励函数设计
[0183] 第四步训练出行动策略网络πθ(at|st)后,将其用于电机模型,查看轨迹特性是否满足伺服驱控的控制性能需求,如果满足,则结束整个流程,获得的行动策略网络为满足控制需求的控制策略;如果不满足控制需求,则需要调整奖励函数的设计,重新用sac算法训练该过程,直至满足需求。整体流程可以表达为图9。
[0184] 最后,步骤六:利用训练好的策略网络用于控制电机模型
[0185] 使用动作策略网络用于真实控制时,需要将正态映射网络的标准差设置为0,类似ε‑greedy策略中的ε设置为0;使用第五步中训练获取的回报最高的行动策略网络πθ(at|st)。
[0186] 以标称状态为例,使用RL泛化方法应用于电机模型,取得的振动抑制控制效果如下图11所示,应用于系统参数Jl、Bml、Kml取较小值时如图12,应用于系统参数Jl、Bml、Kml取较大值时如图13.
[0187] 综合上述三图可以看出,在不同的系统参数下,传统的控制方法会在末端导致不同程度的振荡;传统振动抑制方法通过输入整形的方式能够消除该振荡,但末态还是会有小范围但波动;而强化学习控制则在更短的时间内到达目标位置,同时降低了振动幅度,表现出最优的性能,而且对系统的参数变化不敏感。
[0188] 本实施例起伺服驱控的真实控制需求及指标要求,将其转化为等效的强化学习中的奖励函数,搭建起真实工业场景中的应用问题与强化学习之间的桥梁。
[0189] 本实施例搭建了奖励函数设计的函数库,包括线性函数、指数函数、对数函数等函数为基函数的复合奖励函数设计库,提出了不同的奖励函数形式的组合,针对不同的控制性能需求设计不同的奖励函数。
[0190] 根据奖励函数进行的训练,根据训练的结果来不断地修正奖励函数的设计,直到满足控制指标需求,形成奖励函数设计的闭环。为强化学习在伺服驱控领域的应用打开一种新的方法与思路。
[0191] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页 第1页 第2页 第3页