收藏网址

收藏官网,优惠快人一步

您可以尝试通过快捷键 CTRL + D 加入收藏夹

|
|
0755-83865666
|
|
手机立创
|
面板定制
|
消息(0)
|

温馨提示

您上传的BOM清单格式不准确,当前支持上传xls、xlsx、csv、JPG、PNG、JPEG格式,请检查后重新上传

BOM正在分析中...
首页 > 应用与分享 > 立创电赛展:《基于stm32G431CBU6的轻量FOC》,参赛赢2万现金!
  • 立创电赛展:《基于stm32G431CBU6的轻量FOC》,参赛赢2万现金!

  • 2024-10-15 15:22:27 阅读量:7

“盛思锐传感器”第九届立创电子设计开源大赛火热报名中,现在点击报名立创电赛赢2万现金大奖,报名后全阶段可触发福利!

  大赛网址:DIY.SZLCSC.COM

 

为了给大家些创作灵感,今天带来第八届立创电赛优胜奖项目-《基于stm32G431CBU6的轻量FOC》案例分享!本文作者:瑞萨MCU杯第八届立创电子设计开源大赛选手@常乐唯一驾专,禁止商用,未经许可禁止转载。

 

* 1、项目功能介绍


一直想写一套FOC控制电机,就借这个比赛的机会做了一版。虽然网上有很多FOC的开源项目了,但自己还是想学完原理自己写一个FOC驱动库.电机用的KV值小的云台电机,毕竟重点在学习FOC算法上。完成了位置,速度,电流闭环。同时完整推导了,svpwm发波。但工程并不完善,因为时间仓促,我们lcd那块有问题没有修,电机第二路也没有来得及写。然后就是算法上,电机运行起来和我想的有一些出入,这属于是理论欠缺了,后面再好好学一下自控再回头来解决。

 

*2、项目属性


项目为首次公开。硬件参考了samplefoc。

 

* 3、开源协议


该项目软硬件完全开源。

 

请在竞赛阶段填写 ↓

 

*4、硬件部分


注意:这个lcd屏幕虽然画了,当调的时候没用。因为焊上屏幕,给板子一供电就过流了。这也是这个工程不完整的地方(真的是准备时间不足啊)。

驱动板

 

LCD硬件原理图

 

用这块芯片做主控主要是因为它是QFN封装比较好看,而且比起同性能的来说更加便宜。

无线串口用的是逐飞的串口。打过智能车的友友应该都知道。

编码器板

 

编码器板原理图

 

用磁编码器检测电机转子位置需要在电机底部加径向磁铁,然后我们是做了3d打印座子(见附件)的,用来固定电机。

 

*5、软件部分


核心其实是合成360°任意位置的磁场去控制无刷电机。

 

磁场控制无刷电机

 

最好的情况就是上面的,合成磁场与转子垂直,这样就是磁场都用来拖动电机了.假如没有垂直,必然在转子上有分量,这个就会使得电机发热.所以说,我们就是需要不停去检测转子的实时位置,然后后生成超前90度的磁场去拖动电机.改变磁场大小就能控制电机的速度了.

那么既然要合成向量就不得不说两个变换,park变换和clark变换.这部分可以参考我之前写的一篇博客.

[电赛电力电子方向]基于DQ坐标系的锁相环-CSDN博客

 

1)spwm开环

首先拿到硬件最重要的就是先给他开环转起来。验证硬件是否有问题。我开始是用三相SPWM波去强拖的,具体用法就是开定时器,在定时器中断里修改pwm的crr来改变占空比。ccr按正弦变化,这个正弦波是每次在中断里更新的,就是你设定角频率欧米伽,中断里每次计算sin(wt)。t是逐渐累加上去的,就是每次进中断t+=Ts(定时器中期)。

 

SPWM

 

 

2)svpwm开环

当然我们FOC肯定是用svpwm波来控制的了.它其实但从生成上来说就是你生成360°任意一个角度,大小的向量.这部分我参考了下面up的视频.

Simple_FOC教程 一、原理部分_哔哩哔哩_bilibili

有了svpwm生成,我们就能开环运行了.还是和上面一样,在定时器中断里去更新时间t,然后wt就是现在的角度了.我们改变w就能调速.至于力矩,也就是期望的q轴电压直接程序去设定一个.改变它可以改变力矩.调的时候会发现,修改速度和力矩可以让电机较好的运行,而且比spwm开环要顺滑很多.

 

3)速度闭环

这里测速我们需要磁编码器去读角度,同时svpwm也需要一个角度.这里说一下电机极对数判断,以及计算磁编码器偏置.我们在程序中设定合成向量的角度为0.然后运行电机,电机就会转到0位置,然后旋转电机,它会在几个位置停留.停留几次就是几极对.然后选择一个0位置读出编码器的值就是偏置了。

然后速度闭环的话是pi控制器。pi控制器误差为期望速度与当前速度作差,输出q轴电压,然后送去svpwm发波。

 

4)位置闭环

位置闭环是p控制器,运行就是位置误差过p控制器输出速度环参考量,然后就和速度闭环一样了。我调的时候开始是位置环给了i,结果电机会来回震荡,这属于是自控的知识了。后面会深入学习一下。

 

5)电流闭环

首先我们要知道,三相电流正弦波是很难去直接控制的。所以我们就使用那两个变换去把三相正弦转换到dq坐标系下。理论上,d轴为0,q轴有电流,那么我们产生的这个向量就是只控制电机旋转的,而如果d不为0那么久有一部分能量去让电机发热了。这也是闭电流环的一个重要原因。

电流环是pi控制器。就是把三相电流做变换得到dq分量,然后dq分别做误差过pi控制器的到q轴和d轴的电压参考值。(注意,这里pi控制器输出的是电压)。

 

6)代码结构介绍

 

代码结构介绍

 

了cubemx生成的几个文件夹外,我还加了driver和user文件夹。就是一个放驱动,一个放应用文件。

open_loop里放的是spwm开环的相关函数。isr_callback里放中断回调函数.my_main里是系统初始化,与系统运行函数.就是下面在主函数调用的两个。

 

代码结构介绍

 

7)串口通信规范

  • 帧头:“$” (u8)

  • 指令位(发送方地址):2个u8 0-99个指令

  • 数据:任意长度

帧尾:"\n"(u8)

 如:

角度设定$04360\n    04代表这个指令是控制角度的,360就是设定电机转到360度。

 

8)上位机

我用的VOFA+,软件大家去官网下就行.配置json在下面的附件里。

上位机

 

上位机

 

 

上位机

 

添加table.json

 

上位机

 

在命令区域鼠标右键,添加命令组.起名FOC

 

 

上位机

 

在命令组里右键载入另一个json。

 

上位机

 

在命令控件右键绑定命令组.就按如下绑定。

 

 

上位机

 

 

*6、BOM清单


编码器

 

BOM清单

 

驱动

 

BOM清单

 

*7、大赛LOGO验证


 

大赛logo验证

 

 

* 8、演示您的项目并录制成视频上传


【第八届立创电赛】基于stm32的简易foc_哔哩哔哩_bilibili

更多详情:https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45

 |  STM32
热门物料
型号
价格
TPS5430DDAR/DC-DC电源芯片 1.17
DS18B20+/温度传感器 4.54
AD623ARZ-R7/仪表放大器 13.54
STM32F030F4P6TR/单片机(MCU/MPU/SOC) 2.21
ULN2003ADR/达林顿晶体管阵列 0.3762
STM32F103C8T6/单片机(MCU/MPU/SOC) 4.24
STM32F103VCT6/单片机(MCU/MPU/SOC) 7.8
STM32F103CBT6/单片机(MCU/MPU/SOC) 6.27
OP07CDR/精密运放 0.4075
STM32G030F6P6TR/单片机(MCU/MPU/SOC) 2.3
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定要删除此收货地址的吗?

请填写订单取消原因

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
投诉意见

紧急问题投诉电话:

18826549599

更快的受理通道

对常规通道处理结果不满意

请在此扫码

此意见箱直通立创管理层

优惠券 建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服