ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
识别过程的此状态执行定子电阻识别(图 7-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_Coarse] = (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。Rs 识别过程的第一部分是 1s 的斜升阶段。在此阶段,定义的直流电流注入到 D 轴。斜升阶段结束后,Rs 识别过程将开始粗调所识别的 Rs。粗调过程所耗费的时间为 RsWaitTime [EST_Rs_State_Coarse] 存储的时间之前定义的时间。该时间默认设置为 2s,对于经过 InstaSPIN 库版本测试的所有电机而言,2s 足以执行粗调校准。不过,该时间设置比较灵活,用户可以按需调整,尽管无法预测是否有此需要。
粗调过程结束后,将开始精确 Rs 重校准。识别过程完成精确 Rs 重校准所耗费的时间默认设置为 4s,用户可通过修改 RsWaitTime [EST_Rs_State_Fine] 中存储的值灵活更改该时间值。
图 7-15 显示了整个 Rs 识别过程,图中突出显示了斜升时间、幅值以及过程的持续时间。
用户可使用以下代码示例监视估算电阻的过程。这在调整识别电阻所耗时间时尤其有用。
// get the stator resistance
gMotorVars.Rs_Ohm = EST_getRs_Ohm(obj->estHandle);
例如,监视正在识别的电阻值能够向用户反馈识别电阻达到稳定状态所需的时间。识别电阻达到稳定状态所需的时间可以在 user.c 文件中配置,下次识别电机时便可加快电阻识别过程。