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
尽管可使用多种方法在不进行电机识别的情况下计算电机磁通(见Topic Link Label7.10.1.4),但该过程介绍的是完全未知的电机。目前为止,我们有两个可以使用的参数:粗略估算的电感 (Lhf) 和精确的定子电阻 (Rs)。还缺少一个 PMSM 电机参数:电机磁通。在识别过程的这一步骤中,我们将使用两个已知参数和一个任意的磁通值。请记住,一旦电机闭环运行,估算磁通将趋近于电机实际磁通,因此我们只需使第一次估算足够接近实际值。
请注意 user.h 中的特定定义。
#define USER_MOTOR_NUM_POLE_PAIRS (3)
极数仅对于从库中获取正确的 RPM 读数非常重要,而库所关心的是电频率,该参数并不受极对数的影响。尽量准确地估算该参数。电机运行后可以更改为正确的极数,方法是设定 60RPM 的参考速度,确保电机每秒旋转一圈。
#define USER_MOTOR_Rs (0.8)
该参数应在步骤 2 中从变量 gRs 中获得。
#define USER_MOTOR_Ls_d (0.01)
#define USER_MOTOR_Ls_q (0.01)
对于电感而言,我们需要使用在步骤 2 中获得的高频电感。该电感是电机电感的粗略近似值。若电感与实际电感不同,则会限制高动态运行期间的性能。例如,如果电机需要运行扭矩阶跃或速度阶跃,电感不正确会引发问题,但通过高频电感代替实际电感则可在低动态运行阶段实现满扭矩运行。因此对于该步骤,请复制从 Ls_d 和 Ls_q 的 gLhf 中获得的值。
#define USER_MOTOR_RATED_FLUX (0.5)
磁通通过库进行估算,因此用户需要一个足够接近实际值的值,以便基于估算器输出值得出电机的实际磁通。使用任意数值可能会导致估算磁通出现一定的饱和,因为该值在内部受限。通过用以下函数查看估算磁通可轻松解决该问题:
// get the flux
gFlux_VpHz = EST_getFlux_VpHz(obj->estHandle);
如果将 gFlux_VpHz 钳位到小于 user.h 中设置的原始值的值,则将该值减半,如果钳位到大于原始值的值,则将该值加倍。一旦电机闭环运行且 gFlux_VpHz 值发生略微变化,请记录该值并将其返回 USER_MOTOR_RATED_FLUX。