FOC 控制笔记【二】无感控制、滑膜观测器和PLL
一、无感控制基础
1.1 反电动势引入,电动机是不符合欧姆定律的电器
因为电机的定子由永磁铁构成,所以转子通电后受到会受到安培力的作用旋转。但是电机并不能简单的等效为一个电阻器。
假设电机内绕组铜丝是 1Ω,我们供给 10V 的电压,我们通常会发现电机仅消耗了 1A 左右的电流。这样看起来并不符合欧姆定律。
这是因为电动机转动时,线圈因切割磁感线,所以会产生感应电动势。线圈中产生的感应电动势跟加在线圈上的电压方向相反。
产生方式如下图所示,其中 R 和 L 被等效看作为电机的电气性质。
我们把这个跟外加电压方向相反的感应电动势叫做反电动势。
1.1.1 反电动势电路中的电压公式
= 供给电机的电压
= 反电动势的电压
= 电机自身的内阻所消耗的电压
1.1.2 电机线圈电流公式
线圈内电流为:
= 反电动势
= 外加电压
= 表示电动机回路总电阻
1.1.3 具有反电动势电路的功率关系
= 电源供给给电动机的功率(输入功率)
= 电动机输出的机械功率
= 热功损(铜损、铁损、机械损等)
1.1.4 根据安培力公式推算电机最大转速
安培力公式:
= 表示磁感应强度
= 表导体棒的长度
= 导体棒切割的速度
常理可知,电机反电动势不会大于供给的电压,加入我们给电机输入10V 电压,反电动势将不会超过 10V。
对于一个电机参数来说,B 和 L 是已知的,E 也不会超过输入电压,我们就可以根据这个公式推算出 v,进而得到电机空转的理论最大值。
二、推算转子角度与获得测量反向电动势
无感控制就是是从电机的反电动势中,获得当前电机转子的电角度。
2.1 电机的反电动势公式
根据电机反电动势公式:
= 反电动势
= 线圈匝数
= 磁场的变化率 (T)
= 线圈截面积 (
)
= 产生磁场变化所经历的时间 (s)
通过这条公式,我们就能计算出电机再转动过程中,转子磁铁磁感线与线圈上的导线相互切割所产生的电压大小,这个电压的大小称之为反电动势。
无感控制的核心思路就是根据这个反电动势,来求出转子切割磁场的角度,也就是电角度。
2.2 反电动势和转子电角度的关系
这张图是反电动势和转子电角度的关系,我们可知,反电动势其实是包含可转子的电角度信息的。
电机的反电动势公式也可以写成另一种和转子有关的写法:
= 反电动势
= 被称为反电动势常数,单位 (mV/Hz)
= 无刷电机转子角度 (rad)
= 电机转速,单位 (Hz)
= 相位差
在这个公式中的 是由
中的,
= 线圈截面积 (
) 和
= 线圈匝数得到的。
2.2.1 相位问题
由于电机三相角度相差为 120° ,A 相的反电动势,相位差为0°;B 相则是120°;C 相是240°。
也就是三项反电动势公式为:
其中相位偏移图如下所示:
在得到任意两项的数据后,联立方程即可推算出电角度:
2.3 如何测量反电动势
2.3.1 电压平衡方程
如果我们将上图中 A 相位的反电动势看作为一个电池,其和电源电压是正极对正极,负级对负级的,也就是如下图:
根据基尔霍夫电压定律,电路中电压的合为 0 ,我们可以得到这个公式:
= A 相的电压
= 当前相位的电流
= 电机内阻
= 电感的的值
= 电流变化趋势微分
= 电流乘电阻等于电压
= 电感所产生的电压,根据电感公式得到
其中电机的电压、内阻和电感的值都是已知的,电流可以通过电阻测量而出。
将计算得到的反电动势数据带入这个公式即可计算出电机的电角度。
三、反正切法求电机角度
2.1 单相反电动势方程
= A 相的电压
= 当前相位的电流
= 电机内阻
= 电感的的值
= 电流变化趋势微分
= 电流乘电阻等于电压
= 电感所产生的电压,根据电感公式得到
继续取 A 相观察,再上一章中,根据基尔霍夫电压定律,电路中电压的合为 0 ,我们可以得到这个公式:
通过移项可得:
提公因数可得:
至此,我们就得到了三项相反电动势方程:
其中,在左面的是都是电流的一阶导数。
2.2 电机电压方程的散点积分式
对电流变化趋势做积分,需要乘采样时间间隔 ,可以得到当前的电流:
= 上次计算的
= 电流变化趋势微分
再结合电机电压方程可得散点积分式:
如果把经过 Clark 变换后的 α、β 也看成回路,可以类比为:
2.3 反正切求电角度
在散点积分式后,其中对于 、
、
、
都是已知值。
通过这些即可推算 和
。
因为 α 轴和 β 轴呈 90°,所以使用反正切角度即可推算出电角度。
四、滑模观测器
根据相的反电动势公式计算并不是准确的:
其中,相电阻和相电感值依赖于电机运行的状态,如果稍有偏差,式子就不能正确的求出电机的反电动势。因为电机常是处于拖动、载荷运行等状态,所以电机发热会影响这些常数变化。这就导致最终通过反电动势计算的转子角度不准。
滑模观测器在做的是,把正确的反电动势看作一个滑模面:
先预估一个反电动势,然后根据公式反推出预估电流。将反推出的预估电流与真实电流差值做调整,最后加到反电动势上形成闭环。最后根据反正切函数计算出角度。
这种闭环允许电机内阻,电感等出现运动的动态的偏差。在上图中,滑模面是真实的反电动势,红色曲线则是预估的反电动势。
3.1 滑膜观测器的思路
以 A 相举例,滑膜观测器的思路是根据电压方程的散点积分式,先预测一个假定的 A 相反电动势,然后基于这个反电动势预测电流:
如果预测的电流等于真实测量的电流,那么反电动势也就是正确的:
(预测) -
(真实) = 0
如果预测的电流不等于真实测量的电流,那么就是不对的:
(预测) -
(真实) ≠ 0
到目前位置,滑膜观测器流程如下:
最后输出新的反电动势,应该根据预测结果正向调整反电动势:
预测
真实
= 比例系数
= 限幅函数,将差值限定在某个范围内
如果只使用比较函数 sign 处理,会导致观测的滑模面跳动严重。
此时可以考虑使用 set 饱和函数:
预测
真实
= 比例系数
= 饱和函数,在输出时采用一段带有斜率的函数
3.2 滑膜观测器代码实现
待补充。。。
五、PLL 锁相环
通过对电机物理运动原理的理解,先把 error 类推为角加速度,对其求积分得到 。
5.1 反电动势的帕克变换
这是帕克变换的变换公式:
同样的,对于 d、q 轴的反电动势来说,可以进行帕克变换:
只提出 d 轴,可得:
在 d 轴电流为 0 的情况,此时 d 轴的反电动势也应为 0:
那么,预估的反电动势 也应该等于 0:
如果 角度不准确,也就是预估的
不等于 0:
此时可以先计算出电角度误差值。
在电机加速度时,由于传感器通常是测得电流值后,再计算观测的电角度 的,当计算加速度时,总会滞后真实的
,当电机加速或减速时,这个 error 的偏差值就会一直存在。
电机反电动势的大小与电机的电磁力直接相关,电机的电磁力又与电机的转子加速度相关联。因此,电机的反电动势,其实是和转子的加速度存在等效关系。
所以根据以上推理,error 和 加速度呈正向关系:
由于实际物理系统中被设定为 等于 0,就可以合并式子:
此时, 可以看作为电机转子加速度,
则是加速度系数(根据实际情况调节),对他求积分得转子速度:
在下列式子中, 的目的是提升
点的输出响应,因为mcu的计算累加积分需要时间,这样可以加重瞬时加速度输出的权重,最终,得到一个高质量的转子速度值:
5.2 PLL代码演示
待补充。。。