Floating point 智商数学计算
有人能解释一下下面的对话是如何进行的吗Floating point 智商数学计算,floating-point,piccolo,Floating Point,Piccolo,有人能解释一下下面的对话是如何进行的吗 clarke1.As =_IQ15toIQ((AdcResult.ADCRESULT0<<3)-_IQ15(0.50))<<1; clarke1.As=\u IQ15toIQ((AdcResult.ADCRESULT0您发布的讨论假设了用户方面的一些事情: 熟悉ADC测量电路 熟悉TI的IQMath格式 我会尽力解释答案,但如果仍有不清楚的地方,请仔细阅读以上两条 假设您正在使用picollo控制器测量+-10A范围。 让我们考虑
clarke1.As =_IQ15toIQ((AdcResult.ADCRESULT0<<3)-_IQ15(0.50))<<1;
clarke1.As=\u IQ15toIQ((AdcResult.ADCRESULT0您发布的讨论假设了用户方面的一些事情:
熟悉ADC测量电路
熟悉TI的IQMath格式
我会尽力解释答案,但如果仍有不清楚的地方,请仔细阅读以上两条
假设您正在使用picollo控制器测量+-10A范围。
让我们考虑在ADC上通过信号调理电路测量I=+5A。这个信号调理电路将负责抵消-10A到0V和+10A到3.3V。
i、 e.+-10A在ADC输入端被缩放为0-->3.3V,其中0A值在ADC端被读取为1.65V
也就是说,i=5A转换为1.65V+(1.65/2)V=2.475V
等效的12位ADC计数为=(4095*2.475V/3.3V)=3071。
现在,正如您已经提到的,这个12位计数存储在一个16位寄存器中。
此外,正如已经提到的,这是正确的。
i、 e.编号存储如下
AdcResult.ADCRESULT0=0x0BFF
AdcResult.ADCRESULT0:00111
现在,为了进一步处理FOC或任何其他算法,您需要将该数字转换为等效的+-1 pu值。这意味着,您需要将ADC结果乘以某个值,并要求结果为浮点值。虽然控制器可以直接实现这一点,但仅乘法运算就需要消耗大量的pr处理时间!为了加速这些运算,特别是分数运算,德州仪器公司的C28x处理器在代码中使用IQMath格式。更多信息,请参阅本文末尾的链接
首先,16位ADC结果“按原样”复制到32位累加器中
值:0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1
然后,将其转换为IQ15格式,其中最后15位表示小数部分,左对齐。因此,q值为:
Q值=0 0 1 0 1 1 1 1 1
这是错误的,因为前三位是零,我们的信息是从第四位开始存储的。因此,编码器将值向左移动了3位以校正Q值。
因此,IQ15值变为:
ADC值_Q15=
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0
减去偏移量=0.5,即2^(-1),因此Q值为:
偏移量_Q15:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ADC结果_Q15=ADC值_Q15-偏移量_Q15
ADCResult_Q15=
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
这个值仍然是IQ15,它被转换成全局Q值,我猜应该是Q24
ADCResult_Q24=
0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
因为这只是电流振幅的一半(由于符号位处理+),我们现在应该将其乘以2。
这是由编码器通过代码中的左移智能完成的
结果(Q24)=
0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
如果我只看Q值,它在Q24格式的上面第9位之后开始,我会在这里得到pu中ADC操作的结果:
Q值=0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
转换成等价数,符号=0,int_值=0
ADC_值_pu=0*(2^(-1))+1*(2^(-2))+1*(2^(-3))+1*(2^(-4))+
1*(2^(-5)) + 1*(2^(-6)) + 1*(2^(-7)) + 1*(2^(-8)) + 1*(2^(-9)) +
1*(2^(-10))
ADC_值_pu=0.499
对于测量+-10A的ADC,它是5A的等效pu表示
我希望这能解释它。有关更多信息,请通过以下链接花一天时间理解IQMath格式: