首页 > 行业资讯 > 【机械臂优化】基于粒子群算法实现10自由度的机械臂逆解附matlab代码

【机械臂优化】基于粒子群算法实现10自由度的机械臂逆解附matlab代码

时间:2022-06-05 来源: 浏览:

【机械臂优化】基于粒子群算法实现10自由度的机械臂逆解附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #智能优化算法及应用 466个

1 简介

2 部分代码

tic %该函数表示计时开始 %------初始格式化-------------------------------------------------- clear all; clc; format long; c1= 1.4962 ; %学习因子 1 c2= 1.4962 ; %学习因子 2 MaxDT= 100 ; %最大迭代次数 D= 10 ; %搜索空间维数(一个机械臂的关节变量的个数为 10 N= 40 ; %群体个体数目 p=zeros( 1 ,N); %定义目标点的空间位置 p_f=[- 3 , 10 , 710 ]; %机械臂各关节的初始角度 d1= 0 ;d2= 0 ;d3= 0 ;d4= 0 ;d5= 0 ;d6= 0 ;d7= 0 ;d8= 0 ;d9=+ 0 ;d1 0 =- 0 ;d11=+ 0 ; x_last( 1 )=d2; x_last( 2 )=d3; x_last( 3 )=d4; x_last( 4 )=d5; x_last( 5 )=d6; x_last( 6 )=d7; x_last( 7 )=d8; x_last( 8 )=d9; x_last( 9 )=d1 0 ; x_last( 10 )=d11; %------初始化种群个体的位置和速度------------ k= 0 . 01 ; %求取粒子速度系数 %各关节的最大限位和最小限位 x_min( 1 )=x_last( 1 )- 0 . 2 ; x_max( 1 )=x_last( 1 )+ 0 . 2 ; x_min( 2 )=x_last( 2 )- 0 . 2 ; x_max( 2 )=x_last( 2 )+ 0 . 2 ; x_min( 3 )=x_last( 3 )- 0 . 2 ; x_max( 3 )=x_last( 3 )+ 0 . 2 ; x_min( 4 )=x_last( 4 )- 0 . 2 ; x_max( 4 )=x_last( 4 )+ 0 . 2 ; x_min( 5 )=x_last( 5 )- 0 . 2 ; x_max( 5 )=x_last( 5 )+ 0 . 2 ; x_min( 6 )=x_last( 6 )- 0 . 2 ; x_max( 6 )=x_last( 6 )+ 0 . 2 ; x_min( 7 )=x_last( 7 )- 0 . 2 ; x_max( 7 )=x_last( 7 )+ 0 . 2 ; x_min( 8 )=x_last( 8 )- 0 . 2 ; x_max( 8 )=x_last( 8 )+ 0 . 2 ; x_min( 9 )=x_last( 9 )- 0 . 2 ; x_max( 9 )=x_last( 9 )+ 0 . 2 ; x_min( 10 )=x_last( 10 )- 0 . 2 ; x_max( 10 )=x_last( 10 )+ 0 . 2 ; %各关节速度的上下限 v_min( 1 )=x_min( 1 )*(k); v_max( 1 )=x_max( 1 )*k; v_min( 2 )=x_min( 2 )*(k); v_max( 2 )=x_max( 2 )*k; v_min( 3 )=x_min( 3 )*(k); v_max( 3 )=x_max( 3 )*k; v_min( 4 )=x_min( 4 )*(k); v_max( 4 )=x_max( 4 )*k; v_min( 5 )=x_min( 5 )*(k); v_max( 5 )=x_max( 5 )*k; v_min( 6 )=x_min( 6 )*(k); v_max( 6 )=x_max( 6 )*k; v_min( 7 )=x_min( 7 )*(k); v_max( 7 )=x_max( 7 )*k; v_min( 8 )=x_min( 8 )*(k); v_max( 8 )=x_max( 8 )*k; v_min( 9 )=x_min( 9 )*(k); v_max( 9 )=x_max( 9 )*k; v_min( 10 )=x_min( 10 )*(k); v_max( 10 )=x_max( 10 )*k; for i= 1 :N x (i, 1 )= rand ( 1 )*(x_min( 1 )-x_max( 1 ))+x_max( 1 ); %产生一个服从正态分布的随机数作为初始化位置 v(i, 1 )= rand ( 1 )*(v_min( 1 )-v_max( 1 ))+v_max( 1 ); %产生一个服从正态分布的随机数作为初始化速度 x (i, 2 )= rand ( 1 )*(x_min( 2 )-x_max( 2 ))+x_max( 2 ); v(i, 2 )= rand ( 1 )*(v_min( 2 )-v_max( 2 ))+v_max( 2 ); x (i, 3 )= rand ( 1 )*(x_min( 3 )-x_max( 3 ))+x_max( 3 ); v(i, 3 )= rand ( 1 )*(v_min( 3 )-v_max( 3 ))+v_max( 3 ); x (i, 4 )= rand ( 1 )*(x_min( 4 )-x_max( 4 ))+x_max( 4 ); v(i, 4 )= rand ( 1 )*(v_min( 4 )-v_max( 4 ))+v_max( 4 ); x (i, 5 )= rand ( 1 )*(x_min( 5 )-x_max( 5 ))+x_max( 5 ); v(i, 5 )= rand ( 1 )*(v_min( 5 )-v_max( 5 ))+v_max( 5 ); x (i, 6 )= rand ( 1 )*(x_min( 6 )-x_max( 6 ))+x_max( 6 ); v(i, 6 )= rand ( 1 )*(v_min( 6 )-v_max( 6 ))+v_max( 6 ); x (i, 7 )= rand ( 1 )*(x_min( 7 )-x_max( 7 ))+x_max( 7 ); v(i, 7 )= rand ( 1 )*(v_min( 7 )-v_max( 7 ))+v_max( 7 ); x (i, 8 )= rand ( 1 )*(x_min( 8 )-x_max( 8 ))+x_max( 8 ); v(i, 8 )= rand ( 1 )*(v_min( 8 )-v_max( 8 ))+v_max( 8 ); x (i, 9 )= rand ( 1 )*(x_min( 9 )-x_max( 9 ))+x_max( 9 ); v(i, 9 )= rand ( 1 )*(v_min( 9 )-v_max( 9 ))+v_max( 9 ); x (i, 10 )= rand ( 1 )*(x_min( 10 )-x_max( 10 ))+x_max( 10 ); v(i, 10 )= rand ( 1 )*(v_min( 10 )-v_max( 10 ))+v_max( 10 ); end

3 仿真结果

4 参考文献

[1]江鸿怀, 金晓怡, 邢亚飞,等. 基于粒子群优化算法的五自由度机械臂轨迹规划[J]. 机械设计与研究, 2020, 36(1):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐