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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版