一、前言 在无感 FOC 控制中,角度和速度的估算至关重要,而角度和速度的估算先要估算出电机的反电动势,这一次将讲解基于准同步旋转坐标系下的反电动势观测器 (The Back Electronmotive Force,后面简称 BEMF) 的原理。以及对应的在 NXP 的 S32K144 芯片上面的实现。
二、原理解析 在基于准同步旋转坐标系下的计算中,观测器的输入是静止坐标系下的 Ualpha、Ubeta、Ialpha、Ibeta(下图中黑色坐标系),经过 Park 变换后得到旋转坐标系下的 Ud、Uq、Id、Iq(下图中蓝色坐标系),观测器再根据此 dq 坐标系构建准同步旋转坐标系(下图中紫色坐标系),观测器根据相应的信息计算电机的感应电动势,再根据感应电动势计算得到两个坐标系之间的角度误差。角度误差给到锁相环去估算速度和角度。 观测器根据输入的Ualpha、Ubeta、Ialpha、Ibeta 重构电机的数学模型。重构的电机方程的表达式如下。 其中 Rs 是定子电阻,单位是欧姆 ωγδ 是转子的电角速度,单位是弧度每秒 θerr 是观测器构建的 γ/δ 坐标系与电机实际的 d/q 坐标系之间的相位差, s 是拉普拉斯微分算子 基于上述构建的电压方程,为了得出反电动势,构建的比较器内部的结构如下图。 可以看到右侧,观测器估算反电动势,最终是要得出两个坐标系之间的相位差,也就是常说的角度差。 根据上述框图和电机的数学模型方程,做梯形离散后,得到框图的方程。 关于式中各项的系数,这里不详细说明,后续再专门解析。 这里再给出 ed、eq 的计算公式。从框图中看出,它调用了电机库的一个 PI 控制器函数
根据上述式子,就能算出来反电动势,然后得到两个坐标系的相位差。 三、实现 根据上面公式的推导,在 S32K144 做对应的实现。涉及到式子中的参数的都直接使用原厂的算法中的观测器参数。 原厂的观测器的函数声明是:
pCtrl 这个指针里面就包含了上述式子中所需要的参数。 实现之后,把依据本文实现的观测器算出来的反电动势与原厂的做对比,如下。 从图中可以看出来本文实现的 Edq_emf.fltArg1 与原厂的 drvFOC.pospeSensorless.bEMFObs.pEObsrv.fltArg1 和 Edq_emf.fltArg2 与原厂的 drvFOC.pospeSensorless.bEMFObs.pEObsrv.fltArg2 完全重合。意味着本文实现的观测器估算反电动势的效果与原厂的观测器一致。
四、总结 本文解析了基于准同步旋转坐标系下的 PLL,并且在 S32K144 中做了实现。选在 S32K144 中做实现是因为它支持浮点运算,公式实现起来相对较其他不支持浮点运算的 MCU 简单。
|