大四在某公司实习,主要是做无刷电机控制算法,在学习FOC的过程中,因为公司要压低产品成本,只能允许我用单电阻采样的方式来做电流环。于是我就到处找单电阻采样的资料,跑遍了各大论坛,资料少的可怜,只能讲出大致原理,看完还是不知道怎么具体实现。后来没办法,逼着自己看了几篇硕士论文和期刊,基本看明白了。(吐槽一下,硕士论文是要出书吗,一篇就接近一百页,看死我了)不多说了,开始说正经事
在低调制区域和扇区边缘,由于采样窗口期时间短,无法完成采样
- 判断采样窗口期是否足够,如果足够,直接进行采样,如果不足够,需要对pwm进行移相处理。
在FOC算法中计算矢量作用时长的这一步,我们已经计算出来了当前扇区里两个有效矢量作用时长分别是Ta、Tb。(Ta,Tb都是定时器计数值)因此我们能够采样的时间分别是Ta/2,Tb/2。
以图中情况为例在Ta/2时期下管状态为100,此时采样的电流为-Ia,在Tb/2时期下管状态为110,采样的电流为Ic,根据基尔霍夫定律Ia+Ib+Ic=0可以求出剩余一相Ib的电流。完成三相电流的重构。
如何判断采样窗口时间是否足够?
首先要确定我们完成采样需要多少时间,我们设这个时间是Tmin。
Tmin=Td+Tc+Ts
Td是死区时间,Tc是电流完全稳定需要的时间,Ts是AD采样需要的时间。
(不知道时间是多少的话,有个笨方法,可以把Tmin这个时间从小到大一点点加,试出这个时间)
确定了Tmin之后就可以判断采样窗口期是否足够了。
很显然只要Ta/2和Tb/2大于Tmin,采样窗口期就是足够的。直接采样就完事了。
反之Ta/2和Tb/2小于Tmin采样窗口期就不够我们去采样。这时候就需要移相了。怎么移,移的规律是什么。我直接给出我的总结
当Ta/2<Tmin时,把最大的占空比的那一相左移Tmin-Ta/2
当Tb/2<Tmin时,把最小的占空比的那一相右移Tmin-Tb/2
2.移相的代码怎么写?
SVPWM输出的时候是把值直接给到CCR里面,上面的图可以看出我们左移的时间为t,也就是前文所提到的Tmin-Ta/2对应的计数值。在判断需要移相后,我们只需要把SVPWM得出的值减去t,再给到CCR里,当计数器计到最大值时,也就是到达顶点时,再用SVPWM得出的值加上t,给到CCR里。这样就完成了移相,并且占空比没有改变。
3完善总结文章来源:https://www.toymoban.com/news/detail-402868.html
- 要在电流稳定之后注入ADC采样
- 在电流环的构建中,三相电流重构完成之后,需要进行Clarke变换,得出Iα以及Iβ,然后经过Park变换得出,Iq和Id。其实反馈回来的Iq和Id畸变程度较大,最好是在这里加一个低通滤波算法,把Iq和Id上的高频纹波滤掉,这样产生的三相电流也会更光滑。
生平第一次写博客,希望大家多多点赞。文章来源地址https://www.toymoban.com/news/detail-402868.html
到了这里,关于无感FOC算法中解决单电阻采样重构三相电流的难题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!