一种基于迭代学习的扫地机器人轨迹控制方法

文档序号:35128758发布日期:2023-08-14 22:09阅读:42来源:国知局
本发明涉及迭代学习控制,更具体地说,涉及一种基于迭代学习的扫地机器人轨迹控制方法。
背景技术
::1、迭代学习控制采用输出误差来修正输入控制量,从而实现对控制目标的改善。其思想最初由日本学者于1978年提出,经过多年的发展,现已成为一种有效的控制技术。2、扫地机器人是一种智能化的机器人,能够自主清扫室内环境。然而,由于其时变、强耦合的非线性复杂特性,如何实现对其精确和快速的控制一直是工业自动化领域的难点。尽管建模的技术已经发展到非常高的水平,但由于外部干扰和建模的不精确,扫地机器人的完整运动模型无法得到。鉴于扫地机器人的这种特点以及重复学习控制特有的性质,迭代学习控制作为一种高效的控制策略,将其应用在扫地机器人的轨迹控制上以提高其控制精度和速度是可行的。技术实现思路1、本发明的目的是在现有的方法上做改进,提供一种基于迭代学习的扫地机器人轨迹控制方法,在全局和局部两个层面上进行搜索,通过引入个体性能的概率量化和多样化的进化策略,避免过早陷入局部最优解,提高迭代控制的全局搜索速度和收敛精度,且减少了控制过程的跟踪误差,满足扫地机器人快速、高精度跟踪控制需求。2、本发明采用如下技术方案:3、本发明一种基于迭代学习的扫地机器人轨迹控制方法,包括:4、s1,迭代学习动力学模型建立步骤;5、建立扫地机器人轨迹控制的迭代学习动力学模型,如下:6、               (1)7、                   (2)8、其中,<mstyledisplaystyle="true"mathcolor="#000000"><mstyledisplaystyle="true"mathcolor="#000000"><moveraccent="true"><mi>x</mi><mo>˜</mo></mover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>=</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>[</mo><mstyledisplaystyle="true"mathcolor="#000000"><mtable><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>x</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msub><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mi>a</mi></mstyle></msub></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msup><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mstyle></mtd></mtr><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>y</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msub><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mi>a</mi></mstyle></msub></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msup><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mstyle></mtd></mtr><mtr><mtd><msup><msub><mi>ϑ</mi><mi>a</mi></msub><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></mstyle><mo>]</mo></mstyle></mstyle>;<mstyledisplaystyle="true"mathcolor="#000000"><mstyledisplaystyle="true"mathcolor="#000000"><moveraccent="true"><mi>x</mi><mo>˜</mo></mover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>=</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>[</mo><mstyledisplaystyle="true"mathcolor="#000000"><mtable><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>x</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msub><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mi>a</mi></mstyle></msub></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msup><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle></mtd></mtr><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>y</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msub><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mi>a</mi></mstyle></msub></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msup><mrow/><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle></mtd></mtr><mtr><mtd><msup><msub><mi>ϑ</mi><mi>a</mi></msub><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr></mtable></mstyle><mo>]</mo></mstyle></mstyle>;<mstyledisplaystyle="true"mathcolor="#000000"><mstyledisplaystyle="true"mathcolor="#000000"><mi>b</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mrow><mstyledisplaystyle="true"mathcolor="#000000"><mi>ϑ</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle></mrow><mo>)</mo></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>=</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>[</mo><mstyledisplaystyle="true"mathcolor="#000000"><mtable><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>c</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>o</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>s</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>ϑ</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle></mtd><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mi>s</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>i</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>n</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>ϑ</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle></mtd><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mn>0</mn></mstyle></mtd><mtd><mstyledisplaystyle="true"mathcolor="#000000"><mn>1</mn></mstyle></mtd></mtr></mtable></mstyle><mo>]</mo></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>×</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>t</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><msub><mrow/><mi>s</mi></msub></mstyle></mstyle>;<mstyledisplaystyle="true"mathcolor="#000000"><mstyledisplaystyle="true"mathcolor="#000000"><mi>u</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><munderover><mi/><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></munderover></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>n</mi><mo>)</mo></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mi>=</mi></mstyle><mstyledisplaystyle="true"mathcolor="#000000"><mo>[</mo><mstyledisplaystyle="true"mathcolor="#000000"><mtablecolumnalign="left"><mtr><mtd><msup><msub><mi>v</mi><mi>a</mi></msub><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msup><msub><mi>ω</mi><mi>a</mi></msub><mstyledisplaystyle="true"mathcolor="#000000"><mo>(</mo><mi>k</mi><mo>)</mo></mstyle></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr></mtable></mstyle><mo>]</mo></mstyle></mstyle>;表示扫地机器人在第次迭代学习时轨迹控制动力学输出;表示扫地机器人在第次迭代学习时轨迹控制动力学输入;、和分别表示第次迭代学习时时刻扫地机器人在平面坐标轴的横坐标位置、纵坐标位置以及方向角;、和分别表示第次迭代学习时时刻扫地机器人在平面坐标轴的横坐标位置、纵坐标位置以及方向角;表示第次迭代学习时扫地机器人的线速度,表示第次迭代学习时扫地机器人的方向角速度;表示采样周期;<mstyledisplaystyle="true"mathcolor="#000000"><mi>n</mi><mi>∈</mi><mrow><mo>[</mo><mrow><mn>1</mn><mi>,</mi><mi>d</mi></mrow><mo>]</mo></mrow></mstyle>,表示扫地机器人最大运行周期;9、s2,参数设置步骤;10、设置迭代学习最大次数为及控制方法最大运行次数为;11、设置控制参数;令迭代学习次数时扫地机器人轨迹控制动力学系统输入,,计算对应的迭代学习控制适应度值函数,设置当前最优迭代输入,及设置当前最优迭代学习控制适应度值为;12、设置种群数目为,进化种群概率为,其中且;13、s3,参数比较步骤;获取内服从均匀分布的随机数,比较与的大小,如果,执行s4,如果,执行s5;14、s4,全局搜索步骤;15、全局搜索获得的迭代控制输入如下式:16、   (3)17、其中,表示第次迭代学习时搜索的最优解对应的维度数值,<mstyledisplaystyle="true"mathcolor="#000000"><mi>n</mi><mi>∈</mi><mi></mi><mrow><mo>[</mo><mrow><mn>1</mn><mi>,</mi><mi>d</mi></mrow><mo>]</mo></mrow></mstyle>;表示第次迭代学习时搜索的最优解对应的维度数值,和分别表示第次和第次迭代学习时第代搜索的解对应的维度数值,;和表示内服从均匀分布的随机数;表示求最小值操作;表示绝对值;18、计算种群产生的迭代控制输入对应的迭代学习控制适应度值;19、s5,局部搜索步骤;20、局部搜索获得的迭代控制输入如下式:21、  (4)22、其中,和为内服从均匀分布的随机数,表示求最大值操作;23、计算种群产生的迭代控制输入对应的迭代学习控制适应度值;24、s6,更新步骤;25、更新最优迭代控制输入和最优控制适应度值;26、如果迭代学习控制适应度值小于当前最优迭代学习控制适应度值,更新当前最优迭代学习控制适应度值为,且将对应的迭代控制输入更新为当前最优解;27、令控制参数;28、s7,运行次数判断步骤;29、重复执行s3~s6,直至达到最大运行次数,令,执行s8;30、s8,迭代学习次数判断步骤;31、如果迭代学习次数达到,则输出当前最优迭代学习控制适应度值及最优解,并停止执行,否则转向s3继续执行;32、s9,跟踪轨迹输出步骤;33、将获得的最优解代入建立的扫地机器人轨迹控制的迭代学习动力学模型(1),获得跟踪上理想跟踪轨迹的动力学输出。34、优选的,所述迭代学习控制适应度值函数,表示如下:35、   (5)36、其中,和为大于0的权重因子;表示扫地机器人在第次迭代学习时轨迹控制动力学输入;为第次迭代控制跟踪误差;,表示扫地机器人轨迹控制的理想跟踪轨迹;表示向量2-范数。37、由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:38、(1)本发明一种基于迭代学习的扫地机器人轨迹控制方法,在全局和局部两个层面上进行搜索,通过引入个体性能的概率量化和多样化的进化策略,避免过早陷入局部最优解,提高迭代控制的全局搜索速度和收敛精度,且减少了控制过程的跟踪误差,满足扫地机器人快速、高精度跟踪控制需求;39、(2)本发明一种基于迭代学习的扫地机器人轨迹控制方法,在搜索时不断更新迭代学习控制适应度值,以获取到最优迭代学习控制适应度值及对应的最优迭代控制输入,进而获快速跟踪上理想跟踪轨迹的动力学输出,满足扫地机器人快速、高精度跟踪控制需求。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1