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

Makerbase SimpleFOCShield V3.2 第二课 闭环测试

Makerbase SimpleFOCShield V3.2 第二课 闭环测试

第一部分 硬件介绍

1.1 硬件清单

序号品名数量
1SimpleFOCShield V3.21
22808航模电机1
312V电源适配器1
4AS5600编码器和配线1
5USB Type-B数据线1

1.2 硬件跳线

SimpleFOCShield V3.2主板背面跳线如下图:
在这里插入图片描述

1.3 硬件连接

1、SimpleFOCShield主板插入Arduino uno主板;
2、连接电源线和电机的三相线;
3、使用Type-B数据线连接主板与PC;
4、连接编码器的线,本示例以AS5600编码器的I2C接口为例。
AS5600编码器I2C接口与SimpleFOCShield V3.2主板接口对应关系如下表:

序号AS5600编码器(I²C接口)SimpleFOCShield V3.2
15V(3.3V共用)3.3V
2GNDGND
3SCLSCL
4SDASDA

硬件连接如下图所示:
在这里插入图片描述

第二部分 软件配置

2.1软件准备

Arduino 版本:1.8.13
官方下载链接:项目首页 - arduino-esp32:Arduino core for the ESP32 - GitCode
企鹅群下载:732557609(群号)

2.2安装库

SimpleFOC库版本:2.2.1
安装步骤请参考《Makerbase SimpleFOCShield V3.2 第一课 基本测试》

第三部分 闭环电机控制

3.1 闭环位置控制

1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“position_motor_control”→”magnetic_sensor”→“angle_control”,打开官方闭环位置控制示例;
在这里插入图片描述

2、根据电机和电源修改以下参数
①第十三行,用//注释掉该行代码;
②第十五行,删除//,取消注释该行代码;
③第二十行,根据选用电机的极对数,修改为BLDCMotor motor = BLDCMotor(7);
④第二十一行,根据选用的PWM接口,修改为BLDCDriver3PWM driver = BLDCDriver3PWM(6, 10, 5, 8);
⑤第四十一行,根据供电电压修改driver.voltage_power_supply = 12的值,因本例使用DC12V电源,故没有修改;
⑥修改PID参数(在使用其他电机或想实现更好的控制效果时请自行调整PID参数)
第五十六行,修改为motor.PID_velocity.P = 0.021f;
第五十七行,修改为motor.PID_velocity.I = 0.12f;
第六十行,修改电压限制motor.voltage_limit = 0.5;(航模电机建议值为1~0.5,云台电机建议值为4以下)
第六十七行,修改为motor.P_angle.P = 30;

3、编译上传代码;

4、上传成功后,点击“工具”→“串口监视器”;

5、在命令窗口输入“T+数字”的指令并发送,即可控制电机闭环位置运动。
例如输入“T3.14”(弧度制),控制电机运动到180°的位置,输入“T62.8”(弧度制),控制电机运动到3600°的位置;
在这里插入图片描述

3.2 力矩控制模式

1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“torque_control”→”magnetic_sensor”→“voltage_control”,打开官方力矩控制示例;
在这里插入图片描述

2、修改代码
①第十二行,用//注释掉该行代码;
②第十四行,删除//,取消改行代码的注释;
③第十九行,修改为BLDCMotor motor = BLDCMotor(7);
④第二十行,修改为BLDCDriver3PWM driver = BLDCDriver3PWM(6, 10, 5, 8);
⑤第二十六行,初始电机电压值修改为较为安全的值float target_voltage = 1;
⑥第三十九行,根据供电电压修改driver.voltage_power_supply 的值;

3、编译上传代码;

4、打开串口监视器,本示例通过设置电机电压的方式来控制电机的扭矩,输入“T+数字”的指令设置电机电流,例如输入“T2”,就是设置电机的电压为2V;
在这里插入图片描述

3.3 闭环速度控制

1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“velocity_motion_control”→”magnetic_sensor”→“velocity_control”,打开官方闭环速度控制示例;
在这里插入图片描述

2、根据实际情况修改代码
①根据选用的编码器和接口选择启用16、18或19行代码中的其中一行;
在这里插入图片描述

②根据电机的极对数修改BLDCMotor motor = BLDCMotor()中的值;
根据选用的SimpleFOCShield 背部跳线写入三个对应的PWM接口和使能接口;
在这里插入图片描述

③根据需要设置速度初始值target_velocity;
在这里插入图片描述

④根据供电电压设置voltage_power_supply的值
在这里插入图片描述

⑤根据选用的电机设置合适的PID参数,如果电机校准后产生震动或来回摆动的情况,可能就是还没有调整到合适的PID参数;
在这里插入图片描述

⑥output_ramp:输出斜率,用于减小输入到力矩控制环的最大变化量。output_ramp越大,PID引起Uq变化的速度更快;output_ramp越小,PID引起Uq变化的速度更慢,通常不需要做修改;
Tf:低通滤波器时间常数。值越小滤波效果越差,通常不需要做修改;
在这里插入图片描述

3、编译上传代码;

4、打开串口监视器;

5、通过发送“T+数字”的指令设置电机闭环速度控制运行的速度;
在这里插入图片描述

Makerbase SimpleFOCShield V3.2 第二课 闭环测试,到此结束。
请继续关注后续课程。


欢迎加入 创客基地 电机控制企鹅群 讨论电机控制相关问题:732557609

欢迎光临 创客基地 B站 了解技术资料:
https://space.bilibili.com/393688975

欢迎光临 创客基地 tb店 采购产品:
https://makerbase.taobao.com/

相关文章:

  • AI知识补全(七):AI Agent 智能代理是什么?
  • Java加载 Grovy 类实现类的自动切换
  • Linux中断处理流程
  • jdk21使用Vosk实现语音文字转换,免费的语音识别
  • RL基础以及AlphaGo、AlphaGo Zero原理
  • 英伟达GPU SKU设计核心策略
  • 【log4j】配置Slf4j
  • 机器学习——GBDT、GBRT
  • Vue下 Sortable 实现 table 列表字段可拖拽排序,显示隐藏组件开发
  • 食品计算—Nutrition5k: Towards Automatic Nutritional Understanding of Generic Food
  • 5、类的6个默认成员函数和特性--类的新功能
  • 高级java每日一道面试题-2025年3月14日-微服务篇[Eureka篇]-Eureka如何保证高可用性?
  • freecad手动装插件 add on
  • 最大数字(java)(DFS实现)
  • AMD机密计算虚拟机介绍
  • ubuntu系统安装docker
  • 天梯赛 L2-022 重排链表
  • 自顶向下学习K8S--部署Agones
  • Lua 数组
  • 平安证券 NoETL 指标平台实践:统一数据口径,驱动高效经营分析与智能决策
  • 经常口干口渴的人,要当心这些病
  • 问责!美国海军对“杜鲁门”号航母一系列事故展开调查
  • 普京批准俄方与乌克兰谈判代表团人员名单
  • 法学联合书单|法庭上的妇女
  • 观察|“双雄”格局下电池制造商如何生存:加码不同技术、抢滩新赛道
  • 加强战略矿产出口全链条管控工作部署会召开