电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
【电机矢量控制】FOC的敲门砖---SVPWM的三相正弦波电流采样
分 享
扫描二维码分享
【电机矢量控制】FOC的敲门砖---SVPWM的三相正弦波电流采样
FOC
SVPWM
电流采样
KVIN
关注
发布时间: 2019-09-19
丨
阅读: 12002
之前一直在弄有霍尔BLDC的方波控制,年后弄了一下无霍尔的方波,但是电机控制工程师的梦想还是矢量控制,哈哈。前路漫漫,现在各个相关公司已经有了电机控制库,但是我还是想先自己尝试写一下矢量控制,毕竟自己亲手来一遍才清楚其中的奥妙与玄机。 由简入难,方波搞差不多了,然后就从有霍尔的矢量控制开始做。首先就是SVPWM了,SVPWM也没啥好说的,网上大佬们的介绍已经挺多了,我也是按照网上大佬的文章来一步步做的。SVPWM参考博客: https://blog.csdn.net/qlexcel/article/details/74787619 这个作者写得很好,一看就懂,因此,对于SVPWM的配置什么的,就不再赘述,也不是本文的内容。我的SVPWM最终的波形如下,如果有什么错误,还请留言,一起探讨,毕竟我也是新手。 ![](https://cf01.ickimg.com/bbsimages/201909/5ef96764b8824638322b20e19c2e9d3b.png) 在做好SVPWM之后,就是SVPWM产生的三相正弦波的电流采样了,只有电流采样准确,矢量控制的坐标转换才能正确。因此电流采样的重要性不言而喻。 在做电流采样的时候,可以参考ST的电机库是怎么做的,下面是ST官方的教程文档: ![](https://cf01.ickimg.com/bbsimages/201909/ffc9d4be4c779cb04bd5454445258103.png) 只看这个文档只能看到ST的大致思路下载一个ST的5.0以上的电机库,生成一下标准工程,看一下生成的CUBEMX里面ST的如何配置的: ![](https://cf01.ickimg.com/bbsimages/201909/3015d7c840881ad713833a81d9e9e9a3.png) 看到这里大概就知道ST是使用TIM1(PWM定时器)的CH4通道来触发ADC的注入采样。有关注入采样与规则采样的说明,请自行查询手册,之后通过改变通道4的CCR值(占空比)来调节采样点。原则上是每两个PWM周期采样一次(由于SVPWM的产生需要用到中央对齐模式,因此是两个PWM周期),可以在载波周期的溢出中断里进行电流采样数据的处理,当然,也可以在ADC采样结束的中断里,我用的是F1,因此有注入采样与规则采样,有两种中断,如果是F0,是没有注入采样的,只能是规则采样。 根据我实际的情况,触发注入采样,我是真的搞不出来,真是难受啊,也许是我太蠢,因此我实际的ADC采样操作麻烦了许多,我用了TIM1的CH4配置为PWM1模式,用TIM1的4通道的上升沿来触发另一个从定时器TIM3,TIM3配置为复位模式,然后将TIM3的一个通道配置为PWM2模式,使用TIM3的上升沿去触发ADC的规则采样。不要问我为什么绕了一大圈,因为TIM1的CH4通道不能触发ADC的规则采样。手册如下: ![](https://cf01.ickimg.com/bbsimages/201909/b77634f8715010df2d643e599aa29d23.png) 虽然很麻烦,但我还是成功了,具体使用定时器去触发ADC采样的其他细节,可以查看我之前的博客。因为我使用了6个ADC通道,因此3个配置为规则采样,为了不耽误电流采样,其他3个就配置到注入采样,把注入采样配置为自动注入,也就是说,在规则采样完成后,会自动触发注入采样: ![](https://cf01.ickimg.com/bbsimages/201909/fc986f025834423f0c269ba70ab29ea4.png) 我的ADC配置如下: ![](https://cf01.ickimg.com/bbsimages/201909/48361e468e35b27c013ef528e631b066.png) 然后就是采样点的选取了,一般操作就是在SVPWM周期里,三相上管全关闭,三相下管全打开的状态,也就是U0状态时进行采样,由于电流的感性作用,在上管全部关闭时,电流不会发生突变,电流方向不变,因此至少会有一相的电流是从GND向上走的。 ![](https://cf01.ickimg.com/bbsimages/201909/d8068e902bf20ef651e80f8689a393ac.png) 具体关于电流采样的几种方案的分析,可以参考这篇文档:https://wenku.baidu.com/view/cc3f81fa10a6f524cdbf85bd.html 采样点示意如图: ![](https://cf01.ickimg.com/bbsimages/201909/faea87b4d665f04bf73e6eb35feb6aff.png) 当然,在配置TIM1-CH4的CCR时,要注意一些时间延迟,要包括每次PWM打开或关断的干扰时间以及ADC采样需要耗费的时间,这个根据自己的情况进行配置。 在最开始的时候,我以为上管打开时间最长的那一相是正电流(由GND向上流向电机),其他两相时候是负电流(由电机流向GND),(这个方向可以自己定义,自己明白就行),只有当T4=0时,也就是说有两相是上管打开时间一样长时会有两相负电流,根据这个错误思路,我就认为采样电阻只需要加运放电路就行,不需要加偏移电路(我后面得知,有高手是这样做的,而且成功计算了FOC,当然我现在还不是高手),当我满怀信心将采集到的电流数据打印出来的时候,看到的波形是这样的: ![](https://cf01.ickimg.com/bbsimages/201909/7b2101915de1d9d5df0391e666997d53.png) 这一段平的0电流令我着实费解,还以为是ADC采集没有配置对,在思索了一天之后,对照simlink的仿真波形: ![](https://cf01.ickimg.com/bbsimages/201909/c1a06615bb6dec012ce8e2dfe4c6435a.png) 看了好一会这个simlink的仿真波形,才恍然大悟,正常的三相正弦波电流应该是有一段时间是两相负电流,也就是说,因为有了两相负电流,所以才会有那一段平的0电流,另外一相因为是根据 Ia + Ib + Ic = 0;所以也就变成了镜像的电流波形,这样一切都解释通了。那么就是增加偏移电路了,其实也就是把运放加入一个加法器,我是构造了一个0.1V的偏移电压,在加入偏移电路之后,更改程序,采样,观察波形,波形比较乱,是这样的: ![](https://cf01.ickimg.com/bbsimages/201909/9f10a896c9959dfc7de4e137e13ced4f.png) 大概形状倒是有了,但是怎么看怎么不对劲啊,这种波形能做FOC吗?我的首先思路是加滤波,卡尔曼,互补滤波这种效果好是好,然而计算量好像有点大啊,最终还是加了滑动窗口滤波,这个滤波方法还是比较好的,有多次平均的效果,而且计算量小,每次只需加上新数据,减去旧数据,在求平均就行。在调了一会滑动窗口滤波之后,波形好了一些: ![](https://cf01.ickimg.com/bbsimages/201909/ae6e29ccdf184f359d6d8afe92182afd.png) 但是感觉还有不太对啊,这样做延迟好像有点高啊,看别人的操作都是采集完数据就直接用了啊,肯定是我哪里不对,不应该加滤波,或者说不应该加过多的滤波。之后便测了偏移电压,怀疑是偏移电压波动带来的采集波动,果然,我的猜测是对的,在电机运转的时候,偏移电压的波动增大了很多,这样的话,那我用固定的偏移电压ADC值来求真实的电流值肯定是不对的。既然这样,我突然想到,为啥不软件构造一个动态的偏移电压的ADC值?三相电流的ADC值相加是3倍的偏移电压ADC值的数学关系啊!按照这个思路,我更改了程序,减小了滤波,波形就很正常了: ![](https://cf01.ickimg.com/bbsimages/201909/14f136775e1c79633e87c9383a2b7f09.png) 当然,这种方法在之后的进度中还需要测试,还需要再研究别人的算法,在自己真正过了一遍FOC之后,再研究一下那些大佬不用偏移电路是怎么做的。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
1
)
KVIN
关注
评论
(2)
登录后可评论,请
登录
或
注册
CPX
18
天前...
你好,请教一下这个示波器上的SVPWM波是接在负载上的相电流波吗?我最近在做SVPWM的仿真,对这个最后输出波形有些疑惑,看网上介绍电流要是正弦波,但是仿真之后电流波形不是标准正弦波,有些许变形,不知道有没有影响?
0
回复
发布
KVIN
回复
CPX
9
天前...
不好意思,这个网站也没有评论提醒,所以不知道有人评论了。这个波形是电机的相电流波形,我直接用电流钳接示波器得到的,电流波形不是标准的正弦波一般都是参数不准确,如果你对精度要求不高,只要不是太离谱,还可以接受
0
回复
发布
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交