基于单片机的数字PID控制直流电机PWM调压调速器系统设计Word下载.docx
《基于单片机的数字PID控制直流电机PWM调压调速器系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字PID控制直流电机PWM调压调速器系统设计Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。
但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。
利用该方法进行PID控制器参数的整定步骤如下:
(1)首先预选择一个足够短的采样周期让系统工作;
(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;
(3)在一定的控制度下通过公式计算得到PID控制器的参数。
PID(比例-积分-微分)控制器作为最早实用化的控制器已有50多年历史,现在仍是应用最广泛的工业控制器。
PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。
PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。
其输入e(t)与输出u(t)的关系为u(t)=kp(e(t)+1/TIe(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模型作单片机控制编程,其中P、I、D参数可按键输入并用LED数码显示;
单片机PWM调宽输出,开关驱动、电子滤波控制模拟电机(压控振荡器)实现对直流电机的PID调压调速功能。
.第2章设计原理基本的设计核心是运用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字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3.02所示图3.02AT89C51芯片管脚图PWM产生的电路图见图3.03图3.03PWM产生的电路图在PROTEUS仿真中,我们改变不同的电压就可以得到不同的PWM波形。
在给定很高(FC)的电压的时候,得到占空比很的PWM波形,见图3.04图3.04高占空比PWM波形在给定一般(7F)的电压的时候,得到占空比很的PWM波形,见图3.05图3.05中占空比PWM波形在给定一般(01)的电压的时候,得到占空比很的PWM波形,见图3.06图3.06低占空比PWM波形PWM源程序ADCEQU35H;
定义ADC0808时钟芯片CLOCKBITP2.4STBITP2.5EOCBITP2.6OEBITP2.7PWMBITP3.7ORG00HSJMPSTARTORG0BHLJMPINT_TOSTART:
MOVTMOD,#02HMOVTH0,#00HMOVTL0,#00HMOVIE,#82HSETBTR0WAIT:
CLRSTSETBSTCLRST;
启动A/D转换等待结果JNBEOC,$SETBOEMOVADC,P1;
启动/D转换结果CLROESETBPWM;
PWM输出MOVA,ADCLCALLDELAYCLRPWMMOVA,#0FEHSUBBA,ADCLCALLDELAYSJMPWAITINT_TO:
CPLCLOCKRETI;
提供ADC0808时钟信号DELAY:
CJNEA,#00H,LINCAL:
MOVR6,#1D1:
DJNZR6,D1DJNZACC,D1RETEND3.2基于单片机的数字PID控制直流电机PWM调压调速器系统3.2.1调速原理当基于以上产生一个PWM后,就可以借助PWM脉冲来控制晶体管的导通和关断,来给压频转换器来提供一定的电压,在PROTUES中仿真中,给定一个+12V的电压,就通过晶体管的导通和关断来给压频转换器供电,压频转换器就会输出很多的脉冲,借助单片机P3.5来计数,其计数送给P0来显示,通过给定不同的ADC的输入电压,就可以的得到不同的计数显示,电压越大,其计数显示也就越大,通过改变计数脉冲的周期和硬件压频转换器(LM331)的电阻和电容,就可以得到与输入电压接近的数值显示,可能由于干扰的原因,其显示值和实际值有一点偏差,这是在没有什么负载的情况下,或者说是在空载的情况下,这样就可以得到一个很理想的开环系统,也为闭环PWM调节做好准备。
当开环系统稳定后,加上一个扰动,或者说是加上负载,这样就使的压频转换器的电压减少,在给定一定电压的时候,当负载分压的时候,也就相当于直流电机的电压就会减少,这样直流电机的转速就会下降,或者说当有负载的时候,压频转换器的输入电压就会减少,这样输入的脉冲在单位时间就会减少,这样PID调节器,通过改变PID的参数,PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。
G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数;
TD为微分时间常数这样就会得到一个偏差,通过这个偏差来改变原来的PWM的占空比,使得晶体管的导通时间加长或减少,这样就改变了直流电机的输入电压,也就是该变了在PROTUES压频转换器的输入电压,使得输出的计数脉冲在单位时间发生改变,也就是模拟了直流电机的转速的改变,我们希望通过PID的调节,使得输出的计数脉冲的显示值和预先设定的值接近,由于偏差的存在,使得PID调节器不断的去修正,使得显示值近可能的接近我们所预期的设定值。
3.2.2基于单片机的数字PID控制直流电机PWM调压调速器系统原理图图3.07PID调速原理图3.2.3波形仿真在不同的给定电压下开换系统会有不同的PWM波形和计数脉冲个数。
在不同的波形中从上之下以此为pwm波形,经过驱动后的波形,LM331的输入电压,LM331的输出脉冲。
当给定电压为较高(E8H)其波形见如下图3.08图3.08高电压给定对应的波形当给定电压为较高(7FH)其波形见如下图3.09图3.09中电压给定对应的波形当给定电压为较高(08H)其波形见如下图3.10图3.10低电压给定对应的波形;
PIDLM331的输入电压波形图3.11图3.11PID控制LM331的输入电压波形3.2.4PID调速程序PWM输出驱动程序ADCEQU35HCLKBITP2.4STBITP2.5EOCBITP2.6OEBITP2.7PWMBITP3.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:
CLROEINCR7CLRSTSETBSTCLRSTJNBEOC,$;
等待转换完成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,PPMULABMOVR1,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,#00HMOVTL1,#00H;
SETBTR1WA2:
SJMPWAIT1INT_TO:
CPLCLKRETIDELAY:
DJNZR6,D1DJNZACC,D1RETEND第4章心得体会本次实习要求我们基于单片机设计一套数字PID直流控制调速器系统。
这一整套系统的设计要求我们,也需要编写出相应的程序。
要在有限的时间内完成这两项任务对我们是一个非常大的挑战。
但是,在老师的细心知道和帮助下我们最终完成了整套系统的设计。
在进行课程设计的过程中,我们把与自动控制系统相关的知识和与单片机相关的知识结合起来,通过分析具体的问题,首先列出解决课题的方案,从中论证出较合适的方案作为最终的实际方案。
在具体进行课题攻关的过程中,我采用了将大系统分解为零的方法,将其中的各个独立部分分别设计最后进行整合。
这样也大大提高了设计的效率,也便于同学们之间的分工协作。
总的来说,本次课程设计锻炼了我们把理论联系到实际的能力,同时在课程设计的过程中,通过查阅各种资料,我们对整个行业的发展和最新的技术都有了一定的了解。
同时,课程设计的成功也离不开老师的指导和帮助。
老师的悉心指导和同学们的团结协作使这次课程设计得以顺利的完成。
参考文献参考文献1张毅刚.单片机原理及应用.M北京:
高等教育出版社,20072徐君毅.单片机微型计算机原理及应用.M上海:
上海科学技术出版社,19883郑恩让,罗组军.控制系统仿真.M北京:
:
北京大学出版社,2006