编者:沉尸 (5912129@qq.com)
问题的提出:
1)ST电机库中电流采样的实现
2)每个电角度周期,共跨越6个sector,STM32F407中有两个ADC(ADC1和ADC2),所以在同一个时刻,可以采样UVW三路中的二路(另一路可以推导出来),这些电流值带着符号,那么:源码中每个sector采集哪二路呢?
一)针对电流采样的ADC触发的软件流程描述
stm32f407中TIM1 的ch1~ch3用来输出互补型6路pwm分别控制上下臂的6个mos管;ch4用来控制ADC触发的位置
二)电流采集选择哪二相?
首先源代码中的sector对应的值和Hall传感器对应的状态机的值不是一回事
源代码中sector顺序编码,是这样的:
源代码“Src\mc_parameters.c”中,配置在不同的sector采集不同的两路相电流:
“MCLib\F4xx\Inc\r3_2_f4xx_pwm_curr_fdbk.h”文件中定义有:
根据设置,可以知道
CH3对应U
CH4对应V
CH6对应W
全部的sector都构造成固定采集A相和B相,不香吗?这样设计有何考虑呢?
下面的图4可以查阅《马达控制之FOC原理.docx》,是第I扇区波形图
图5摘自《ST MC SDK 5.x 相电流检测与重构 位置速度信息获取.pdf》第8页
结合表1、图4和图5,很容易看出规律:
在第I扇区,“A+相”相比于B+和C+,它处于高电平的时间最长,那么反过来说,“A-相”处于低电平的持续时间最短,所以在第I扇区,不要采集A相,时间太短,对采集点的要求就高了很多,因为采集点要避开管子开关的时间等等。
其它的各扇区依次类推。
采样时间点的选择:
可以参考ST的培训资料,另一个渠道是从硬石公司的资料中可以进行理解
下面我截屏其中的部分
注明: 本图片版权完全属于“硬石公司”,这里引用,如果有侵权,请联系本人,本博文目的完全是给技术控们贡献一点点自己的理解,没有半点商业行为!
图中绿色阴影部分,也就是C相的下桥臂导通的时间,如果它比“hTafter”时间长2倍,因为C相导通的时间段里有充裕时间进行ADC的采集
在ST马达库 “r3_2_f4xx_pwm_curr_fdbk.c”的源代码中,进行了推而广之:如果三相中下臂桥导通时间最短的那个(也许是A相或者B相),只要满足上面的条件,我们都固定去采集A相和B相,反正时间都足够!
图中B段的时间无法满足进行ADC采样(< hTafter * 2),因为我们只需要采集两相电流,那么我们可以不考虑C相(C相下臂桥导通时间太短了),仅仅采集A相和B相,但是需要满足图中的时间段 A > B
此时将采样区间从C相下桥臂的开通点向前提前,避开“B时间段”
为什么满足了 “A时间段”> “B时间段”, 那么采样点就可以设置在hCntPhc – hTBefore 处呢?
我觉得应该满足的条件是:
hDeltaDuty > (hTafter + hTbefore)
从已知条件:
B < 2* hTafter
hDeltaDuty > B
也推不出我希望的条件!!!
上面第(3)种,无法避开所有干扰,只能硬着头皮采样了...
具体源代码请查阅:文章来源:https://www.toymoban.com/news/detail-644274.html
文章来源地址https://www.toymoban.com/news/detail-644274.html
到了这里,关于ST电机库v5.4.4源代码分析(5): 每个扇区里面如何选择采样哪二相电流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!