TI中文支持网
TI专业的中文技术问题搜集分享网站

请问一下以下代码在SVPWM这个程序模块里是什么意思

在2812 SVPWMSVGEN_DQ.C里有这样一行代码:

………….

// Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signed GLOBAL_Q format (ranged (-1,1))
    v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5)));
    v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5)));
    v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5))); 请问是什么意思?

可能是我没有表达清楚,Ta 、Tb、 Tc是时间的比值,(我认为)是在(0,1)范围内变化,现在不明白为什么转到(-1,1)范围,为什么?

10#:

这个注释已经说得很清楚了,就是将无符号的Q格式数据转换为有符号的Q格式数据,范围从原来的(0,1)变为(-1,1).

其实上面的式子也就等效于(将Q格式去掉的话):x = 2 * (x – 0.5) 也即 x = 2x – 1.

在2812 SVPWMSVGEN_DQ.C里有这样一行代码:

………….

// Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signed GLOBAL_Q format (ranged (-1,1))
    v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5)));
    v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5)));
    v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5))); 请问是什么意思?

可能是我没有表达清楚,Ta 、Tb、 Tc是时间的比值,(我认为)是在(0,1)范围内变化,现在不明白为什么转到(-1,1)范围,为什么?

qiang men:

回复 10#:

(0,1)的范围用着不是挺好吗   为什么要变成(-1,1)的范围 ??这样在pwm-drv的时候还要再把范围再变回来,多麻烦啊

另外,在(0,1)范围的时候Ta,Tb,Tc表示的是低电平的占空比吗?   还有个疑问就是,在phase-volt-calc文件中   直接就用了(-1,1)范围的Ta,Tb,Tc

来计算相电压  这样做看不懂啊!求高人指点下   谢谢啦

在2812 SVPWMSVGEN_DQ.C里有这样一行代码:

………….

// Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signed GLOBAL_Q format (ranged (-1,1))
    v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5)));
    v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5)));
    v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5))); 请问是什么意思?

可能是我没有表达清楚,Ta 、Tb、 Tc是时间的比值,(我认为)是在(0,1)范围内变化,现在不明白为什么转到(-1,1)范围,为什么?

user4520307:

回复 qiang men:

我也有同样的疑问:

1.为什么在phase-volt-calc模块中是直接用(-1,1)范围的Ta Tb Tc  这样算出来的Van  Vbn   Vcn  不是扩大了两倍吗?

2.为什么volt1.DcBusVolt 是直接AD采样的值变成Q24格式然后在相电压重构模块中使用,如果这样的话volt1.DcBusVolt就不是以Vb(可测量的最大值母线电压/根号3)为基值的标幺值了?

3.为什么公式v.Gsmopos = (v.Vb/v.Ib)*(1/v.Rs)*(1-v.Fsmopos)  中有个(v.Vb/v.Ib)???

望TI的大神们能解答一下我一小菜鸟的疑问,不甚感激!!!!

赞(0)
未经允许不得转载:TI中文支持网 » 请问一下以下代码在SVPWM这个程序模块里是什么意思
分享到: 更多 (0)