ST FOC5.x电机库 电流值如何转换为真实电流呢?
如题,我使用的是3电阻采样 hall传感器 BLDC电机在..MCSDK_v5.2.0-Full\MotorControl\MCSDK\MCLib\F1xx\Src\r3_hd2_pwm_curr_fdbk.c
这个文件的500行 有获取三个项的项电流 请问怎么转换为真实电流值?
pHandle->_Super.hIa = pStator_Currents->qI_Component1;
pHandle->_Super.hIb = pStator_Currents->qI_Component2;
pHandle->_Super.hIc = -pStator_Currents->qI_Component1 - pStator_Currents->qI_Component2;
还有在在drive_parameters.h文件中,这个IQMAX的值是怎么确定的??
/*Maximum Torque Per Ampere strategy parameters */
#define IQMAX 13901
#define SEGDIV 0
#define ANGC {0,0,0,0,0,0,0,0}
#define OFST {0,0,0,0,0,0,0,0}
用在相电流采样的ADC分辨率是12位,配成左对齐,意味着adc数据左移4位,相当于乘于16倍,ADC出来的数据肯定是16位。实际的电流有正负,而电路属于单电源系统,才需要做偏置(sdk中称polarization),程序中需要做减法才是实际的相电流,电流就有正有负,因此最终电流的结构体定义ab_t中的电流都是16位有符号数。 ((采集值-偏置)/Gain)*3.3/4096= v
I = V/R; qiubenqi 发表于 2019-3-22 20:49
((采集值-偏置)/Gain)*3.3/4096= v
I = V/R;
ST的不是这样算的吧 在路上… 发表于 2019-3-23 09:03
ST的不是这样算的吧
是的,只不过用的是S16,65536 qiubenqi 发表于 2019-3-24 16:47
是的,只不过用的是S16,65536
没看懂 请详述 感谢 在路上… 发表于 2019-3-29 09:49
没看懂 请详述 感谢
Phase current (16位采集电流值) = (Phase current (真实电流值)* 32767 * Rshunt *
*Amplifying network gain)/(MCU supply voltage/2) 楼主,解决了吗,求指教 同问 谢谢 AD采样数据左对齐的,换算一下嘛 在软件库里,电流是采用Q1.15的带符号数表示的,也就是正的最大值是32767,这个值对应的是电流采样放大器输出的最大电流值,对于一个好的电流放大器电路,要求把(1)极化电压(即DC OFFSET)调成电源的一半,也就是1.65V;(2)放大器增益适中,兼顾电流分辨率和最大电流不要饱和。因此,举个例子,以ST-EVAL_3201为例,它的中值为1.65V,动态范围可以用足,此时对于0.01欧姆的采样电阻,增益7.7,可以读到的最大电流为21.429A,如果电机的NOMINAL电流=10A的话,软件里的数值即为10/21.429*32767=15291,记住这个比例,如果IQ要设为1A,那就是1/21.429*32767=1529.F:\Temp\1.png
页:
[1]
2