#define BASE_CURRENT 10 // Base peak phase current (amp), Max. measurable peak curr.
实际电流峰值为10A。
第一步:
if (IsrTicker>=5000)
{
offsetA= _IQmpy(K1,offsetA)+_IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT1));//Phase A offset
offsetB= _IQmpy(K1,offsetB)+_IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT2));//Phase B offset
offsetC= _IQmpy(K1,offsetC)+_IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT3));//Phase C offset
}
上述代码为一数字低通滤波器,循环N次后求得采样通道的静态偏差(即实际电流为0时的DSC采样值)。
第二步:clarke变换模块的输入将ADC采样值(减掉静态偏差后)放大两倍。
clarke1.As = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT1)-offsetA); // Phase A curr.
clarke1.Bs = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT2)-offsetB); // Phase B curr.
以上是HVPM_Enhanced_Sensorless软件对相电流的采样标幺化全部过程。
由于实际电流大小是-10A~10A,标幺化后的变化范围应该是_IQ(-1)~_IQ(1),这一标幺化的过程由硬件与软件共同完成,而DSC采样范围为0~3.3V(对应ADC12位结果寄存器值为0~4096,12位数值定标范围为_IQ12(0)~_IQ12(1))。
按照我的理解,第二步中将ADC采样值放大两倍,使标幺化的结果为_IQ(-1)~_IQ(1),那么ADC采样值的范围就应该是_IQ(-0.5)~_IQ(0.5),这又与12位ADC采样范围_IQ12(0)~_IQ12(1)矛盾(即ADC采样结果不可能得到负值)。。。
问题:
1.HVPM_Enhanced_Sensorless工程对应的TI官方开发套件相电流调理采样到DSC时是什么范围(我使用的是其它硬件)?
2.何以ADC本来只能采样_IQ12(0)~_IQ12(1)的范围,软件中没有进行平移处理,而是直接放大两倍就得到标幺结果_IQ(-1)~_IQ(1)的范围,_IQ(-1)~_IQ(0)范围的结果是怎样得到的?