TI中文支持网
TI专业的中文技术问题搜集分享网站

关于controlSUITE内的ADC offset问题

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

rookiecalf:

offset那个偏值就是0.5,应该采样采的只有正值,而实际电流是有正负的,这样0就是采样的中性点

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

chuang hou:

回复 rookiecalf:

我的意思是我在代码中找不到把offset设置为0.5的地方。

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

chuang hou:

回复 rookiecalf:

     初始值设置为0,然后经过了一个offset的滤波环节,只是是offset获得了没有电流时候的ADC本身偏差值,并没有设置0.5的过程啊?

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

rookiecalf:

回复 chuang hou:

我的理解是这样的,设计的时候是采样范围做归一,就是0.00024414这个系数了,而offset作为实际中点,就是0.5了

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

chuang hou:

回复 rookiecalf:

    设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间,那么注释当中-0.5~0.5就得不到嘛。

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

rookiecalf:

回复 chuang hou:

chuang hou

    设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间��那么注释当中-0.5~0.5就得不到嘛。

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

rookiecalf:

回复 chuang hou:

chuang hou

    设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间,那么注释当中-0.5~0.5就得不到嘛。

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

chuang hou:

回复 rookiecalf:

   我明白offset应该是0.5左右,我的意思是,我offset的值是哪句代码得到的,应该有一个初始的设置过程,offset = 0.5之类的吧

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

chuang hou:

回复 rookiecalf:

    多谢,懂了

赞(0)
未经允许不得转载:TI中文支持网 » 关于controlSUITE内的ADC offset问题
分享到: 更多 (0)