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


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

在这里插入图片描述

驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

1.1.2、SimpleFOCShield V2.0.3方案

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

在这里插入图片描述

驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

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、电机抖动转不起来把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。

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(五)—— 电流采样及其变换

  • 45
    点赞
  • 259
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值