首页> 中国专利> 基于改进粒子群算法的永磁球形电动机逆运动学求解方法

基于改进粒子群算法的永磁球形电动机逆运动学求解方法

摘要

本发明涉及一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法,按照如下步骤进行:第一步:由转子输出轴的初始位置坐标和所求得的欧拉角,确定其旋转后的坐标位置,以转子旋转后转子输出轴给定坐标位置和实际所求坐标位置的距离作为适应度函数;第二步:运用基于模拟退火算法改进粒子群算法求解永磁球形电动机逆运动学对应的欧拉角。本发明可有效的跳出局部最优解,具有较高的求解精度。

著录项

  • 公开/公告号CN105046004A

    专利类型发明专利

  • 公开/公告日2015-11-11

    原文格式PDF

  • 申请/专利权人 天津大学;

    申请/专利号CN201510443078.5

  • 发明设计人 李洪凤;杨康;

    申请日2015-07-24

  • 分类号G06F17/50(20060101);

  • 代理机构12201 天津市北洋有限责任专利代理事务所;

  • 代理人程毓英

  • 地址 300072 天津市南开区卫津路92号

  • 入库时间 2023-12-18 12:02:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-26

    授权

    授权

  • 2015-12-09

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20150724

    实质审查的生效

  • 2015-11-11

    公开

    公开

说明书

技术领域

本发明属于永磁球形电动机逆运动学求解的技术领域,涉及一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法。

背景技术

随着机械关节等高精度复杂控制系统的发展,对于驱动机构精确度和稳定性能的要求日益提高。传统上由多个单自由度电机和复杂机械传动机构组成的控制系统误差的累计导致整个控制系统的精度下降,甚至影响系统整体的稳定性。引入永磁体的多自由度电机,可以大大提高电机磁能积,有效提高电机的运行效率,减小电机的体积,提高电机的可控性,而上述问题的出现推动了多自由度球形电机的研究与发展。同时,伴随着控制理论、电机理论研究的不断深入以及计算机技术、电力电子技术的不断发展,多自由度球形电机控制技术的发展引起了广大学者的强烈关注。而永磁球形电动机逆运动学作为对其进行动力学控制,运动分析,离线编程和轨迹规划的基础,成为亟待解决的问题。

中国专利公告号CN101520857A,公告日是2009年9月2日,名称为“一种基于神经网络的永磁球形电动机逆运动学求解方法”中公开了永磁球形电动机的正运动学模型,提出了一种基于前馈神经网络的逆运动学求解方法。其不足之处是求解过程复杂、求解精度低、鲁棒性差。粒子群算法(ParticleSwarmOptimization,简称PSO),是一种基于群体智能的进化计算方法。PSO由Kennedy和Eberhart博士于1995年提出。PSO算法属于进化算法的一种,是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质,通过当前搜索到的最优值来寻找全局最优。PSO的优点在于,它具有并行处理的特征,鲁棒性好,易于实现,且计算效率高,已成功应用于各种复杂的优化问题。但标准粒子群算法作为一种通用的随机全局搜索算法,兼顾不了收敛速度、全局及局部精细搜索能力,它也存在早熟收敛和易陷入局部最优的缺点。

发明内容

发明目的:针对现有的永磁球形电机逆运动学求解方法的不足,本发明提供一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法,有效的跳出局部最优解,具有较高的求解精度。

为达到上述目的,本发明采用如下技术方案:

一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法,按照如下步骤进行:

第一步:由转子输出轴的初始位置坐标(xi,yi,zi)和所求得的欧拉角,确定其旋转后的坐标位置(xe,ye,ze),以转子旋转后转子输出轴给定坐标位置和实际所求坐标位置的距离作为适应度函数;

第二步:运用基于模拟退火算法改进粒子群算法求解永磁球形电动机逆运动学对应的欧拉角,包括以下步骤:

1)初始化参数

设定粒子种群大小N,惯性权重ω,粒子速度V的最大值和最小值,退火起、止温度T和T0

2)确定搜索空间,随机产生N个粒子的种群,即随机产生N个初始解Xi(l),i=1,2,…,N和N个初始速度Vj(l),j=1,2,…,N,l为迭代次数,初始迭代次数为0,Xi(l)为第l次迭代后第i个粒子的位置,Vj(l)为第l次迭代后第j个粒子的速度变化率;

3)计算每个粒子的适应度值f(Xi(l)),寻找个体极值Pbest和全局极值Pgbest,记录个体极值位置Pcbest以及全局极值位置Pcgbest

4)令当前温度t=T,当t≥T0时,执行如下循环操作:

a)对所有粒子的速度和位置按照以下公式进行更新,得到下一代粒子:

vidl+1=ωvidl+c1r1(pidl-xidl)+c2r2(pgdl-xidl)

xidl+1=xidl+vidl+1

式中,d=1,2,…,D,D是寻优空间维度;为第l次迭代后第i个粒子的速度变化率vi的第d维的数值;c1,c2为改进后的学习因子,r1,r2为均匀分布在(0,1)区间的随机数;表示第l次迭代后第i个粒子迄今为止搜索到的最好位置pi的第d维的数值,表示第l次迭代后所有粒子迄今为止搜索到的最好位置pg的第d维的数值;是第l次迭代后第i个粒子的位置xi的第d维的数值;

改进后的学习因子为:

c1=c1s+(c1e-c1s)(1-arccos(-2llmax+1)π),c2=c2e+(c2e-c2s)(1-arccos(-2llmax+1)π),式中,c1s,c2s表示c1,c2的迭代初始值,c1e,c2e表示c1,c2的迭代终值,l为当前迭代次数,lmax为最大迭代次数;

b)对个体极值,计算更新后粒子的适应度值f(xi(l+1)),计算f(xi(l+1))的增量ΔE=f(Xi(l+1))-f(Xi(l));

c)若ΔE≤0,则接受新点作为下一次模拟的初始点,若ΔE>0,则计算新接受概率:若exp(-ΔE/kt)>ε,k为Metropolis准则中Boltzmann常数,ε为[0,1]随机数,也接受新值,否则拒绝,维持先前点的值;

d)对个体极值及个体极值位置作更新;

e)找出并记录新的全局极值和全局极值位置;

f)降温,即令当前温度t=αt,α为小于1的常数,增加迭代次数,判断t是否已达到T0,是,则终止算法,否则返回步骤(a)继续执行;

5)输出迭代完成后适应度函数值以及对应的欧拉角。

本发明的有益效果在于:

1.本发明提出利用基于模拟退火算法的改进粒子群算法求解永磁球形电动机逆运动学问题,采用启发算法思想,引入一个靠近最优解的特殊解,引导粒子向最优解靠近,在主迭代循环中,任一恒定温度都能达到热平衡,冷却到低温时将达到这一低温下的内能最小状态,具有较高的求解精度。

2.引入学习因子反余弦策略,使算法在后期保留一定的学习因子权值,保持种群的多样性和较好的局部搜索性能,总体性能较优。

3.基于模拟退火思想的改进粒子群算法能依概率接受坏值,从而不易陷入局部最优,加快了全局搜索能力,具有较强的鲁棒性和全局收敛性。

4.笛卡尔空间中自定义给定欧拉角,利用改进粒子群算法对欧拉角连续变化的情况进行离散化求解,避开了复杂的解析算法,保证了转子运动的连续性。

附图说明:

图1为两种算法的对比效果图;

图2(a)为章动运动中给定欧拉角α与实际所求欧拉角对比;

图2(b)为章动运动中给定欧拉角β与实际所求欧拉角对比;

图2(c)为章动运动中给定欧拉角γ与实际所求欧拉角对比;

图3为章动运动中转子输出轴给定轨迹与实际所求轨迹对比;

图4(a)为复杂轨迹运动中给定欧拉角α与实际所求欧拉角对比;

图4(b)为复杂轨迹运动中给定欧拉角β与实际所求欧拉角对比;

图4(c)为复杂轨迹运动中给定欧拉角γ与实际所求欧拉角对比;

图5为复杂轨迹运动中转子输出轴给定轨迹与实际所求轨迹对比;

具体实施方式:

基于模拟退火思想的粒子群混合算法(SA-PSO)依概率接受坏值,从而不易陷入局部最优,具有较高的求解精度,利用改进粒子群算法对欧拉角连续变化的情况进行离散化求解,仿真验证这种方法的有效性。

下面结合两个实施例和附图对本发明作进一步详述。

实施例1

永磁球形电动机可以大大提高电机磁能积,有效提高电机的运行效率,减小电机的体积,提高电机的可控性,在机器人、智能化柔性制造系统等需要在三维空间的领域具有广泛的应用。永磁球形电动机逆运动学作为对其进行动力学控制,运动分析,离线编程和轨迹规划的基础,成为亟待解决的问题。

逆运动学的求解方法分为解析法和智能算法,前者是一组关于广义欧拉角的十分复杂的非线性方程组,计算比较复杂,求解比较困难。智能算法中,针对神经网络复杂、困难、鲁棒性差和蚁群算法精度不够的研究现状,提出基于模拟退火思想的粒子群混合算法求解永磁球形电机逆运动学问题,与其他智能算法相比,粒子群算法需要调整的参数不多,结构简单、易于实现。

对于永磁球形电动机,转子位置可以用一组欧拉角α、β和γ来定义。旋转变换矩阵A表示如下:

A=cβcγcαsγ+sαsβcγsαsγ-cαsβcγ-cβsγcαcγ-sαsβsγsαcγ+cαsβsγsβ-sαcβcαcβ

式中,角度余弦cos简记为c,角度正弦sin简记为s。此旋转矩阵满足如下关系:

(xe,ye,ze)T=A(xi,yi,zi)T

式中,(xi,yi,zi)为转子输出轴的初始位置坐标,(xe,ye,ze)为转子旋转后该位置点的坐标。

在某时刻t,转子上某点的位置向量X(t)=(xe(t),ye(t),ze(t))T和欧拉角向量θ(t)=(α(t),β(t),γ(t))T之间的关系可以表示如下:

X=F(θ)

逆运动学问题是一个三维函数F(θ)的求解问题,即通过优化算法求得3个欧拉角α、β和γ的数值。由转子输出轴的初始位置坐标(xi,yi,zi)和所求得的欧拉角,利用永磁球形电动机正运动学方程确定其旋转后的坐标位置(xe,ye,ze)。令目标函数为

f=((xd-xe)2+(yd-ye)2+(zd-ze)2)1/2

式中,(xd,yd,zd)为给定的转子输出轴位置坐标。目标函数值越小,代表根据逆运动学解法得到的(xe,ye,ze)与给定的(xd,yd,zd)越接近,即该解法的求解精度越高。

标准粒子群算法的数学描述如下:设搜索空间为D维,粒子数为n,第i个粒子的位置用Xi=(xi1,xi2,…,xiD)表示;第i个粒子的速度变化率用vi=(vi1,vi2,…,viD)表示;第i个粒子迄今为止搜索到的最好位置为pi=(pi1,pi2,…,piD),所有粒子迄今为止搜索到的最好位置为pg=(pg1,pg2,…,pgD),则粒子在t+1时刻的位置通过下式更新获得:

vid(t+1)=ωvid(t)+c1rand()·[pid(t)-xid(t)]+c2rand()·[pgd(t)-xid(t)]

xid(t+1)=xid(t)+vid(t+1)1≤i≤n,1≤d≤D

式中,t代表迭代次数;ω称为惯性因子;c1,c2称为学习因子;vid(t)为第t次迭代后第i个粒子的速度变化率vi的第d维的数值;rand()为[0,1]之间的随机数;pid(t)为第t次迭代后第i个粒子迄今为止搜索到的最好位置pi的第d维数值;xid(t)为第t次迭代后第i个粒子的位置Xi的第d维的数值;pgd(t)为第t次迭代后所有粒子迄今为止搜索到的最好位置pg的第d维数值;第d维的位置和速度的变化范围为[-xdmax,xdmax]和[-vdmax,vdmax],如果在某一维中迭代的xid和vid超过边界值得取值范围则按边界值取值。

基于模拟退火算法思想的粒子群算法:PSO算法简洁而且容易实现,不需要调整太多参数且不需要梯度信息,早期收敛速度快,但后期会受随机振荡的影响,使其在全局最优值附近需要较长的搜索时间,收敛速度慢,极易陷入局部极小值,使得精度降低,易发散。而加入模拟退火的技术能大幅度改进系统性能,加大信息吞吐量和提高运算速度。为此,建立基于模拟退火粒子的粒子群算法模型,将模拟退火思想引入粒子群算法,使每个粒子的速度和位置更新过程中加入模拟退火机制,对粒子群进化后的适应值按Metropolis准则接受优化解的同时依概率接受恶化解,算法从局部极值区域中跳出,自适应调整退火温度,随着温度下降,粒子逐渐形成低能量基态,收敛至全局最优解。

学习因子的改进:在粒子群算法中,学习因子c1,c2决定了粒子本身经验和群体的经验对粒子运动轨迹的影响,反映了粒子间的信息交流,设置较大或较小的c1,c2都不利于粒子的收索。在理想状态下,搜索初期要使粒子尽可能的探索整个空间。而在搜索末期,粒子因避免陷入局部极值。非线性策略调整学习因子使学习因子非线性变化来控制算法的局部和全局搜索。基本思想是前期加快c1,c2的改变速度,让算法较快的进入局部搜索,后期则通过较大的c2使算法更注重群体信息,保持粒子多样性。反余弦策略的特点在于算法后期设置比较理想的c1,c2值,使粒子保持一定的搜索速度,避免过早收敛。反余弦加速因子构造方式具体如下:

c1=c1s+(c1e-c1s)(1-arccos(-2ttmax+1)π),c1s=0.5,c1e=2.5

c2=c2e+(c2e-c2s)(1-arccos(-2ttmax+1)π),c2s=0.5,c2e=2.5

式中,c1s,c2s表示c1,c2的迭代初始值,c1e,c2e表示c1,c2的迭代终值,t为当前迭代次数,tmax为最大迭代次数。

Metropolis准则:假设从当前状态i生成新状态j,若新状态的内能小于状态i的内能(即Ej<Ei),则接受新状态j作为新的当前状态;否则,以概率接受状态,其中k为Boltzmann常数。对粒子群进化后的适应值按Metropolis准则接受优化解的同时依概率接受恶化解,算法从局部极值区域中跳出,自适应调整退火温度,随着温度逐渐下降,粒子逐渐形成低能量状态,收敛至全局最优解。

下面对改进粒子群算法进行仿真研究,设转子球体半径为R,为了不失一般性,转子输出轴位置点的初始坐标为(xi,yi,zi)=(0.64R,0.48R,0.6R),转子旋转后该位置点的坐标为(xe,ye,ze)=(0.3570R,0.7028R,0.6153R),对转子在上述旋转中对应的欧拉角变化量进行求解,仿真过程中取R=1。

基于模拟退火算法思想的改进粒子群算法的详细步骤为:

1)初始化参数

设定粒子种群大小N为50,粒子速度V的最大值为1和最小值为-1,学习因子采用反余弦策略,取惯性权重的最大值为0.9,最小值为0.4,并按照下式的方式进行递减:

w(t)=wstart-wstart-wendtmax×t

其中,t为迭代变量,wstart为惯性权重的初始值,wend为惯性权重的最终值;惯性权重的作用是为了提高粒子群算法的收敛性能和避免算法陷入局部最优,使得粒子群算法在初始迭代过程中倾向于全局寻优搜索,随后逐步转向于局部的最优搜索,从而在局部区域对解进行调整,本算法采用的惯性权重的值是递减的。

退火起、止温度T为13000和T0为0.01,为了加快收敛速度,Metropolis准则中的Boltzmann常数k为2;

2)确定搜索空间,随机产生N个粒子的种群,即随机产生N个初始解Xi(l)(i=1,2,…,N)和N个初始速度Vj(l)(j=1,2,…,N);

3)计算每个粒子的适应度值f(Xi(l))(i=1,2,…,N),寻找个体极值Pbest和全局极值Pgbest,记录个体极值位置Pcbest以及全局极值位置Pcgbest

4)令当前温度t=T,当t≥T0时,执行如下循环操作:

a)对所有粒子的速度和位置按照以下公式进行更新,得到下一代粒子:

vidl+1=ωvidl+c1r1(pidl-xidl)+c2r2(pgdl-xidl)

xidl+1=xidl+vidl+1

式中,d=1,2,…,D,D是寻优空间维度;i=1,2,…,N;l为迭代次数,c1,c2为改进后的学习因子,r1,r2为均匀分布在(0,1)区间的随机数;pi表示个体极值,pg表示全局极值,x表示粒子的位置,v表示粒子的速度;对于速度和位置的更新变化,当更新值超过了其边界范围时,取其边界值。

b)对个体极值,计算更新后粒子的适应度值f(xi(l+1))(i=1,2,…,N),得到ΔE=f(Xi(l+1))-f(Xi(l));

c)若ΔE≤0,则接受新点作为下一次模拟的初始点,若ΔE>0,则计算新接受概率:若exp(-ΔE/kt)>ε,ε为[0,1]随机数,也接受新值,否则拒绝,维持先前点的值;

d)对个体极值及个体极值位置作更新;

e)找出并记录新的全局极值和全局极值位置;

f)降温t=αt,增加迭代次数,判断t是否已达到T0,是,则终止算法,否则返回步骤(a)继续执行;

其中,α是一个常数,它的取值决定了降温的过程。小的衰减量可能导致算法进程迭代次数的增加,从而使算法进程接受更多的变化,访问更多的领域,搜索更大范围的解空间,返回更好的最终解,本发明中α取0.99,结合退火起止温度T和T0可以推算出本算法的最大迭代次数可达到1400,提高了求解的精度。

5)输出迭代完成后适应度函数值以及对应的欧拉角;

比较在采用标准粒子群算法和改进粒子群算法时目标函数最小值随迭代次数的变化情况,比较结果如图1所示。仿真结果表明,改进粒子群算法的优化结果要好于标准粒子群算法,具有更快的收敛速度和更精细的局部搜索能力,说明融合其他算法改进粒子群算法的思路是正确的,具有进一步的研究意义。

考察欧拉角初始值不为零的情况下对改进粒子群算法对永磁球形电动机逆运动学求解的情况。章动运动是最能考察球形电动机转矩可控性的工况之一,仿真中,转子输出轴位置点的初始坐标为(xi,yi,zi)=(0.6,0.8,0),笛卡尔空间中定义给定欧拉角为:

α(n+1)=sin[π/2(tn+0.02)]

β(n+1)=cos[π/2(tn+0.02)]t0=0,t150=3

γ(n+1)=0.25(tn+0.02)

由永磁球形电动机正运动学方程知一组欧拉角θ对应一组坐标值(xe(t),ye(t),ze(t))T,利用改进粒子群算法对欧拉角连续变化的情况进行离散化求解。对比给定的欧拉角变化轨迹和改进粒子群算法求解得出的欧拉角变化情况,对比的结果如图2所示,其中,图2(a),(b),(c)分别对应三个欧拉角α,β,γ的对比情况。

由图2可以看出,在欧拉角初始值不为零时,改进粒子群算法能够根据笛卡尔空间中定义给定欧拉角轨迹进行离散化求解,并且具有较高的求解精度。

利用所求的欧拉角变化轨迹,结合永磁球形电动机正运动学模型,求出转子输出轴的实际运动轨迹,与给定的章动运动作对比,对比的结果如图3所示,其中红色虚线为所求的转子输出轴运动轨迹,绿色虚线为转子输出轴的给定轨迹。

由图3可以看出,所求转子输出轴的运动轨迹与给定的轨迹基本重合,进一步说明了改进粒子群算法的求解精度。

实施例2

为了不失一般性,考察欧拉角初始值不为零时转子输出轴作复杂轨迹运动的情况,仿真中,转子输出轴位置点的初始坐标为(xi,yi,zi)=(0,0.6,0.8),笛卡尔空间中定义给定欧拉角为:

α(n+1)=2*sin(1.5*(tn+0.02))

β(n+1)=sin(pi/2*(tn+0.02)-pi/6)+cos(1.5*pi*(tn+0.02))t0=0,t150=3

γ(n+1)=2*cos(2*(tn+0.02))*sin(0.5*(tn+0.02))

利用改进粒子群算法对欧拉角连续变化的情况进行离散化求解。对比给定的欧拉角变化轨迹和改进粒子群算法求解得出的欧拉角变化情况,对比的结果如图4所示,其中,图4(a),(b),(c)分别对应三个欧拉角α,β,γ的对比情况。利用所求的欧拉角变化轨迹,结合永磁球形电动机正运动学模型,求出转子输出轴的实际运动轨迹,与给定的章动运动作对比,对比的结果如图5所示,其中红色虚线为所求的转子输出轴运动轨迹,绿色虚线为转子输出轴的给定轨迹。

仿真结果表明,当欧拉角的初始值不为零,并且转子输出轴的运动轨迹较为复杂时,基于模拟退火思想的粒子群混合算法离散求解依然具有较高的精度和良好的鲁棒性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号