基于任意信号注入法的永磁同步电机无位置传感器FPGA实现

2019-05-27 06:11刘卫国
微电机 2019年4期
关键词:数据类型极性斜率

陈 哲,刘卫国

(西北工业大学 自动化学院电气工程系,西安 710072)

0 引 言

永磁同步电机在工业界已经得到广泛的应用,如高铁永磁牵引系统、机器人各关节驱动以及电动汽车牵引等。永磁同步电机的矢量控制(Field Oriented Control, FOC)可以实现电机磁场和转矩的解耦控制,也随着永磁电机的应用得到了快速发展。矢量控制的核心环节是坐标变换,需要利用转子位置信息,因此传统的永磁电机控制采用转子位置传感器来检测实时的转子位置信号。但是转子位置传感器的使用降低了系统的可靠性增加系统的体积和成本,在恶劣环境下的故障率较高。因此,无位置传感器矢量控制越来越受到重视,正成为未来工业应用的趋势。

目前,无位置传感器控制主要的实现方法有两大类,基于电机的凸极性和基于电机数学模型[1-4]。前者一直是该领域的研究热点,因为基于凸极性的方法可以解决包括电机起动在内的全速度范围内的无位置传感器控制。但是传统的基于凸极性追踪的方法通常需要额外高频信号注入来激励出包含转子位置信息的高频电流信号,之后对该电流信号进行复杂的解调制来得到转子的位置和速度。目前,基于凸极性追踪的无位置传感器控制方法有几大主流分支[5-6]:INFORM 方法,PWM 暂态分析法,旋转电压注入法,脉振正弦电压注入法和任意信号注入法[7]等。其中Sul教授团队提出的脉振方波信号注入法[8]和Kennel教授团队提出的任意信号注入法是近几年发展较快的无位置传感器控制方法,它们都通过减少或者不使用滤波器来提升位置和速度估计的动态性能。尤其是任意信号注入法,它利用电流过采样技术实时高动态估算转子位置,更省去了额外的高频信号注入和传统的电流解调制算法并且全速度范围有效无需切换,是对传统方法的一次革新。

图1为任意信号注入法实现永磁同步电机的无位置控制系统框图。本文采用FPGA作为实现核心,充分利用其电流过采样能力和快速并行运算的特点,将矢量控制和任意信号注入法全部在一片FPGA当中实现。在实现过程中,提出了几种改进手段来优化VHDL代码。最后,实验结果证明了所用算法和实现手段的有效性。

图1 任意注入无位置传感器控制方法原理框图

1 任意信号注入法的基本原理

1.1 基于转子凸极性的PMSM转子位置估计

电机转子凸极性是针对无位置传感器控制所使用的物理效应之一,其最大的优势在于凸极性不依赖于任何电机参数。理论上说,基于转子凸极性的方法在全速度范围内都是有效的。而对于信号注入法,凸极性中携带的有效信息仅与电流微分项有关,并不依赖于注入信号的形式。永磁同步电机电压和磁链的基础模型如下:

(1)

(2)

(3)

(4)

式中,θr为转子实际位置,ωr为电角速度。将变换矩阵T代入式(2)可得定子坐标系下的磁链方程为

(5)

将式(5)代入式(1),则电压方程为

(6)

其中

(7)

则由式(6)可得定子电流的时间导数为

(8)

(9)

将式(8)离散化,则定子电流的离散化方程为

(10)

(11)

(12)

(13)

(14)

(15)

则估计转子位置可由下式计算

(16)

1.2 电流过采样的基本原理

在一个PWM开关周期中,目标电压矢量需要两个有效电压矢量和零矢量按照伏秒平衡原则进行合成,因此每个开关周期T_s中会包含3种不同的电流斜率,且斜率信息中携带着基于转子凸极性的位置信息。图2给出了一个开关周期中电压和电流的变化示意图。

图2 空间电压矢量与响应电流斜率

过采样就是最大程度的利用A/D采样频率,在一个开关周期中获得很多电流采样点,由于采样频率很快,获得的电流值会受到测量噪声的干扰,在电流实际值周围呈云状分布,因此,对于每一个开关状态,需要利用采样得到电流值去还原实际的电流,从而获得稳定的电流斜率。本文通过最小二乘法去线性拟合电流斜率,其优势在于:可以有效抑制噪声信号,且高效的递归算法能够在现有的硬件平台上实现,满足计算精度的要求。拟合后的效果如图3所示。

图3 一个开关周期内的采样点与直线拟合结果

电流斜率的变化率包含着转子的位置信息,理想情况下,一个开关周期内有效电压矢量作用时间起始点和结束点所对应的电流值可以用来计算电流斜率的变化。但由于矢量作用状态切换时的电流震荡和噪声干扰,这两点的电流值并不能精确获得,而有效矢量作用区间的前后段分别为零矢量作用区间,本文通过对零矢量作用区间的电流进行过采样,然后对采样点进行最小二乘递归计算,即可获得两个有效矢量作用时的平均电流斜率。

图4 零电压矢量作用时的电流斜率信息

通过使用零矢量作用参数,Q点和P点的相关参数可计算如下

(17)

(18)

(19)

(20)

有效矢量作用区间的平均电流斜率可表示为

(21)

(22)

由式(13)和式(14)可知,有效矢量作用区间中与凸极性相关的电流误差可通过下式进行提取。

(23)

有效电压与平均电压的关系为

(24)

(25)

通过以上分析,任意信号注入法不需要额外的注入信号去进行电流激励,其核心是基于对有效矢量作用区间电流误差的获取,值得注意的是,在低速空载时,有效电压矢量幅值较小,作用区间很短,此时较难获取有效响应电流,从而难以提取到精确的电流斜率变化。

2 基于FPGA的控制系统完整实现

2.1 基于Matlab模型的矢量控制代码生成

为了缩短FPGA的编程实现时间,本文基于Matlab模型对FOC控制进行VHDL代码自动生成。首先,需要在Matlab/Simulink环境下对连续模型进行离散化,并对每个物理量选择合适的数据长度(因为FPGA内的数据类型都是定点化)。在这个过程中需要注意两点。一是求解器类型应从变步长改为固定步长,本文步长为Ts=5×10-7s。因此采样频率为fs=1/Ts=2 MHz,该频率也是FOC算法在FPGA控制器中的更新频率。二是三角函数的计算必须使用CORDIC(Coordinate Rotation Digital Computer)算法,即使用正弦函数的迭代近似值。

其次,在Simulink生成的VHDL代码中,要理解“std logic vector”,“signed”和“unsigned”数据类型(以下称为Std数据类型)用于计算和信号传输的特点,这种数据在具体的数学运算过程中需要程序员考虑小数点的位置而不需要担心具体的数据计算过程。虽然我们经常使用“sfixed”和“ufixed”数据类型(以下称为Sfixed数据类型)更易于理解和书写,但实际上Std数据类型具有更高的效率。表1显示了实现同样一个一阶低通滤波器两种数据类型所占的FPGA资源。可以看出,Std数据类型所占资源量少且能实现更快的执行速度,因此以这种数据类型承担控制器的实现更有高的性能资源比。

表1 一阶低通滤波器的两种数据类型实现资源消耗对比

2.2 任意信号注入法的实现

图5 递归计算程序流程图

图6 PWM累积计算的流程图

对于三相逆变器的PWM信号,可通过设置3位变量对应其开关状态,当PWM输出为零电压矢量时,零矢量信号等于1。如图7所示,为时间序列和信号间的对应关系。

图7 时间序列与信号间的对应关系

由于递归算法的计算复杂性,该过程由2 MHz时钟驱动,最大递归步长为

(26)

其中,中断信号周期Tint=62.5 μs。在PWM积累过程中,时钟频率为20 MHz,每个活动的PWM状态持续时间分别用nx或nxx累积,用下标x表示连接直流母线正极的相位。因此,静止坐标系下的电压可以被计算出来。

(27)

(28)

如图8所示,在零矢量信号的下降沿开始估计转子位置。如果输出电压等于零,则该下降沿不存在。因此,后两个条件用于判断。

在低频分量减法之后,当前周期和最后一个周期的平均值用于后续计算。因为由滤波器引起的尾电流在每个PWM周期中变化,并且该部分的平均值几乎为零。因此,平均值用于补偿尾电流引起的误差。在通过arctan函数计算位置之前,通过截止频率为3 kHz的低通滤波器对实部和虚部进行滤波。 详细程序如图8所示。

图8 任意信号注入方法的程序流程图

2.3 代码优化方法

与C语言程序不同,在VHDL程序中需要考虑不同时钟之间的影响。 理论上一个进程可以用两个时钟信号(一快一慢)进行驱动,通常使用频率较高的时钟信号作为驱动信号,并在每个周期检查另一个时钟信号的边沿进行事件触发。在本小节中,讨论使用CORDIC算法实现的arctan计算,并给出一种异步时钟信号同步化结构。

其中,arctan计算需要13步迭代,并且该子系统支持20 MHz的高时钟频率用于迭代过程。除了该时钟信号之外,还需要启动信号(慢信号)。arctan计算从启动信号的上升沿开始,并在13步迭代后自动结束。输出结果保持最后一个值,直到下一个启动信号上升沿开始。 在这种情况下,两个信号的上升沿分别用于启停信号和迭代时钟信号。本文推荐使用信号而不是变量的边沿触发结构,通过组合逻辑电路实现自锁逻辑。合成后的电路图如图9所示,其中使能复位信号在所有迭代步骤结束后仅在一个时钟周期内设置为1。这种结构适用于多驱动信号同步,因为实现自锁的同时不会引起信号的变化,因此保证了逻辑门的稳定输出。

图9 利用信号检测上升沿的结构

这种结构适用于多驱动信号同步,因为实现自锁的同时不会引起信号的变化,因此保证了逻辑门的稳定输出。

3 仿真与实验

为了验证所提方法的有效性,使用了一台3 kW内置式永磁同步电机进行仿真和实验验证。电机参数为:极对数2,定子电阻0.55,Ld=6.6 mH,Lq=14.3 mH,直流母线电压270 V,转动惯量0.003 kg·m2,转子磁链0.25 V·s,电机控制器采用FPGA控制系统,如图10所示。

图10 实验测试平台

图11为带载调速实验。在动态过渡过程和稳态过程中可以看出,任意信号注入法都运行平稳且转子位置估计误差控制在20°以内。电机的d、q轴电流的波动很小,可以应用于实际的工作中。

图12为恒速变载实验。任意信号注入法都保证转子位置估计误差控制在20°以内,转子转速恢复较为迅速。电机的d、q轴电流可以有效跟踪负载指令。

图11 带50%负载转速从负300 r/min到正300 r/min

图12 转速恒定300 r/min负载从0到70%

4 结 论

本文用FPGA实现了永磁同步电机基于任意信号注入法的无位置传感器控制。分析了任意信号注入法的工作原理,根据其特点选择具有电流过采样能力和快速并行计算的FPGA作为运算核心。在具体编程过程中利用Matlab的VHDL代码生成技术和一系列编程优化措施提高了整个系统的执行效率。实验证明了所提出方法的有效性。

猜你喜欢
数据类型极性斜率
有机反应极性机理试剂分类的探索
巧甩直线斜率公式解数学题
如何理解数据结构中的抽象数据类型
跟踪导练(四)
基于SeisBase模型的地震勘探成果数据管理系统设计
求斜率型分式的取值范围
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用
导数几何意义的深层次应用
2011年高考山东卷.理22(Ⅰ)别解