田 苍
(黑龙江民族职业学院,哈尔滨 150066)
全数字交流伺服电机控制器的研究与开发
田 苍
(黑龙江民族职业学院,哈尔滨 150066)
基于DSP永磁同步电动机的伺服系统的设计过程,在伺服控制领域内,往往需要被控对象能够实现高精度位置控制,然而要实现精确位置控制的一个基本条件是需要有高精度的执行机构,稀土永磁体的永磁同步电动机就满足其要求。交流永磁同步电动机即PMSM以其运行效率高、转矩脉动小,控制简单等特点,近年来已经逐步成为交流伺服系统的主流执行机构。
全数字;伺服;DSP
交流电动机特别是异步电动机具有结构简单,体积小,重量轻,价格便宜,运行可靠,维护方便,使用环境局限性小等优点,在生产和生活中得到广泛的应用。随着计算机的产生和新型快速的电力电子原件的出现使得交流异步电机的调速成为可能,带有实时信号处理器的电机控制器件如DSP和集成度很高的智能功率模块IPM的出现,更使得由变频器供电的交流电动机控制系统获得越来越广泛的应用。新兴的空间矢量PWM(SVPWM)技术,先进的智能功率模块(IPM),加上具有高性能运行速度的DSP,进一步扩大了变频调速系统的应用范围。
系统以TMS320LF2407A为中央处理器设计控制电路,运用空间电压矢量脉宽调制(SVPWM)技术实现电压源型逆变器驱动电路设计。
目前国外的永磁交流伺服电动机发展很成熟,生产商如日本安川电机公司、三菱公司、美国Gettys公司、德国西门子公司Kollmorgen公司等。其中美国Kollmorgen公司ID(Industrial Drives)工业驱动部分的Goldline系列代表了当代永磁交流伺服技术的最新水平。国外最新推出的高性能交流伺服系统几乎全都实现了数字化,近年来外国公司纷纷推出各自的数字接口协议和标准,如日本发那科公司推出串行伺服总线(FSSB),德国西门子公司推出Profibus-DP总线,日本三菱推出CC-link总线,德国力施乐推出SERCOS总线。
全数字化已经延伸到测量单元接口的数字化。德国HEIDENHAIN将各种类型的编码器,如绝对、增量式和正余弦编码器的细分功能,都统一到EnDae2.2编码器连接协议中。细分过程在编码器内部完成,再通过数字接口和伺服驱动连接起来,这才是真正的全数字化。
国内伺服电机及其全数字伺服驱动器基本上是自主开发,已形成商品化和批量生成能力。一些院校和研究所的永磁同步电动机多为特殊设计,应用于航天、国防等特殊场合的特种电动机。华中科技大学是我国自主创新的伺服驱动技术的发源地之一,开发了基于DSP的全数字交流伺服驱动装置(HSV-16/18/20)并投入大批量生产。北京航天数控公司生产的DSCU系列全数字伺服控制单元和DSSU系列全数字主轴控制单元、北京凯奇数控设备有限公司生产的全数字伺服控制单元和全数字主轴控制单元及电机也已经得到了大规模应用。北京时光科技公司自主研发的全数字化交流伺服控制技术采用32位微处理器为基础的系统级芯片和智能化功率器件,成功实现了对三相交流异步电机(鼠笼式电动机)的高精度伺服控制。从2003年开始,我国的经济型数控系统从配用步进驱动装置,开始大规模改用伺服驱动装置。
随着控制理论、电力电子技术、微电子技术的近一步发展,交流伺服系统会日趋成熟。
3.1 软件开发环境
TI公司为DSP的开发提供了功能齐全的集成编译环境CCS(Code Composer Studio),即可以用汇编语言编程,也可以C语言来编程,也可以汇编语言和C语言混合编程。通过它开发人员可以充分应用DSP的强大功能。
在本设计中采用C语言和汇编语言混合编程的方法,利用CCS2000集成开发环境以及仿真器进行程序调试。程序结构清晰简单,易于调试。
3.2 电流采样子程序
TMS320F2812的ADC模块共有16个输入通道,12位ADC核,内含采用/保持电路,模拟输入范围0~3V。本系统的电流采样就是利用DSP本身的ADC模块。用一个定时器事件启动A/D转换,完成电流的采样。在检测中,霍尔电流传感器只得到两相电流值和,将该电流值送入ADC模块的两路输入ADCINA0和ADCINA1端口,经过转换成为12位的数字量,范围是0--4095,输入模拟电压和采样结果的关系为:数字结果=4095*(输入模拟电压-ADCLO)/3,其中ADCLO为模拟输入的公共地,接到模拟地。电流检测子程序:
void interrupt ad_int1()
{
unsigned int ia0,ib0;
ia0= AdcRegs.ADCRESULT0;
ib0= AdcRegs.ADCRESULT1;
ad flag=1;
AdcRegs.ADCTRL2.all= AdcRegs.ADCTRL2.all|0X4200;
asm(" clrc intm ");
}
3.3 速度检测
下面给出 M法测速子程序,程序中用到的资源有EVA的定时器和,以及捕获单元CAP3。
interrupt void adc_isr(void)
{
T2k=EvaRegs.T2CNT;
DT2=T2k-T2k_1;
T2k_1=T2k;
SPEED=6000L*DT2;
T2abs=T2k-Zero_k
}
3.4 位置给定计算子程序
3.4.1 位置计算子程序
void pos_calc(POS_Handle p)
{
unsigned long m10,m20;
p->r_p=(unsigned long)p->rp*N_R;
p->r_v=(int)p->rv*N_TP;
p->r_a=(unsigned int)(unsigned long)((unsigned)p->ra*N_TP*N_TP);
r_pos=p->r_p;
r_spd=p->r_v;
r_acc=p->r_a;
if(p->r_v<0) r_spd_absolute=-p->r_v;
elser_spd_absolute=p->r_v;
m10=(unsignedlong)(((unsignedlong)r_spd_absolute<<12)/r_acc);
m20=(unsigned long)((unsigned long)r_pos/r_spd_absolute);
if(m20<=m10)//速度曲线为三角形
{
P>t1=(unsignedlong)qsqrt((unsignedlong)(((unsignedlong)r_pos/r_acc)<<12));
p->t2=0;
p->t3=p->t1;
}
else //速度曲线为梯形
{
p->t1=m10;
p->t2=m20-m10;
p->t3=p->t1;
}
m1=(unsigned long)p->t1;
m2=(unsigned long)p->t2;
m3=(unsigned long)p->t3;
}
3.4.2 位置调节子程序
位置参考值以脉冲形式给定,实际反馈的位置是相邻两个采样周期内脉冲数增量的累积值。位置调节采用经典的比例调节算法,可以对偏差瞬间作出快速反应。比例系数越大,控制作用越强,但过大的比例系数会导致系统振荡,破坏系统的稳定性,同时,要对输出值进行限幅处理。调节子程序如下:
void ppi()
{
int ek_pos;
//第k次采样偏差值int un_pos;
if(r_spd<0)pos_ref=-pos_ref_absolute;
else pos_ref=pos_ref_absolute;
ek_pos=(int)((long)(pos_ref-position));
//位置偏差,un_pos=(int)(((long)Kp_pos*(ek_pos-ek_pos0))>>12);
pos_out=(int)(((long)Kspeed*un_pos)>>8);
N_REF=N_REF0+pos_out;
if(N_REF else if(N_REF>max_pos) N_REF=max_pos; ek_pos0=ek_pos; //更新N_REF0=N_REF; Np=Np+1; } 3.5 速度调节子程序 3.5.1 速度调节子程序 void spi() { int ek_spd; int un_spd; int el_spd; ek_spd=N_REF-n_fdb; un_spd=xi_spd+(int)((long)Kp_spd*ek_spd); if(un_spd>max_spd) spd_out=max_spd; else if(un_spd else spd_out=un_spd; el_spd=spd_out-un_spd; xi_spd=xi_spd+(int)((long)Ki_spd*ek_spd)+(int)(((long)Kc_spd*el_spd); } 3.6 SVPWM程序流程图(图1) 图1 SVPWM程序流程 在程序中特别注意的是死区时间的设置,本系统死区时间为4.3。 3.6.1 SVPWM实现子程序 void sv_pwm( ) { int anticlk[6]={0x1666,0x3666,0x2666,0x6666,0x4666,0x5666}; int x,y,z; unsigned int a,b,c; unsigned int t1,tm; unsignedintt1_q0,tm_q0; unsignedinttaon,tbon,tcon;x=ubeta; y=(int)(((long)28377*ualfa)>>15)+(int)(((long)16384*ubeta)>>15); z=-(int)(((long)28377*ualfa)>>15)+(int)(((long)16384*ubeta)>>15); if(x>=0) a=1; else a=0; if(-z>=0) b=1; else b=0; if(-y>=0) c=1; else c=0; p->sector=4*c+2*b+a; switch(p->sector) { case 1: t1=(unsigned)(((unsigned long)z*32768)>>15), tm=(unsigned)(((unsigned long)y*32768)>>15); break; case 2: t1=(unsigned)(((unsigned long)y*32768)>>15), tm=(unsigned)(((unsigned long)-x*32768)>>15); break;case3:t1=(unsigned)(((unsignedlong)-z*32768)>>15),tm=(unsigned)(((unsigned long)x*32768)>>15); break; case4:t1=(unsigned)(((unsignedlong)-x*32768)>>15),tm=(unsigned)(((unsignedlong)z*32768)>>15); break; case5:t1=(unsigned)(((unsignedlong)x*32768)>>15),tm=(unsigned)(((unsigned long)-y*32768)>>15); break; case6:t1=(unsigned)(((unsignedlong)-y*32768)>>15),tm=(unsigned)(((unsignedlong)-z*32768)>>15); break; default:break; } EvaRegs.ACTRB.all=anticlk[p->sector-1]; //重新装配ACTRBt1_q0=(unsigned)(((unsigned long)t1*TP)>>12); tm_q0=(unsigned)(((unsigned long)tm*TP)>>12); f(t1_q0+tm_q0>TP) { t1_q0=(unsigned)(((unsignedlong)t1_q0*TP)/(t1_q0+tm_q0)); tm_q0=(unsigned)(((unsignedlong)tm_q0*TP)/(t1_q0+tm_q0)); } taon=(unsigned)((TP-t1_q0-tm_q0)/2); tbon=taon+t1_q0;tcon=tbon+tm_q0; switch(p->sector) { case 1: p->tcm1=tbon, p->tcm2=taon, p->tcm3=tcon; break; case 2: p->tcm1=taon, p->tcm2=tcon, p->tcm3=tbon; break; case 3: p->tcm1=taon, p->tcm2=tbon, p->tcm3=tcon; break; case 4: p->tcm1=tcon, p->tcm2=tbon, p->tcm3=taon; break; case 5: p->tcm1=tcon, p->tcm2=taon, p->tcm3=tbon; break; case 6: p->tcm1=tbon, p->tcm2=tcon, p->tcm3=taon; break; default:break; } 永磁同步电动机伺服系统在性能和结构设计上有其独特之处,以永磁同步电机为执行单元的交流伺服系统逐渐地成为伺服系统发展的主流。本文基于以上的背景,对数字永磁同步电动机伺服驱动控系统作了以下几个方面的研究工作: (l)通过讨论永磁同步电动机的数学模型和矢量控制策略,确定了以转子磁场定向的矢量控制方案,并确定通过空间矢量脉宽调制(SVPWM)提高电机快速响应性和电压利用。 (2)对转子磁链定向矢量控制、空间矢量PWM波形的产生、电流回路和速度回路的调节等控制方法进行了MATLAB仿真研究。 (3)进行了以TMS320LF2407为控制核心的整套永磁同步电机伺服系统的硬件设计,对系统主回路、检测、保护、驱动电路给出了具体设计方案。 (4)在CCS集成开发环境中完成了永磁同步电机伺服系统的软件设计,详细介绍了系统软件设计的原理及实现,包括DSP初始化,PWM中断服务程序,并给出相应程序流程图。 高性能永磁同步电机伺服控制系统是一个多学科交叉的研究领域。为了进一步提高永磁同步电机伺服系统的性能,应从以下几个方面陆续进行深入研究,比如:采用直接转矩控制控制策略、采用模糊控制技术,人工神经网技术、采用绝对值的编码器等等,这些需要在以后的工作中进一步地完善。由于本文作者时间精力与知识水平有限,论文中难免存在一些不足之处,需要做进一步的研究与改进。 [1]吴宏,蒋仕龙.运动控制器的现状与发展[J].Annual 2003 of CMES [2]胡崇岳.现代交流调速技术[M].北京:机械工业出版社,2000. [3]舒志兵.交流伺服运动控制系统[M].北京:清华大学出版社,2006.3. [4]黄廉杏.基于TMS320LF2407交流伺服系统的研究[D].成都:西南交通大学,2005. [5]陈桂桂.永磁同步电机伺服驱动控制器的研制[D].广东:广东工业大学,2008(5)Texas Instruments.TMS320LF2407 DSP Controllers Reference Guide CPU [6]沈杰.基于DSP的永磁同步电机伺服控制系统的研究[D].合肥:合肥工业大学,2007. [7]王兆安.电力电子技术.第四版.北京:机械工业出版社,2000. [8]孙业树.基于DSP的永磁同步电机交流伺服控制[D].江苏:江苏大学,2003. [9]陈伯时.电力拖动自动控制系统-运动控制系统.第三版.北京:机械工业出版社,2003. [10]龚云飞.交流永磁电机伺服系统的仿真及实现[D].哈尔滨:哈尔滨工业大学,2006. [11]李永东.交流电机数字控制系统[M].北京:机械工业出版社,2002. [12]黄杰.基于DSP的交流伺服控制系统的研究[D].北京:北京交通大学,2008. [13]苏彦民,李宏.交流调速系统的控制策略[M].北京:机械工业出版社,1998. [14]Heinz Willi Van Der Broeck,etc.Analysis and Realization of a Pulse-width Modulator Based on Voltage Space Vectors[J].IEEE Trans.On Industrial Application,1988,24(1):142-150. [15]魏克新.MATLAB语言.与自动控制系统设计.北京:机械工业出版社,1997.8. [16]范影乐.MATLAB仿真应用详解[M].北京:人民邮电出版社.2002,257-295。 [17]吕健.基于DSP的全数字永磁同步电机伺服系统研究[D].广东:广东工业大学,2008. [18]Texas Instruments.TMS320C2X/C2XX/C5X Optimizing C Compiler User’s Guide 2004. http://www.poweripm.com/js158.htm. [19]万山明.TMS320F281XDSP原理及应用实例[M].北京:北京航空航天大学出版社. [20]冬雷.DSP原理及电机控制系统应用[M].北京:北京航空航天大学出版社 ,2007. [21]王潞钢,陈林康,曾岳南等.DSP C2000 程序员高手进阶[M].北京:机械工业出版社,2005. [22]刘和平,王维俊,江渝,邓力等.TMS320LF240x DSP C语言开发应用.北京:北京航空航天大学出版社,2003. [23]王晓明,王玲.电动机的DSP控制[M].北京:北京航空航天大学出版社,2004. [24]Texas Instruments.TMS320LF2407 DSP Controllers Reference Guide Peripheral Library and Specific Devices.2004. [25]韩安太,刘峙飞,黄海.DSP控制器原理及其在运动控制系统中的应用[M].北京:清华大学出版社,2003. [26]Hyung-Tae Moon, Hyun-Soo Kim,and Myung-Joong Youn.A Discrete-time Predictive Current Control for PMSM[J].Proc of IEEE on Power Electronics,2003.2:464-472. [27]Yu Z Y.Space-Vector PWM with TMS320C24x Using H/W&S/W Determined Switching Patterns[ Z].Texas Instruments Literature,1999,NO.SPRA52(http://focus.ti.com/docs/apps/catalog/resources/) [28]张燕宾.SPWM变频调速应用技术[M].北京:机械工业出版社,2002. [29]Bimal K. Bose.Moder Power Electronics and AC Drivers.Prentice Hall,2002:1-27. [30]熊健,张凯.空间矢量脉宽调制的调制波分析[J].电气自动化,2002(3). [31]Texas Instruments.Implementation of A Speed Field Oriented Control of 3-phase PMSM Motor using TMS320F240.Application Repor,SPRA588,1999:645-655. [32]王兆安,陈桥梁.集成化是电力电子技术的发展趋势[J].交流技术与电力牵引,2006. [33]Naomistu Urasaki.On-time Dead-Time Compensation Method for Voltage Source Inverter fed Motor Drives[J].Confrence record of IEEE-APEC,2004:122-127. [34]王俊柳,王敏,王颖.基于MATLAB的异步电动机仿真实验平台[J] .计算机仿真,2002. [35]Ortega R, Barabanov N, Valderrama G E . Direct Torque control Induction Motors:Stability Analysis and Performance Improvement, IEEE-AC,2001,46(8):1209-1222. [36]Jawad Faiz, M. B. B. Sharifian. Comparison of different switching patterns in direct torque control technique of induction motors[D]. Electric Power Systems Research, 2001, 60(3):63-75. [37]Pavlov A, Zaremba A . Direct torque and flux regulation in senorless control an induction motor[C]. Proceedings of the American Control Conference,Arlington,VA,2001:137-142. [38]永磁同步电机伺服驱动器控制电路及算法[J]. 煤矿机电,2009,5. [39]许大中,贺益康.电机控制[M]. 浙江:浙江大学出版社. 2002:197-212. [40]谢宝昌,任永德. 电机的DSP控制技术及其应用[M]. 北京:北京航空航天大学出版社.2005.212-229. [41]基于TMS320F2812的数字交流伺服驱动器的设计[J]. 机床与液压,2009,9. [责任编辑 李顺子] 小知识·学术论文的七个要点之一·选题 选题是学术论文关键的第一步,直接关系论文的质量。常言道:“题好文一半”。对于作者来说,选择论文题目要注意以下几点:一要结合学习与工作实际,根据自己所熟悉的专业和研究兴趣,适当选择有理论和实践意义的课题;二要论文选题宜小不宜大,只要在学术的某一领域或某一点上,有自己的一得之见,或成功的经验或失败的教训,或新的观点和认识,言之有物,读之有益,就可以作为选题;三要论文选题时要查看文献资料,既可了解别人对这个问题的研究达到什么程度,也可以借鉴人家对这个问题的研究成果。 需要指出的是,学术论文选题与论文的标题既有关系又不是一回事。标题是在选题基础上拟定的,是选题的高度概括,但选题及不应受标题的限制,有时在过程中,选题未变,标题却几经修改变动。 2017-02-20 科研项目:黑龙江省教育厅2011年科学技术研究(12515177) 田苍,1978-,男,蒙古族,内蒙古哲里木盟人,副教授,教学管理、电子与通信工程研究。4 总结
5 展望