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
实现 Rs 在线特性要求特定内部矢量随着电机的旋转缓慢转动。这个慢速旋转的矢量默认设置为值 0.00001(以标么值表示),因此它会生成一个频率为 0.00001 * 估算器频率(以 Hz 为单位)的矢量。所以如果估算器频率为 10kHz,则旋转矢量的频率为 0.1Hz,周期为 10 秒。需要使用此旋转矢量以便 Rs 在线重校准能够估算出在矢量不同点测量的平均电阻。
尽管不了解 Rs 在线重校准如何估算变化电阻的细节,但一定要了解此转角可用于估算在不同电流矢量下的电阻。随着时间的推移,在线电阻为所有矢量慢速旋转时多次测量所产生的平均电阻。为了让用户了解设置的旋转矢量值,除了在示波器上观察电流外,用户还可以使用以下代码示例。
// These defines are in user.h
#define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1)
#define USER_NUM_CTRL_TICKS_PER_EST_TICK (1)
#define USER_PWM_FREQ_kHz (10.0)
#define USER_ISR_FREQ_Hz (USER_PWM_FREQ_kHz * 1000.0)
#define USER_CTRL_FREQ_Hz (uint_least32_t)(USER_ISR_FREQ_Hz \
/USER_NUM_ISR_TICKS_PER_CTRL_TICK)
#define USER_EST_FREQ_Hz (uint_least32_t)(USER_CTRL_FREQ_Hz \
/USER_NUM_CTRL_TICKS_PER_EST_TICK)
// Initialize obj to the controller handle
CTRL_Obj *obj = (CTRL_Obj *)ctrlHandle;
_iq delta_pu_to_kHz_sf = _IQ((float_t)USER_EST_FREQ_Hz/1000.0);
_iq RsOnLine_Angle_Delta_pu = EST_getRsOnLineAngleDelta_pu(obj->estHandle);
// By default, the returned value in the following line will be close to:
// _IQ(0.00001), representing 0.0001 kHz, or 0.1 Hz
_iq RsOnLine_Angle_Freq_kHz = _IQmpy(RsOnLine_Angle_Delta_pu, \
delta_pu_to_kHz_sf);
有关 InstaSPIN 中使用的软件执行时钟树以及抽取因数(也称为节拍率)的详细信息,请参见Chapter10。
如果角度增量从未改变,则由库将其设置为以标么值表示的默认值 0.00001,从而根据 0.00001 乘以估算频率得到慢速转角频率。如果估算频率与 PWM 频率相同,均设置为 10kHz,则慢速转角的频率为 0.00001 * 10000 = 0.1Hz(周期为 10 秒)。可以从电流波形中观察到慢速转角,以及随角度的变化,电流以何种方式注入到 Id 中。图 16-12 显示了电流波形如何以等于慢速转角频率的频率发生变化。
例如,在某个应用中如果电机的温度上升速度过快,因此要求此转角速度更快一些,此时可能需要更改此转角。旋转矢量不需要随温度的升高而改变。只需要根据预期可能出现的系统最坏温度动态情况进行一次设置,而不需要随温度的变化对此值进行微调。例如,如果系统的温度动态要求转角更改为 0.2Hz(周期为 5 秒),以下代码示例可用于将慢速转角更改为新值 0.2Hz:
// This new define represents the desired RsOnLine rotating angle frequency
#define RSONLINE_ANGLE_FREQ_Hz (0.2)
// Initialize obj to the controller handle
CTRL_Obj *obj = (CTRL_Obj *)ctrlHandle;
// The scale factor (sf) calculation is done by the pre-compiler
_iq delta_hz_to_pu_sf = _IQ(1.0/(float_t)USER_EST_FREQ_Hz);
_iq RsOnLine_Angle_Freq_Hz = _IQ(RSONLINE_ANGLE_FREQ_Hz);
_iq RsOnLine_Angle_Delta_pu = _IQmpy(RsOnLine_Angle_Freq_Hz, \
delta_hz_to_pu_sf);
EST_setRsOnLineAngleDelta_pu(obj->estHandle,
RsOnLine_Angle_Delta_pu);
在此代码示例中可以看到,函数现在为角度增量设置一个值,所以它会等待写入一个参数,这里为变量 RsOnLine_Angle_Delta_pu。
完成上述代码示例中的配置后产生的示波器图形如图 16-13 所示。