本帖最后由 Angus 于 2024-9-12 14:36 编辑
Vd_out_f17, Vq_out_f17 是电流 PI 计算出来的,有可能它俩的模大于母线电压,再计算 SVPWM 时,就会出现 T1+T2 > PWM 周期的情况。这时会修正 T1+T2 = PWM 周期,输出电压就比 Vd_out_f17, Vq_out_f17 小了,这时若用Vd_out_f17, Vq_out_f17做位置估算,比实际输出电压值大,位置估算数值就出错了。
因此 SVPWM 若 T1+T2 > PWM 周期,就要修正 Vd_out_f17 = Vd_out_f17 * PWM 周期/(T1+T2), Vq_out_f17 = Vq_out_f17 * PWM 周期/(T1+T2),如此 Vq/Vd 又等于实际输出电压了。
代码如下
在做 SVPWM 时,I_beta,I_alpha 二者已赋值去掉15位小数的电压值Vq_out_f17, Vd_out_f17, Section 的低16位是未修正的 T1+T2
把电压修正后,552,553行恢复小数位后,赋值给Vq_out_f17,Vd_out_f17
此处修正用的不是PWM 周期,而是 Pwm_Duty_Uplimit,因为这个值是计算 SVPWM 的上限,T1+T2 大于这个值,就会修正到这个值。
|