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.

[参考译文] CCS/TMS320F2.8062万F:达到最大电流之前电机控制故障

Guru**** 2540720 points
Other Parts Discussed in Thread: DRV8305

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/630811/ccs-tms320f28062f-motor-control-failure-before-reaching-max-current

部件号:TMS320F2.8062万F
主题中讨论的其他部件: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员工的帮助,因为我们现在正赶上项目的最后期限。

谢谢!

新街

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我忘记了,在转速较高时,电机开始尖叫,然后才达到最大电流的70 %。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于DRV8305的nFAULT引脚变为低电平,这表示发生了由驱动程序引起的错误事件。 您需要检查DRV8305的状态寄存器,以了解锁定的故障。

    根据您描述的情形,DRV8305似乎锁定了过电流故障,您可以尝试设置更高的VDS_LEVEL以扩展驱动程序的电流限制。

    回读并检查控制寄存器以确认SPI对于DRV8305正常,如果出现故障,则应更改状态限制器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Yanming,

    非常感谢!

    我将增大VDS_LEVEL以查看故障是否仍被触发。

    我们使用lab05启动,并且没有更改DRV SPI模块上的任何内容。 我们通常会将DRV故障针脚拉低,但在调试窗口中根本看不到任何锁定的故障。 (我们浏览了gDrvSpi8305Vars上的所有状态寄存器。) 我们是否需要更改lab05上的任何内容?

    谢谢!
    新街
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Yanming,

    我们试图增加VDS_LEVEL以延长电流限制,但没有产生任何影响。 同样,当电机发出尖叫声时,即使nfault引脚被拉低,所有DRV状态寄存器仍显示无故障。

    我们注意到,根据CSD1.8502万的RDS (1.8mohm),VDS_LEVEL的默认设置为1.175V,它允许652A电流,但我们的最大电流设置为40A。 因此我们认为VDS_LEVEL不会触发drv故障。

    还有其他可能性吗?

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    #define user_IQ_full标度电压V (17.0)
    #define user_ADC_FULL比例电压_V (25.12)
    IQ满刻度电压小于ADC满刻度电压,与IQ全刻度电流存在相同问题。 阅读给出的警告,并根据需要进行调整。 由于数字问题与此太小的IQ满刻度电压/电流相关,控制在较高速度时可能变得不稳定。
    如果只是控制问题,尝试降低速度控制器的KP,并可能将速度控制器的KI归零,就像测试一样。

    我还记得一些关于读取DRV寄存器自动清除故障的信息。 不知道这是不是我做DRV芯片已经很久了
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rob,您好!

    感谢您的回复。 我们使用Instaspin准则在ADC_FULL标度的USER_IQ)上创建30 % 余量。 我们有意增加ADC满刻度电压的硬件,以防电压峰值损坏ADC引脚。 相同的原则适用于当前设置。

    我们还将金伯利进程几乎降到零,但问题仍然存在。

    您是否推荐其他驱动器芯片?

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您仍然不应将USER_IQ) FULL比例尺x设置为比USER_ADC_FULL比例尺x小。 我在这方面有过不好的经历,我认为这是一个错误。 (也许TI的某个人对此有更好的建议)