大家好,我在使用LAUNCHXL-F28069M和自己画的BOOSTXL-DRV8305EVM测试永磁电机时候遇到了一点问题过来请教一下。
我使用的是10毫欧姆的采样电阻测相电流,经过驱动芯片drv8305内部运放负反馈差分放大放大10倍后滤波到单片机。
所以ADC全范围测量电流=3.3V/10/0.01r=33A。
配置文件里面
#define USER_IQ_FULL_SCALE_CURRENT_A (24.0)
#define USER_ADC_FULL_SCALE_CURRENT_A (33.0)
#define I_A_offset (0.6967585087)
#define I_B_offset (0.6967585087)
#define I_C_offset (0.6967585087)
实际使用时侯,我相电流最大值设置为10A
#define USER_MOTOR_MAX_CURRENT (10.0)
然后设定一个转速,稳定后利用下面3个公式更新的值相电流在6.7A附近,但用电流钳出来只有4.3A左右。调高减小转速也基本保持这个比例,我这个是硬件问题还是软件问题呢?
// read Id and Iq vectors in amps
gMotorVars.Id_A = _IQmpy(CTRL_getId_in_pu(ctrlHandle), _IQ(USER_IQ_FULL_SCALE_CURRENT_A));
gMotorVars.Iq_A = _IQmpy(CTRL_getIq_in_pu(ctrlHandle), _IQ(USER_IQ_FULL_SCALE_CURRENT_A));
// calculate vector Is in amps
gMotorVars.Is_A = _IQsqrt(_IQmpy(gMotorVars.Id_A, gMotorVars.Id_A) + _IQmpy(gMotorVars.Iq_A, gMotorVars.Iq_A));
Green Deng:
你好,个人认为软件问题的可能性更大些,建议你尝试一下用官方的采样程序测试同一个电路的电流。
user4448183:
回复 Green Deng:
我这就是官方的例程呀lab02a,在updateGlobalVariables_motor函数里面加上了读取Iq,Id和Is的代码。。软件部分没改别的。硬件部分官方板子采样电阻是7mr我改成了10mr,然后根据计算把USER_ADC_FULL_SCALE_CURRENT_A从原来的47.14A改成了33A。
user5912823:
回复 user4448183:
我遇到了同样的问题,参数显示的电流值很大,但实际电流值很小,不知道什么原因?