STM32
直播中

小镇故事多

12年用户 439经验值
擅长:模拟技术
私信 关注
[问答]

如何去实现一种基于磁链模型的非线性观测器设计呢

如何去实现一种基于磁链模型的非线性观测器设计呢?如何对其模型进行仿真?其波形是怎样的?

回帖(1)

刘磊

2021-11-19 15:18:43
前言:PMSM常见的无感FOC方法,以滑模SMO最为知名。尤其在现阶段SPM更为广泛应用的低压小功率电机领域,高频注入HFI更多应用在初始启动阶段。滑模的实质是基于PMSM的反电势模型,让系统进入滑动模态,选取合适的控制率得到反电势分量,可以基于 α − β 坐标系,也可以基于 d − q 坐标系。
选择反正切或者PLL获取速度和角度。基于反电势模型,最大的限制在于低速下因为信噪比、死区等非线性因素的影响,获取精确的反电势变得更加困难,往往使用 i − f 强拉的启动方式,带载能力弱,动态响应差,还需要两种方法切换。
简介:高低速下,反电势并不相同,但是转子的磁链是基本接近的。如果以磁链作为观测对象,就可以避免低速下信噪比和非线性因素的负面影响,这就是磁链模型的思路。经过朋友介绍,获悉了VESC使用的非线性磁链模型效果不错,应用广泛,自己也尝试了一下。
控制方法
基于 α − β 坐标系下的PMSM数学模型如下:

α − β 坐标系下电感表示如下:

对于SPM,数学模型可以化简为:

定义状态变量:

状态变量 y 实质就是反电势,对反电势积分可以得到磁链,那么对磁链的状态变量 x 微分则得到反电势。关系式如下:

为了构建非线性观测器,定义矢量函数:

矢量函数的模实质就是磁链幅值:

在对反电势进行积分获得磁链的过程中,最担心的就是直流偏置或积分漂移,常用高通滤波器、自适应补偿等方式来抑制这种负面因素。非线性模块的思路就是把估算的磁链的幅值与实际磁链幅值的差,作为估算的磁链分量的补偿项。关系式如下:

完成状态变量的观测器之后,就得到了磁链分量,改写如下:

所以通过观测的磁链分量就得到了观测的角度;

通过锁相环就得到了速度和角度。
仿真波形
采用SPM仿真的参数如下:

图一 电机参数
开关频率10kHz,电流环带宽设计500Hz,速度环带宽10Hz。采用非线性模型,空载加速到额定负载,然后突加阶跃满载,参考速度和实际速度如下:

图2 非线性模型的空载开机和突加满载
上图对应的角度误差如下:

图3 非线性模型空载启动角度误差
第一栏是观测角度和实际角度,第二栏是二者误差,单位是rad,第三栏是二者误差,单位是degree。最大角度误差仅仅只有0.5degree,说明非线性模型的精度是非常高的。
作为对比,采用高通滤波器和积分结合,即等效使用低通滤波器的磁链模型角度误差如下:

图4 低通滤波器磁链模型的角度误差
从波形看出,采用低通滤波器的磁链模型,最大角度误差达到了23degrees,启动阶段收敛较慢,精度和响应性明显不如非线性模型。即使采用自适应补偿或其他措施效果也不明显。
回到非线性模型,其启动阶段的角度收敛非常快,比如开机阶段的角度:

图5 非线性模型带载启动的角度收敛过程
从波形看出,基本第一个电周期角度就收敛了,角度误差最大才1.2degrees。速度误差如下:

图6 非线性模型的速度误差
启动阶段观测速度和实际速度最大误差大约标幺值0.04,稳态速度误差大约标幺值1e-6。
5%额定速度下带载开机波形如下:

图7 低速带载启动
第一栏是参考速度和实际速度,单位rpm,启动时加阶跃负载,所以电机会先反转,待转矩上升后会正转。第二栏是实际的电角度,有先反转再正转的过程。第三栏是负载转矩和实际输出转矩,先加阶跃满载,电机输出转矩有逐渐上升的过程。
验证非线性模型对磁链的敏感性,假设 , 带载启动波形如下:

假设 ,带载启动波形如下:

通过波形看出,即使磁链变化范围达到20%,非线性模型依然能稳定运行。
视频
使用磁链模型,在低压风扇上连续额定速度正反转切换平滑,启动快速,视频如下:
基于磁链模型无感FOC风扇控制
总结
非线性磁链模型收敛快,低速下相比反电势模型能够完全规避信噪比和逆变器非线性因素的负面影响,高低速都能带载,不需要两种方法切换。该方案真正的普及还是依靠VESC的开源项目,在滑板车上应用很多。
VESC项目使用的STM32F405,可以试试移植到STM32F030上的效果。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分