当前位置: 首页 > article >正文

foc原理odrive驱动板的使用,以及功能介绍

文章目录

    • 驱动板引脚:
    • 编码器的安装:
    • 电机参数
      • 编码器设置
    • odrive控制
      • 控制指令
        • 设置模式
        • 设置输入模式
        • 其他指令
      • 调PID
        • 调试准则
        • 先调整内环,再调整外环
        • 在位置模式下调试
        • 结论

使用的灯哥开源的odrive驱动板,外接编码器

驱动板引脚:

板载STM32F405RGT6

编码器的安装:

磁体距离编码器芯片1~2mm最佳;

外接编码器不支持SPI功能;

板载编码器支持SPI;

接线:

电机三相线和板子接口,mr30接口

三条线和电机三相线接起来

电机参数

电机类型,大电流的选这个

5010电机主要需要极对数以及KV值

360KV ;7对极

编码器设置

cpr,每转一圈计数多少次

odrive控制

控制指令

打开odrive:

activate python39//激活python39
odrivetool// 打开odrive

odrv0.reboot//重启

odrv0.axis0.config.can_node_id = //设置电机的id

odrv0.save_configuration()//配置完成后需要保存配置

odrv0.save_configuration()//配置完成后需要保存配置

设置模式

odrv0.axis0.controller.config.control_mode 
//力矩控制
CONTROL_MODE_TORQUE_CONTROL
//速度控制
CONTROL_MODE_VELOCITY_CONTROL
//位置控制
CONTROL_MODE_POSITION_CONTROL

闭环控制

//速度模式
odrv0.axis0.controller.input_vel = [速度目标值]

//位置模式
odrv0.axis0.controller.input_pos = [位置目标值] 
//位置控制1是转到1圈的位置,0.5就是半圈的位置
    

//力矩模式
odrv0.axis0.controller.input_torque = [位置目标值]
    

pid控制

//速度环增益
//速度环积分
//位置环增益

//阻尼
odrv0.axis0.controller.config.vel_gain//最大到0.06,0.07就乱了

//位置模式出现误差回到指定位置,未归位的时间越长,力会越大
odrv0.axis0.controller.config.vel_integrator_gain

odrv0.axis0.controller.config.pos_gain//位置模式到达指定位置的速度

    
设置输入模式
odrv0.axis0.controller.config.control_mode

//1、关闭输入
INPUT_MODE_INACTIVE


//2、直接控制
INPUT_MODE_PASSTHROUGH
//在这种输入模式下,根据所设置的控制模式control_mode来控制电机,指令包括input_pos/input_vel/input_torque, 输入指
//令后电机直接运转至目标值。

    
//3、速度爬升
INPUT_MODE_VEL_RAMP
//这种输入模式下,驱动器需要在速度控制模式下,并会从当前的速度值逐渐爬升/下降到输入
//到 input_vel 的目标速度值。在这种模式下,需要配置
//爬升速率
//载惯量
odrv0.axis0.controller.config.vel_ramp_rate[turn/sec]
odrv0.axis0.controller.config.inertia[Nm/(turn/)]


//4、梯形轨迹模式
INPUT_MODE_TRAP_TRAJ
// 这种输入模式下,驱动器需要在位置控制模
// 式下,通过 input_pos 输入目标位置值,电
// 机按照加速-匀速-减速到达设定位置,即速
// 度变化轨迹为梯形,位置变化接近曲线。
//◼ 梯形轨迹下的速度限制
//◼ 梯形轨迹下的加速度限制
//◼ 梯形轨迹下的加速度限制
odrv0.axis0.trap_traj.config.vel_limit
odrv0.axis0.trap_traj.config.accel_limit
odrv0.axis0.trap_traj.config.decel_limit


//5、力矩爬升
INPUT_MODE_TORQUE_RAMP
// 这种输入模式下,驱动器需要在力矩控制模式下,
// 并会从当前的力矩值逐渐爬升/下降到输入到
// input_tor的目标速度值。在这种模式下,需要
// 配置
// ◼ 力矩爬升速度
odrv0.axis0.controller.config.torque_ramp_rate
其他指令
//查看电压
odrv0.vbus_voltage

调PID

调试准则

先调整内环,再调整外环

先调整角度环P

1、先调速度:

vel;

调之前把位置环的p清零;

调电机的阻尼

odrv0.axis0.controller.config.vel_gain = 0.05时摩擦感强烈;

在位置模式下调试

odrive官网上面,只是调试了位置环的p,速度环的P、I;

没有负载的情况下调试好后,加上负载后再调,因为有负载的情况下是不一样的;

如果用手转电机,设置积分会使得,电机不在指定角度的时间越久,电机回位置的力越大;

位置环的p,越大,转的越快,定一个稳定的值后调试v的p和i;

速度环的p越大,转的越快,太大会超调,会抖动;

速度环的i,如果偏差一直在的话,电机的力矩会越来越大;

结论

5010电机、AS5047p传感器:

1、官方odrive只是调了位置环的P以及速度环的P、I;

先调p、再调I

2、速度模式下:

位置环的p没用;

只有速度环的p有用:

p越高阻尼越大,速度给高时会越抖,但是速度低时候就比较稳定;

p越低阻尼越小,速度低时比较抖动,但是速度高时就不怎么抖动;

3、位置模式下:

a、位置环p设置数值,给定某个位置,他才会转动:

p越大,去这个位置的速度越快;

b、速度环p决定了阻尼大小,p越大,阻尼越大,太大会超调,就有噪声;

c、速度环I决定了力矩,在没到指定位置时,他的力矩会给的越来越大,用手拧电机,一定角度后保持几秒就能明显感觉到力矩变大了;

d、能转差不多50圈,再多就会启动过流保护,会阻止电源给电机供电;


http://www.kler.cn/a/312925.html

相关文章:

  • 数据分析-41-时间序列预测之机器学习方法XGBoost
  • 【Allure】mac下环境配置
  • 【react】Redux基础用法
  • Docker的轻量级可视化工具Portainer
  • 代码随想录训练营Day20 | 93.复原IP地址 - 78.子集 - 90.子集II
  • @CrossOrigin打破同源策略
  • 基于TRIZ的救援机器人轻量化设计
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(一)-概述
  • 翻唱技巧:AU和Cubase翻唱录制对轨技巧
  • Linux 系统进程理解——标识符,状态
  • uniapp中使用echarts 完整步骤,包括报错以及解决方案
  • 实验一:Windows下的IIS服务器配置和管理
  • 50页PPT麦肯锡精益运营转型五步法
  • 考研报名确认上传身份证户口本学历证明照片如何压缩裁剪
  • 聊聊Thread Local Storage
  • 代码随想录训练营第34天| 62.不同路径 、63. 不同路径 II
  • 【STL】map和set相关知识详细梳理
  • 4、论文阅读:基于深度学习和成像模型的水下图像增强
  • 21、Tomato
  • weblogic CVE-2017-3506 靶场攻略
  • 【随手笔记】使用J-LINK读写芯片内存数据
  • C++——类和对象
  • 鸿蒙HarmonyOS之使用ArkTs语言获取应用版本等信息
  • AI健身体能测试之基于paddlehub实现引体向上计数个数统计
  • 享元模式详解:解锁高效资源管理的终极武器
  • 技术美术百人计划 | 《4.1 Bloom算法》笔记