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 _iq EST_getFlux_pu(EST_Handle handle);
获取磁通值,标幺值 (pu),IQ24
估算器会不断计算转子与定子之间的磁链,它是磁通中产生扭矩的一部分。此函数返回转子和定子线圈之间的磁链,并忽略匝数,标幺值。仅当识别电机后,此函数才会返回精确值,这可通过以下代码示例检查:
if(EST_isMotorIdentified(handle))
{
// once the motor has been identified, get the flux
_iq Flux_pu = EST_getFlux_pu(handle);
}
对于一些应用,获取此标幺值非常重要,因为处理该值的速度要快得多,特别是微控制器的架构没有浮点处理单元时。为了将此标幺值转换为 _iq 换算值,必须考虑一个换算系数将此标么磁通转换为所需单位。以下示例说明了如何将标幺值转换为 IQ 格式的 Wb 和 V/Hz 以进行更快的处理:
float_t FullScaleFlux = (USER_IQ_FULL_SCALE_VOLTAGE_V/(float_t)USER_EST_FREQ_Hz);
float_t maxFlux = (USER_MOTOR_RATED_FLUX*((USER_MOTOR_TYPE==MOTOR_Type_Induction)?0.05:0.7));
float_t lShift = -ceil(log(FullScaleFlux/maxFlux)/log(2.0));
_iq gFlux_pu_to_Wb_sf = _IQ(FullScaleFlux/(2.0*MATH_PI)*pow(2.0,lShift));
_iq gFlux_pu_to_VpHz_sf = _IQ(FullScaleFlux*pow(2.0,lShift));
// The value of gFlux_pu_to_Wb_sf and gFlux_pu_to_VpHz_sf can be calculated once at the beginning of the
// code and stored as global variables
_iq Flux_Wb;
_iq Flux_VpHz;
_iq Flux_pu = EST_getFlux_pu(handle);
Flux_Wb = _IQmpy(Flux_pu, gFlux_pu_to_Wb_sf);
Flux_VpHz = _IQmpy(Flux_pu, gFlux_pu_to_VpHz_sf);
估算器 (EST) 句柄
磁通值,pu