本发明涉及多关节机器人的控制技术领域,尤其是一种轨迹跟踪控制系统。
背景技术:
关节机器人轨迹跟踪控制是通过控制器对各关节施加驱动力矩使得机器人的关节角、角速度等运动状态跟踪给定的期望轨迹。关节机器人是一个高度非线性和高度不确定性系统,很难得到机器人精准的数学模型,一定程度上会影响实际的控制效果,因此通过一定的控制方法来降低机器人控制误差是机器人轨迹跟踪的目标。
比例-积分-微分(pid)控制易于实现且技术成熟,被广泛应用于关节机器人控制,但pid控制属于线性控制,将其应用于非线性系统的控制,往往难以取得理想的控制效果。模糊控制无需依靠精确的数学模型便可以达到良好的控制效果,对非线性系统具有较好的逼近效果。因此模糊控制和pid控制相结合的控制方法被设计应用于机器人轨迹跟踪控制,实现了控制精度的提高。尽管如此,对于模糊控制的隶属函数和模糊规则以及pid参数的选取和设计需要经验和专家知识,存在设计不合理时难以取得最佳控制效果的不足。现有技术中,采用遗传算法(ga)对控制器参数进行寻优调整往往能提高系统的动、静态性能。当同时优化与模糊规则、隶属函数相关的模糊控制器设计参数时,若将设计参数直接编码到个体染色体会使染色体变得冗长,搜索空间过大、寻优效率较低。
技术实现要素:
本发明的目的是针对多关节机器人模糊pid控制器进行遗传算法优化时编码长度冗长问题,提出一种基于混合编码的遗传优化轨迹跟踪控制系统,该系统模糊控制器采用设计参数直接编码和特征参数编码的混合编码策略,将该混合编码策略应用于模糊pid控制器隶属函数和模糊规则的遗传算法优化,并应用优化后的模糊pid控制器实现了关节机器人的轨迹跟踪控制,以提高多关节机器人的末端轨迹控制精度。
为实现上述目的,本发明采用如下技术方案:
一种基于混合编码的遗传优化轨迹跟踪控制系统,用于多关节机器人执行末端的轨迹跟踪控制;包括轨迹跟踪控制系统仿真模块、混合编码模块和遗传优化模块;
所述轨迹跟踪控制系统仿真模块包括动力学仿真模块和模糊pid控制器;动力学仿真模块用于在给定控制力矩τ的情况下输出机器人各个关节的仿真关节角位移q;模糊pid控制器包括模糊模块与pid模块,模糊pid控制器用以根据当前偏差e和偏差变化率ec输出控制力矩τ;
所述的混合编码模块包括隶属函数编码模块和模糊规则编码模块;隶属函数编码模块是将输入输出变量的隶属函数特征参数pm和g用于个体染色体编码;模糊规则编码模块是将δkp和δkd的模糊规则特征参数ps和θs以及δki的模糊规则设计参数用于个体染色体编码;
所述的遗传算法模块的初始种群是随机生成n个个体染色体[a1,a2,…,a63],根据当前种群中每个个体染色体的适应度函数值j(t),若满足优化要求(遗传代数或适应度函数变化阈值等)则结束寻优,否则根据适应度函数值来进行选择、复制、变异、交叉等一系列遗传操作生成下一代种群。
进一步的,控制力矩τ的获取方式为,首先将当前偏差e和偏差变化率ec作为模糊控制器的输入变量,经过模糊化后得到e和ec隶属不同模糊集的隶属度;e表示qd与q的偏差,e=qd-q,q表示关节机器人仿真输出的关节角位移,qd为期望的关节角位移;ec表示偏差变化率,ec=de/dt。然后根据模糊规则进行模糊推理得到输出变量δkp、δki、δkd的模糊结果,通过解模糊化得到输出变量精确结果;δkp为pid模块比例参数的调整值、δki为pid模块微分参数的调整值、δkd为pid模块积分参数的调整值。接着利用模糊模块输出的δkp、δki、δkd对pid模块参数进行在线自适应调整,然后得到pid模块作用于关节机器人的关节力矩τ。
进一步的,利用模糊控制器输出的δkp、δki、δkd对pid控制器参数进行在线自适应调整的表达式为
得到模糊pid控制器作用于关节机器人的关节力矩τ表示为:
式中,kp0、ki0、kd0为pid参数δkp、δki、δkd的初值。
进一步的,忽略摩擦力及机器人末端负载,其动态性能由二阶非线性动力学方程描述为:
式中,τ∈rn×1是关节力矩向量,q∈rn×1是机器人关节角度向量,
动力学仿真模块用于在给定控制力矩τ的情况下输出机器人多个关节的角加速度仿真值
在初始条件为q(0)=q0,
对于每一次迭代,都需要计算式
进一步的,混合编码模块包括隶属函数编码模块和模糊规则编码模块;混合编码模块中的隶属函数编码模块是使用输入变量e、ec的隶属函数和输出变量δkp、δki、δkd的隶属函数的特征参数pm和g编码,分别由染色体[a1,a2,…,a63]中的a1-a5和a6-a10基因位表示,每个变量的隶属函数顶点中心值xi为
式中,xi是三角形隶属函数中心顶点值;k是隶属函数模糊集个数,此处k=7;pm是幂函数的指数,g是伸缩因子。
混合编码模块中的模糊规则编码模块是根据3个输出变量δkp、δki、δkd分别对应的3个模糊规则表导出新的模糊规则编码,δkp的相平面区域规则结果从左到右指定为nl、nm、ns、ze、ps、pm、pl,δkd的相平面区域规则结果从左到右与δkp相反,δkp、δkd这2个输出变量模糊规则的特征参数ps和θs分别由染色体[a1,a2,…,a63]中的a11-a12和a13-a14基因位表示,由这两个特征参数可以生成规则相平面的划分线和划分点,根据划分结果导出新的模糊规则;而δki的模糊规则编码采用直接编码,用数字1、2、3、4、5、6、7分别表示模糊规则表中的nl、nm、ns、ze、ps、pm、pl,由a15-a63基因位表示。
进一步的,将混合编码模块获得的隶属函数和模糊规则用于更新轨迹跟踪控制系统仿真模块中模糊模块的隶属函数和模糊规则参数,运行轨迹跟踪控制系统完成一次轨迹跟踪控制仿真,得到t时刻机器人仿真轨迹与期望轨迹的偏差e(t),计算适应度函数值;适应度函数值的计算公式为:
式中,e(t)为t时刻的机器人仿真轨迹与期望轨迹偏差,t为运行模糊pid控制器完成一次轨迹跟踪控制仿真的总时间,j为适应度函数值。种群中的每一个个体均需计算得到各自的适应度函数值。
进一步的,未满足遗传代数或适应度函数变化阈值等寻优结束条件时,遗传算法模块根据当前种群中个体染色体的适应度函数值进行选择、复制、变异、交叉等一系列的遗传操作来产生下一代种群;产生的种群更新成为当前种群,继续运行遗传算法,如此循环直至满足寻优结束条件;
有益效果:与现有技术相比,基于混合编码的遗传优化在寻优效率和质量方面都有提升,优化后的轨迹跟踪模糊pid控制器具有更好的控制效果,显示了基于混合编码的遗传优化方法在轨迹跟踪模糊pid控制器优化中的有效性和优越性。
附图说明
图1为轨迹跟踪控制仿真系统结构图;
图2为模糊pid控制器的隶属函数图;
图3为δkp模糊规则相平面划分图;
图4为遗传算法优化流程图;
图5为matlab/simulink仿真图;
图6为模糊pid控制器仿真图;
图7为puma560动力学仿真框图;
图8为混合编码的遗传算法迭代图(a)每代最佳值和平均值(b)每代最高、最低和平均值;
图9为直接编码的遗传算法迭代图(a)每代最佳值和平均值(b)每代最高、最低和平均值;
图10为两种编码遗传算法优化后对轨迹跟踪模糊pid控制时的笛卡尔空间轨迹误差对比。
具体实施方式
下面结合附图对本发明进一步说明:
本发明公开一种基于混合编码的遗传优化轨迹跟踪模糊pid控制器,用于多关节机器人轨迹跟踪控制。
包括轨迹跟踪控制仿真系统、混合编码模块和遗传算法模块;
1.所述的轨迹跟踪控制仿真系统,其原理图如附图1所示。图中qd表示关节机器人的期望角位移;q表示关节机器人仿真输出的角位移;e表示qd与q的偏差,e=qd-q;ec表示偏差变化率,ec=de/dt;δkp、δki、δkd表示pid调整参数;τ表示作用于关节机器人的关节力矩;图中虚线部分表示模糊pid控制器。
轨迹跟踪控制仿真系统由模糊pid控制器和动力学仿真模块组成。所述的动力学仿真模块用于在给定控制力矩τ的情况下输出机器人多个关节的仿真关节角度q:
考虑n关节机器人,忽略摩擦力及机器人末端负载,其动态性能可由下式所表示的二阶非线性动力学方程描述:
式中,τ∈rn×1是关节力矩向量,q∈rn×1是机器人关节角度向量,
随着机器人关节数的增加,m(q)、
对于n关节机器人,其动力学方程
式中,矩阵m(q)中的元素是关于q的函数,与
如是计算可以得到当前t时刻关节角度q下的惯性矩阵m(q)的数值矩阵,记为mn×n。
同理,设
如是计算可计算得到当前t时刻
根据动力学方程式
将数值矩阵mn×n、数值向量cn×1+gn×1和模糊pid控制器输出的关节扭矩τ带入式
假设时间步长δt内
模糊pid控制器具体控制原理为:首先将当前偏差e和偏差变化率ec作为模糊模块的输入变量,经过模糊化后得到e和ec隶属不同模糊集的隶属度;然后根据模糊规则进行模糊推理得到输出变量δkp、δki、δkd的模糊结果,通过解模糊化来得到输出变量精确结果;接着利用模糊模块输出的δkp、δki、δkd对pid模块参数进行在线自适应调整:
最后得到模糊pid控制器作用于关节机器人的关节力矩τ为:
式中,kp0、ki0、kd0为pid模块参数δkp、δki、δkd的初值。
模糊模块的输入变量偏差e和偏差变化率ec以及输出变量pid模块参数调整值δkp、δki、δkd的模糊集个数均设计为7个,取为{nl,nm,ns,ze,ps,pm,pl},即{负大,负中,负小,零,正小,正中,正大}。
模糊集隶属函数选取最常见的连续三角形函数,设计时一般以零为中心对称分布,指定各个模糊集三角形隶属函数中心顶点与零之间的距离即可。对于模糊集个数为7的隶属函数,需指定以零为中心的单侧3个中心顶点值,本技术方案中设计偏差e的三角形隶属函数如附图2所示,其余输入输出变量的隶属函数同附图2。
由于两个输入变量偏差e和偏差变化率ec的模糊集个数都为7,故每一个输出变量δkp、δki、δkd所对应的模糊规则均为49条,每条模糊规则的形式为:
如果e为…,而且ec为…,那么δkp为…,δki为…,δkd为…。
本技术方案中采用的δkp、δki、δkd的模糊规则表如表1所示。
表1模糊规则表
2.所述的混合编码模块,包括隶属函数编码模块和模糊规则编码模块;
对于隶属函数编码模块,用于体染色体[a1,a2,…,a63]中的a1-a5和a6-a10基因位编码,分别表示输入变量e、ec的隶属函数和输出变量δkp、δki、δkd的隶属函数特征参数pm和g,根据隶属函数设计的特性,三角形隶属函数中心顶点位置与零的疏密程度关系表示为:
式中,xmi是三角形隶属函数中心顶点位置与零的疏密程度;k是隶属函数模糊集个数,此处k=7;pm是幂函数的指数,pm取值将影响隶属函数各个中心值的疏密分布情况。
通过伸缩因子g可以得到模糊集隶属函数顶点中心值xi为:
可见,通过隶属函数编码模块可以得到模糊模块中更新的隶属函数顶点参数xi;
对于模糊规则编码模块,根据3个输出变量δkp、δki、δkd分别对应的3个模糊规则表获得新的模糊规则编码,δkp和δkd的模糊规则表由模糊规则的特征参数导出,具体操作为:读取个体染色体[a1,a2,…,a63]的a11-a12和a13-a14基因位,表示δkp和δkd这2个变量模糊规则的特征参数ps和θs;再以e、ec为x,y轴,由e、ec的不同模糊集三角顶点位置xmi组成平面内的网格点,网格点代表了模糊规则的条件部分;然后采用一组相互平行的直线对网格点区域进行分割,这组直线为分割点的垂直平分线;最后相同区域内网格点的输出规则结果均相同,指定各个区域所代表的规则结果。采用这种方法导出模糊规则表所需的分割点坐标如下:
式中,(xsi,ysi)是分割点坐标,l是用来限制分割点落在相平面内的范围参数,sign是符号函数,θs是分割点连线以x正半轴逆时针绕原点旋转的角度,ps是幂函数指数。θs和ps是模糊规则的特征参数。
以δkp的模糊规则表导出为例,取参数ps=2和θs=30°,其模糊规则相平面划分如附图3所示,δkp的相平面区域规则结果从左到右指定为nl、nm、ns、ze、ps、pm、pl,导出的模糊规则表如表2所示。类似的,δkd的相平面区域规则结果pl、pm、ps、ze、ns、nm、nl,亦可得δkd特征参数导出的模糊规则表。
表2δkp特征参数导出的模糊规则表
而δki的模糊规表给个体染色体[a1,a2,…,a63]中的基因位a15-a63编码,由设计参数直接编码获得,用数字1、2、3、4、5、6、7分别表示模糊规则表1中的nl、nm、ns、ze、ps、pm、pl,则表1中δki的模糊规则设计参数按列可表示为7×7=49个数字的数字串,以第4列为例,该列的设计参数编码表示为1223456。
根据以上描述,可以得到混合编码染色体基因位对应的参数表,并确定它们的取值范围如表3所示。其中a1-a5和a6-a10分别由隶属函数编码模块中输入变量e、ec的隶属函数和输出变量δkp、δki、δkd的隶属函数特征参数pm和g编码,a11-a12和a13-a14分别由模糊规则编码模块中δkp、δkd这2个输出变量模糊规则的特征参数ps和θs编码,a15-a63则由模糊规则编码模块中δki的模糊规则设计参直接编码。
表3混合编码染色体基因位对应参数表
3.所述的遗传算法模块,主要用于优化轨迹跟踪控制系统仿真模块中模糊pid控制器的隶属函数和模糊规则,算法流程如附图4所示,主要步骤有:
步骤1:遗传算法初始种群生成:根据特征参数和设计参数的取值范围随机生成n个行向量为[a1,a2,…,a63]的个体染色体作为当前种群,选取n=30。
步骤2:将当前种群更新作为父群。
步骤3:读取当前种群中的第j(j=1,…,n)个个体染色体各个基因位编码。
步骤4:根据编码a1-a10生成新的输入变量e、ec和输出变量δkp、δki、δkd的隶属函数,更新模糊模块中的隶属函数;根据编码a11-a63产生新的输出变量δkp、δki、δkd的模糊规则,并更新模糊模块中的模糊规则。
步骤5:运行轨迹跟踪控制系统仿真模块,获得各个时刻的偏差e(t),计算适应度函数值j。选择itae准则作为控制系统适应度函数,其表达式为:
式中,e(t)为t时刻的机器人仿真轨迹与期望轨迹偏差,t为运行模糊pid控制器完成一次轨迹跟踪控制仿真的总时间,j为适应度函数值。
步骤6:若个体染色体数量j不满足j>n,则j+1,进入步骤3;若满j>n,则判断是否满足代数或适应度函数变化阈值的优化条件,若满足,结束寻优,若不满足,进入步骤7。
步骤7:排序整个种群中每个个体的适应度函数值,对当前种群进行选择、复制、变异、交叉等一系列遗传操作,生成下一代种群,进入步骤2。
运用上述设计的模糊pid控制器进行轨迹跟踪控制仿真时,选取经典的puma560六关节机器人为控制对象,机器人末端笛卡尔空间期望轨迹设为:
puma560机器人的d-h参数如表4所示,其中ai是关节i的连杆长度,αi是关节i和关节i+1间的连杆夹角,di是关节i-1和关节i间的连杆偏置距离,θi是关节i的关节转角。
表4puma560机器人d-h参数表
本文运用matlab/simulink仿真环境搭建了puma560关节机器人模糊pid控制仿真系统,设置仿真步长δt=0.01s,仿真总时长t=10s。仿真图如附图5所示;模糊pid控制器的仿真图如图6所示,图中输入从上到下分别为关节角q、角速度
仿真结果得到了各个关节角的仿真值,运用机器人运动学求解笛卡尔空间末端轨迹,计算其与笛卡尔空间理想整圆轨迹在相同时刻的欧几里得距离,将其作为遗传算法适应度函数式中的e(t),得到适应度函数值。
为了验证所提出的混合编码策略对模糊pid控制器的优化效果,将混合编码和直接编码分别应用于关节机器人模糊pid控制遗传算法优化。为了保证对比的真实有效性,两种编码的隶属函数中心值最大为10,最小为0.01,每个输出变量的模糊规则均为49条,均采用表5的遗传算法相关参数,遗传算法优化模糊pid控制器的流程如图4所示,得到如图8和图9所示的遗传算法迭代图。
表5遗传算法参数表
从附图8(a)可以看出,混合编码的遗传算法优化过程在15代前后就进入了收敛阶段,从图8(b)可以看出,算法一直保持着种群的多样性,最后最佳个体的评价函数值为42.6992;从图9(a)可以看出,直接编码策略在20代前后进入收敛阶段,从图9(b)可以看出种群多样性逐渐减小,最后最佳个体的评价函数值为46.1839。可见本文提出的混合编码策略在寻优过程中具有更好的寻优效率和寻优质量。
将未经优化前的模糊pid控制器(fpid)、经过直接编码优化后的模糊pid控制器(gadirect-fpid)和经过混合编码策略优化后的模糊pid控制器(gahybrid-fpid)分别对puma560关节机器人进行轨迹跟踪控制,得到笛卡尔空间轨迹误差,如附图10所示。对比fpid和gadirect-fpid,gahybrid-fpid具有好的控制效果,说明了所提出的混合编码策略优化的模糊pid控制器在关节机器人轨迹跟踪控制方面的有效性和优越性。
本发明不局限于上述实施例,在本公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。