王炳雅
基于FOC SDK的无刷直流电机无传感器系统设计
王炳雅
(北京航空航天大学,北京 100083)
在介绍磁场定向控制理论的基础上,分析了重要的坐标变换理论和转子位置检测方法,并将磁场定向控制方法引入到无刷直流电机中,以实现类似有刷直流电机的控制。系统地介绍了意法半导体提供的FOC SDK开发环境,包括ST Motor Control Workbench软件与FOC SDK软件库,分别介绍了两者特点,并在此基础上设计了无刷直流电机无传感器系统,实现了无传感器转子位置检测和系统的双闭环控制。实验结果表明,磁场定向控制可以实现对无传感器无刷直流电机的稳定控制。
磁场定向;FOC SDK;无刷直流电机;无传感器
磁场定向控制(Field Oriented Control,FOC),又称为矢量控制,由德国学者F.Blaschke等人在20世纪70年代提出[1]。该控制方法自提出以来,先后应用于感应电机和永磁同步电机中,并且取得了良好的控制效果。磁场定向的核心是定子电流的解耦,通过将电机的定子电流从三相静止坐标系变换到以转子磁链定向的同步旋转坐标系,分解出励磁电流和转矩电流,从而实现对两个分量的独立控制,获得与直流电机一样的动态调速性能[2-3]。磁场定向控制技术的优点是控制精度高、转矩响应快,适用于高性能的位置伺服和调速系统[4-5],但是需要无刷直流电机的转子位置信息。
意法半导体公司从2002年开始,致力于三相电机控制技术的研究,先后发布了交流感应电机和永磁同步电机的标量控制技术和矢量控制技术,并针对不同的电机推出了各具特色的电机控制评估板和辅助系统。其中,FOC SDK是意法半导体公司为广大开发者提供的电机控制的开发平台(ST Motor Control Workbench)和库文件。这些开发平台和库文件可以使开发者快速地评估开发板的性能,并开发自己的电机控制方案。
磁场定向的核心就是测量相电流并对其进行解耦。通常无刷直流电机的电流最直观的描述是在三相静止坐标系下进行的,但在三相静止坐标系下无法分离出电流的直轴和交轴分量,因此,需要进行坐标变换,由于:
a+b+c=0. (1)
因此,三相电流可以用2个变量来描述,即将三相静止坐标系转换为坐标系(两相静止坐标系),该变换被称为Clarl变换。a,b,c分别对应A、B、C三相电流的关系为:
式(2)中:α和β为两相静止坐标系中的电流。
进一步,坐标系(两相旋转坐标系)以角频率旋转,轴与轴的夹角为,由于坐标系是旋转的,所以,是随时间变化的。s是定子电流的矢量表示,在轴、轴、轴、轴上都有投影,如图1所示。
图1 dq坐标系和αβ坐标系的关系
由图1可以得到d,q与α,β之间的关系:
该变换称为Park变换。
在三相交流坐标系下,电磁转矩为:
经过Clark变换和Park变换后,电磁转矩可表示为:
式(5)中:d和q分别为反电势的轴分量、轴分量。
设定d=0,实现只通过调节q值而实现转矩调节,完成磁场定向控制,因此,转矩表达式为:
从式(3)中可以看出,三相定子电流被解耦成直轴电流d和交轴电流q,其中,直轴电流d对转矩没有影响,只用来产生磁场,与转子磁场叠加,而交轴电流q用来进行转矩控制[7]。
从图1可以看出,进行坐标变换的前提是需要准确的转子位置信息。目前应用比较广的方法是在电机中安装霍尔传感器、光电编码器等一系列传感器,检测转子位置信息。但是,电机中的传感器成本高,安装在电机内部导致增加了电机与控制系统的接口和连线,而且安装困难。此外,传感器对工作环境有一定的要求,在某些环境可能会失效,因此,无传感器技术应运而生。
无传感器技术重点在于不通过传感器而得到转子位置信息(本文用表示)。直接计算反电动势,利用反正切的方法得到值是最简单的方法。但是该方法只具有理论意义,真正应用时为了增加可靠性往往采用观测器来实现。常用的观测器是滑模观测器,但是实际研究表明,该方法存在抖振问题。为了使电机更加平稳地运行,本文引入Luenberger观测器,为无刷直流电机在中高速下的控制系统提供位置和速度信息反馈。
观测器的本质是通过状态重构,将原来系统中可以获得的变量信息作为输入,经过观测系统作用后,使得输出信号趋近于原系统的输出信号,以此来等效原系统。观测器结构如图2所示。Luenberger观测器将原系统输出信号和观测系统输出信号作差,并反馈给观测系统,以此构成闭环校正结构,从而提高观测器的精度。
图2 基于Luenberger观测器的估算原理框图
根据无刷直流电机的数学模型,可以推导出电机在坐标系下的定子电压方程为:
反电动势方程为:
式(7)(8)中:α和β分别为轴和轴的定子电流;α和β分别为轴和轴的定子电压;α和β分别为轴和轴的定子反电动势;f为转子永磁体磁链;为转子的电角速度;为转子的电角度。
α和β是在β坐标系下建立的反电动势,并且与转子位置有关。
建立有关α和β的Luenberger观测器可以设为:
式(9)中:1和2为Luenberger观测器的增益。
分析式(10)可以得出,当>,观测器系统收敛,且收敛速度与+正相关。但越大,估算噪声也会随之增大[8]。由于α=-fesin,β=-fecos,因此:
且=/,因此,可以求出转子电角度估计量。
这种方法操作简单,但是实际系统中并不适用这种方法。因为当转速较低时,干扰相对于反电动势本身就比较大,计算出来的位置角可能不准确。虽然在高速时,反电动势观测量相对较为准确,但是如果受到较大的干扰,采用反正切的方法也不能准确估算位置角。所以,实际项目中并不直接使用这种计算方法,而是采用一种锁相环的思想来计算转子位置。锁相环构成闭环结构,而且结构简单,具有良好的稳定性[9],广泛应用于转子位置检测中。其结构如图3所示。
图3 基于锁相环的Luenberger观测器
由于:
ST Motor Control Workbench软件为开发者提供了引脚配置和参数配置功能。开发者可以使用配置寄存器或者调用库函数的方法进行引脚配置,也可以使用该软件进行同样的配置。同时,电机的参数也可以用该软件进行配置并生成头文件,在第三发开发环境中可以直接调用。该软件主界面如图4所示。打开ST Motor Control Workbench的新建工程,开始进行系统配置。左侧4个选项分别对应电机本体参数设置、功率板电源电路结构设置、驱动设置和控制器时钟引脚设置。开发者可根据自己的硬件电路,对应进行系统配置。
图4 ST Motor Control Workbench主界面
配置完成后,该软件可生成相关的头文件为Control stage parameters.h、Drive parameters.h、PMSM motor parameters.h、Power stage parameters.h以及电机控制的中断函数文件stm32f10x_MC_it.c。
FOC SDK库可用于快速评估ST微控制器和完整的ST应用平台,并缩短开发用于ST微控制器的电机控制算法的时间。它用C语言编写,实现了核心电机控制算法以及传感器读取/解码算法和用于转子位置重建的无传感器算法。此外,当与意法半导体公司开发的电机控制入门套件及无刷直流电机一起使用时,可以让电机在很短的时间运转起来。FOC SDK软件库提供了底层软件与用户软件的接口,开发者可以通过软件库访问底层资源。
SDK软件库分为多个软件层,分别为MCU标准外设软件库(STM32Fxxx StdLib)、电机控制库(MC Library)和电机控制应用层(MC Application)。此外,它还提供了用户界面层(UI Library)和FreeRTOS模块,但是在本文设计的系统中没有用到这些模块。该软件库的结构如图5所示。
STM32Fxxx StdLib + CMSIS层为STM32的标准外设库文件,一般的STM32Fxxx系列微控制器开发可以通过该库直接调用函数配置功能,而不用直接操作寄存器,开发更加简单。MC Library层为电机控制层,该层为本项目提供了有传感器和无传感器的处理函数、电流采样类处理函数、矢量控制函数以及其他相关的函数等。
MC Application为电机应用层,是MC Library层的上一层,包括电机接口类、电机调试类和电机任务相关的应用函数。开发者直接通过调用该层函数,可以实现电机启动、停止、调试、速度更新等功能。
图5 FOC软件库结构
本文提出基于FOC SDK对无位置传感器的无刷直流电机进行双闭环的系统设计,其结构图如图6所示。
在该系统中,根据三电阻采样法得到的三相电流,估算转子的位置与角速度,用以进行坐标变换,进行电流解耦。给定的转速与转速反馈量的偏差经调控后,其输出作用于交轴电流。直轴电流和交轴电流经过PI调节,输出在坐标系下的相电压。经过Park变换,得到αβ坐标系下的相电压。利用电压空间矢量调节(SVPWM)技术,产生PWM控制信号,可实现对系统的双闭环控制。
图6 系统结构图
控制程序的主要流程图如图7所示。程序主要分为2个部分,首先对系统进行初始化,然后等待中断响应。整个框架就是由这2部分组成的。初始化程序主要是完成一些寄存器的操作,包括设定系统时钟和GPIO引脚功能,此外,还会对参数进行初始化。中断服务程序将完成电流采样、转子位置检测、坐标变换、PI调节和SVPWM等任务,并根据电机指令完成电机任务。
在本实验中,控制器采用STM32F103RBT6,具有2路PWM互补输出的高级定时器,3个ADC转换器,满足该系统所需要的功能,同时支持FOC SDK开发环境。驱动芯片采用IR2136S,供电电压为24 V,将控制器的PWM控制信号转化为驱动MOS管的开关信号,并且具有欠压保护、过流保护等功能,适用于无刷直流电机的应用。
电机启动前,设定速度为1 000 r/m,而电机速度为0,如图8所示。电机启动后,短时间内稳定在1 000 r/m左右,如图9所示,之后一直保持在1 000 r/m左右,如图10所示。运行结果表明该方法的有效性。
本实验基于FOC SDK进行开发,采用直轴电流为0的磁场定向控制策略。实验结果表明,对于无传感器的无刷直流电机系统而言,FOC控制可以实现对电机的双闭环控制,并有稳定的输出。借助FOC SDK开发环境可以实现无刷直流电机的控制。
图7 主流程图
图8 电机启动前
图9 电机启动后
图10 电机稳定运行
[1]尹航.基于DSP的无刷直流电机矢量控制系统的研究与设计[D].南京:南京邮电大学,2014.
[2]周双飞.永磁同步电机矢量控制策略研究[D].十堰:湖北汽车工业学院,2017.
[3]B.P. Reddy and A. Murali. SoC FPGA-Based Field Oriented Control of BLDC Motor Using Low Resolution Hall Sensor [J].IECON 2016-42nd Annual Conference of the IEEE Industrial Electronics Society,2016:2941-2945.
[4]M.Lazor and M.Štulrajter.Modified field oriented control for smooth torque operation of a BLDC motor[J].2014 ELEKTRO,Rajecke Teplice,2014:180-185.
[5]王礼鹏.永磁同步电机非线性控制策略及无速度传感器估计方法的研究[D].沈阳:东北大学,2013.
[6]STM32F PMSM single/dual FOC SDK v4.2[EB/OL].http://www.st.com,2015.
[7]刘晓黎.基于永磁同步电机数学模型的矢量控制理论、仿真、实验及应用研究[D].合肥:合肥工业大学,2017.
[8]凌鑫明.永磁同步电机无位置传感器矢量控制系统的研究与设计[D].杭州:浙江工业大学,2015.
[9]M. N. Uddin,M. M. Rashid,M. Rubaiyat,et al.Comparison of position sensorless control based back-EMF estimators in PMSM[J].2015 18th International Conference on Computer and Information Technology(ICCIT),2015:5-10.
2095-6835(2018)18-0046-04
TM33
A
10.15913/j.cnki.kjycx.2018.18.046
王炳雅(1993—),女,研究方向为无刷直流电机控制、开关电源技术等。
〔编辑:张思楠〕