发明名称 基于改进粒子群算法的永磁球形电动机逆运动学求解方法
摘要 本发明涉及一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法,按照如下步骤进行:第一步:由转子输出轴的初始位置坐标和所求得的欧拉角,确定其旋转后的坐标位置,以转子旋转后转子输出轴给定坐标位置和实际所求坐标位置的距离作为适应度函数;第二步:运用基于模拟退火算法改进粒子群算法求解永磁球形电动机逆运动学对应的欧拉角。本发明可有效的跳出局部最优解,具有较高的求解精度。
申请公布号 CN105046004A 申请公布日期 2015.11.11
申请号 CN201510443078.5 申请日期 2015.07.24
申请人 天津大学 发明人 李洪凤;杨康
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 天津市北洋有限责任专利代理事务所 12201 代理人 程毓英
主权项 一种基于改进粒子群算法的永磁球形电动机逆运动学求解方法,按照如下步骤进行:第一步:由转子输出轴的初始位置坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>)和所求得的欧拉角,确定其旋转后的坐标位置(x<sub>e</sub>,y<sub>e</sub>,z<sub>e</sub>),以转子旋转后转子输出轴给定坐标位置和实际所求坐标位置的距离作为适应度函数;第二步:运用基于模拟退火算法改进粒子群算法求解永磁球形电动机逆运动学对应的欧拉角,包括以下步骤:1)初始化参数设定粒子种群大小N,惯性权重ω,粒子速度V的最大值和最小值,退火起、止温度T和T<sub>0</sub>;2)确定搜索空间,随机产生N个粒子的种群,即随机产生N个初始解X<sub>i</sub>(l),i=1,2,...,N和N个初始速度V<sub>j</sub>(l),j=1,2,...,N,l为迭代次数,初始迭代次数为0,X<sub>i</sub>(l)为第l次迭代后第i个粒子的位置,V<sub>j</sub>(l)为第l次迭代后第j个粒子的速度变化率;3)计算每个粒子的适应度值f(X<sub>i</sub>(l)),寻找个体极值P<sub>best</sub>和全局极值P<sub>gbest</sub>,记录个体极值位置P<sub>cbest</sub>以及全局极值位置P<sub>cgbest</sub>;4)令当前温度t=T,当t≥T<sub>0</sub>时,执行如下循环操作:a)对所有粒子的速度和位置按照以下公式进行更新,得到下一代粒子:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>&nu;</mi><mrow><mi>i</mi><mi>d</mi></mrow><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>&omega;v</mi><mrow><mi>i</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mrow><mi>i</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mrow><mi>g</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000766923520000011.GIF" wi="848" he="84" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>x</mi><mrow><mi>i</mi><mi>d</mi></mrow><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mi>d</mi></mrow><mi>l</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mi>d</mi></mrow><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></msubsup></mrow>]]></math><img file="FDA0000766923520000012.GIF" wi="296" he="85" /></maths>式中,d=1,2,...,D,D是寻优空间维度;<img file="FDA0000766923520000013.GIF" wi="71" he="79" />为第l次迭代后第i个粒子的速度变化率v<sub>i</sub>的第d维的数值;c<sub>1</sub>,c<sub>2</sub>为改进后的学习因子,r<sub>1</sub>,r<sub>2</sub>为均匀分布在(0,1)区间的随机数;<img file="FDA0000766923520000014.GIF" wi="74" he="83" />表示第l次迭代后第i个粒子迄今为止搜索到的最好位置p<sub>i</sub>的第d维的数值,<img file="FDA0000766923520000015.GIF" wi="84" he="84" />表示第l次迭代后所有粒子迄今为止搜索到的最好位置p<sub>g</sub>的第d维的数值;<img file="FDA0000766923520000016.GIF" wi="69" he="82" />是第l次迭代后第i个粒子的位置x<sub>i</sub>的第d维的数值;改进后的学习因子为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>c</mi><mn>1</mn></msub><mo>=</mo><msub><mi>c</mi><mrow><mn>1</mn><mi>s</mi></mrow></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>c</mi><mrow><mn>1</mn><mi>e</mi></mrow></msub><mo>-</mo><msub><mi>c</mi><mrow><mn>1</mn><mi>s</mi></mrow></msub><mo>)</mo></mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>arccos</mi><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><mn>2</mn><mi>l</mi></mrow><msub><mi>l</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mfrac><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mi>&pi;</mi></mfrac><mo>)</mo></mrow><mo>,</mo><msub><mi>c</mi><mn>2</mn></msub><mo>=</mo><msub><mi>c</mi><mrow><mn>2</mn><mi>e</mi></mrow></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>c</mi><mrow><mn>2</mn><mi>e</mi></mrow></msub><mo>-</mo><msub><mi>c</mi><mrow><mn>2</mn><mi>s</mi></mrow></msub><mo>)</mo></mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>arccos</mi><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><mn>2</mn><mi>l</mi></mrow><msub><mi>l</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mfrac><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mi>&pi;</mi></mfrac><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000766923520000017.GIF" wi="1655" he="203" /></maths>式中,c<sub>1s</sub>,c<sub>2s</sub>表示c<sub>1</sub>,c<sub>2</sub>的迭代初始值,c<sub>1e</sub>,c<sub>2e</sub>表示c<sub>1</sub>,c<sub>2</sub>的迭代终值,l为当前迭代次数,l<sub>max</sub>为最大迭代次数;b)对个体极值,计算更新后粒子的适应度值f(x<sub>i</sub>(l+1)),计算f(x<sub>i</sub>(l+1))的增量ΔE=f(X<sub>i</sub>(l+1))‑f(X<sub>i</sub>(l));c)若ΔE≤0,则接受新点作为下一次模拟的初始点,若ΔE>0,则计算新接受概率:若exp(‑ΔE/kt)>ε,k为Metropolis准则中Boltzmann常数,ε为[0,1]随机数,也接受新值,否则拒绝,维持先前点的值;d)对个体极值及个体极值位置作更新;e)找出并记录新的全局极值和全局极值位置;f)降温,即令当前温度t=αt,α为小于1的常数,增加迭代次数,判断t是否已达到T<sub>0</sub>,是,则终止算法,否则返回步骤(a)继续执行;5)输出迭代完成后适应度函数值以及对应的欧拉角。
地址 300072 天津市南开区卫津路92号