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.

[参考译文] TMS320F28069F:速度和电流问题、主动制动?

Guru**** 2546000 points
Other Parts Discussed in Thread: BOOSTXL-DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/624703/tms320f28069f-speed-and-current-issue-active-braking

器件型号:TMS320F28069F
主题中讨论的其他器件:BOOSTXL-DRV8301

您好!

我再次遇到一些问题。 随附的我将提供一些系统信息和我的 user.h

1.我无法达到电机的最大速度。 当我使用 RC 控制器时、电机将车辆加速至24km/h (700RPM)。 我的应用使用 BOOSTXL-DRV8301、仅达到18km/h (~550RPM)。 我认为电机有足够的功率来实现24公里/小时的速度、但我的软件中可能有错误的设置?

2.目前的问题。 我调节了 BOOSTXL-DRV8301。 我将分流电阻器更改为5m Ω、以检测更高的电流。 我们正在冷却 MOSFET 以防止过热。 我更改了 user_j1.h 中的以下值

#define USER_ADC_FULL_SCALE_CURRENT_A       (66.0)  (33A 正电流至33A 负电流可以被检测到吗?)

#define USER_IQ_FULL_SCALE_CURRENT_A        (50.0) (在这里,我不确定这是-25A 到25A 还是-50A 到50A? )

当我在低速上施加高电流时、电机不会加速。 它似乎是移动、向后和制动车辆。 我似乎有电流检测问题或任何过流锁定?

3.我想使用主动制动。 这意味着、我希望通过使用电源而不是生成电源来制动电机。 我该怎么做? 当我使用这些值播放某个位时、我使用负 IQ_ref 和负 Id_ref 实现了这一目标。  这是一种安全的方式吗? 是否有更好的方法来使用电源来断开电机。 但是、当 Kinetik Energy 必须移动到任何地方时、这是否会导致大量热量?

很抱歉,有这么多问题:D

提前感谢

此致

Sebastian

电机:30极、730RPM 最大值、15A 最大值、12NM 最大 直流总线电压为24V

应用:我使用速度控制器、在这里、用户更改 Speed-PID 的输出限制。 Speed-PID 是一直被设定为一个最大速度的方法。  实际上、它是速度受限扭矩控制。 此外、我使用的是最小 Speeed 为50rpm 的反激式转换器。 当用户既不要求扭矩也不要求负扭矩时,IQ_ref 为0.0。

user.h:

#define USER_IQ_FULL_SCALE_FREQ_Hz       (500)  //720RPM*30极/120=180

#define USER_IQ_FULL_SCALE_VOLTAGE_V     (24.0)  // 21V 至25、2V possible...problem?

#define USER_ADC_FULL_SCALE_VOLTGE_V      (26.314)     // 26.314 boostxldrv8301_RevB 电压调节

#define USER_IQ_FULL_SCALE_CURRENT_A        (50.0)//转换电流分流器

#define USER_ADC_FULL_SCALE_CURRENT_A       (66.0) //将电流***更改为5m Ω

#define USER_NUM_CURRENT_SENSORS           (3)  // 3首选设置、以在整个速度范围内实现最佳性能、允许100%占空比

需要#define USER_NUM_VOLTGE_SENSORS           (3)// 3


#define  I_A_offset   (0.8336265683)
#define  I_B_OFFSET   (0.8330016136)
#define  I_C_OFFSET   (0.8242590427)

#define  V_A_offset   (0.4892043471)
#define  V_B_OFFSET   (0.4888140559)
#define  V_C_OFFSET   (0.4878702164)

#define USER_PWM_FREQ_kHz               (60.0)//30.0示例、典型值为8.0 - 30.0 KHz;极低电感、高速电机可能需要45-80 KHz

#define USER_MAX_VS_MAG_PU       (0.5)   //如果不使用电流重构技术,则设置为0.5。  有关更多信息、请查看 lab10a-x 中的模块 svgen_current。

#define USER_NUM_PWM_TICKS_PER_ISR_TICK       (3)

#define USER_NUM_ISR_TICKS_PER_CTRL_TICK      (1)     // 2示例、控制器时钟速率(CTRL)以 PWM/2运行;例如30 KHz PWM、15 KHz 控制


#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK  (1)     // 1典型值、正向 FOC 电流控制器(IQ/ID/IPART/SVPWM)以与 CTRL 相同的速率运行。

#define USER_NUM_CTRL_TICKS_PER_EST_TICK      (1)     // 1典型值,FAST 估算器以与 CTRL 相同的速率运行;

#define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15)  // 15 (典型值)以匹配 PWM、例如15kHz PWM、控制器和电流环路、1KHz 速度环路

#define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK  (15)  // 15 (典型值)以匹配 PWM、例如:10kHz 控制器和电流环路、1KHz 速度环路、1KHz 轨迹

#define USER_MAX_NEW_ID_REF_CURRENT_A    (-0.5 * USER_MOTOR_MAX_CURRENT)  //-0.5 * USER_MOTOR_MAX_CURRENT 示例,进行调整以满足电机的安全需求

#define USER_R_OVER L_EST_FREQ_Hz (100)              //默认为300

#define USER_ZEROSPEEDLIMIT  (0.5 / USER_IQ_FULL_SCALE_FREQ_Hz)    // 0.002pu、1-5 Hz 典型值;Hz = USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz


#define USER_FORCE_ANGE_FREQ_Hz  (2.0 * USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz)     // 1.0典型强制角启动速度

#define USER_VOLTGE_FILTER_POLE_Hz (364.682)  // 364.682,bootxldrv8301_RevB 硬件的值

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.逆变器的输入电压是否足以支持电机的最大速度,而电机需要磁场减弱控制来运行更高 BEMF 的最大速度? 以检查反馈 IQ 电流是否接近 IQ 基准、gMotorVars.Vs 是否接近 USER_MAX_VS_MAG_PU。
    2.低速是什么? 电机是否以高负载运行? 您需要为不同的负载速度添加正确的扭矩电流、而不是恒定的扭矩电流、尽管您正在使用扭矩控制模式。
    3.有多种制动模式,您可以使用强制模式同时打开全部3个低侧并关闭全部3个高侧,该模式在电机相位上具有更高的电流,而直流总线上没有升压电压。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yanming、感谢您的回复!

    1.我会检查一下、谢谢。 当我使用场强减弱时、我还必须进行电流重建吗? 或者、我是否只需要启动现场唤醒模块? 在本圈中、我并不完全理解在执行场强减弱时是否必须更改 USER_MAX_VS_MAG_PU。

    很抱歉、我真的不明白您的意思? 如果你是说扭矩不足->不是 看起来更像是控制器"松开"转子位置、或者因为它有很大的扭矩。 在较低的 IQ-ref 上工作正常。 此外、当我尝试重现这种情况时、问题不会总是出现。

    是的、我已经实现了这一点。 但是、当我更改为这种制动策略时、我找不到实现"平滑过渡"的方法。 我想关闭所有3个高侧 MOSFET、并对低侧 FET 应用占空比以控制此制动策略。 这是否起作用? 当我以异步方式控制低侧 FET 到转子时,我会产生不需要的电压或电流升压?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    1.是的 gMotorVars.VS = USER_MAX_VS_MAG_PU=0.5、所以我需要过调制+磁场减弱?

    好的、我发现了这个问题、它是完全奇怪的。 我的#define USER_IQ_FULL_SCALE_CURRENT_A (50.0) 是50。 当我在低速和高扭矩下加速电机时、电流斜升至25A RMS。 这意味着电流峰值接近35A。 这对于 ADC 来说太大、无法再测量电流。
    现在有趣的问题:发生这种情况后、我的 RS 计算错误... 它从过低的值变为过高的值、直到我重新启动控制器...这可能来自哪里?