电机控制【FOC】_准同步旋转坐标系下的 PLL

关键字 :PLLFOCnxpfoc

一、前言

在无感 FOC 控制中,角度和速度的估算至关重要,这一次将讲解基于准同步旋转坐标系下的锁相环 (phase-locked loop,后面简称 PLL)  的原理。以及对应的在 NXP 的 S32K144 芯片上面的实现。

 

二、原理解析

在基于准同步旋转坐标系下的计算中,观测器的输入是静止坐标系下的 Ualpha、Ubeta、Ialpha、Ibeta(下图中黑色坐标系),经过 Park 变换后得到旋转坐标系下的 Ud、Uq、Id、Iq(下图中蓝色坐标系),观测器再根据此 dq 坐标系构建准同步旋转坐标系(下图中紫色坐标系),观测器根据相应的信息计算电机的感应电动势,再根据感应电动势计算得到两个坐标系之间的角度误差。PLL 只要根据这个误差估算出来电机的估算速度,然后对速度进行积分得到估算角度。


PLL 的作用如下图。由一个 PI 控制器和一个积分器组成。


根据观测器给出的角度误差,使用 PI 控制器和积分器计算出电机的转子角度和电机的速度。可根据上图得出 PLL 的传递函数。


对比标准的二阶系统的传递函数。


忽略掉 PLL 中 sKp 这一项,可以得到 Kp,Ki 的表达式。



其中  ξ 是衰减系数, f是控制器的带宽。

PI 控制器的表达式



积分器的表达式



将 PI 控制器和积分器的表达式进行拉普拉斯变换。得到


然后为了在离散的数字控制系统中实现,需要将两个式子离散,用梯形离散的方法离散之后得到

 

其中 Ts 是采样周期,

θerr(k)  是当前周期的观测器输入的角度误差

θerr(k-1)  是上一个周期的观测器输入的角度误差

ωestim(k)  是当前周期的估算的速度

ωestim(k-1)  是上一个周期的估算的速度



θestim(k)  是当前周期的估算的角度

θestim(k-1)  是上一个周期的估算的角度




则得到 PI 控制器和积分器的式子


意味着,在实际控制中,我们根据控制要求调节好 CC1、CC2、C1 这几个参数,就能根据观测器给出的角度误差去正确地估算电机的速度和转子的位置。

三、实现

根据上面公式的推导,在 S32K144 做对应的实现。CC1、CC2、C1,这几个参数直接使用原厂的。原厂的 PLL 在电机库中的声明是

void AMCLIB_TrackObsrv_FLT(tFloat fltPhaseErr, tFloat *pPosEst, tFloat *pVelocityEst, AMCLIB_TRACK_OBSRV_T_FLT *pCtrl);

其中 CC1、CC2、C1 在 pCtrl 这个指针里面。

下图是 FreeMASTER 中查看速度变量的波形。



红色线是原厂的 PLL 估算的速度,绿色线是本文根据公式做的实现估算的速度,可以看见,是完全一样的。
下图是 FreeMASTER 中查看角度变量的波形。



橙色线是原厂的 PLL 估算的角度,蓝色线是根据公式做的实现估算的角度,有一些误差是因为初始的积分角度与原厂的并不一致,稍微调整就能做好。

 

四、总结

本文解析了基于准同步旋转坐标系下的 PLL,并且在 S32K144 中做了实现。选在 S32K144 中做实现是因为它支持浮点运算,公式实现起来相对较其他不支持浮点运算的 MCU 简单。

 

五、参考资料
     
链接:  汽车数学和电机控制库(AMMCLib)_NXP 半导体

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论