// convert voltage C
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);
value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[2] = value;
// read the dcBus voltage value
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf);
pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
bob iuuiy:
求各路大神帮忙解答一下,谢谢
// convert voltage C
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);
value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[2] = value;
// read the dcBus voltage value
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf);
pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
Eric Ma:
// convert voltage Cvalue = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12pAdcData->V.value[2] = value;
// read the dcBus voltage valuevalue = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12value = _IQ12mpy(value,voltage_sf);pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
ERIC:
母线电压之所以不用减,因为是直流信号,直接测得是母线的电压,也没什么偏置好减。
测三相电压,就是测电机的反电动势,测的是电阻分压后且并联的那个低通滤波器电容处的电压。那个电压在电机没有运行的情况下,是有个偏置电压的,即50%占空比的母线电压分压后的电压值。这个偏置电压会将电机的交流反电动势电压给抬升一下,这样才能够测电机反电动势的交流信号。类似测交流电流。
Eric
// convert voltage C
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);
value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[2] = value;
// read the dcBus voltage value
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf);
pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
bob iuuiy:
回复 Eric Ma:
谢谢您的回答,然后交流电流的的偏置我基本知道,但是对相电压的检测还有以下几个疑问,希望您能不吝解答,
1.电压的检测像上面的检测电路,它检测到的电压应该是一组0-Vdc的PWM波,经过AD检测以后减去偏置以后,它仍然是正负PWM波呀,跟反电动势怎么对应呢?
2.对于电压偏置是如上图所示的公式计算吗?
// convert voltage C
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);
value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[2] = value;
// read the dcBus voltage value
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf);
pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
rookiecalf:
回复 bob iuuiy:
采样有滤波,只考虑低频部分。电压偏置理解成0V对应采样电平就好。
// convert voltage C
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_6);
value = _IQ12mpy(value,voltage_sf) – obj->adcBias.V.value[2]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[2] = value;
// read the dcBus voltage value
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf);
pAdcData->dcBus = value;
如上面两段代码,为什么C相电压要减去一个偏置,而母线电压没有减呢?其中obj->adcBias.V.value[2]是表示的偏置吗?其设置是在下面代码处设置吗
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
bob iuuiy:
回复 rookiecalf:
那是软件滤波,还是硬件滤波呢,截止频率增么算