This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TIDM-1000: VIENNA例程电压电流参数检测

Part Number: TIDM-1000


请问这个电压电流参数的VIENNA_iL1Meas_pu是电流的实时检测值吗,VIENNA_iL1MeasOffset_pu为什么这样用呢,我看到之前有个帖子说是吧(-0.5-0.5)转成(-1-1)是什么意思呢,没搞明白

static inline void VIENNA_readCurrVolADCSignals(void)
{

VIENNA_iL1Meas_pu = (((float32_t)(VIENNA_IL1_FB_1 + VIENNA_IL1_FB_2 +
VIENNA_IL1_FB_3 + VIENNA_IL1_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_iL1MeasOffset_pu ) * 2.0f;
VIENNA_iL2Meas_pu = (((float32_t)(VIENNA_IL2_FB_1 + VIENNA_IL2_FB_2 +
VIENNA_IL2_FB_3 + VIENNA_IL2_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_iL2MeasOffset_pu ) * 2.0f;
VIENNA_iL3Meas_pu = (((float32_t)(VIENNA_IL3_FB_1 + VIENNA_IL3_FB_2 +
VIENNA_IL3_FB_3 + VIENNA_IL3_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_iL3MeasOffset_pu ) * 2.0f;

VIENNA_v1Meas_pu = (((float32_t)(VIENNA_V1_FB_1 + VIENNA_V1_FB_2 +
VIENNA_V1_FB_3 + VIENNA_V1_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_v1MeasOffset_pu ) * 2.0f;
VIENNA_v2Meas_pu = (((float32_t)(VIENNA_V2_FB_1 + VIENNA_V2_FB_2 +
VIENNA_V2_FB_3 + VIENNA_V2_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_v2MeasOffset_pu ) * 2.0f;
VIENNA_v3Meas_pu = (((float32_t)(VIENNA_V3_FB_1 + VIENNA_V3_FB_2 +
VIENNA_V3_FB_3 + VIENNA_V3_FB_4)) *
VIENNA_ADC_PU_SCALE_FACTOR * 0.25f - VIENNA_v3MeasOffset_pu ) * 2.0f

  • VIENNA_iL1Meas_pu应该是采样值经过调理、补偿等等处理之后的标幺值。

    VIENNA_iL1MeasOffset_pu就是补偿。

    “* 2.0f”是为了把数值从(-0.5-0.5)转成(-1-1)。

  • VIENNA_iL1MeasOffset_pu这个补偿是他的直流偏置吗,为什么这样计算呢

  • while(VIENNA_offsetCalCounter < 25000)
    {
    if(VIENNA_HAL_getPWMInterruptFlag(
    VIENNA_C28x_ISR1_INTERRUPT_TRIG_PWM_BASE) == 1)
    {
    if(VIENNA_offsetCalCounter > 1000)
    {
    //
    // offset of the inductor current sense
    //
    VIENNA_iL1MeasOffset_pu = VIENNA_k1 * (VIENNA_iL1MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_IL1_FB_1 + VIENNA_IL1_FB_2 +
    VIENNA_IL1_FB_3 + VIENNA_IL1_FB_4 )
    * 0.25 * VIENNA_ADC_PU_SCALE_FACTOR;
    VIENNA_iL2MeasOffset_pu = VIENNA_k1 * (VIENNA_iL2MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_IL2_FB_1 + VIENNA_IL2_FB_2 +
    VIENNA_IL2_FB_3 + VIENNA_IL2_FB_4)
    * 0.25 * VIENNA_ADC_PU_SCALE_FACTOR;
    VIENNA_iL3MeasOffset_pu = VIENNA_k1 * (VIENNA_iL3MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_IL3_FB_1 + VIENNA_IL3_FB_2 +
    VIENNA_IL3_FB_3 + VIENNA_IL3_FB_4)
    * 0.25 * VIENNA_ADC_PU_SCALE_FACTOR;

    //
    // offset of the inductor current sense
    //
    VIENNA_v1MeasOffset_pu = VIENNA_k1 * (VIENNA_v1MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_V1_FB_1 + VIENNA_V1_FB_2 +
    VIENNA_V1_FB_3 + VIENNA_V1_FB_4)
    * 0.25f * VIENNA_ADC_PU_SCALE_FACTOR;
    VIENNA_v2MeasOffset_pu = VIENNA_k1 * (VIENNA_v2MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_V2_FB_1 + VIENNA_V2_FB_2 +
    VIENNA_V2_FB_3 + VIENNA_V2_FB_4)
    * 0.25f * VIENNA_ADC_PU_SCALE_FACTOR;
    VIENNA_v3MeasOffset_pu = VIENNA_k1 * (VIENNA_v3MeasOffset_pu) +
    VIENNA_k2 * (VIENNA_V3_FB_1 + VIENNA_V3_FB_2 +
    VIENNA_V3_FB_3 + VIENNA_V3_FB_4)
    * 0.25f * VIENNA_ADC_PU_SCALE_FACTOR;
    }
    VIENNA_HAL_clearPWMInterruptFlag(
    VIENNA_C28x_ISR1_INTERRUPT_TRIG_PWM_BASE);
    VIENNA_offsetCalCounter++;
    }
    }

  • 可以帮下忙吗,VIENNA_iL1MeasOffset_pu补偿没有看懂

  • 你好,iL1是:Inductor current measurement Ph1,所以VIENNA_iL1MeasOffset_pu就是相位1的电感电流测试值的补偿。

    但是官网提供的资料确实没有对补偿的计算给出更多的解释,如果你确实要了解这方面的信息的话可以去英文E2E上咨询一下这个问题,英文E2E上会有产品线的工程师对这个设计更加了解,资料也更多些:

    https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum 

  • 好的,谢谢