题目:基于单片机的数字PID控制直流电机PWM调压调速器系统目录一、PID简介··································(6)二、设计原理··································(7)三、设计方案··································(8)四、心得体会·······························(16)五、参考文献·······························(16)一、PID简介PID(比例积分微分)是一个数学物理术语。PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整和完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时使用PID控制技术最为方便。即当我们2不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。PID(比例-积分-微分)控制器作为最早实用化的控制器已有50多年历史,现在仍是使用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为使用最为广泛的控制器。PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)和输出u(t)的关系为u(t)=kp(e((t)+1/TI∫e(t)dt+TD*de(t)/dt)式中积分的上下限分别是0和t因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数;TI为积分时间常数;TD为微分时间常数。.二、设计原理基本的设计核心是运用PID调节器,从而实现直流电机的在带动负载的情况下也能稳定的运行。运用A/D转换芯片将滑动变阻器的模拟电压转换为数字量作为控制直流电机速度的给定值;用压控振荡器模拟直流电机的运行(电压高-转速高-脉冲多),单片机在单位时间内对脉冲计数作为电机速度的检测值;使用数字PID模型作单片机控制编程,其中P、I、D参数可按键输入并用LED数码显示;单片机PWM调宽输出作为输出值,开关驱动、电子滤波控制模拟电机(压控振荡器)实现对直流电机的PID调压调速功能。基于以上的核心思想,我们把这次设计看成五个环节组成,其具体的原理如下见原理图2.0图2.0PID调速设计原理图如图可以知道,这是一个闭环系统,我们借助单片机来控制,我们现运用AD芯片,运用单片机来控制AD芯片来转换模拟电压到数字电压,AD给定的电压越大,则产生的数字量越大,单片机再控制这个数字量来产生一个PWM,PWM占空比越大,就驱动晶体管导通的时间越长,这样加到压频转换器的电压也就越大,电压越大,则压频转换器输出的计数脉冲再单位时间也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对压频转换器的输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差加到AD的给定电压,这样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差和给定的电压向减,这样就可以减少PWM的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。3三、设计方案3.1PWM的调制AD芯片给定一定的电压,使用单片机来控制来产生一个PWM,给定的电压不同,就会的得到不同的PWM波形。在产生PWM波形我们采用ADC0808芯片和AT89C51两个核心器件。ADC0808芯片是要外加电压和时钟,当输入不同的电压的时候,就可以把不同的电压模拟量转化为数字值,输入的电压越大,其转换的相应的数字也就会越大,ADC0808芯片有8个通道输入和8个通道输出。其具体的管脚图见3.01图3.01ADC0808芯片管脚图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,和工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.02所示图3.02AT89C51芯片管脚图43.2基于单片机的数字PID控制直流电机PWM调压调速器系统3.21调速原理当基于以上产生一个PWM后,就可以借助PWM脉冲来控制晶体管的导通和关断,来给压频转换器来提供一定的电压,在PROTUES中仿真中,给定一个+12V的电压,就通过晶体管的导通和关断来给压频转换器供电,压频转换器就会输出很多的脉冲,借助单片机P3.5来计数,其计数送给P0来显示,通过给定不同的ADC的输入电压,就可以的得到不同的计数显示,电压越大,其计数显示也就越大,通过改变计数脉冲的周期和硬件压频转换器(LM331)的电阻和电容,就可以得到和输入电压接近的数值显示,可能由于干扰的原因,其显示值和实际值有一点偏差,这是在没有什么负载的情况下,或者说是在空载的情况下,这样就可以得到一个很理想的开环系统,也为闭环PWM调节做好准备。当开环系统稳定后,加上一个扰动,或者说是加上负载,这样就使的压频转换器的电压减少,在给定一定电压的时候,当负载分压的时候,也就相当于直流电机的电压就会减少,这样直流电机的转速就会下降,或者说当有负载的时候,压频转换器的输入电压就会减少,这样输入的脉冲在单位时间就会减少,这样PID调节器,通过改变PID的参数,PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)和输出u(t)的关系为u(t)=kp(e((t)+1/TI∫e(t)dt+TD*de(t)/dt)式中积分的上下限分别是0和t因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数;TI为积分时间常数;TD为微分时间常数这样就会得到一个偏差,通过这个偏差来改变原来的PWM的占空比,使得晶体管的导通时间加长或减少,这样就改变了直流电机的输入电压,也就是该变了在PROTUES压频转换器的输入电压,使得输出的计数脉冲在单位时间发生改变,也就是模拟了直流电机的转速的改变,我们希望通过PID的调节,使得输出的计数脉冲的显示值和预先设定的值接近,由于偏差的存在,使得PID调节器不断的去修正,使得显示值近可能的接近我们所预期的设定值。3.22基于单片机的数字PID控制直流电机PWM调压调速器系统原理图5图3.07PID调速原理图3.23波形仿真在不同的给定电压下开换系统会有不同的PWM波形和计数脉冲个数。在不同的波形中从上之下以此为pwm波形,经过驱动后的波形,LM331的输入电压,LM331的输出脉冲。当给定电压为较高(E8H)其波形见如下图3.08、图3.09中电压给定对应的波形PID波形图3.10低电压给定对应的波形;图3.11PID控制LM331的输入电压波形3.24PID调速程序PWM输出驱动程序ADCEQU35HCLKBITP2.4STBITP2.5EOCBITP2.6OEBITP2.76PWMBITP3.7;PID调节设置EK0EQU40HEK1EQU41HEK2EQU42HPPEQU43HIIEQU44HDDEQU45HUK0EQU70HUK1EQU71HORG00HSJMPSTARTORG0BHLJMPINT_TOSTART:MOVTMOD,#62HMOVTH0,#00HMOVTL0,#00HMOVIE,#86HSETBTR0;SETBTR1MOVR0,#00MOVR1,#00MOVR2,#00MOVR3,#00MOVR4,#00MOVR5,#00MOVR6,#00MOVR7,#00;PID赋值MOVPP,#05MOVII,#03MOVDD,#02MOVEK0,#00HMOVEK1,#00HMOVEK2,#00HMOVUK0,#00HMOVUK1,#00HWAIT:CLROE7INCR7CLRSTSETBSTCLRSTJNBEOC,$;等待转换完成SETBOEMOVADC,P1MOVR0,ADCMOVA,70HADDCA,ADCMOVADC,A;CLROESETBPWMSETBTR1MOVA,ADCLCALLDELAY;高电平延时CLRPWMMOVA,#255SUBBA,ADCLCALLDELAY;低电平延时CJNER7,#20,WA2WA1:CLRTR1MOVR7,#00MOVA,TL1MOV50H,AmovP0,50H;PID求偏差MOVA,EK1MOVEK2,AMOVA,EK0MOVEK1,AMOVA,R0SUBBA,50HMOVEK0,A;PP的计算MOVA,EK0SUBBA,EK1MOVB,PP8MULABMOVR1,AMOVR2,BAJMPXWAIT1:AJMPWAIT;II的计算X:MOVA,EK0MOVB,IIMULABMOVR3,AMOVR4,B;DD的计算MOVA,EK1RLAMOVEK1,AMOVA,EK0SUBBA,EK1ADDCA,EK2MOVB,DDMULABMOVR5,AMOVR6,B;PID总的计算MOVA,R1ADDCA,R3ADDCA,R5MOV60H,AMOVA,R2ADDCA,R4ADDCA,R6MOV61H,AMOVA,60HADDCA,70HMOV70H,AMOVA,61HADDCA,71HMOV71H,AMOVTL0,#00H9MOVTL1,#00H;SETBTR1WA2:SJMPWAIT1INT_TO:CPLCLKRETIDELAY:MOVR6,#1D1:DJNZR6,D1DJNZACC,D1RETEND四、心得体会我们进行了为期一周的计算机控制技术课程设计。通过这两周的课程设计,我拓宽了知识面,锻炼了能力,综合素质得到了提高。刚刚拿到课题,我感到有些茫然,对于以前没有做过的人来说要全部做完的确有一定的难度。由于我对计算机控制不是很熟悉,在设计的过程中走了不少弯路。通过亲身体验做课程设计,我觉得安排课程设计的基本目的,在于通过理论和实际的结合,进一步提高观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化