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

目录

  • 说明
  • 一、硬件介绍
    • 1.1、硬件准备
      • 1.1.1、SimpleMotor方案
      • 1.1.2、SimpleFOCShield V2.0.3方案
    • 1.2、硬件连接
      • 1.2.1、原理图
      • 1.2.2、接线
  • 二、控制原理
    • 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(二)—— 快速入门 (开环控制)》这篇文章。
  开环控制最好选择Ω级的电机,尽量不要用mΩ级的航模电机,容易烧MOS和电机。开环控制在实际中也就启动时用用,这不是电机控制的一个常态。

一、硬件介绍

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

1.1、硬件准备

1.1.1、SimpleMotor方案

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

SimpleFOC移植STM32(二)—— 开环控制_第1张图片
带编码器云台电机可以是AS5600,也可以是TLE5012B。
AS5600电机 购买链接:某宝购买
TLE5012B电机 购买链接:某宝购买
SimpleMotor 购买链接:某宝购买

1.1.2、SimpleFOCShield V2.0.3方案

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

SimpleFOC移植STM32(二)—— 开环控制_第2张图片
带编码器云台电机可以是AS5600,也可以是TLE5012B。
AS5600电机 购买链接:某宝购买
TLE5012B电机 购买链接:某宝购买
simpleFOCShield V2.0.3购买链接:某宝购买

1.2、硬件连接

1.2.1、原理图

SimpleFOC移植STM32(二)—— 开环控制_第3张图片

1.2.2、接线

SimpleFOC移植STM32(二)—— 开环控制_第4张图片
对于SimpleFOCShield V2.0.3,需要杜邦线连接主板和驱动板,记得共地。
SimpleFOC移植STM32(二)—— 开环控制_第5张图片
STM32最小系统板和V2.0.3的接线如果不熟悉,请看SimpleFOC(七)——STM32(Bluepill)的应用

注意事项:
①、无刷电机的三根相线不用区分顺序,任意接在端子上即可,调整其中任意两根电机反转。
②、12V先不要上电,开环控制电机会发热,上电时间过久容易烧坏。最好等到程序编译上传后再上电,上电尽快操作。
③、最好使用大电阻的云台电机(比如10Ω),如果使用mΩ级的航模电机,操作不当,容易烧毁驱动器MOS和电机。

二、控制原理

2.1、SVPWM

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

2.2、极对数

  无刷电机转子中磁铁的对数就是极对数。
SimpleFOC移植STM32(二)—— 开环控制_第7张图片
  电机转子转一圈,称为360°(或者叫2Pi)机械角度,转子转过一对磁极,称为360°电角度。
  如上图的7对极,电机需要转7X360电角度=360机械角度。SVPWM控制的angle为电角度,而编码器读到的是机械角度,所以需要把机械角度转为SVPWM可用的电角度。

2.3、开环控制

  SVPWM+设定的角度angle = 开环控制,
SimpleFOC移植STM32(二)—— 开环控制_第8张图片

三、软件操作和程序下载

3.1、Keil编译生成hex文件

选择生成hex文件,如果是SWD下载可忽略此步。
SimpleFOC移植STM32(二)—— 开环控制_第9张图片

3.2、FlyMcu下载

SimpleFOC移植STM32(二)—— 开环控制_第10张图片

3.3、SimpleMotor准备

SimpleFOC移植STM32(二)—— 开环控制_第11张图片
①、USB转串口的TXD接主板的RX1,USB转串口的RXD接主板的TX1,GND接GND,
②、电源电压小于15V,跳线帽短接,
③、Boot接跳线帽,上电进入下载模式,拿掉跳线帽,按复位键程序运行,
④、使用SWD接口下载不用操作Boot。

四、程序演示

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

4.1、开环速度控制

4.1.1、打开工程

SimpleFOC移植STM32(二)—— 开环控制_第12张图片

4.1.2、修改参数

  选择controller=Type_velocity_openloop;
  电源电压和极对数根据实际情况设置。
  voltage_limit在不了解电机性能的情况下从小逐渐增加,每次修改后注意工作电流和电机发热。如果电机功率较大而voltage_limit偏小,电机会转不动;如果voltage_limit偏大,电机会发热严重。

4.1.3、编译下载

  FlyMcu通过串口下载或者STlink通过SWD下载。串口下载需要Boot加跳线帽,下载完以后拿掉跳线帽按复位键运行。
SimpleFOC移植STM32(二)—— 开环控制_第13张图片

4.1.4、串口发送指令

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

4.2、开环位置控制

4.2.1、打开工程

  和开环速度为同一个工程
SimpleFOC移植STM32(二)—— 开环控制_第15张图片

4.1.2、修改参数

  选择controller=Type_angle_openloop;

4.1.3、编译下载

4.1.4、串口发送指令

  设定目标值,单位为rad,一圈=6.28rad。
SimpleFOC移植STM32(二)—— 开环控制_第16张图片

本节源码下载:
链接:https://pan.baidu.com/s/1mvd5Wh1uBZz0FNXgE44tVA
提取码:d4q7

(完)

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


请继续阅读相关文章:
SimpleFOC移植STM32(一)—— 简介
SimpleFOC移植STM32(二)—— 开环控制
SimpleFOC移植STM32(三)—— 角度读取

你可能感兴趣的:(simpleFOC,SimpleFOC,STM32,电机驱动)