在程序中采集电流的公式如下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1); //采集Ia
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
(1)其中:(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)为什么多了个负号“-”
(2)通过测试发现,不加负号电机无法运作,加负号后可以工作;
(3)把clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)前面的负号去掉如下,
改为采集Ic和Ib。
clarke1.As= (_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_C)<<1); //采集Ic
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
发现电机也可以运行,而且运行的很好,请问为什么要加符号,加与不加的原因是什么?
Young Hu:
看电流采样运放的极性来设置。
在程序中采集电流的公式如下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1); //采集Ia
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
(1)其中:(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)为什么多了个负号“-”
(2)通过测试发现,不加负号电机无法运作,加负号后可以工作;
(3)把clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)前面的负号去掉如下,
改为采集Ic和Ib。
clarke1.As= (_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_C)<<1); //采集Ic
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
发现电机也可以运行,而且运行的很好,请问为什么要加符号,加与不加的原因是什么?
dfde jiems:
回复 Young Hu:
谢谢,鸵鸟蝈蝈,
我的原理图如上:
当采集到的电压< 1.65V时候认为是电流小于0
当采集到的电压 >1.65V时候认为是电流大于0
所以我觉得是不是跟clarke变化有关系?
因为当我把:iAlpha = ic,而不是iAlpha = ia,
因为我不确定那一相是ia,所以前面的符号是不是和所选取的电流相序有关?
在程序中采集电流的公式如下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1); //采集Ia
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
(1)其中:(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)为什么多了个负号“-”
(2)通过测试发现,不加负号电机无法运作,加负号后可以工作;
(3)把clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_A)<<1)前面的负号去掉如下,
改为采集Ic和Ib。
clarke1.As= (_IQ15toIQ((AdcResult.ADCRESULT2<<3)-cal_offset_C)<<1); //采集Ic
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);//采集Ib
发现电机也可以运行,而且运行的很好,请问为什么要加符号,加与不加的原因是什么?
dfde jiems:
回复 dfde jiems:
鸵鸟蝈蝈,
取决于运放电流极性如何理解?
在线等!