《2022年直流电机闭环调速控制系统设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年直流电机闭环调速控制系统设计报告 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、- 1 - 目录1 一、 课设任务 .2 1.1设计内容 .2 1.2具体要求 .2 1.3程序调试建议.2 二、 系统方案 .3 三、 硬件设计 .3 3.1数码管显示和行列式键盘电路 .4 3.2数模变换电路 .5 3.3直流电机驱动电路 .6 3.4片选译码电路 7 3.5 RAM电路.7 四、 软件设计 8 五、 调试及结果 .19 六、 心得体会 .19 七、 参考文献 .20 八、 附录.20 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - -
2、- - - - - - - - 2 - 直流电机闭环调速控制系统设计报告一、课设任务11设计内容:以实验室实验装置为设计对象,从中选择出合适的部分,构成一个直流电机恒转速控制系统,具有如下功能:1、可以通过按键设定直流电机转速(转 / 分钟, r/min ) ;2、可以实时显示电机转速,同时显示设定值(各用三位显示);3、运行过程中改变负载可以维持设定的转速稳定后保持不变。(稳态误差小于等于设定值的5% )4、开始时只显示设定值,采集值显示为0,按运行键后显示实时采集值与设定值,左边三位是设定值,右边三位是实时值;5、设置停止运行键,控制直流电机停止运行;6、其它扩展发挥功能。1.2具体要求:
3、1、根据功能要求从实验装置上选择合适电路构成系统,用protel软件画出原理图与控制系统结构图,分析系统工作过程;2、根据实验装置具体情况确定接线方法,从而确定各端口的口地址(D/A、键盘、显示等);3、采用 PID 算法作为恒转速控制算法,对PID 算法加以分析说明;4、按照系统工作过程要求编制程序,画出流程图与编写具体程序;5、调试运行,记录运行结果;6、书写课程设计报告,符合学院有关课程报告的要求。1.3程序调试建议:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共
4、20 页 - - - - - - - - - - 3 - 1、先通过简单程序验证硬件工作正常(D/A 输出,带负载能力,显示器正常等等);不正常时及时与实验室老师联系更换器件。2、 调试测速显示子程序;3、调试参数设置程序;4、调试控制算法程序;5、调试综合程序二、系统方案直流电动机具有良好的起、制动性能,宜于大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域得到了广泛的应用。采用PID 调节的转速单环直流调速系统可以在保证稳定的前提下实现转速无静差。系统进行信号采集进行D/A 转换,使单片机送出脉冲来控制触发器,控制电路输出,驱动电动机工作,再由检测电路带回实际转速给单片机,让单片机
5、根据实际转速和给定的转速进行比较,放大及PID 运算等操作,从而控制整流电路角的大小,进而改变电机电枢电压的大小,达到调节电动机转速的目的。三、硬件设计3.1 数码管显示和行列式键盘电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - - 4 - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 -
6、 - - - - - - - - - 5 - 数码管显示和行列式键盘电路图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - - 6 - 3.2 数模变换电路数模变换电路图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - - 7 - 3.3 直流电机驱动电路:直流电
7、机驱动电路图3.4 片选译码电路:片选译码电路图3.5 RAM 电路:RAM 电路图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - - 8 - 四、软件设计MCS-51 8031 ROM 2662 DAC 0832 模数转换LED显示PID 调速键盘设定速度LED显示判断按键执行跳转图 1 结构框图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
8、 - - - - - - 第 8 页,共 20 页 - - - - - - - - - - 9 - 主程序流程图开始显示初始化有键按下?是运行设定结束If 09 IF D IF E flag=1? PID 控制否显示否是LOOP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - - 10 - 显示程序流程图程序: /*课程设计PID 直流电机调速 * #include /*地址定义 * xdata unsigned char I
9、N _at_ 0 x8001; / 键盘读入口xdata unsigned char OUTBIT _at_ 0 x8002; / 位控制口开始定义变量扫描模式置初值扫描模式送输入口取显示数据查表转换成段码调用延时子程序扫描模式左移一位循环是否结束返回Y N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - - 11 - xdata unsigned char OUTSEG _at_ 0 x8004; / 段控制口xdata
10、unsigned char CS0832 _at_ 0 x9000; / DA地址约定/*变量定义 * unsigned int VOUT=0 ; / DA输出缓存变量 unsigned int FDC=0,FREF=0,DFDC=0,uctrl=0; / 转速检测值FDC ,给定值 FREF unsigned int PVAL=10,PIVAL=1,IVAL=0; unsigned int ERROR; /*缓冲区及其长度定义* #define LEDLen 6 / 数码管数量unsigned char LEDBufLEDLen; / 显示缓冲/* 八段管显示码 * code unsigne
11、d char LEDMAP = 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07, 0 x7f, 0 x6f, 0 x77, 0 x7c, 0 x39, 0 x5e, 0 x79, 0 x71 ; /* 键码定义 * code unsigned char KeyTable = 0 x16, 0 x15, 0 x14, 0 xff, 0 x13, 0 x12, 0 x11, 0 x10, 0 x0d, 0 x0c, 0 x0b, 0 x0a, 0 x0e, 0 x03, 0 x06, 0 x09, 0 x0f, 0 x02, 0 x05
12、, 0 x08, 0 x00, 0 x01, 0 x04, 0 x07 ; /*延时程序 * void Delay(unsigned char CNT) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - - 12 - unsigned char i; while (CNT- !=0) for (i=100; i !=0; i-); /*动态显示程序 * void DisplayLED() unsigned char i; un
13、signed char Pos; unsigned char LED; Pos = 0 x20; / for (i = 0; i = 1; / 显示下一位 /*键闭合程序 * unsigned char TestKey() OUTBIT = 0; / 输出线置为0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - - 13 - return (IN & 0 x0f); / 读入键状态 ( 高四位不用 ) /*得键值程序 * u
14、nsigned char GetKey() unsigned char Pos; unsigned char i; unsigned char k; i = 6; Pos = 0 x20; do OUTBIT = Pos; Pos = 1; k = IN & 0 x0f; while (-i != 0) & (k = 0); if (k != 0) i *= 4; if (k & 2) i += 1; else if (k & 4) i += 2; else if (k & 8) i += 3; OUTBIT = 1; do Delay(10); while (TestKey(); / 等键释
15、放名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - - 14 - return(KeyTablei); / 取出键码 else return(0 xff); /*速度设定程序* void speedset() unsigned char i=0,j=0,k=0,s,KEY,m; unsigned char b=0,c=0; LEDBuf0 = LEDMAP0; LEDBuf1 = LEDMAP0; LEDBuf2 =LEDMA
16、P0; LEDBuf3 = LEDMAP0; LEDBuf4 = LEDMAP0; LEDBuf5 = LEDMAP0; while(k!=10) /A键为确认键 ; /* m=0; LEDBufi=0 x00; /关闭相应位 ; while(m!=10)DisplayLED();m+; /延时 ; m=0; LEDBufj = LEDMAPKEY; /重新放回设定值; LEDBufi=LEDBufi+3; /实现闪烁原来的值; while(m!=20)DisplayLED();m+; /延时 ; m=0; DisplayLED();*/ 名师资料总结 - - -精品资料欢迎下载 - - -
17、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - - 15 - if( TestKey() ) s= GetKey(); k= s & 0 x0f; if(k=0)&(kFDC) ERROR=FREF-FDC; IVAL=IVAL+ERROR/8; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 20 页 - - - - - - - - - - 17 -
18、if(IVAL=0Xf5) IVAL=0Xf5; uctrl=PVAL*ERROR+PIVAL*IVAL; VOUT=uctrl; if(VOUT0 xf0) VOUT=0 xf0; if(VOUT0 x80) VOUT=0 x80; if(FREF=0XF5) IVAL=0XF5; uctrl=-PVAL*ERROR+PIVAL*IVAL; VOUT=uctrl; if(VOUT0 xf0) VOUT=0 xf0; if(VOUT0 x8f) VOUT=0 x80; LEDBuf2 = LEDMAPDFDC/1000; /实际转速千位 ; LEDBuf3 = LEDMAPDFDC%1000/
19、100; /实际转速百位 ; LEDBuf4 = LEDMAPDFDC%100/10 ; /实际转速十位 ; LEDBuf5 = LEDMAPDFDC%10; /实际转速个位; DisplayLED(); /*主程序 * void main() unsigned char KEY,i,s; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - - 18 - for(i=0;i=5;i+) LEDBufi = LEDMAP0;/初始
20、值显示0; while(1) DisplayLED(); if(TestKey() s=getkey() ; KEY= s & 0 x0f; if(KEY=13) / D键运行; InitT(); CS0832=0X80; Delay(5); while(KEY!=14) /运行时按 E停止键 ; s=getkey() ; KEY= s & 0 x0f; DisplayLED(); CS0832=VOUT; PIDTiaoSu(); while(KEY=14) /E键停止; for(i=2;i=5;i+) LEDBufi = LEDMAP0; CS0832=0; s=getkey() ; KE
21、Y= s & 0 x0f; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - - 19 - if(KEY=12) speedset(); /停止后设定速度; DisplayLED(); if(KEY=12) speedset(); /C键设置速度值; 五、调试及结果正确连接硬件电路,打开伟福编译程序,将编写好的程序调出,设置伟福实验装置,点击编译、运行。按下设置键C,数码管显示000000,然后按键盘上的数字,设置电机速度,如
22、按下32,显示结果250000,点击 A键确定,点击启动键D,电机运转,后四位显示电机实际转速,显示结果321940(理论值应是1920,允许有5% 的误差)。E 键停止运行。 如果想在设置其他值,点击 C,设置新的转速, 如果想让电机停转,点击停止键E,并且重新设置电机转速。运行过程中,如设置新的转速30,运行结果为301800。但是在程序的编写过程中,由于设置了电机启动电压的上下限,故实际测得的电机转速有一定的范围值,为(2245)r/s 。超过这个范围,实际测得的电机转速误差很大。六、心得体会通过这次期两个星期的课程设计,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还比
23、较缺乏,理论联系实际的能力还急需提高。这次的课设我感觉收获很大,虽然遇到了很多困难,但还是被我们一一解决了,它不单是要求你单纯地完成一个题目,而是要求你对所学的知识都要弄懂,并且能将其贯穿起来,综合性比较强。首先要把设计任务搞清,不能盲目的去做,如果连任务都不清楚从何做起呢,接下来是我们两人一组,然后找相关的资料,将有用的整理出来。这次的课设我感觉最不名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 20 页 - - - - - - - - - - 20 - 好做的还是程
24、序的编程,它需要把所有的电路硬件图以及连线都非常清楚,并根据这些编写相应的程序,最后把这些程序整合到一起进行调试。在完成这次课设的同时,我们也把前边学过的和其有关的课程复习了一遍,把以前没有弄懂得问题也搞清楚了。总之,这次课设带给我的收获是没有预料的,当你解决一个问题后,你会有一种成就感,那种心情是无法比拟的。这次课设我体会到不仅要掌握书本上的基本内容,还要灵活思考,善于变换,这样才能找到最优设计。只有不断的学习、实践、再学习、再实践才能不被社会淘汰。当然这次课设离不开老师的耐心教导,没有他给我们灌输的知识,我们根本就无从下手,是老师的教导和我们的努努力才能顺利的完成课设的任务。七、参考文献【
25、1】杨学昭王东云单片机原理、接口技术及应用(含C51)西安电子科技大学出版社【2】张五一,张道光. 微型计算机原理与接口技术M. 河南科学技术出版社,2006. 【3】郑秋生 .C/C+程序设计教程面向过程分册M. 电子工业出版社,2007.18-27 【4】王宗培 . 直流电动机及其控制系统M. 哈尔滨:哈尔滨工业大学出版社,1985. 【5】马忠梅单片机 C语言应用程序设计。北京:北京航空航天大学出版社,2003 八、附录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -