This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

instaspin-foc用api获取的相电流比用电流钳测得的大是什么原因呢?

Other Parts Discussed in Thread: LAUNCHXL-F28069M, BOOSTXL-DRV8305EVM, DRV8305

大家好,我在使用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));