[0062] Ⅲ:当机器人的坐标满足:xytarget.计算出θ后将机器人的位置调整为(x+x′,y-y′,360°-θ)直到它到达终点,x′和y′都是预设的步进;
[0063] Ⅳ:当机器人的坐标满足:x>xtarget and y>ytarget.计算出θ后将机器人的位置调整为(x-x′,y-y′,180°+θ)直到它到达终点,x′和y′都是预设的步进。
[0064] 其中:θ=arcsin(|ytarget-y|/dt),θ∈[0,90°];(xtarget,ytarget)表示目标点的坐标位置。
[0065] 实施时,采用HP忆阻器作为经典的忆阻器模型,由两层TiO2薄膜夹在两个铂片电极板构成,其中一层由于缺失了大量的氧原子所以叫做掺杂层,相应的氧空位使得这个区域具有较强的导电性。另一层叫做非掺杂层具有较高的阻抗。用D代表两层TiO2/TiO2-x的总厚度,w与D-w分别代表掺杂层与非掺杂层的厚度。
[0066] 忆阻值M(t)被定义为:
[0067]
[0068] 其中Ron与Roff分别代表w=D和w=0的极限忆阻值,M(0)是t=0的初始忆阻值.x是范围为[0,1]的内部变量。
[0069] 掺杂层与非掺杂层的边界的移动速度与许多因素有关,包括Ron,D和电流i:
[0070]
[0071] 其中μv≈10-14m2s-1V-1是平均离子迁移率,k是边界移动速度与通过忆阻器电流的比例系数。事实上,离子的运动是非线性的,因为对一个纳米级的器件施加一个很小的电压就会产生很大的电场,这种情况在薄膜边界处更加明显。有很多窗函数来描述离子的这种非线性运动,在本发明中,采用Joglekar窗函数,其形式为:
[0072] fp(x)=1-(2x-1)2p
[0073] 其中控制参数p是一个正整数。当p逐渐增大时,离子的线性运动越来越明显。
[0074] 本例以3×3的忆阻交叉阵列为例,其由3条水平的纳米线、3条垂直的纳米线以及9个位于交叉点的忆阻器构成。图2所示是单个忆阻器的读写电路。Vr/w代表了读/写开关,Vp代表可编程电压源。如果选择写开关,则意味着Vp与Vr/w接通,可以通过Vp将忆阻器调整到想要的状态通过控制施加时间Tw。相反地,如果读开关被选中,则意味着Vp与Vr/w断开,忆阻器进入外电路。这时,读电压Vr被施加到相应的行线上,相应的列线获得输出电压Vout。
[0075] 更新忆阻值所需的电压Vw可以通过下列推导得到:
[0076] 根据Q值的更新公式可得:
[0077]
[0078] 当更新现状态忆阻值时,只需要将忆阻器施加下列电压Vw:
[0079]
[0080] 其中α为学习率,γ为折扣率,rt为状态st所对应的环境回报rt,V(st,at)为延迟单元输出的电压值, 为第二比较器输出的电压值。
[0081] 更新忆阻值所需的电压施加时间Tw可以通过下列推导得到:
[0082] 根据忆阻值的定义公式可得:
[0083] M(t)=Roff-(Roff-Ron)x(t)
[0084] =Roff-ΔRx(t)
[0085] 其中ΔR代表Roff-Ron。对上式等号两端分别求导可得:
[0086]
[0087] 让p=1,并利用欧姆定律重写并化简上述公式:
[0088]
[0089] 假设初始忆阻值Minitial到目标忆阻值Mtarget需要花费t=Tw的时间,那么有:
[0090]
[0091] 设置初始磁通量 并根据磁通量与电压时间之间的关系 可得时间Tw:
[0092]
[0093] 其中δ代表补偿因子,当Minitial与Mtarget不等于极限忆阻值时,补偿因子δ=0;否则,δ是一个接近于0的常数。
[0094] 基于上述改进思路,本实施例公开一种基于忆阻交叉阵列与Q学习的机器人路径规划系统,如图3所示,包括忆阻交叉阵列、读写控制开关、状态检测与选择模块、列选择开关、控制器、随机选择模块、第一比较器、第二比较器、延迟单元以及运算模块,其中:
[0095] 读写控制开关:用于控制忆阻交叉阵列的读写操作,设置有读电压Vr输入端和写电压Vw输入端;
[0096] 状态检测与选择模块:当需要根据状态执行相应动作时,用于检测当前环境状态st,执行动作at并得到环境回报rt;当需要对Q值进行更新时,用于输出前一个时刻的环境状态,并选择相应的行线,使其加载写电压Vw,并持续时间Tw,更新忆阻阵列的输出值;
[0097] 列选择开关:用于选择对应的列线;
[0098] 控制器:用于控制当前时刻是随机选择模块工作还是第一比较器工作;
[0099] 随机选择模块:通过生成一随机数作为列线选择的判断标准;
[0100] 第一比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入延迟单元中;
[0101] 第二比较器:用于比较所有列线的电压值,并将电压值最大的一列选择送入运算模块中;
[0102] 延迟单元:将输出电压延迟一个时间步长;
[0103] 运算模块:用于根据环境回报rt、延迟单元的输出电压以及第二比较器的输出电压计算得到写电压Vw以及施加时间Tw。
[0104] 基于图3所示硬件框架的机器人路径规划系统,其具体控制过程如下:
[0105] S1:读/写控制开关选择读有效,状态检测/选择模块检测机器人当前状态st,并且选中其对应的行线;
[0106] S2:控制器控制随机选择模块工作,通过列选择开关将所有列线连接到随机选择模块,随机选择模块生成一个随机数k∈[0,1],若k<ε(ε是为了实现动作选择策略ε-greedy的很小的数),则随机选择一条列线,执行该列线所对应的动作at,并将该列线连接到延迟单元,延迟单元将该列线的电压延迟一个时间步;若k>ε,控制器控制比较器1工作,则列选择开关将所有列线连接到比较器1,选出电压最大的列线,并将其连接到延迟单元,执行at后,机器人到达一个新状态,环境产生回报rt;
[0107] S3:状态检测/选择模块检测机器人的新状态st+1,并选中对应的行线,使用列选择开关将所有列线连接到比较器2,选出电压最大的列线并将其连接到运算模块,运算模块根据回报rt、延迟单元输出的电压以及比较器2的输出电压得到写电压Vw,并计算出施加时间Tw;
[0108] S4:读/写控制开关选择写有效,将写电压Vw加在忆阻器两端,持续Tw时间,即可改变忆阻器的阻值,相应地改变了Q值;如果机器人到达一定次数后,更新忆阻值时对应的列线以及延迟单元会被连接到比较器1,对于S中的所有状态,如果相应列线的输出电压Vt+1与延迟单元的输出电压Vt满足条件|Vt+1-Vt|<η(η是一个很小的数),则停止学习;否则继续学习。
[0109] S5:重复以上步骤,直到机器人到达目标点并且满足学习条件或者达到学习步数上限时停止。
[0110] 为了进一步理解本发明的显著效果,接下来通过仿真实验进行验证:
[0111] 本例中采用MATLAB以及MOBOTSIM软件进行了仿真和分析。下面对仿真中用到的参数进行说明。d1、d2与d3分别代表机器人的三个传感器探测到其与障碍物的距离;r1、r2与r3分别代表了相应的回报,limit表示机器人每次学习的步数上限。其他参数的设置如表1所示。
[0112] 表1 Q-learning与忆阻器的有关参数
[0113]
[0114] 通过模糊逻辑对回报的定义如下:
[0115]
[0116]
[0117]
[0118]
[0119] 用于Q值更新的回报rt是r1、r2、r3以及rtarget的加权和。如果机器人在相邻的时间步内坐标不变,则认为其已经撞上障碍物,返回起点继续学习。因为巧合,机器人连续两次探测到的路径可能相同但不是最优路径,设置学习次数的下限值count(count=β,让β=8)以避免这种情况的出现。
[0120] 基于改进Q-learning以及忆阻交叉阵列的机器人路径规划算法如下:
[0121]
[0122]
[0123] 仿真结果:
[0124] Q-learning改进前的结果如图4所示,让函数rtarget的系数c为100,改进后的结果如图5、6所示,图5为起点在左上角的情况下运行路径图,图6为起点在中间的情况下运行路径图。
[0125] 基于上述分析对比发现,本发明通过两方面对强化学习中的Q-learning进行改进,并且推导了更新忆阻值所需的电压以及施加时间,进一步,将忆阻交叉阵列与改进Q-learning结合起来提出了机器人路径规划系统。提出的改进算法会加快Q-learning的收敛速度,同时大大减少机器人的学习时间;利用忆阻器的存储特性解决了Q-learning所需存储空间大的问题,有效避免了Q-learning可能出现的问题如状态爆炸;同时,忆阻器纳米级的尺寸使得机器人路径规划系统可以被嵌入到机器人的“大脑”中,即系统电路和控制程序设置在机器人控制芯片中,当机器人救援时不用占用其额外的空间携带存储设备,大大提高了机器人的灵活性,方便了机器人的工作。
[0126] 最后需要说明的是,上述描述为本发明的优选实施例,本领域的普通技术人员在本发明的启示下,在不违背本发明宗旨及权利要求的前提下,可以做出多种类似的表示,这样的变换均落入本发明的保护范围之内。