主题中讨论的其他器件:DRV8320、MOTORWARE、C2000WARE-MOTORCONTROL-SDK 、 C2000WARE、SFRA、 DRV8323
您好!
在通过对(user.c)等待时间做出反应的 ISR 矢量开关案例运行电机 ID 步骤的实验 is07之后、即使通过升压器接头 J5-J6上的自定义逆变器通过 is05电机 ID 实现 RS 阻抗也非常错误。 通过由 DRV8320RS SPI 驱动器芯片得出的用户设置所定义的同一自定义逆变器、电机可轻松运行10KRPM。 不过、RoverL_rps 有时为点通(516.6rps)、但 RS 阻抗 值非常低。 还开始通过 x49c Launch Pad 为 BSXL-DRV8320RS 配置 MCSDK、但还存在许多地方(hal.c)和项目活动配置涉及的其他文件。 就像通过 x49c 在 MCSDK 中保留3个 ADC、这样可行吗?
RS Impedance 和 RoverL_rps 值是否与 BSXL_DRV83xx 芯片栅极驱动器开关特性的设计相关联?
将控制器设置为1-3个 ADC ISR 节拍有时第一个值是正确的、但在默认等待时间过后、RS 和 RoverL_rps 两个值都会变得非常低。 例如、 0.316983044的电机阻抗 更改为(0.0012000)且 RoverL_rps (517.6)通常位于6.1处。 如何通过定制逆变器改进这些测量值? 什么因素决定了 RoverL_rps 以外的电机 RS 阻抗、从而向相线圈注入电流?
其次、 在第一部分以60Hz 斜升期间以及 USER_MOTOR_IND_EST_CURRENT_A =-0.315时、相电流从 USER_MOTOR_RES_EST_CURRENT = 0.35跃升至 ADC 14安培。 HID 监控 ADC 电流、以便用户可以在 ID 过程中的任何点强制紧急停止、双击 STOP 按钮。 USER_MOTOR_MAX_CURRENT_A = 0.4安培、相同的0.4安培(在调用下方)控制器(maxCurrent_A)在调试暂停中显示。 因此、似乎不怀疑斜升过程中存在高电流。 但 此值(0.4)应限制 PWM 占空比电流、但在 is07电机 ID 中不这样做。
CTRL_setspeed_outMax_a (handle、pUserParams->maxCurrent_a);
CTRL_setspeed_outMin_a (handle、-pUserParams->maxCurrent_a);
轨迹增量宏(USER_ISR_FREQ_Hz)是否会 在斜升期间导致如此高的电流? 因此 RoverL_rps 具有200Hz 的频率、电机轴不会进入 RS 阻抗旋转。
TRAJ_setMaxDelta (trajHandle_spd、(motorVars.accelerationStart_Hzps / USER_ISR_FREQ_Hz);
6.6.4 CTRL_State_OnLine 和 EST_State_Rs
识别过程的这一状态会执行定子电阻识别(图6-14)。
D 轴中注入直流电流、电流幅值在 user.h 中按如下定义:
#define USER_MOTOR_RES_EST_CURRENT (1.0)
请注意、该电流的定义与 RoverL 状态所使用的定义相同、但 RoverL 使用该值的一半、而 Rs 状态则使用定义中的完整值。 注入的电流应足够高、能够在 ADC 转换器中产生有效的测量值;同时又要足够低、以避免电机过热。 通常、电机额定电流的10%至20%便足以产生精确的定子电阻估算值。 此状态的时间间隔由 user.c 中的三个时间值设置、如下所示:
pUserParams->RsWaitTime[EST_Rs_State_RampUp]=(uint_least32_t)(1.0* USER_EST_FREQ_Hz);
pUserParams->RsWaitTime[EST_Rs_State_Barrast]=(uint_least32_t)(2.0* USER_EST_FREQ_Hz);
pUserParams->RsWaitTime[EST_Rs_State_Fine]=(uint_least32_t)(4.0* USER_EST_FREQ_Hz);
默认情况下、定子电阻 Rs 的整个识别过程耗费7s。
BTW:CCS 建议选项卡建议将 int32_t 更改为等待时间中的 float32_t、因为某些等待值具有浮点小数部分。 尽管我想知道估算器状态机是否忽略了小数部分。