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
extern int32_t EST_getFullScaleResistance(EST_Handle handle);
获取估算器中使用的满量程电阻值(欧姆)。获取估算器使用的电阻有不同的方法。将电阻从标幺值转换为欧姆时,此函数很有用。但返回值为浮点格式,因此使用该满量程值将标幺值转换为欧姆并不是最高效的方式。下面提供了两个示例,说明了为加快执行而进行的浮点标幺值到欧姆的转换以及定点标幺值到欧姆的转换。浮点示例:
uint_least8_t Rs_qFmt = EST_getRs_qFmt(handle);
float_t fullScaleResistance = EST_getFullScaleResistance(handle);
float_t Rs_pu = _IQ30toF(EST_getRs_pu(handle));
float_t pu_to_ohms_sf = fullScaleResistance * pow(2.0, 30 - Rs_qFmt);
float_t Rs_Ohms = Rs_pu * pu_to_ohms_sf;
另一个示例的目的是避免使用浮点数学运算以加快执行。在以下示例中,使用预编译器数学运算根据 user.h 中的用户参数计算满量程电阻值:
#define VarShift(var,nshift) (((nshift) < 0) ? ((var)>>(-(nshift))) : ((var)<<(nshift)))
#define USER_IQ_FULL_SCALE_VOLTAGE_V (300.0)
#define USER_IQ_FULL_SCALE_CURRENT_A (10.0)
uint_least8_t Rs_qFmt = EST_getRs_qFmt(handle);
_iq fullScaleResistance = _IQ(USER_IQ_FULL_SCALE_VOLTAGE_V/USER_IQ_FULL_SCALE_CURRENT_A);
_iq Rs_pu = _IQ30toIQ(EST_getRs_pu(handle));
_iq pu_to_ohms_sf = VarShift(fullScaleResistance, 30 - Rs_qFmt);
_iq Rs_Ohms = _IQmpy(Rs_pu, pu_to_ohms_sf);
估算器 (EST) 句柄
满量程电阻值,欧姆