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.

[参考译文] 关于controlSUITE Vd/VQ &SVPWM的问题

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/617765/question-about-controlsuite-vd-vq-svpwm

我使用 的是TMDSHVMTRPFCKIT 和HVMotorCtortc+pfcKit_v SVPWM/HVPM_Sensored_Servo项目以及低于2.1 的项目。

1.我想知道下面有关SVPWM(v 4.1 的详细说明。 如何选择扇区并计算PWM占空比Ta,TB,TC?

UBETA,Ualpha是否使用实际直流总线电压标准化?  

2.我收到了下面有关计算实际Vd/VQ的答案。 实际直流总线电压乘法的理论基础是什么?

为确保实际Vd/VQ值正确,我使用万用表在1500RPM下测量了U&V线对线电压。 V线对线= 110V_rms

然后,U相峰值电压为110*sqrt(2)/sqrt(3)=89.8V (sqrt(2)用于 从rms转换为峰值,sqrt(3)用于从线到线转换为相位)

我认为vs=sqrt(Vd^2 + VQ^2)*300 (实际直流总线电压)=103V应与U相峰值1.5 =134.7V相同。 (VD = PI_ID.OUT,VQ = PI_IQ.OUT为PU)

但不同。 我错了吗?  

我想确保实际Vd/VQ值正确。

请帮帮我。

SVPWM

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    作为您的另一篇文章。
    1. svgen_comm.h中的SVPWM基于PWM,其共模信号添加到三相PWM逆变器的所有三个调制信号中。 共模信号由供电频率的第三个谐波组成。 线路输出将不包含共模信号,因为相同的共模信号会添加到所有三个相位。 此svgen模式不需要计算扇区,如果需要扇区,则必须使用svgen.h中的模式。 输出(TA/TB/TC)在两种模式中相同,这是PWM输出的占空比。
    2. PI稳压器的Vd/VQ输出基于刻度电压,实际电压需要乘以直流总线电压,然后乘以0.816 (如果标准svpwm模式没有过度调制)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Yanming。
    1.基本上,HVPM_Sensored_Servo项目使用svgen.h,如下所示。
    我想了解以下代码的原理,而不是svgen_comm.h
    查看代码,选择Sector (扇区)并计算Ta,TB,TC。

    #define SVGENDQ_MACRO (v)
    V.tmp1= v.Ubeta;
    V.tmp2=_IQdiv2 (v.Ubeta)+(_IQpumpy (_IQ (0.866),v.Ualpha));
    v.tmp3= v.tmp2 - v.tmp1;

    V.VecSector=3;
    V.VecSector=(v.tmp2>0)?(v.VecSector-1):v.VecSector;
    V.VecSector=(v.tmp3>0)?(v.VecSector-1):v.VecSector;
    V.VecSector=(v.tmp1<0)?(7-v.VecSector):v.VecSector;

    如果 (V.VecSector=1 || v.VecSector=4)
    { V.Ta= v.tmp2;
    V.TB= v.tmp1-v.tmp3;
    V.tc=-v.tmp2;
    }

    否则,如果(v.VecSector=2|| v.VecSector=5)
    { V.Ta= v.tmp3+v.tmp2;
    V.TB= v.tmp1;
    V.tc=-v.tmp1;
    }

    否则
    { V.Ta= v.tmp3;
    V.TB=-v.tmp3;
    V.tc=-(v.tmp1+v.tmp2);
    }


    2.什么是0.816 ?
    我想知道电压标度发生在哪里。
    在当前情况下,ADC接收到-10A ~ 10A到-1 ~ 1。