SimpleFOC(四)—— 闭环控制


一、电机的三种控制模式

1、力矩控制模式

  ◎电机在运行过程的电流,始终等于给定的值。
  ◎比如使用电机来拉伸弹簧,设定电流值越大,弹簧被拉伸的长度越长。设定电流越小,弹簧被拉伸的长度越短。设定电流为零,弹簧不被拉伸。
  ◎在SimpleFOC项目中,受限于Arduino UNO的运行速度,大部分例程没有使用电流采样,所以设定电压值代替设定电流值。
  

2、速度控制模式

  ◎让电机始终按照设定的速度运转,不因负载的变化而变化。
  ◎速度控制一般会采用内环电流环,外环速度环的方式,所以可以限制转动过程中的电流不超过设定值。
  ◎比如传送带传送物品,给定的速度不会因为传送带上是空载或者带载发生变化,但是当负载过大,电流超过设定值的时候会报警或自动停止。
  

3、位置控制模式

  ◎精确控制电机转动到指定角度,
  ◎位置控制一般会采用内环电流环,外环速度环,最外环位置环的方式,所以可以限制转动过程中的最大速度,和最大电流。
  ◎比如机械臂从A点运动到B点,并限制挥舞过程中的最大速度和最大力矩。
  

二、硬件说明

1、硬件清单

序号 名称 数量
1 Arduino UNO 1
2 simpleFOCShield V2.0.3 1
3 带磁编码器的云台电机 1
4 12V电源 1
5 方口USB线 1

  如下图所示:
在这里插入图片描述

  simpleFOCShield V2.0.3购买链接:淘宝购买
  带编码器电机购买链接:淘宝购买
  

2、硬件连接

  ⑴、SimpleFOCShield V2.0.3主板与Arduino UNO主板堆叠连接,
  ⑵、USB线连接Arduino UNO主板,与主板通信并提供5V电压,
  ⑶、12V电源连接主板TB_PWR接口,注意正负极,
  ⑷、电机三根相线连接至V2.0.3主板TB_M1的3个接口,
  ⑸、电机编码器的I2C接口与排母连接,注意正负极。
  硬件连接如下图:
在这里插入图片描述

  

三、程序演示

1、力矩控制

⑴、打开例程

在这里插入图片描述

⑵、修改程序

  ①、修改编码器为AS5600_I2C,
  ②、修改电机极对数为7,
  例程为只读文件,可以验证上传,如需保存要“另存为”。
在这里插入图片描述

⑶、验证上传

在这里插入图片描述

⑷、打开串口监视器

在这里插入图片描述

⑸、等待初始化

  初始化完成后,电机开始转动,
在这里插入图片描述

⑹、电机观测

  此时对电机施加阻力,电机表现为固定大小的力矩,使劲捏紧电机会停止,

⑺、发送指令

  设定不同的电压值,电机转速不同,表现出大小不同的力矩,如果此时有电流表可以观测到电流也不相同,
在这里插入图片描述

⑻、程序说明

  力矩模式是控制电流实现对力矩的控制,但在simpleFOC项目中,用电压代替电流,通过设定不同的电压实现对力矩的控制,
  
在这里插入图片描述
  
闭环力矩模式演示视频:https://www.bilibili.com/video/BV1rq4y1E7Vd/
  

2、速度控制

⑴、打开例程

在这里插入图片描述

⑵、修改程序

  ①、修改编码器为AS5600_I2C,
  ②、修改电机极对数为7,
  例程为只读文件,可以验证上传,如需保存要“另存为”。
在这里插入图片描述

⑶、验证上传

在这里插入图片描述

⑷、打开串口监视器

在这里插入图片描述

⑸、等待初始化

  初始化完成后,电机静止,锁定在起点位置,
  注意:不同电机需要设定不同的PID参数,参数不符可能会导致电机振动,忽快忽慢等异常,下图修改后的参数仅保证本人当前使用的电机运转平稳。PID调节方法请自行百度。
在这里插入图片描述

⑹、发送指令

  设定电机速度,电机转动,比如设置T6.28,电机以6.28rad/s的速度转动,即一圈一秒,
在这里插入图片描述

⑺、电机观测

  对电机施加阻力会发现,无论速度设置为多少,电机为了达到设定的转速,会持续增加动力(如果有电流表,可以看到电流不断增加),这与力矩模式中的恒定阻力截然不同。
在这里插入图片描述

闭环速度模式演示视频:https://www.bilibili.com/video/BV11y4y1g7mC/

3、角度控制

⑴、打开例程

在这里插入图片描述

⑵、修改程序

  ①、修改编码器为AS5600_I2C,
  ②、修改电机极对数为7,
  例程为只读文件,可以验证上传,如需保存要“另存为”。
在这里插入图片描述

⑶、修改PID参数

  位置环内是速度环,所以要修改的参数包含速度环和位置环的两套PID参数。
  下图修改的参数并不一定适合所有电机,也不一定是当前使用电机的最佳参数,对PID的更深入了解请自行百度。
在这里插入图片描述

⑷、验证上传

在这里插入图片描述

⑸、打开串口监视器

在这里插入图片描述

⑹、等待初始化

初始化完成后,电机静止,锁定在起点位置。输入角度指令,点击发送,
在这里插入图片描述

⑺、电机操作

  设定不同角度,观察电机的转动位置。
  当前例程中,角度采用累加方式,比如当前输入指令为“T10”,电机转过10rad后停止,再输入指令“T11”,则电机沿着刚才的方向再转过1rad后停止。
在这里插入图片描述

闭环位置模式演示视频:https://www.bilibili.com/video/BV1Ny4y137XX/


(完)

欢迎加入simpleFOC技术交流群:923734429 (入群申请写:CSDN)

请继续阅读相关文章:
SimpleFOC(一)—— 简介(附有文件下载链接)
SimpleFOC(二)—— 快速入门 (开环控制)
SimpleFOC(三)—— AS5600角度读取
SimpleFOC(五)—— 双电机控制
SimpleFOC(六)—— PowerShield和AS5047P
SimpleFOC(七)——STM32(Bluepill)的应用
SimpleFOC(八)—— 理论+实践 深度分析SVPWM
SimpleFOC(九)—— 霍尔电机控制

猜你喜欢

转载自blog.csdn.net/loop222/article/details/116481700
今日推荐