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.

TI电机控制软件库里面,SVGEN_MF.h文件中几段程序如何理解?



部分代码如上图所示。

1.对TP的理解,从下面各扇区代码中可以看出TP为一个PWM周期,在程序中载波频率固定为4K,那么TP=1/4000,而这里却将TP赋值为_IQ(1.0),程序中IQ固定点小数位数为24位,请高手解释TP在上图代码中的深层含义?

2.#define PI_THIRD _IQ(1.04719755119660)    /* This is 60 degree */    根据TP=_IQ(1.0),TP=57.3 degree,这样算一下,对于TP我又不理解了?

3.StepAngle = _IQmpy(v.Freq,v.FreqMax);我的理解:StepAngle为电压空间向量合成的等效旋转电压的一个增量的角度,如果该电压向量旋转角速度为ω=2πf(这里的 f 即为输出频率,我的理解对吗?);若载波频率是fs,则频率比为 R = f s / f  。这样将电压旋转平面等 切 割 成 R  个 小 增 量 ,亦 即 设 定 电 压 向 量 每 次 增 量 的 角 度 是 : γ=2π/ R 。如果我的理解正确,那么本疑问3中的这个等式,该怎么理解呢?如果不正确,那么是哪点有错呢?

4.对于if (v.Alpha >= _IQ(1.0))   \  v.Alpha = v.Alpha-_IQ(1.0);这个条件语句如何理解呢?

5.dy = _IQsin(_IQmpy(v.NewEntry,PI_THIRD));   /* dy = sin(NewEntry) */   \  dx = _IQsin(PI_THIRD-_IQmpy(v.NewEntry,PI_THIRD));   /* dx = sin(60-NewEntry) */ 这句代码中后面的解释我能看懂,但是解释中sin(NewEntry)程序中为_IQsin(_IQmpy(v.NewEntry,PI_THIRD)),这个NewEntry又乘了60度角,我又不懂了,请高手指点?

对于IQ固定点小数的算法,我看了一点点,从我以上提问中,高手在答疑过程中能否提供一些这方面的资料或网站呢?

  • 又看了一遍看得有点懂了,但是还有一点不明白,

    StepAngle = _IQmpy(v.Freq,v.FreqMax)

    这个等式中:

    v.FreqMax=svgen_mf1.FreqMax = _IQ(6*fb*Ts);

    v.Freq=f(输入频率);

    而又:

     R = f s / f ;

    γ=2π/ R;

    从我的理解中StepAngle*60弧度=γ的;但是这样算一算,却是:f*6*fb*Ts*60弧度=2π/ f s / f (暂不看_IQ);

    左侧却多出了一个fb,这是为什么呢?