void DcBus_Ripple_suppress(MCFLIB_2_ALBE_T_S16 *sVAlBeIn, Q15_t s16Vbus, MCFLIB_2_ALBE_T_S16 *sVAlBe_Out) { int32_t temp32; temp32 = ((int32_t)(sVAlBeIn->s16Alpha)) * ((int32_t)(Q15(0.866))); temp32 = Division(temp32, s16Vbus) << 1;//0.866*2 = sqrt3 temp32 = (temp32 > INT16_MAX) ? INT16_MAX : temp32; /* high saturation */ temp32 = (temp32 < INT16_MIN) ? INT16_MIN : temp32; /* low saturation */ sVAlBe_Out->s16Alpha = (int16_t)(temp32); temp32 = ((int32_t)(sVAlBeIn->s16Beta)) * ((int32_t)(Q15(0.866))); //0.866*2 = sqrt3 temp32 = Division(temp32, s16Vbus) << 1; temp32 = (temp32 > INT16_MAX) ? INT16_MAX : temp32; /* high saturation */ temp32 = (temp32 < INT16_MIN) ? INT16_MIN : temp32; /* low saturation */ sVAlBe_Out->s16Beta = (int16_t)(temp32); } 注释
时间: 2024-03-27 20:42:05 浏览: 160
这段代码是一个函数,名为 DcBus_Ripple_suppress,它的作用是对输入的两个 ALBE 坐标系下的电压信号进行处理,以抑制直流总线上的纹波。这个函数使用了一些数学计算,包括将输入信号的 alpha 坐标系下的值乘以 0.866,然后再除以直流总线电压,最后将结果左移一位。同时也对计算结果进行了饱和处理,以确保输出信号在规定范围内。最后将处理后的结果存储在输出的 ALBE 坐标系下的电压信号中。
阅读全文