部分代码如上图所示。
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固定点小数的算法,我看了一点点,从我以上提问中,高手在答疑过程中能否提供一些这方面的资料或网站呢?
