课程设计课程名称计算机控制技术题目名称高精度直流电机调速系统学生学院信息工程学院专业班级应用电子技术2班学号XXXXXXXXXXX学生姓名胡丛滟指导教师黄国宏2014 年06 月16 日目录一、方案论证 (3)1.1.PID算法 (3)1.2.简易工程发整定PID参数 (3)二、理论分析与计算 (3)2.1. 系统设计方案 (3)2.2. 数字PID控制器 (4)2.3. 凑式法整定PID参数 (5)2.4. 直流电机调速与测速 (6)三、硬件电路设计 (6)3.1. 电机驱动及传感器电路 (7)3.2. 串口发送数据电路 (7)3.3. LCD1602显示电路 (7)四、程序设计 (8)4.1. PID增量式算法 (8)4.2. 系统程序流程图 (8)4.3. 消除积分不灵敏的办法 (9)4.4. 抗积分饱和的办法 (9)五、调试过程 (10)5.1. 只有比例环节 (10)5.2. 加入积分环节 (11)5.3. 加入积分分离 (11)5.4. 加入微分环节 (13)六、设计心得................................................................................................ . (15)七、参考文献 (15)八、附录(程序) (16)摘要本作品以单片机STC98C52为控制器,由电机、电机速度采集传感器和电机驱动组成主电路。
控制器产生PWM脉冲送到电机驱动电路中,经过功率放大后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机精确控制转速和改善系统运行目的。
实验数据通过LCD1602显示并通过串口发送给PC机进行波形显示。
ABSTRACTThis work STC98C52 MCU as the controller, driven by a motor, motor speedacquisition sensor and the composition of the main circuit. Controller to generate PWM pulse motor drive circuit, after power amplification control dc motor speed, and speed detection module is used to change the current speed feedback to the controller, the controller through a digital PID computation after changing the duty ratio of PWM pulse, it can realize accurate control of motor speed and improve the system operation purpose. The experimental data through the LCD1602 display and waveform display through a serial port is sent to the PC.一、方案论证1.1. PID算法方案一:采用位置式PID算法,该控制算法提供了执行机构的具体位置,PID 输出与整个过去的状态有关,容易产生大的累加误差。
方案二:采用增量式PID算法,增量算法不需要做累加,控制量增量的确定仅与最近几次误差采样有关,对控制量的计算影响较小,易于实现手动到自动的无冲击切换。
方案采用:在本实验中采用增量式PID算法。
主要原因是PWM占空比和转速不成线性关系,意思就是就算知道了现在电机速度,也无法准确改变占空比来达到期望速度,采用增量式的好处是只要有误差存在就可以不断增加或者减少占空比来达到期望速度。
1.2. 简易工程法整定PID参数方案一:采用扩充临界比例度法,只需选取一个足够短的采样周期,只采用比例作用,不断改小比例度(δ=1/Kp),直到系统发生持续等幅振荡,记下使系统发生振荡的临界比例度δk及系统的临界振荡周期Tk,然后再通过选择控制度和根据表格查找参数就可以求得T、Kp、Ti、Td的值。
方案二:采用凑试法,根据参数对控制过程的影响趋势,对参数实行先比例,后积分,再微分的整定步骤。
方案采用:本实验采用凑试法。
主要原因是扩充临界比例度法需要选择足够小的采样周期,但本系统的采样周期为1s,远大于纯滞后时间,因此不能采用扩充临界比例度法。
二、理论分析与计算2.1. 系统设计方案图2.1 系统方案框图根据系统设计的任务和要求,设计系统方框图如图2.1所示。
图中控制器模块为系统的核心部件,按键和显示器用来实现人机交互功能,其中通过按键将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。
在运行过程中控制器产生PWM 脉冲送到电机驱动电路中,经过放大后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID 运算后改变PWM 脉冲的占空比,实现电机转速实时控制的目的。
2.2. 数字PID 控制器模拟PID 调节器的控制规律为])()(1)([)(0dt t de T dt t e T t e K t u D tIp ++=⎰ (2.1)式中,P K 为比例系数,I T 为积分时间常数,D T 为微分时间常数。
当采样周期足够小时,在模拟调节器的基础上,通过数值逼近的方法,用求和代替积分、用后向差分代替微分,使模拟PID 离散化变为差分方程。
这样,式(2.1)便可离散化以下差分方程:01})]1()([)()({)(u n e n e TT n e T Tn e K n u ni DIP +--++=∑= (2.2)式中0u 是偏差为零时的初值;式(2.2)第一项起比例控制作用,称为比例(P )项)(n u P ,即)()(n e K n u P p = (2.3)第二项起积分控制作用,称为积分(I )项)(n u I 即∑==ni IPI i e T TK n u 1)()( (2.4)第三项起微分控制作用,称为微分(D )项)(n u D 即)]1()([)(--=n e n e TT K n u DPD (2.5)式(2.2)的输出量u(n)为全量输出,它对于被控对象的执行机构每次采样时刻应达到的位置。
因此,式(2.2)又称为位置型PID 算式。
由(2.2)可看出,位置型控制算式不够方便,这是因为要累加偏差e(i),不仅要占用较多的存储单元,而且不便于编写程序,为此对式(2.2)进行改进。
根据式(2.2)不难看出u(n-1)的表达式,即011})]2()1([)()1({)1(u n e n e T T n e T Tn e K n u n i DIP +---++-=-∑-= (2.6)将式(2.2)和式(2.6)相减,即得数字PID 增量型控制算式为)1()()(--=∆n u n u n u )]2()1(2)([)()]1()([-+--++--=n e n e n e K n e K n e n e K D I P (2.7)式中: P K 称为比例增益;I PI T TK K =称为积分系数;T T K K DPD =称为微分系数。
2.3. 凑试法整定PID 参数增大比例系数 Kp ,一般将加快系统的响应,在有静差的情况下有利于减小静差。
但过大的比例 系数会使系统有较大的超调,并产生振荡,使稳定性变坏。
增大积分时间 Ti 有利于减小超调,减小振荡;使系统更加稳定,但系统静差的消除将随之减慢。
增大微分时间 Td 亦有利于加快系统响应,使超调量减小,稳定性增加,但系统对扰动的抑制能 力减弱,对扰动有较敏感的响应。
在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分的整定步骤。
(1)首先整定比例部分,将比例系数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。
如果系统没有静差或静差已经小到允许范围内,并且对响应曲线已经满意,则只需要比例调节器即可。
(2)如果在比例调节的基础上系统的静差不能满足设计要求,则必须加入积分环节。
将已经调节好的比例系数略为缩小(一般缩小为原值的0.8),然后减小积分时间,使得系统在保持良好动态性能的情况下,静差得到消除。
在此过程中,可根据响应曲线的好坏反复改变比例系数与积分时间,以期待得到满意的控制过程与整定参数。
(3)如果在上述调整过程中对系统的动态过程反复调整还不能得到满意的结果,则可以加入微分环节。
一般的系统D =0,1或2。
只有部分滞后较大的系统,D 值才可能调大些。
PID 参数修改后,可以适度修改设定值(人为的阶跃扰动)观察系统的跟踪响应,以判断PID 参数是否合适。
P 值太小,I 值太小或D 值太大均会引起系统超调振荡。
2.4. 直流电机调速与测速调速:根据PWM 控制的基本原理可知,一段时间内加在惯性负载两端的PWM 脉冲与相等时间内冲量相等的直流电加在负载上的电压等效,可通过改变输出的占空比来改变电压从而改变速度。
测速:在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较,通过偏差进行PID 运算,因此速度采集电路是整个系统不可缺少的部分。
本次设计中应用了比较常见的光电测速方法来实现,其具体做法是将电机轴上固定一圆盘,且其边缘上有N 个等分凹槽如图3.5(a )所示,在圆盘的一侧固定一个发光二极管,其位置对准凹槽处,在另一侧和发光二极光平行的位置上固定一光敏三极管,如果电动机转到凹槽处时,发光二极管通过缝隙将光照射到光敏三极管上,三极管导通,反之三极管截止,电路如图3.4(b )所示,从图中可以得出电机每转一圈在P3.3的输出端就会产生N 个低电平。
这样就可根据低电平的数量来计算电机此时转速了。
例如当电机以一定的转速运行时,P1.2将输出如图3.5所示的脉冲,若知道一段时间t 内传感器输出的低脉冲数为n ,则电机转速v=n/t 。
+5V470Ω200ΩR1R2(a) (b)图2.2 电机速度采集方案三、硬件电路设计3.1. 电机驱动及传感器电路图3.1 电机驱动及传感器电路3.2. 串口发送数据电路图3.2 串口电路3.3. LCD1602显示屏电路图3.3 LCD1602显示屏电路四、程序设计4.1. PID增量式算法本系统设计的核心算法为PID算法,它根据本次采样的数据与设定值进行比较得出偏差e(n),对偏差进行P、I、D运算最终利用运算结果控制PWM脉冲的占空比来实现对加在电机两端电压的调节[10],进而控制电机转速。