0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于XR806实现竞技机器人先进模糊控制器

全志在线 来源:全志在线开发者论坛 2023-12-16 15:55 次阅读

机器人的模糊控制是一种基于模糊逻辑理论的计算机控制方法,它通过模拟人类思维和决策过程来实现对机器人行为的控制。

本文中所介绍使用的竞技机器人先进模糊控制器FreeRTOS环境下基于XR806为项目主控,给机器人部署先进模糊控制器,它通过将机器人的输入信号转化为模糊变量,并根据模糊规则对这些变量进行处理,实现对于竞技机器人的结构控制和定位控制等功能。

项目介绍

开发环境使用window10+VMware+ubuntu 18.04,并基于XR806——FreeRTOS为项目主控,部署先进模糊控制器,实现对于竞技机器人的结构控制和定位控制等。

竞技机器人的无线控制器选择上使用可以实现多维状态机功能的XR806作为主控,并通过USART进行CAN转换来向电机发送信息,收到信息后电机驱动对机器人做出控制,此时机器人通过模糊控制器来反馈定位器、雷达等传感器传来的数据实现信息交互。

b9ebf578-9be7-11ee-8b88-92fbcf53809c.jpg


控制部署

在封装好电机驱动电流环时,实现对电机的控制,相当于建立了一种继电特性的非线性控制,此时使用继电整定法的Z-N临界比例度法去建立模糊域。


根据以下临界系数表,整定求出模糊域。

b9fe907a-9be7-11ee-8b88-92fbcf53809c.png


模糊推理及清晰化

模糊推理的核心就是计算出E和EC的隶属度。同时把E和EC分为多种子集情况:负最大NB,负中NM,负小NS,零ZO,正小PS,正中PM,正大PB等七种情况。然后计算E/EC种子集的隶属度。

进行模糊推理后,可以根据计算的隶属度,建立模糊规则表,实现对输出值的清晰化。对应到应用层的输出函数,实现控制输出。

ba1b3018-9be7-11ee-8b88-92fbcf53809c.png

FOC控制及仿真效果

ba2ce2d6-9be7-11ee-8b88-92fbcf53809c.jpg

FOC控制逻辑

ba47220e-9be7-11ee-8b88-92fbcf53809c.jpgba5386a2-9be7-11ee-8b88-92fbcf53809c.jpg

仿真效果

代码实现

自动整定部分核心代码:

void PID_AutoTune_Task(void)
{
    
  if(pid.AutoRegurating_Status != START) return;


  /*定义临界Tc*/
  float Tc = 0.0;
  
  static int start_cnt; //记录最大值出现的时间
  static int end_cnt;  //记录周期结束时的时间值 


    
  static uint16_t cool_cnt = 0; 
  static uint16_t heat_cnt = 0;
    
//  pid.Autotune_Cnt ++; //计数
  
  
  if((pid.Pv_position == UP) && (pid.Pv < pid.Sv)) 
    {
        cool_cnt ++;
        if(cool_cnt >= 3) //连续三次都越过,则说明真的越过了
    {
      pid.Pv_position = DOWN; //标记当前在下方了
      pid.Zero_Across_Cnt ++;  //标记穿越一次
      cool_cnt = 0;
    }
  }
  else if((pid.Pv_position == DOWN)&&(pid.Pv > pid.Sv))//刚才在下方,现在在上方
  {
    heat_cnt++;
    if(heat_cnt >= 3) //连续三次都越过,则说明真的越过了
    {
      pid.Pv_position = UP;  //标记当前在下方了
      pid.Zero_Across_Cnt ++;  //标记穿越一次
      heat_cnt = 0;
    }    
  }
  

实现模糊控制的核心代码:

 ecFuzzy[1] = 1.0 - ecFuzzy[0];  
 /*********查询模糊规则表*********/   
 num =  KpRule[pe][pec]; 
 KpFuzzy[num] += (eFuzzy[0]*ecFuzzy[0]); 
 num =  KpRule[pe][pec+1];  
 KpFuzzy[num] += (eFuzzy[0]*ecFuzzy[1]); 
 num =KpRule[pe+1][pec]; 
 KpFuzzy[num] += (eFuzzy[1]*ecFuzzy[0]);   
 num =  KpRule[pe+1][pec+1]; 
 KpFuzzy[num] += (eFuzzy[1]*ecFuzzy[1]); 
 /*********加权平均法解模糊*********/  
 Kp_calcu  =  KpFuzzy[0]*kpRule[0] +KpFuzzy[1]*kpRule[1]+ 
              KpFuzzy[2]*kpRule[2] +KpFuzzy[3]*kpRule[3]+ 
              KpFuzzy[4]*kpRule[4] +KpFuzzy[5]*kpRule[5]+ 
              +KpFuzzy[6]*kpRule[6];  


  printf(" %f,%f,%d,%d,kp = %f
", err, errchange, pe, pec, Kp_calcu);
 return(Kp_calcu);

实物展示

无刷电机控制:

ba7b5e20-9be7-11ee-8b88-92fbcf53809c.gif

整体定位控制:

ba9c9392-9be7-11ee-8b88-92fbcf53809c.gif

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16332

    浏览量

    177803
  • 机器人
    +关注

    关注

    211

    文章

    28379

    浏览量

    206912
  • 电机
    +关注

    关注

    142

    文章

    9000

    浏览量

    145337
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62139
  • xr806
    +关注

    关注

    0

    文章

    14

    浏览量

    1321

原文标题:XR806实现竞技机器人先进模糊控制器

文章出处:【微信号:gh_79acfa3aa3e3,微信公众号:全志在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用XR806联调控制四足马术机器人

    本项目使用XR806串口协议与大疆A板的stm32通讯,实现并联四足机器人的单腿运动学逆解与整体步态规划,本文将讲解项目所涉及的算法以及代码实现步骤。
    的头像 发表于 10-28 09:18 822次阅读
    使用<b class='flag-5'>XR806</b>联调<b class='flag-5'>控制</b>四足马术<b class='flag-5'>机器人</b>

    开源项目!教你如何复刻自平衡赛车机器人、智能家居中控、竞技机器人先进模糊控制器

    使用window10+VMware+ubuntu 18.04 这里不多阐述 按照官方文档移植XR806的FreeRTOS 项目介绍 基于XR806——FreeRTOS为项目主控,部署先进
    发表于 12-26 09:17

    先进机器人控制

    先进机器人控制》从控制的角度系统地介绍了机器人学的基础知识和当前的发展状况。全书共分为12章,由基础篇、
    发表于 09-19 15:30

    XR806芯片、XR806开源鸿蒙开发板简介

    XR806芯片介绍XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持鸿蒙L0系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点
    发表于 11-15 17:08

    XR806芯片、XR806开源鸿蒙开发板简介

    XR806芯片介绍XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持鸿蒙L0系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点
    发表于 11-15 18:32

    XR806在线调试方法

    PRJCONF_SWD_EN 13、由于PB2和PB3是在__wrap_main()中初始化成调试接口的,所以上电并不是调试口,意味着不要使用jlink控制XR806进入复位,不然大概率会跑飞。4、由于没办法控制
    发表于 12-02 09:56

    XR806芯片的mac地址要如何存放以及如何获取

    XR806芯片系统异常重启如何解决?XR806芯片如何更换打印log口?XR806芯片的mac地址要如何存放以及如何获取?求解答
    发表于 12-28 06:42

    如何保证休眠时XR806芯片GPIO的电平状态呢

    如何保证休眠时XR806芯片GPIO的电平状态呢?XR808/XR809/XR871/XR872和XR8
    发表于 12-29 06:16

    【直播预告】全志XR806芯片应用实战分享

    /joinXR806优秀开发例程《基于OpenHarmony的棋子分拣机》《用全志XR806开源鸿蒙开发板做一个四足行走机器狗》《【XR806开发板实战】轻松连上华为云
    发表于 02-28 17:39

    【直播预告】全志XR806芯片应用实战分享会!

    /joinXR806优秀开发例程《基于OpenHarmony的棋子分拣机》《用全志XR806开源鸿蒙开发板做一个四足行走机器狗》《【XR806开发板实战】轻松连上华为云
    发表于 03-01 09:27

    全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器

    XR806的FreeRTOS 项目介绍 基于XR806——FreeRTOS为项目主控,部署先进模糊控制器
    发表于 11-30 14:01

    XR806开发板试用】使用编码进行调光

    之前做过一个LED调光的项目,这次想拿XR806实现,后续打算加入远程控制的功能。
    的头像 发表于 10-08 11:08 797次阅读

    全志XR806底板位号图

    全志XR806底板位号图
    发表于 10-19 15:11 0次下载

    全志XR806鸿蒙无线模组原理图

    全志XR806鸿蒙无线模组原理图
    发表于 10-19 15:11 7次下载

    全志XR806开发板原理图

    全志XR806开发板原理图
    发表于 10-19 15:11 12次下载