主题中讨论的其他部件:DRV8305
工具/软件:Code Composer Studio
您好,TI:
我们正在使用F2.8062万F,DRV8305和Instaspin FOC创建定制速度控制器。 迄今为止,FOC的性能给我们留下了深刻的印象,但最近我们对这个问题感到沮丧,在消耗了十多个DRV和TMS之后,我们仍然无法解决这个问题。
问题:在低速(<2krpm)时,电机仅在最大电流下停止,并在卸载负载后快速恢复。 但是,在中,高速(>4krpm)时,马达停止运转2-3秒并开始尖叫。 同时,DRV nFault针脚拉低,但未通过SPI报告故障。 很明显,转速越高,电机开始尖叫的速度越快。 转速为6krpm时,电机很容易停止,并且Drv故障会立即触发。 经过十几辆摩托车的尖叫,DRV和TMS终于被淘汰。
尝试次数:
1)我们使用不同的PWM切换频率(从30kHz到45khz)和控制环路频率。 此外,PWM频率越高,触发drv故障的电机速度也越低。 这与我们认为频率越高,电机控制就越好,这是不直观的。
2)我们为供油泵(高压和低压侧)和DRV的PVDD加注了盖子。
3)我们还在经过drv的电流感应线路上添加二极管,并调整电阻器值,以便为ADC引脚上的电压峰值提供足够的空间。
4)我们还对不同速度范围使用分段PID。
以下是我们的硬件和用户设置:
驱动器IC:DRV8305N
shunts:3mohm
电机:业余级,KV900,目标最大速度1.08万RPM
我们已配置了Vsense和Isense电阻器和电流盖,如下所示:
#define user_IQ_full比例FREQ_Hz (1516.7)
#define user_IQ_full标度电压V (17.0)
#define user_ADC_FULL比例电压_V (25.12)
#define user_IQ_full比例当前A (56.0)
#define user_ADC_FULL比例电流A (110.0)
#define user_motor_type motor_Type_pm
#define user_motor_NUM_pole_pairs (7)
#define user_motor_rr (空)
#define user_motor_Rs (0.0336407572)
#define user_motor_ls_d (7.406.8543万e-06)
#define user_motor_ls_q (7.406.8543万e-06)
#define user_motor_rated流量(0.0.6154万94233</xmt-block>9.4233万)
#define user_motor_magniting_current (空)
#define user_motor_RES_EST_Current (3.0)(#define user_motor_RES_EST_
#define user_motor_IND_EST_current (3.0)
#define user_motor_MAX_current (40.0)
#define user_motor_flue_EST_FREQ_Hz (100.0)
#define user_PWM_FREQ_kHz (30.0)//或45.0
#define user_NUM_PWM_TICS_PER_ISR_TICK (3)
#define user_NUM_ISR_TICS_PRL_TICK (1)
#define user_NUM_CTRL_TICS_PRIVATS_PRIVATE_TICK (1)
#define user_NUM_CTRL_TICS_PRIVATS_PRE_EST_TICK (1)
#define user_NUM_CTRL_TICS_PRIVE_per speed_tick (10)//或15
我非常感谢TI员工的帮助,因为我们现在正赶上项目的最后期限。
谢谢!
新街