TI精英们,
我在用FOC驱动电机时,发现当:
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
电机可以正常的工作,但是如果我对调一下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
则电机无法正常运转,且电流很大,不知道为什么?
谢谢!盼回复
user151383853:
clarke 变换, 是电流矢量的变换计算, 怎么可以替换 XY 分量呢?
TI精英们,
我在用FOC驱动电机时,发现当:
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
电机可以正常的工作,但是如果我对调一下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
则电机无法正常运转,且电流很大,不知道为什么?
谢谢!盼回复
Joey Mao:
你将A、B相电流交换了,直接导致的是clarke模块的输出变了,进而导致后面一系列的模块输入和输出都变了,而其他相关信息如矢量角度等却没有变,这时候有输出却不是正确的矢量输出,电机却转不起来而电流很大
TI精英们,
我在用FOC驱动电机时,发现当:
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
电机可以正常的工作,但是如果我对调一下:
clarke1.As= -(_IQ15toIQ((AdcResult.ADCRESULT6<<3)-cal_offset_A)<<1);
clarke1.Bs= -(_IQ15toIQ((AdcResult.ADCRESULT3<<3)-cal_offset_B)<<1);
则电机无法正常运转,且电流很大,不知道为什么?
谢谢!盼回复
dfde jiems:
回复 Joey Mao:
谢谢 Joey Mao 的回复,
之前之所以做交换,是因为我不知道,实际电机的相序是什么样子的,也就不知道我采集的是不是ia 和 ib,
如果在设计之初,我该如何找到clarke变换中的输入电流对应关系?

TI中文支持网



