问题一、Clarke、IPark、svgen_dq这些都是_iq类型,这个是浮点数类型嘛?由于CCS6.2无法打开工程,所以都是看源文件,在IQmathLib里面有定义是浮点数,不知道是不是就这里定义。
问题二、Vb = _IQmpy(_IQ(-0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); 这个计算里面_IQmpy是乘法运算,那么v->Ualpha是浮点数,另外一个是Q格式,在进行_IQmpy运算时,是怎么处理的,浮点数转成Q格式,在进行运算?
问题三、如果问题一上面说的是浮点数,那么Clarke、IPark、计算出来的结果是不是会大于或者超过 1,这样是不是在PID那里会进行限制。还是说Clarke、IPark、这些的输入量就已经限制了,不会出现大于1的。
问题四、clarke1.As = _IQ15toIQ((int32)ilg2_vdc1.ImeasA);这个计算里是不是先将ilg2_vdc1.ImeasA(原本是Q15格式16位的数据)转换成Q0格式,这样就将小数部分转换为整数了,是这样的嘛?那为什么要强制转换成32位呢?
问题比较多,希望TI的工程师能一一解答。