基于DSP的无刷直流电动机在线调试系统
2017-05-15宰文姣
宰文姣,王 博,何 可
(四川师范大学,成都610101)
0 引 言
无刷直流电机(以下简称BLDCM)作为典型的运动执行机构,具有运行效率高、调速性能好、无励磁损耗、可靠性高、维护方便、体积小、便于控制等优点,被广泛应用于航模、医疗器械、数控机床、家用电器、电动车、电子产品、武器控制系统等诸多领域[1]。
在实际工业应用中为提高控制性能,通常应用PID技术对BLDCM进行位置、速度、功率的闭环调控。PID控制中的最优参数P,I,D随负载、应用环境的不同而变化。现有研究在分析BLDCM的数学模型时,结合了各种控制算法,利用MATLAB工具进行仿真,获取良好的PID控制器。文献[2]采用数字式增量PID算法和PWM控制技术,提高了无刷直流电机转速控制精度;文献[3]在MATLAB/Simulink中搭建了轴向磁通双凸极永磁电机模型,采用了速度模糊PID控制进行仿真,结果表明模糊PID控制无论在响应速度、超调量还是在稳定误差等方面均优于PID控制;文献[4]采用离散PID控制和滞环电流跟踪型PWM控制,为实际电机控制系统的设计和调试提供了新思路;文献[5]将PID控制、模糊控制和微粒群算法相结合,设计双闭环直流调速系统优化控制方案,仿真结果表明该方案具有最优的动、静态性能和抗干扰能力。前述研究中,最佳PID参数是根据现场工程师的经验初步确定,反复离线修改在线调试,逐步获取较为满意的值。显然这种方式对工程师的要求极高,获取最佳参数的过程偶然因素占较大成分,并且耗时多。文献[6]将PSO算法应用于模糊控制器的设计中,可以在线自动调整模糊控制器的量化因子Ke,Kec和比例因子Ku,进而调整PID的3个参数kp,ki和kd,较好地实现系统快速——无超调的动态性能。文献[7]根据常规PID和神经网络各自的优势,设计了适应PID的单神经元同时可以在线学习的智能控制的算法去调整权值,从而简单地实现PID参数的自适应。文献[6-7]所提出的方法是根据BLDCM的数学模型设计的,然而,BLDCM具有非线性、强耦合性,数学模型难以确定,因此采用上述方法获取的PID控制器,应用于实际控制系统中误差较大。
本文基于可靠、稳定、便捷的原则,PC端用Microsoft Visual Basic6.0为工具编写了BLDCM在线监测、调试、控制上位机系统,将DSP作为下位机控制系统,通过上、下位机联合控制从而实现BLDCM的在线调试,在线及时获取最佳PID参数。该方法操作简单,可以实现工业现场和远距离的BLDCM运行数据检测与控制,可减小应用于实际控制系统中的误差。
1 系统结构及工作原理
本文的BLDCM在线调试系统包括PID闭环调速单元、电机工作现场监测与控制单元、上位机远程监测与控制单元和下位机单元;其中,PID闭环调速单元包括控制器模块、霍尔元件模块、测速模块、PWM模块及PID调速模块;电机工作现场监测与控制单元包括键盘电路模块和显示电路模块。图1是设计的系统整体结构图。
图1 BLDCM控制系统结构框图
系统的工作原理:上位机远程监测与控制单元用于向下位机单元发送命令并用于接收下位机单元反馈回的数据。上位机远程监测与控制单元包括监测模块和控制模块;监测模块用于刷新实时曲线,先将串口接收回来的数据保存为滑动数组,然后每隔1 s将数组中的数据绘制成曲线再更新数组的内容;控制模块用于显示从下位机单元接收回来的转速和占空比数据,并且将控制指令发送给下位机单元间接控制执行机构。
下位机单元一方面用于接收上位机监测与控制单元的命令经过处理后传递给BLDCM;另一方面用于将各种传感器监测回来的数据经过处理后回传给上位机远程监测与控制单元。控制器模块通过串口协议与上位机远程监测与控制单元通信,控制器模块通过键盘电路模块输入信号,控制器模块通过显示电路模块输出信号,所述的上位机远程监测与控制单元(以下简称上位机)和下位机单元(以下简称下位机)之间通过串口进行通信。
2 硬件设计
系统主要模块如图2所示,包含有电机驱动模块、TMS320F28335控制模块、BLDCM模块(包含驱动)、PWM模块、测速模块、PID闭环控制模块(纯软件算法方式)、通信模块、人机交互模块(键盘模块和显示模块)。其中,电机驱动模块采用日本Nidec的24H677H010 BLDCM,该电机为三相六极永磁无刷直流电动机,其定子绕组反电势为120°的梯形波,采用两相导通三相六拍运行方式。供电电压9~12 V,采用12 V开关电源。
图2 硬件电路框图
2.1 控制部分
系统控制部分选用的核心器件是TI公司的TMS320F28335,相较于以往的定点DSP,其精度更高,功耗更小,性能更好,成本更低,外设集成度高,数据及存储量大,A/D转换更精确快速[8]。
DSP及其相关外围电路构成了控制部分;外围电路包括:电平转换电路、时钟电路、复位电路及存储器。由于 TMS320F28335具有片上Flash,OTPROM及SARAM存储器,故外围电路无需考虑存储器接口问题。本设计中电压等级的变换采用AMS1117系列稳压器;通过在晶振管脚间接入无源晶振启动芯片自带的内部振荡器为TMS320F28335提供时钟;采用上电复位方式,选用IMP809S型电源监控芯片来实现系统的可靠复位;DSP有JTAG硬件测试仿真接口,它可以与外界进行数据交换[9]。
2.2 驱动模块
BLDCM中的转子位置传感器用来检测转子当前位置,然后将检测结果传送给逻辑控制电路,产生相应的触发脉冲,控制驱动电路中功率开关器件的通、断,继而BLDCM中的逆变器控制电机定子各相绕组的导通顺序和时间,产生相应的电枢磁场,与转子永磁体在气隙内形成的气隙磁场合成,从而驱动电机转动[10]。
TMS320F28335内部含6组共12个EPWM(增强型脉宽调制模块)和6个HRPWM(高分辨率脉宽调制模块),每个完整的EPWM通道由两个PWM输出组成,即EPWMA和EPWMB,完整的EPWM模块控制和状态寄存器装置由这几个子模块构成:计数比较子模块,动作限定子模块,死区产生子模块,错误联防子模块,事件触发子模块,PWM斩波子模块。本系统中只需将一路PWM输出端口与BLDCM驱动器的PWM端口相连即可进行调速。
2.3 测速模块
电机转速的测量方式主要有3种:脉冲数字测速、霍尔元件测速和集成电路测速,本文选用槽型光耦模块,测速原理属于数字脉冲式,其内部电路图如图3所示,本系统选用的是宽电压LM393比较器,驱动能力强,电流超过15mA,可工作于3.3 V或5 V电压环境下,有遮挡时输出高电平,无遮挡时输出低电平。由于采用物理遮光计数,因此稳定可靠。在应用时将传感器模块的D0输出口接到TMS320F28335的外部中断口,然后在程序中检测计数即可完成BLDCM的测速。
图3 槽型光耦模块电路图
2.4 串口通信
上位机和下位机之间通过串口进行通信SCI,TMS320F28335内部有3路独立的SCI,在TMS320F28335中对SCI的配置主要针对以下寄存器:SCICCR(停止位、是否回环、校验方式、数据位),SCICTL1(发送接收使能),SCICTL2(中断使能),SCIHBAUD,SCILBAUD(波特率)等。对SCI异步串口通信的实现,主要分为发送和接收两大块,程序中发送为主动,接收在中断中完成。每当检测到有数据,就暂时关闭接收中断,然后开始连续接收3个字节,之后重新打开接收中断,并对之前接收到的数据(帧)进行分析处理。
将DSP的SCI与PC机进行串口通信,实时将当前BLDCM转速传给PC机,然后在PC机上显示最近1 min内的转速曲线,并计算最大速度、平均速度等。同时PC机可以下达如起停、加减速、设定速度等命令控制电机运行状态。
2.5 人机交互模块
人机交互在硬件部分主要由键盘电路和显示电路两部分组成。
由于本系统的人机交互模块采用层级式菜单控制,要求显示设备的刷新速度快,故选用Nokia5110液晶显示屏,内部使用PCD8544驱动,Nokia5110模块自带PCB,带背光控制。
键盘电路的设计主要是将键盘设置成简单的左软件、中软件、右软件的形式,然后分别连接到TMS320F28335的外部中断,同时每当按下任意一个键时,更新显示设备的内容,亦重新设定各个按键的功能。显然,这样会增加更多的软件处理,但是由于这些都是当有按键按下时才进入中断函数里面处理的,因此本质上为PID等计算工作争取了大量的时间。况且本设计使用的显示设备为Nokia5110,刷新速度比传统的LCD1602,LCD12864等快得多。加之这种设计总共只有3个按键,简单精致。
3 软件设计
系统的软件设计包括两部分:上位机远程监测与控制(简称上位机)部分的程序设计和下位机(DSP)部分的程序设计。
3.1 DSP 软件设计
DSP方面程序设计主函数只是做向PC机传送实时速度数据的工作,其余工作全在中断中完成,图4即为中断函数流程图。
图4 中断程序流程图
在图4中,外部中断3,4,5分别对应3个现场独立按键,外部中断5是串口接收中断。当通过按键或者上位机对系统下达命令时,如果系统判断为有效的功能码,则按相应功能驱动电机动作,同时切换液晶显示器画面。外部中断6专门用于测量电机实时转速,每当码盘被遮挡一次,脉冲计数器自增一次,然后当定时器中预设的定时值(本设计为0.5 s)到时,将脉冲计数器中的值取出,然后脉冲计数器清零,准备下个定时时间的计数。最后根据取出的值按相应的转换关系求出电机实时转速。
每隔时间t将计数器中的值m取出计算BLDCM当前转速。假设码盘的精度为,则转换到转速:
3.2 上位机软件设计
本设计采用Visual Basic6.0(以下简称VB6.0)绘制上位机界面及编写程序,采用VB6.0内置的菜单编辑器制作菜单栏,用Toolbar工具制作软件工具栏,同时配合使用PhotoShop绘制工具栏图标及界面。
上位机由VB6.0编写发送接收函数实现对应功能码的发送及实时数据的接收,通过添加Microsoft Comm Control 6.0控件使上位机与下位机进行通信。上位机软件设计界面如图5所示,主要由控制台和运行状况两部分组成。控制台主要是软件的总体配置及对界面的操作;界面右部显示电机实时转速曲线和对PID参数进行在线调试。
图5 上位机界面图(截图)
控制模块功能实现:控制模块的主要作用是显示从DSP接收回来的转速和占空比数据,并且将控制指令发送给DSP间接控制执行机构。分析此次要实现的功能,决定以3个字节为一数据帧,具体控制指令码如表1所示。当按下相应按钮时,上位机将对应的命令码从串口发送出去。
表1 控制指令码
需要说明,在下达转速命令中,0×HH和0×LL由输入的期望转速分别取高8位和低8位然后分两个字节发送出去,然后在DSP中将数据重新合成出来。比如输入期望转速nexpext为2 000 r/min,高8位和低8位分别为hh和ll,则:
然后DSP接收后重新合成:
nexpext=hh*256+II=2 000(r/min)
监测模块功能实现:监测模块界面主要工作为刷新实时曲线,先将串口接收到的数据保存为滑动数组,然后每隔1 s将数组中的数据绘制成曲线然后更新数组的内容。这个过程主要依赖于Picture-Box的自由绘图功能,只需打开PictureBox的AutoRedraw属性,然后利用Line函数根据滑动数组的内容绘制一段一段的直线段即可。
PID参数调整:电机起动以后,以某一转速运行,具体实时转速值可在界面(图5)左上部的速度框中看到,同时在界面右部转速曲线上可以看到最近1 min内的转速变化趋势。如果处理过程中有PID环节的参与,也可以通过实时曲线观测系统的调节过程并鉴别当前参数的优劣。在图6(图5右上部)中进行PID的参数调整,调试时,一般先从P参数开始,得到比较好的稳定性。在文本框中输入目标值,点击旁边的“测试”,然后软件将设定的P参数通过串口发送给执行系统,执行系统收到此参数值后按程序执行并将此参数值回发给PC端,在软件的第二个文本框显示出来。点击“复位”,会将系统的PID 3个参数设为默认值(在调试阶段均为0,在最终运行阶段为之前调试过程的最优结果)。
图6 PID参数调整
数据变换与传输:由于PID参数一般为浮点数,不能直接送串口发送,因此可以将浮点数变换成整数发送,DSP接收数据后再重新变换成浮点数。将参数值先扩大1 000倍,即将浮点数变为整数,然后按照高8位和低8位的方式发送。将接收到的字节依次存入rx[3],接收到数据后,按照(rx[0]*256+rx[1])/1000将整数变换成浮点数。另外,数据帧需要一个标志字节来区分当前接收到的是哪一项参数。数据的具体变换及传输过程如图7所示。
图7 数据变换及传输流程图
拓展功能实现:作为上位机软件,除了对现场运行情况了如指掌以外,还应有对历史情况进行分析总结的依据,因此本上位机可以将实时转速的曲线保存为BMP图片文件,也可以将滑动数组的数据保存为TXT文本文件,方便分析总结。同时在工具栏中配有图标按钮,方便易用。在运行过程中也可对曲线暂停绘制或重新绘制,便于处理突发情况。
4 系统仿真及实现
例如现在需要通过PID环节将电机转速稳定到1 200 r/min,当前的Kp,Ti,Td值均为0,即PID环节暂时没有发挥实质性的作用。图8是实物图。它由8个部分组成,分别是:电机本体及驱动、现场键盘、红外测速编码器、Nokia5110液晶显示器、XDS100仿真器、TMS320F28335主控芯片、SCI串口通信接口、DSP开发板。电机型号是Nidec的24H677H010 BLDCM。SCI串口通信接口接到PC端,BLDCM接上12 V的电源,即可开始进行调试。图9是电机调试图。根据系统要实现的目的进行调试,过程如下:
图8 实物图
图9 电机调试图
首先调节比例参数Kp,假定Kp=0.05,得到实时转速曲线如图10所示,再改变Kp的值进行测试。假定Kp=0.2,明显发现转速值已经出现剧烈的振荡,静态稳定性很差。比较这两次的结果,改变Kp的值,令Kp=0.1,此结果相对较好,得到了比较快速的响应速度和较好的稳定性。因此Kp参数确定为Kp=0.1。
图10 K p参数对电机转速的影响示意图
然后对微分参数Td进行调整。跟比例参数的调试方法类似,首先估计一个值,如Td=0.05,分别将Td的值增加和减小然后分别测试(如Td=0.001和Td=0.08),达到如图11所示的实时曲线图。从图11来看,当Td的值太大时,调节速度明显变快,但动态稳定性很差;反之当Td的值偏小时,其调节速度变得很慢。因此Td参数确定为Td=0.05。
图11 T d参数对电机转速的影响示意图
最后对积分参数Ti进行调整。需要注意的是Ti的值应该很小。因为Ti为积分参数,积分在程序执行时相当于累加,而累加的存在可能会使调整量变得很大,因此积分参数相对其他参数相对很小。调试方法如法炮制,先后将Ti的值改成Ti=0和Ti=0.002点击测试,达到如图12所示的3条实时曲线图。由图12可以看出,当Ti的值太大或很小时,图像出现超调,并且当Ti偏大时,电机开始有微弱的振荡。最终Ti参数确定为Ti=0.001。
图12 T i参数对电机转速的影响示意图
5 结 语
本文设计的无刷直流电机在线调试系统,具有强大的计算优势和丰富的片上资源的DSP控制器,通过SCI与由VB6.0编写的上位机系统进行通信,可实现对PID参数的在线调试,获取最佳PID参数。基于便捷、稳定、可靠的原则,上下位机联合控制实现BLDCM在线调试,实验结果显示调试效果良好。具体有益效果如下:1)BLDCM在线PID参数调试方
法操作简便,可以实现工业现场和远距离的BLDCM运行数据检测与控制;2)BLDCM运行的相关参数可以在上位机上用曲线的形式显示出来;3)因为运用了DSP作为控制器,控制反应速度更快,更容易实现及时调控;4)BLDCM运行历史数据可以保存在电脑上,方便在故障情况下调出数据,分析解决问题。
[1]夏长亮,方红伟.永磁无刷直流电机及其控制[J].电工技术学报,2012,27(3):25-34.
[2]吴强,韩震宇,李程.基于增量式PID算法的无刷直流电机PWM调速研究[J].机电工程技术,2013(3):63-65.
[3]张家祯,张广明,梅磊,等.基于模糊PID控制的轴向磁通双凸极电机调速系统[J].微特电机,2014,42(10):55-58,62.
[4]殷云华,郑宾,郑浩鑫.一种基于Matlab的无刷直流电机控制系统建模仿真方法[J].系统仿真学报,2008,20(2):293-298.
[5]王云良,王继水,王敏其.无刷直流电机自适应模糊优化控制[J].电机与控制应用,2014(11):14-17,22.
[6]张焕琪.基于微粒群算法优化的模糊PID的无刷直流电机调速控制系统的研究[D].济南:山东大学,2011.
[7]张昊.无刷直流电机智能调速控制系统仿真研究[D].大庆:东北石油大学,2013.
[8]张琛.直流无刷电动机原理及应用[M]:北京:北京航空航天大学出版社,2004:229-340.
[9]赵世廉.TMS320X240X DSP原理及应用开发指南[M].北京:北京航空航天大学出版社,2007:48-58.
[10]王艳,王毓顺,王惠,等.基于DSP的无刷直流电机控制系统的设计[J].工业控制计算机,2015(10):135-136,152.