直流电机调速系统设计及PID参数整定

2016-06-13 09:08周美娇
电子科技 2016年5期
关键词:直流电机编码器

周 阳,周美娇,殷 弋

(上海理工大学 光电信息与计算机工程学院,上海 200082)



直流电机调速系统设计及PID参数整定

周阳,周美娇,殷弋

(上海理工大学 光电信息与计算机工程学院,上海200082)

摘要针对某款振动切片机对直流电机的控制要求,提出了一种基于AT91SAM7X128单片机的直流电机调速系统及其PID参数的整定方法。该调速系统由单片机、电机驱动芯片HIP4082IBZ、光电编码器组成,构成一个闭环系统;PID参数的整定,是PC端软件通过串口接收单片机发送的电机转速数据,画出曲线图,并实时刷新,若得到满意的曲线图则采用相应的PID参数。经实际调试,该方法能得到合适的PID参数,运用于调速系统,电机在各个速度档位均能平稳运行,达到了预期的控制效果。

关键词ARM;直流电机;PID参数整定;编码器;PWM

电动机作为主要的机电能量转换装置,其应用范围遍及各个领域,尤其在工业上,中小功率的直流电机调速系统,运用更为广泛。电子技术的飞速发展,加速了直流电机调速从模拟化向数字化的转变,提高了调速系统的精度,也增强了抗干扰能力,从而步入了一个新阶段[1-2]。

本文所研究的控制系统以单片机AT91SAM7X128为控制芯片,在采用编码器构成闭环的基础上,运用PID算法,实现软件调速。经实际验证,在简单的硬件结构基础上,有效利用单片机的资源,能实现直流电机的无极调速和平稳运行,具有较高的精度和较强的稳定性。

1系统设计方案

该直流电机调速系统的结构如图1所示,整个系统是一个闭环结构,硬件结构包括:单片机、直流电机、编码器,软件算法上主要运用PID算法。单片机AT91SAM7X18输出的PWM信号控制电机的速度和转向;编码器与直流电机连接,不断采集电机转速,并转换成两列相位相差90°的脉冲序列供单片机采样。单片机采用捕捉计数功能采集脉冲序列,计算电机的转速,以此作为反馈参数供PID计算,最后输出PWM信号;同时单片机根据这两个脉冲序列的超前与滞后关系判断电机是正转或反转[3]。

图1 系统结构框图

2硬件电路设计

硬件电路的设计主要介绍电机驱动电路,原理图如图2所示。选取HIP4082IBZ芯片,采用其经典的电机控制电路,即芯片外接H桥控制电路。

图2 电机驱动原理图

由图2可知,电机的控制思路为:DR_BHO输出PWM波,DR_BLO输出低电平使q3不导通,DR_ALO输出高电平使q4导通,此时电流的流向为:q1→Motor→q4;若要改变电机的转动方向,只需将DR_BLO输出高电平使q3导通,DR_ALO输出低电平使q4不导通,DR_AHO输出PWM波,此时电流的流向为:q2→Motor→q3[3]。根据上述控制思路,从单片机输出对应的信号即能控制电机转动。

2.1PWM原理

脉宽调制(PWM)就是控制逆变电路开关器件的通断,在输出波形的半个周期中产生多个平滑且低次谐波少的脉冲,使各脉冲的等值电压为正弦波形。按一定规则对各脉冲的宽度进行调制,即可改变输出电压的大小和频率[4]。

2.2编码器原理

光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,其原理如图3所示。

图3 光电编码器原理图

在本系统中,使用的是增量式编码器。它是直接利用光电转换原理输出3组方波脉冲a、b和z相;a、b两组脉冲相位差90°,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。

2.3PID原理

PID控制,即比例、积分、微分控制。

比例控制:控制器的输出与输入误差信号成比例关系,当仅有比例控制时系统输出存在稳态误差。

积分控制:控制器的输出与输入误差信号的积分成正比关系。随着时间的增加,积分项会增大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。

微分控制:控制器的输出与误差的变化率成正比关系。具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。

PID算法的一般形式如图4所示,是对比例、积分、微分3个环节的加和,将给定值和反馈值的差控制被控量。

图4 PID控制框图

PID的控制规律为[3,5]

(1)

其中,u(t)为输出量;e(t)为给定值与反馈值的差;kP、tI、tD为分别为比例、积分、微分环节的参数。

2.4软件设计与实现

根据系统功能,进行软件设计,思路如图5所示。

图5 软件流程图

由图可知,上电启动后需进行一些必要的初始化工作,包括:系统时钟,PWM、UART、Timer、ADC等驱动的初始化,UART是在PID参数整定中使用;再根据给定的转速输出对应的PWM波,此时假设已取得合适的PID参数,经PID运算后驱动电机控制电路;电机转动后编码器不断反馈电机转速,供单片机进行PID运算。

由于式(1)适用对象为模拟量,但经单片机采样只能取出离散的点,因此在软件中运用PID算法时,需要将式(1)进行离散化,转化为数字PID。转化过程如下,式中t为采样周期。

e(t)→e(n)

可得增量式数字PID计算公式

Δu(n)=u(n)-u(n-1)=kP[e(n)-e(n-1)]+kIe(n)+kD[e(n)-2e(n-1)+e(n-2)]

电机调速,一般用比例和积分环节(PI)即可,用比例环节增加快速性,用积分环节增加稳定性、消除稳态误差。调试时,PI参数的选取一般先采用经验参数,随后根据实际转速的曲线来调整PI参数,直至得到满意的转速曲线,即转速稳定且达到给定值[6-9]。

3PID参数整定

3.1PID参数整定方案

PID参数是通过凑试法进行整定,先采用经验参数,观察电机运行效果,即观察电机的实际转速曲线,故根据示波器原理运用PC端软件实时刷新转速曲线;再根据实际效果进行参数调整,直至得到满意的PID参数。具体方案如图6所示。

由图6可知,该结构由PC端上位机、MCU及其外围电路、电机、编码器4部分组成。其中上位机与MCU通过串口进行通讯,MCU通过PWM波控制电机转速,同时用过a/D采样部分实时采集电机转速,并将这些数据定时发送给上位机显示。

图6 PID参数整定方案结构图

在进行PID参数调节时,采用如下步骤:(1)先去掉积分项和微分项,由0逐渐加大P,取得临界振荡状态,设定P为当前值的60%~70%;(2)P确定后,设定一个较大的tI,再逐渐减小,获取临界振荡状态的tI,设定tI为当前值的150%~180%。

该整定方案的关键在于,PC端软件画出准确的电机转速曲线。

3.2上位机的编写

根据设计方案,PC端软件应包括以下3个模块:串口通信模块,主要完成串口参数的设置,数据发送与接收;曲线绘制模块,根据接收到的采样数据绘制速度与时间的二维坐标图;参数设置模块,用于设置指令中的参数,如电机速度、PI参数等。

3.2.1串口通信模块

C#中,串口通信仅采用SerialPort控件即可。首先配置好串口的5个参数:端口号、波特率、停止位、校验位、数据位。在配置端口号时,若每次都查看所用的端口号,会很麻烦,因此采用自动获取端口号的方法:

Foreach(string com in System.IO.Ports.SerialPort.GetPortNames())

this.comboBoxPortName.Items.Add(com);comboBoxPortName.SelectedIndex=comindex;comindex+=1;serialport.PortName=comboBoxPort.Text;

串口的打开与关闭则较为简单,使用serialport.Open()和serialport.Close()两个函数即可,serialport.IsOpen()方法用于判断串口是否打开。

Serial类调用重载的Write方法发送数据,将数据写入串口输出缓冲区;接收数据则采用DataReceived事件,只要输入缓冲区的数据个数达到ReceivedBytesThreshold的设定值,该事件便会自动触发,通过serialport.Read()函数将数据读出,进行后续处理[8]。

3.2.2曲线绘制模块

在C#中,进行图形程序编写时用到的是GDI+(Graphic Device Interface Plus,图形设备接口)。Graphics类封装一个GDI+绘图图面,画图方法都被包括在其中。

绘图程序一般分为两个步骤:创建Graphics对象;使用Graphics对象的方法绘图、显示文本或处理图像。

在.NET中,GDI+的所有绘图功能都包括在System.Drawing.Text、System.Drawing、System.Drawing.Darwing2D等命名空间中,因此要先引用相应的命名空间。

有了一个Graphics的对象引用后,就可以利用该对象的成员进行各种各样图形的绘制,表1列出了Graphics类的常用方法成员。

表1 Graphics类的常用方法成员

创建了Graphics对象后,就可以开始绘图了,其中主要用到的对象有:(1)Pen:用来用patterns、colors或者bitmaps进行填充;(2)Color:用来画线和多边形,包括矩形、圆和饼形;(3)Font:用来给文字设置字体格式;(4)Brush:用来描述颜色;(5)Rectangle:通常用来在窗体上画矩形;(6)Point:描述一对有序的x,y两个坐标值。

首先要画出v-t坐标轴,随后将采样的电机转速值用圆滑曲线连接各个点在坐标轴中描绘出来。在此过程中,只涉及到画直线、曲线和适当的文本标注[9-10]。

(1)画弧形。直接在Form1类中重载OnPaint函数

protected override void OnPaint (PaintEventArgs e)

{

Graphics g=e.Graphics;

Pen pn=new Pen (Color.Blue);

Rectangle rect=new Rectangle (50,50,200,100);

g.DrawArc (pn,rect,12,84);

}

(2)画直线。

protected override void OnPaint (PaintEventArgs e)

{

Graphics g=e.Graphics;

Pen pn=new Pen (Color.Blue);

Point pt1=new Point (30,30);

Point pt2=new Point (100,100);

g.DrawLine (pn,pt1,pt2);

}

(3)文本标注。

protected override void OnPaint (PaintEventArgs e)

{

Font fnt=new Font (“Verdana”,16);

Graphics g=e.Graphics;

g.DrawString (“t/s”,fnt,new SolidBrush (Color.Blue),14,10);

}

3.2.3参数设置模块

在该模块中,只需在界面中放置一些文本框,即textbox控件,用于设置PID的3个参数、电机的转速、串口的5个参数。其中,PID参数和电机的转速会和指令一起发送给MCU,MCU从解析数据后再进行后续操作。

4实验结果及分析

经实际验证,本文所设计的直流电机控制系统调速效果良好,在给定电机转速后,电机能迅速达到设定值,并能稳定运行。调试结果如图7所示。

图中的5条横线分别代表给定转速、±10%误差线、±20%误差线,曲线则为电机转速,单片机采样周期为2 ms,即图中各点间隔2 ms。图中起始时刻为电机启动过程,但很快能稳定运行在给定速度,说明了文中的PID整定方法是一种有效的参数获取方法,也证明了该直流电机调速系统的快速性与稳定性。

图7 实验结果

5结束语

基于电子技术数字化的发展,构建了单片机、电机、编码器的闭环回路,并采用了PID算法,形成一个直流电机调速系统。系统的关键在于PID参数的整定,采用PC端软件观察电机实际转速曲线的方法,能获取满意的参数,使得调速系统具有良好的运行效果。对于给定的初始速度,系统能在短时间内达到预期速度,且误差较小,验证了系统的稳定性与快速性,为工业场合的运用提供了参考。

参考文献

[1]杨靖.用单片机控制的直流电机调速系统[J].机床电器,2008,35(1):45-47.

[2]许又丹.基于IR2113的直流电机调速系统[J].科技视界,2014(15):158-158.

[3]丁冲,刘景林,王有林,等.一种数字式高精度直流电机调速系统的研究[J].微电机,2006,39(4):36-38.

[4]张迎雪.基于嵌入式PWM直流电机调速系统的电路设计[J].数字技术与应用,2014(9):139-141.

[5]胡永红,王福明.基于单片机的直流电机调速系统的设计[J].传感器世界,2014,20(4):27-29.

[6]赵庆松,苏敏.基于ARM的直流电机调速系统的设计与实现[J].微型计算机信息,2007,23(2):173-175.

[7]李宁,白晶,陈桂.电力拖动与运动控制系统[M].北京:高等教育出版社,2009.

[8]陆华颖,程光伟,陈凯.模糊PID双闭环直流电机调速系统仿真[J].电子科技,2011,24(10):56-58.

[9]王峰,杨文焕,杨凯辰,等.无刷直流电机变频调速控制系统仿真研究[J].电子科技,2009,28(6):100-103.

[10]周阳,周美娇,黄波,等.基于C#的串口通信系统的研究与设计[J].电子测量技术,2015,38(7):135-140.

[11]朱英翔,朱福民,刘炎鸣.C#下串口通信编程的开发和扩展[J].微型机与应用,2014,33(6):89-91.

[12]刘艳,李颖,秦鑫.利用VB6.0绘制实时数据曲线[J].福建电脑,2010,26(7):173-173.

Design of DC Motor Speed Control System Based on ARM and PID Parameters Regulation

ZHOU Yang,ZHOU Meijiao,YIN Yi

(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200082,China)

AbstractA system based on the MCU AT91SAM7X128 to control motor speed is proposed for the control of DC motor of the vibration slicer,and the regulation of appropriate PID parameters is presented.This control system contains the MCU,the motor driver chip HIP4082IBZ and the encoder,all of which form a closed loop.The PC tool gets the motor data from MCU via the RS232 cable and draws the graph with real-time refresh.If the graph is satisfied,the PID parameter is what we need.Tests show that this regulation method is effective in obtaining the satisfied PID parameter and that the DC motor can smoothly run in any speed.

KeywordsARM;DC motor;PID parameter regulation;encoder;PWM

doi:10.16180/j.cnki.issn1007-7820.2016.05.041

收稿日期:2015-09-12

作者简介:周阳(1991—),男,硕士研究生。研究方向:嵌入式软件开发。周美娇(1977—):女,博士,讲师。研究方向:指纹识别和数据处理。

中图分类号TP368;TM33

文献标识码A

文章编号1007-7820(2016)05-153-05

猜你喜欢
直流电机编码器
基于模糊PID的无刷直流电机速度控制系统的设计与仿真
融合CNN和Transformer编码器的变声语音鉴别与还原
基于模糊自适应ADRC的无刷直流电机控制技术
基于双增量码道的绝对式编码器设计
基于FPGA的双绕组无刷直流电机软件设计
应用旋转磁场编码器实现角度测量
直流电机电源设计研究
基于数字信号处理的脉冲编码器