首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

SimpleFOC移植STM32(二)—— 开环控制

  • 23-09-28 03:41
  • 3296
  • 9877
blog.csdn.net

目录

  • 注意事项
  • 一、硬件介绍
    • 1.1、硬件准备
      • 1.1.1、SimpleMotor方案
      • 1.1.2、SimpleFOCShield V2.0.3方案
    • 1.2、硬件连接
      • 1.2.1、原理图
      • 1.2.2、SimpleMotor接线
      • 1.2.3、STM32接线
  • 二、控制原理
    • 2.1、SVPWM
    • 2.2、极对数
    • 2.3、开环控制
  • 三、软件操作和程序下载
    • 3.1、Keil编译生成hex文件
    • 3.2、FlyMcu下载
    • 3.3、SimpleMotor准备
  • 四、程序演示
    • 4.1、开环速度控制
      • 4.1.1、打开工程
      • 4.1.2、修改参数
      • 4.1.3、编译下载
      • 4.1.4、串口发送指令
    • 4.2、开环位置控制
      • 4.2.1、打开工程
      • 4.1.2、修改参数
      • 4.1.3、编译下载
      • 4.1.4、串口发送指令

 

SimpleFOC的教程比较多,做了一个总的链接,欢迎点击阅读:SimpleFOC教程链接汇总
 

注意事项

  • 1、电机的三根线可以任意接在驱动器的ABC三相上,不用区分;
  • 2、开环控制最好选择Ω级的电机,尽量不要用mΩ级的航模电机,容易烧MOS和电机。开环控制在实际中也就启动时用用,这不是电机控制的一个常态。
  • 3、电机控制要尽快操作,不要停留时间太久,时刻注意电机和驱动器的发热情况,一旦过热立即断电。
     

一、硬件介绍

本节实验适合运行在SimpleMotor和SimpleFOCShield V2.0.3上。

1.1、硬件准备

1.1.1、SimpleMotor方案

序号名称数量
1驱动器1
2云台电机1
312V电源1
4USB转串口1

在这里插入图片描述
带编码器云台电机可以是AS5600,也可以是TLE5012B。
电机 购买链接:某宝购买
SimpleMotor 购买链接:某宝购买
 

1.1.2、SimpleFOCShield V2.0.3方案

序号名称数量
1STM32核心板1
2SimpleFOCShield V2.0.31
3云台电机1
412V电源1
55V电源1
6USB转串口1
7杜邦线若干

在这里插入图片描述
带编码器云台电机可以是AS5600,也可以是TLE5012B。
电机 购买链接:某宝购买
simpleFOCShield V2.0.3购买链接:某宝购买
 

1.2、硬件连接

1.2.1、原理图

在这里插入图片描述

1.2.2、SimpleMotor接线

在这里插入图片描述

在这里插入图片描述

 

1.2.3、STM32接线

对于SimpleFOCShield V2.0.3,需要杜邦线连接主板和驱动板,记得共地。
在这里插入图片描述
对照 Shield V2.0.3 的原理图:

STM32核心板V2.0.3
PA05
PA19
PA26
PB98
GNDGND

在这里插入图片描述

注意事项:
①、无刷电机的三根相线不用区分顺序,任意接在端子上即可,调整其中任意两根电机反转。
②、最好使用大电阻的云台电机(比如10Ω),如果使用mΩ级的航模电机,操作不当,容易烧毁驱动板MOS或者电机。
③、12V先不要上电,请继续阅读文章。
 

二、控制原理

2.1、SVPWM

  SVPWM的原理请看这篇文章:SimpleFOC(八)—— 理论+实践 深度分析SVPWM。
在这里插入图片描述
  Uq为交轴,Ud为直轴,角度angle_e1是电机的电角度。
  一般应用直接设置Ud=0,通过控制Uq来控制磁场大小,控制angle来控制磁场方向;
  开环控制中,直接设置Uq = voltage_limit,按照固定的速度递增angle就是速度模式;递增angle到设定值就是角度模式。
  闭环控制中,angle来自编码器,根据编码器计算实际速度和位置,如果速度大于设定值,PID调小Uq降低速度,如果速度小于设定值,程序调大Uq增加速度。
 

2.2、极对数

  无刷电机转子中磁铁的对数就是极对数。
在这里插入图片描述
  电机转子转一圈,称为360°(或者叫2Pi)机械角度,转子转过一对磁极,称为360°电角度。
  如上图的7对极,电机需要转7X360电角度 = 360机械角度。SVPWM控制的angle为电角度,而编码器读到的是机械角度,所以需要把机械角度转为SVPWM可用的电角度。
 

2.3、开环控制

  SVPWM+设定的角度angle = 开环控制,
在这里插入图片描述

 

三、软件操作和程序下载

3.1、Keil编译生成hex文件

选择生成hex文件。如果用STlink下载可忽略此步。
在这里插入图片描述

3.2、FlyMcu下载

如果用STlink下载可忽略此步。
在这里插入图片描述

3.3、SimpleMotor准备

在这里插入图片描述

- 如果用STlink下载,SWCLK接驱动板的SWK、SWDIO接驱动板的SWD,GND接GND。

- 如果用串口下载:
    1、USB转串口的TXD接驱动板的RX1,USB转串口的RXD接驱动板的TX1,GND接GND,
    2、按住Boot键不松手,按下RST键松开,然后再松开Boot键,单片机进入Boot模式,
        (如果你手头的驱动板Boot键是跳线帽,短接跳线帽相当于按住Boot键)
    3、点击FlyMcu的开始编程,等待下载完成。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

 

四、程序演示

开环控制尽快操作,注意电机发热情况,发热严重要立即断电

1、电机抖动转不起来把voltage_limit设置的大一点,
2、电机发热严重的把voltage_limit设置的小一点,
3、voltage_limit设置越大,电机达到的最大转速越大,但是voltage_limit值越大电机发热就越严重,
4、电机能转就表示一切正常,记下当前的voltage_limit值,闭环控制中用于设置voltage_sensor_align,
5、可以学习下一章了,开环不是电机控制的常态,不要纠结太久。20211224

 

4.1、开环速度控制

4.1.1、打开工程

在这里插入图片描述
 

4.1.2、修改参数

- 选择controller=Type_velocity_openloop;
- 电源电压和极对数根据实际情况设置;电源电压增加voltage_limit也要相应的增大
- voltage_limit在不了解电机性能的情况下从小逐渐增加,每次修改后注意工作电流和电机发热;
- 如果电机抖动转不起来,增大voltage_limit;
- 如果电机能转但发热严重,减小voltage_limit。
  • 1
  • 2
  • 3
  • 4
  • 5

 

4.1.3、编译下载

  FlyMcu通过串口下载或者STlink通过SWD接口下载。
  串口下载需先进入Boot模式,下载完以后按复位键运行。
在这里插入图片描述

4.1.4、串口发送指令

  常用的串口调试软件,在发送区敲回车,对应的16进制数据为0D 0A,也就是回车换行;Arduino IDE自带的串口监视器,输入指令点发送,只有16进制的0A。所以不能用Arduino IDE的软件给当前代码发送指令。
  发送指令,从低速开始逐渐增加,速度设置过快电机容易失步变成振动。速度单位为rad/s,6.28表示一圈每秒。
在这里插入图片描述

 

4.2、开环位置控制

4.2.1、打开工程

  和开环速度为同一个工程
在这里插入图片描述

4.1.2、修改参数

  选择controller=Type_angle_openloop;

4.1.3、编译下载

4.1.4、串口发送指令

  设定目标值,单位为rad,一圈=6.28rad。
在这里插入图片描述

 
本节源码下载:
链接:https://pan.baidu.com/s/1mvd5Wh1uBZz0FNXgE44tVA
提取码:d4q7
 
(完)
 
欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)
 
 
请继续阅读相关文章:
SimpleFOC移植STM32(一)—— 简介
SimpleFOC移植STM32(二)—— 开环控制
SimpleFOC移植STM32(三)—— 角度读取
SimpleFOC移植STM32(四)—— 闭环控制
SimpleFOC移植STM32(五)—— 电流采样及其变换

注:本文转载自blog.csdn.net的loop222的文章"https://blog.csdn.net/loop222/article/details/120097256"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top