你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST FOC5.x电机库 电流值如何转换为真实电流呢?

[复制链接]
在路上… 提问时间:2019-3-16 11:27 /
阅读主题, 点击返回1楼
收藏 1 评论14 发布时间:2019-3-16 11:27
14个回答
qy2110000 回答时间:2020-8-25 16:06:20
ST的AD左对齐,实际上出来的值是15位的,不是16位
stm32gxx 回答时间:2020-8-26 09:00:40
用在相电流采样的ADC分辨率是12位,配成左对齐,意味着adc数据左移4位,相当于乘于16倍,ADC出来的数据肯定是16位。实际的电流有正负,而电路属于单电源系统,才需要做偏置(sdk中称polarization),程序中需要做减法才是实际的相电流,电流就有正有负,因此最终电流的结构体定义ab_t中的电流都是16位有符号数。
fengjiaojiao 回答时间:2020-9-22 17:08:03
stm32gxx 发表于 2020-8-26 09:00
用在相电流采样的ADC分辨率是12位,配成左对齐,意味着adc数据左移4位,相当于乘于16倍,ADC出来的数据肯定 ...

大神,我的三电阻采样,想让电流的有效值显示在数码管上,该怎么做呀,拜托指点一下,愁死了
stm32gxx 回答时间:2020-9-22 19:10:19
电机转的好不好,跟FOC的控制相关,也就是相电流波形的正弦性才是反映电机控制好不好的关键,如果相电流的波形不好或者不对,也会算出来一个RMS值,无法评价控制的好坏,如果仅是要知道功率如何,可以想办法采母线上的电流,对于相电流的评价,通常需要用示波器要么监视采样电阻经运放后的波形,或者用电流传感器测相电流。如果非要读相电流,可以利用FOCVars这个变量下的iab,估计要存下至少一个周期的数据,再根据有效值的定义计算吧。
stm32gxx 回答时间:2020-9-23 09:05:26
给一个稍微具体的实现方式,仅供参考:
(1)库函数,__weak void R3_1_GetPhaseCurrents( PWMC_Handle_t * pHdl, ab_t * pStator_Currents )是用于采集相电流,每一次只采a,b,c中2相,组合并不是固定的,根据sectorX来,修改这个函数,要知道波形是一个周期,可以根据sectorX的变化判断是否满足一个周期,在数据未达到一个周期前,根据需要把这些电流存起来
  pHandle->_Super.Ia = pStator_Currents->a;
  pHandle->_Super.Ib = pStator_Currents->b;
  pHandle->_Super.Ic = -pStator_Currents->a - pStator_Currents->b;
(2)如果采满一个周期,就开始计算RMS,这个可能需要一段时间,这期间就不用再存电流,等算好后,就可以显示;接着开始下一次取电流。
这样的方法不是实时的,有些电流周期数据没有计算进去,不过对于数码管这种低速的显示,应该是可以了。

另外也可以用纯硬件实现,比如,每次abc相电流采样结束,把电流值用dac输出,然后再接到专用有效值芯片,那么芯片就一直输出有效值,供mcu的adc采集就可以,这样不需要mcu参加有效值的计算。
12

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版