基于DSP的异步电机变频调速矢量控制研究

2017-05-02 07:35
微特电机 2017年5期
关键词:异步电机磁链寄存器

艾 红

(北京信息科技大学,北京 100192)

0 引 言

异步电机的物理模型是一个高阶、非线性、强耦合的多变量系统,需要用一组非线性方程组来描述。相比之下,直流电机的数学模型较为简单,从物理模型上看,直流电机分为空间相互垂直的励磁绕组和电枢绕组,且两者各自独立,互不影响,通过控制两种绕组中的电流就可以分别控制电机的气隙磁通和电磁转矩,获得很好的控制效果。矢量控制的核心思想是模型变换,通过一系列坐标变换,将原来非线性、强耦合、多变量的异步电机模型等效得到直流电机模型,通过控制等效的励磁电流和转矩电流,用直流电机控制的方法对异步电机进行调速。数字信号处理器DSP集中了电动机控制所必须的可增加死区和灵活多变的多路PWM信号发生器,具有高速高精度ADC以及用于电机速度和位置反馈的编码器接口等电路,能够实现矢量控制这样复杂的控制算法对异步电机的控制[1-2]。

1 异步电机变频调速系统功能

异步电机变频调速系统设计分为多个电路板设计,其中包括电源板、驱动板和主控板。基于TMS320F2812 DSP设计主控板。选用DSP和IPM等高性能器件,设计包括功率驱动电路和控制电路在内的整个硬件系统。实现功能有电机运行状态显示,获取速度、转速信息,通过A/D检测电压电流,完成控制算法的计算等关键问题。主控板由控制器模块、PWM模块、人机界面模块、信号处理模块组成;驱动板由整流模块、逆变模块、信号采集模块组成;电源板为驱动板和主控板提供电源。采样电路包括电流采样和电压采样。采用电流霍尔元件分别对电机电流和母线侧电压进行采样,TMS320F2812芯片片内集成了可以和光电编码盘接口的正交编码器脉冲QEP电路。在变频调速系统中,为了完成速度闭环,设计了具有隔离功能的光电编码器接口电路。利用光电编码器进行转速采样。异步电机变频调速系统设计框图如图1所示。

图1 异步电机变频调速系统设计框图

2 异步电机变频调速电源与驱动板

2.1 电源板设计

考虑到设计中需要用到8路电源,选择设计一个开关电源。设计电源为主控板提供+24 V,+15 V,-15 V和+5 V共4路电源,为驱动板提供4路+15 V电源。电源电路设计框图如图2所示。

图2电源电路设计框图

2.2 驱动板设计

驱动电路的设计思路是实现交直交变频,输出可控三相电驱动电机,如图3所示。

图3 驱动板设计框图

3 异步电机变频调速主控板设计

3.1 电流检测

电机采用Y型接法,需要测量两路电流可以根据ia+ib+ic=0,得到另外一路电流。检测电路包括电流检测和电压检测。其中电流检测包括检测直流母线电流、检测逆变侧输出的电流;电压检测就只需要检测整流侧直流电压。由于使用的传感器输出的都是电流,那么就需要将它转换为电压再输入到A/D,经过A/D采样得到采集结果。对直流母线电压、直流母线电流和两路交流输出采样。图4中TLV2254是低功耗运算放大器,网络标号C1和C2的输入经过TLV2254放大,输出端送至DSP的引脚ADCINA2和ADCINA3实现A/D采样[3-4]。

图4 A/D输入信号放大电路

3.2 速度反馈模块

测速原理是将旋转编码器与电动机同轴相连,当电动机转动时,带动编码器旋转。增量式编码器在码盘上均匀地刻制一定数量的光栅,通过记录编码器在一定时间间隔内发出的脉冲数,可以推算出这段时间的转速。从编码器采样的信号A1,B1,C1经过光耦芯片TLP113得到A2,B2,Z2,再经过芯片SN74HC04提高带负载能力,最终得到3路捕获信号CAP1~CAP3交由DSP处理。

3.3 CPLD逻辑电路

为了整个设计电路的安全,需要设计相关逻辑保护电路,选用可编程逻辑器件CPLD进行整个逻辑控制。CPLD中的程序逻辑如图5所示。

图5 CPLD模块的逻辑图

4 矢量控制过程分析

由IPM模块输出端检测三相电流iA,iB,将三相到两相进行Clarke变换得到两相静止电流iα,iβ。由磁链观测器计算出变换角度θ,结合变换角度θ,将两相静止电流进行Park变换得到两相旋转电流id,iq,得到的电流值作为反馈值,反馈至电流PID输入口,结合测速环节反馈回来的转速信息得到两相旋转电压Ud,Uq。经由逆Park变换,计算得到两相静止电压值Uα,Uβ,再由电压空间矢量SVPWM计算,计算出PWM一定占空比的跳变时间,更新事件管理器中各个比较寄存器的数值,产生6路PWM波,接入到逆变环节,最终得到理想频率的三相交流电作用于异步电机控制电机速度的变化。这些坐标变换是矢量控制系统模型变换的核心。矢量控制系统框图如图6所示。

图6 矢量控制系统框图

5 矢量控制程序设计

5.1 矢量控制程序

矢量控制程序主要由ADC输入模块、Clarke变换模块、Park变换模块、逆Park变换模块、磁链角度计算模块、PID模块、捕获模块、测速模块、斜坡模块以及空间矢量计算模块等组成。在定时器下溢中断中实现矢量控制算法,流程图如图7所示。

图7 矢量控制算法流程图

由给定转速与反馈转速计算得到转速PID输出。结合两相旋转电流和反馈速度可以计算得到磁链角度,查表得到三角函数值,用于Park和逆Park变换中。由ADC通道输入两相电流值,计算得到第三相电流值再通过Clarke变换和Park变换得到两相旋转电流。结合速度PID输出的转矩电流和给定励磁电流分别进行电流PID控制,PID输出结果为两相旋转电压,通过逆Park变换得到两相静止电压。之后进入空间矢量计算环节。判断矢量所在扇区,计算PWM波形跳变时间的中间变量X,Y,Z,最终得到跳变时间Ta,Tb,Tc,经过处理赋值给比较寄存器,事件管理器中定时计数器通过与比较寄存器比较产生PWM波形[5-6]。

5.2 捕获模块

捕获模块对电机旋转信号进行捕获,得到时间戳信号,用于计算电机转速。程序初始化时设置捕获控制寄存器CAPCONA的值为1010 0000 0101 0000B ,使能捕获单元1和2,并检测上升沿。设置定时器2控制寄存器T2CON的值为1001 0111 0100 0000B ,表示设置定时器为连续递增计数模式,使用内部时钟的128分频作为时间基准,使能定时器。定时器周期值设置为0x7FFF。设置GPIOA8,GPIOA9,GPIOA10引脚为外设功能,作为捕获引脚使用。主要程序如下:

void F281X_EV1_CAP_Init(CAPTURE *p)

{

EvaRegs.CAPCONA.all = CAP_INIT_STATE; //初始化捕获单元

EvaRegs.T2CON.all = TIMER_INIT_STATE; //初始化定时器单元

EvaRegs.T2PR = 0x7FFF; //设置定时器2周期值

EALLOW; //解除寄存器保护

GpioMuxRegs.GPAMUX.all |= 0x0700;

//设置GPIOA8~ GPIOA10引脚为外设功能

EDIS; //使能寄存器保护

}

捕获模块读取程序中,判断捕获状态寄存器的值,如果不为零,读取信息并放入TimeStamp变量中,返回值为0,结束捕获。

捕获模块读取程序如下:

Uint16 F281X_EV1_CAP_Read(CAPTURE *p)

{

if((EvaRegs.CAPFIFOA.all&0x0100) != 0)

//检查捕获状态寄存器的值

{

p->TimeStamp = EvaRegs.CAP1FIFO;

//获取捕获单元堆栈中的数值

return(0); //返回值为0,结束捕获

}

else

{

return(1); //返回值为1

}

}

5.3 速度计算模块

经由捕获模块得到的时间戳信号,要经过速度计算模块,转换得到转速信号。速度计算模块如图8所示。

图8 速度计算模块示意图

速度计算模块程序流程图如图9所示。

速度计算模块主要思路是当输入选择等于0时,开始改变时间戳,时间戳新老更替,NewTimeStamp是捕获事件的新时间戳,OldTimeStamp是捕获事件的旧时间戳。将当前时间戳TimeStamp赋值给新时间戳,新时间戳-旧时间戳得到周期值。为了确保周期值为有效正值,做取正处理,当EventPeriod <0时,EventPeriod = EventPeriod +32 767 。再由速度定标除以周期值,得到速度值Speed=SpeedScaler/EventPeriod。转速SpeedRpm的实际数值可以由速度转换基值BaseRpm乘以速度值Speed得到即转速SpeedRpm=BaseRpm×Speed 。将转速SpeedRpm值除以电机额定转速将会得到实验曲线中的速度反馈值。

图9 速度计算模块流程图

6 空间矢量模块与测试结果

6.1 IQmath方法与IQmath函数及其调用

IQmath方法是一种采用定点运算但具有浮点数据处理特性的计算方法。可以用定点运算实现浮点运算。IQ格式数表示法是当小数点位于第0位的右侧时,定义为Q0。当小数点位于第15位的右侧时,定义为Q15。例如Q10格式的小数点定标在111 111.111 111 111 1,它的最低位变化一个单位表示精度为1/210=0.000 976 6。

6.1.1 调用IQmath函数的方法

(1)IQmathLib.h加入到头文件,定义全局Q值 GLOBAL_Q。

#ifndef GLOBAL_Q

#define GLOBAL_Q15

#endif

(2)在项目的库文件汇总增加IQmath的库文件IQmath.lib;

(3)在CMD文件中,将"IQmath"输出段正确放置在程序存储区中;

6.1.2 IQmath函数说明

全局GLOBAL_Q函数的输入和输出都是GLOBAL_Q格式的,在GLOBAL_Q值确定后,是一个确切的值,例如:

_IQsin(A) //GLOBAL_Q格式是数A的sin函数值

_IQcos(A) //GLOBAL_Q格式是数A的cos函数值

_IQmpy(A,B) //GLOBAL_Q格式是A和B两数相乘,得到GLOBAL_Q格式的积

对产生PWM波形的比较寄存器赋值,用下面3条语句将Ta,Tb,Tc分别放入比较寄存器调整参数中去。

pwm1.Mfunc_c1 = (int)_IQtoIQ15(svgen_dq1.Ta);

//将Q值为GOLBAL_Q的IQ格式数svgen_dq1.Ta转化为Q值为15的IQ格式数赋值给pwm1.Mfunc_c1。

pwm1.Mfunc_c2 = (int)_IQtoIQ15(svgen_dq1.Tb);

pwm1.Mfunc_c3 = (int)_IQtoIQ15(svgen_dq1.Tc);

定义一系列初始函数变量如下:

int m_period;

long tmp;

tmp = (long)p->n_period×(long)p->Mfunc_p;

m_period = (int)(tmp>>16) + (int)(p->n_period>>1);

EvaRegs.T1PR = m_period;

n_period为周期,Mfunc_p是周期调整参数(Q15格式),Mfunc_c1为比较器调整参数(Q15格式),m_period为新周期。周期值n_period 乘以周期调整参数Mfunc_p得到新周期。tmp = (long)p->n_period*(long)p->Mfunc_p; 即Q15 = Q0*Q15,但Mfunc_p的范围是-1~1(Q15格式)。假设周期值1 000,则tmp的范围是-1 000~1 000,为保证新周期为正整数,将tmp除以2,范围变成-500~500,再加上半个周期值500,得到新周期的范围为正整数0~1 000。m_period = (int)(tmp>>16) + (int)(p->n_period>>1); 这条语句功能是Q0 = (Q15->Q0)/2 + (Q0/2),即tmp首先除于2,范围变为-500~500,然后再偏移500(+ n_period >>1),此时范围是0~1000,实现了上述转换。

比较寄存器调整参数Mfunc_c1,Mfunc_c2和Mfunc_c3的范围是-1~1,在得到比较寄存器的新值时做取正整数处理。

语句EvaRegs.CMPR1 = (int16)(Tmp>>16) + (int16)(MPeriod>>1); 的含义是 Q0 = (Q15->Q0)/2 + (Q0/2)。将Tmp值除以2,实现占空比由(-1,1)到(-0.5,0,5),然后右移15位也就是取整,将该数从Q15格式转换成Q0格式,再加上0.5(对应MPeriod>>1)的偏移,把占空比还原到(0,1),此时的结果就是比较寄存器的值。

6.2 矢量控制测试结果

矢量控制系统需要逐步构建,程序调试分为5个级别进行,分别是1级~5级。由简到繁,逐渐完成整个矢量控制程序。1级调试主要是斜坡变换模块,磁链近似模块、逆Park变换模块、空间矢量计算模块。对输入信号进行斜坡处理,进行磁链近似计算,结合给定条件做逆Park变换,进行空间矢量计算之后更新PWM,使能PWM输出。2级调试是在1级的基础上,加入ADC采样模块,采集两相电流值,对采样信号做Clarke变换和Park变换得到两相旋转电流,并不直接应用,结合给定条件做逆Park变换,做同样的PWM处理。最后还加入了速度计算模块为下面的变化做准备。1级和2级都是开环控制系统。3级调试相对于2级又加入了电流PID模块,对Park变换后得到的两相旋转电流分别做转矩电流PID和励磁电流PID控制计算,对2路PID输出做逆Park变换,得到两相静止电压信号,用电压信号进行空间矢量计算得到跳变时间,更新PWM并使能PWM。4级调试是在3级的基础上,增加了磁链角度计算模块,为替代磁链近似模块做准备。3级和4级都是电流闭环控制系统。5级调试主要包括ADC采样模块、Clarke变换模块、Park变换模块、速度PID模块、转矩电流PID模块、励磁电流PID模块、逆Park变换模块、空间矢量计算模块、速度计算模块、磁链计算模块,最后使能PWM。从1级到4级调试是在不断地添加模块,5级调试是应用速度PID模块取代斜坡模块,对给定速度与反馈速度之间进行PID控制。用磁链计算模块取代磁链近似模块,得到更好的磁链角度计算精度。5级调试是速度和电流双闭环控制系统,是实现矢量控制算法的完整的矢量控制程序。

经过DSP程序运行截取的第1扇区PWM输出波形记录图,如图10所示。

图10 第1扇区三相波形图(截图)

当给定值为0.5时,电机速度控制实验结果如图11所示。图11中电机额定转速为2 800 r/min,

图11 给定值为0.5的速度测量曲线图

速度给定值和反馈值都是转速与额定转速的比值,电机转速最终稳定在1 405 r/min。

7 结 语

交流变频调速技术是强弱电混合、机电一体化的综合技术,既要处理巨大电能的转换如整流和逆变,又要处理信息的收集、变换和传输,因此分成功率和控制2大部分。功率要解决与高压大电流有关的技术问题和新型电力电子器件的应用技术问题,控制要解决基于现代控制理论的控制策略和智能控制策略的软硬件开发问题。以DSP为核心设计控制系统的变频器,可以检测电机的参数,通过检测电机的电压和电流,对电机的状态了如指掌。采用矢量控制实现了对异步电机的变频调速功能[7]。

[1] 廖华平,程小华.基于DSP的SVPWM矢量控制变频系统研究[J].微电机,2006,39(9):70-72.

[2] 黄少瑞,郝润科,朱军,等.基于DSP的异步电机SVPWM控制技术实现[J].电气自动化,2010,32(5):20-23.

[3] 汪浩洋,邱瑞昌,赵晓红.基于DSP的异步电机无速度传感器矢量控制[J].电力电子技术,2010,44(4):51-53.

[4] 王春民,孙淑琴,安海忠等.基于DSP永磁同步电动机矢量控制系统的设计[J].吉林大学学报(信息科学版),2008,26(4):343-346.

[5] 张家龙.基于DSP的模糊自适应异步电机矢量控制的研究[J].采矿技术,2013,13(4):87-89.

[6] KASAL G K,SINGH B.DSP-based voltage controller for an isolated asynchronous generator feeding induction motor loads[J].Electric Power Components and Systems,2009,37( 8):914-935.

[7] MONTANARIA M,PERESADAB S,TILLA A.A speed-sensorless indirect field-oriented control for induction motors based on high gain speed estimation[J].Automatica,2006(42):1637-1650.

猜你喜欢
异步电机磁链寄存器
优化反馈补偿闭环定子磁链观测器
表贴式永磁同步电机模型预测转矩控制系统预测模型研究*
双BP神经网络的永磁同步电机磁链与转矩无差拍控制
STM32和51单片机寄存器映射原理异同分析
基于磁链预测的PMSM无磁链环SVM-DTC研究
户外防腐蚀型防爆三相异步电机设计
大型变频调速异步电机的设计
Lite寄存器模型的设计与实现
移位寄存器及算术运算应用
第三方异步电机在MTX micro控制系统中的应用