收藏 分享(赏)

基于PID的直流电机速度控制系统设计实验报告.doc

上传人:精品资料 文档编号:10630896 上传时间:2019-12-10 格式:DOC 页数:19 大小:345.50KB
下载 相关 举报
基于PID的直流电机速度控制系统设计实验报告.doc_第1页
第1页 / 共19页
基于PID的直流电机速度控制系统设计实验报告.doc_第2页
第2页 / 共19页
基于PID的直流电机速度控制系统设计实验报告.doc_第3页
第3页 / 共19页
基于PID的直流电机速度控制系统设计实验报告.doc_第4页
第4页 / 共19页
基于PID的直流电机速度控制系统设计实验报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、基于 PID 的直流电机速度控制系统设计实验报告班级: 姓名: 学号: 指导老师: 张友旺 中南大学机电工程学院基于 PID 的直流电机速度控制系统设计实验报告一、实验目的1. 熟练并掌握 89C51、ADC0809 等芯片的原理、硬件以及接线;2. 熟练 89C51 单片机的指令系统,完全掌握中断,子程序,查表程序等特殊语句的应用;3. 学习并掌握浮点数的原理及应用;4. 回顾机械工程控制基础的学习内容并掌握 PID 控制器的原理及用法;5. 锻炼自己发现并解决问题的能力,同时将课本知识应用于实践以得到更好的理解。二、实验原理1. 闭环控制/开环控制对直流电机转速的控制有一般有两种方式,一种

2、是开环控制,一种是闭环控制。开环控制的优点是简单、稳定、可靠。若组成系统的元件特性和参数值比较稳定,且外界干扰较小,开环控制能够保持一定的精度。缺点是精度通常较低,无自动纠偏能力;闭环控制的优点是控制的精度可以达到很高,而且对外界的干扰和系统的参数变化有很好的抑制作用,且可以通过输出反馈控制系统的控制过程。缺点是存在稳定性,振荡,超调等一系列问题,对系统的性能分析和设计远比开环控制麻烦。 经过利弊的取舍,本次试验选择的是闭环控制,因为准备应用 PID 算法控制电机的转速,故而需要有实际转速进行反馈与给定的转速形成对比,进而通过算法输出 PWM 波形来控制直流电机。2. 调速方式本实验采用脉冲宽

3、度(PWM)调速,PWM 调速具有以下几种优点:(1) 系统的响应速度以及稳定精度好;(2) 电流的脉动量小,容易连续,运行平稳;(3) 调速范围宽,抗噪性好;(4) 元件使用数少,线路简单。PWM 的实现方式:将电机电压的通断转换为周期控制,用两个定时器 T0,T1分别控制周期的时间和电压通的时间,从而调节电机的平均电压,以达到对电机电压大小的控制。3测速方式测速的传感器用的是光电编码器,它的原理是电动机的转动带动码盘的转动,码盘上有很多缝隙,缝隙每经过红外管一次就会产生一个脉冲,进而通过专门的芯片得到转动的频率。4. PID 控制方法模拟 PID 控制算法表达式:()=()+10()+()

4、PWM 波的周期,由定时器 T0 定时确定PWM 波的高电平,由 T1 确定占空比数字 PID 控制算法表达式(位置式):()=(1)+(1+)()(1+2)(1)+(2) =(1)+0()1(1)+2(2) 其中:u(t), , 为控制器的输出信号; , ,() (1) () (1)为偏差信号; 为比例系数; 为积分时间常数; 为微分时间常数。(2) 三、实验内容1.系统结构(1)系统方框图u(t)(2)流程图PID PWM 输出 直流电机e(t)测速装置直流电机传感器测速F/V 转换A/D 转换PID 运算PWM 输出2.硬件部分及接线(1)ADC0809 接线单片机最小应用系统的 P0

5、口 JD4F 接 A/D 转换的 D0D7 口 JD10H,单片机最小应用系统的 Q0Q7 口 JD7F 接 0809 的 A0A7 口 JD11H,单片机最小应用系统的 WR、RD、P2.0、ALE、INT1 分别接 A/D 转换的 WR、RD、CS-0809、CLK、EOC。A/D 转换的+Vref 接+5V 电源,AIN0 接可调电源模块 A2 区的输出端(AIN0 也可在程序运行之后接) ,单片机最小应用系统的 RXD、TXD 分别接串行静态显示的 DIN、CLK。(2)电机接线单片机的 P1.0 接电机的 control 口。3.软件部分(1)A/D 转换值显示部分见后面附录程序中的

6、 A/D 转换及显示子程序(XS) 。注意:该程序采用的是用 RLC A 等语句实现的串行通信,若使用 MOV SBUF ,A等语句实现串行通信,则需要改动表格中数据。这是因为 RLC A 等语句实现的GND 13VCC 11IN-0 26msb2-121 2-220IN-1 272-319 2-418IN-2 282-58 2-615IN-3 12-714 lsb2-817IN-4 2EOC 7IN-5 3ADD-A25IN-6 4ADD-B24 ADD-C23IN-7 5ALE22ref(-) 16ENABLE9START6ref(+) 12CLOCK 10U10HADC08093 474

7、LS1412 374LS32VCCCS_0809EOC+Vref45 674LS325 674LS149 874LS14VCCRDWR12345678JD11HA0-2ADD_CADD_BADD_AADD_CADD_BADD_A12345678JD10HD0-7CLKAIN-0IN0IN1IN2IN3IN4IN5IN6IN712345678JP12HAIN0-74.7K串行通信是数据的高位在前,低位在后;而 MOV SBUF ,A 等语句实现的串行通信正好与之相反,低位在前,高位在后。(2)PID 运算程序见后面附录程序中的 PID 调节子程序(PID) 。注意:此处采用位置式方程,并且使用双

8、字节浮点数计算,以提高精度。(3)PWM 输出程序见后面附录程序中的 PWM 的参数求解子程序(PWM)以及主程序中 T0,T1中断语句。注意:此处采用双字节浮点数计算,以提高精度。(4)加减乘除子程序见后面附录程序中的浮点数运算子程序部分。注意:此处都是有符号双字节浮点数。四、实验结果及感想经过两星期的编程和调试后,虽然中途出现了很多障碍,但是最终还是实现了直流电机的速度控制,使其可以调到速度范围内任意想要的速度,完成了实验任务。这次试验,不仅加深了我对单片机的硬件结构和指令系统的认识,巩固了过去所学的机械工程控制基础方面的知识,更重要的是让我学到了从课本上学不到的东西。我大学里的知识大部分

9、都来源于课堂和书本,基本上都是一知半解,根本没有学会灵活的应用知识。而通过这次试验,在将知识应用于实践的过程中,我发现问题并解决问题,不断的加深对知识的认识,从而真正的掌握了解决问题的能力。附录:程序源代码;主程序;单片机最小应用系统 1 的 P0 口接 0809 的 JD15 口,;单片机最小应用系统 1 的 Q0 口接 0809 的 JD16,;单片机最小应用系统 1 的 ALE、P2.0、P3.3、P3.6、P3.7 分别;接 0809 的 clk0809、cs-0809、EOC、WR 、RD,;0809 的模拟信号输入口 AIN0 接入 05V 可调电压,+VREF 接+5V;P3.0

10、,P3.1 连接到串行静态显示实验模块的 DIN、CLK。DBUF0 EQU 30H ;显示第一位的缓冲地址TEMP EQU 40H MAX EQU 6CH ;电动机最大的工作频率UA EQU 6DH ;给定的 A/D 转换值UB EQU 6EH ;实际的 A/D 转换值 A0 EQU 60H ;比例系数 A0A1 EQU 63H ;积分系数 A1 A2 EQU 66H ;微分系数 A2TH11 EQU 5EH ;TH1 的值TL11 EQU 5FH ;TL1 的值ORG 0000H LJMP STARTORG 000BHLJMP INT0_PORG 001BHLJMP INT1_PORG 0

11、100HSTART: MOV A0, #22H ;给 A0 赋值 MOV 61H,#10H ;4MOV 62H,#7FHMOV A1,#00H ;给 A1 赋值MOV 64H,#10H ;0MOV 65H,#7FH MOV A2, #00H ;给 A2 赋值MOV 66H,#00H ;0MOV 67H,#00HMOV UA,#10H ;给定期望值MOV 6FH,#20 ;扫描周期为 20msMOV 50H,#05H ;给 U(K-1)赋值 MOV 51H,#00H ;5MOV 52H,#00HMOV R1,#6MOV R0,#56HLOOP1: MOV R0,#01H INC R0DJNZ R

12、1,LOOP1 ;给 e(k-1 )和 e(k-2)赋零MOV UA,#022H ;给定电动机的频率 MOV TMOD,#11HMOV TH0,#0FCHMOV TL0,#18HMOV TH1,#0MOV TL1,#0MOV TH11,#0FFH ;控制高电平时间 ton,即占空比MOV TL11,#29HSETB TR0SETB TR1SETB EASETB ET0SETB ET1LOOP2: MOV A,6FHJNZ DSQMOV 35H,#11H ;灭不需要的显示位MOV 36H,#11HMOV 37H,#11HMOV R0,#DBUF0MOV R0,#0AHINC R0MOV R0,#

13、0DHINC R0MOV R0,#11HINC R0MOV DPTR,#0FEF0H;A/DMOV A,#0MOVX DPTR,AWAIT: JB P3.3,WAITMOVX A,DPTR ;读入结果MOV P1,AMOV B,AMOV UB,A ;将实际频率存入 UB 中 SWAP AANL A,#0FHXCH A,R0INC R0MOV A,B ANL A,#0FHXCH A,R0LCALLDISP1; ACALL DELAYLCALL PID ;调用 PID 程序LCALL PWM ;调用 PWM 程序MOV 6FH,#20DSQ: AJMPLOOP2 ;20ms 进行一次调速DISP1

14、: MOV R0,#DBUF0MOV R1,#TEMPMOV R2,#8DP10: MOV DPTR,#SEGTABMOV A,R0MOVC A,A+DPTRMOV R1,AINC R0INC R1DJNZR2,DP10MOV R0,#TEMPMOV R1,#8DP12: MOV R2,#8MOV A,R0DP13: RLC AMOV 0B0H,CCLR 0B1HSETB0B1HDJNZR2,DP13INC R0DJNZR1,DP12RETSEGTAB: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9

15、,A,BDB 58H,5EH,79H,71H,0,00H ;C,D,E,F,-DELAY: MOV R4,#0FFH ;延时程序AA1: MOV R5,#0FFHAA: NOPNOPDJNZ R5,AADJNZ R4,AA1RET;PWM T0 中断INT0_P: MOV TH0,#0FCHMOV TL0,#18HMOV TH1,TH11MOV TL1,TL11SETB P1.0SETB P1.2SETB TR1MOV A,6FHJZ LOOP11DEC 6FH ;20ms 计时LOOP11: NOP RETI;PWM T1 中断INT1_P: CLR P1.0CLR P1.2CLR TR1N

16、OP RETI;PID 调节PID: MOV UA,#66HMOV UB,#44HCLR CMOV A,UASUBB A,UB ;计算 e(k )MOV R2,A ;将 e(k )转换成浮点数MOV R3,#00HACALL SFF2MOV 53H,R2MOV 54H,R3MOV 55H,R6MOV R1,73HMOV R4,63H ;求 u(k)并覆盖 u(k-1)MOV R5,64H MOV R7,65H MOV R2,56HMOV R3,57HMOV R6,58HACALL SFDUMMOV R4,75HMOV R5,76HMOV 2DH,R4MOV 2EH,R5MOV 2FH,R7MO

17、V R1,73HMOV R4,60H MOV R5,61H MOV R7,62H MOV R2,53HMOV R3,54HMOV R6,55HACALL SFDUMMOV R4,75HMOV R5,76HMOV R2,2DHMOV R3,2EHMOV R6,2FHACALL SFDUSMOV 2DH,R4MOV 2EH,R5MOV 2FH,R7MOV R1,73HMOV R4,66H MOV R5,67H MOV R7,68H MOV R2,59HMOV R3,5AHMOV R6,5BHACALL SFDUMMOV R4,75HMOV R5,76HMOV R2,2DHMOV R3,2EHMOV

18、 R6,2FHACALL SFDUA MOV R2,50HMOV R3,51HMOV R6,52HACALL SFDUAMOV 50H,R4MOV 51H,R5MOV 52H,R7MOV 59H,56H ;用 e(k-1 )覆盖 e(k-2)MOV 5AH,57HMOV 5BH,58HMOV 56H,53H ;用 e(k)覆盖 e(k-1)MOV 57H,54HMOV 58H,55HRET;PWM 的参数求解PWM: MOV A,51H ;判断 U(K)的正负JB ACC.7,LOOP9MOV A,52HJB ACC.7,LOOP9 MOV A,#16SUBB A,R7MOV R7,ALOOP

19、7: CLR CMOV A,R5RRC AMOV R5,AMOV A,R4RRC AMOV R4,ADJNZ R7,LOOP7CLR CMOV A,#0FFH ;计算 T1 初值SUBB A,R5MOV TH11,AMOV A,#0FFH SUBB A,R4MOV TL11,AAJMP LOOP10LOOP9: MOV TH11,#0FCHMOV TL11,#29HLOOP10: RET;P14 1.9.2 双字节二进制定点数到浮点数的转换;入口 R3R2SFF2: MOV R6,#10HMOV 20H,R3JB 07H,SEGLP0: JB 06H,LP1LCALL LSTMOV 20H,R

20、3AJMP LP0SEG: JNB 06H,LP1;负LCALL LSTMOV 20H,R3AJMP SEGLP1: RETLST: CLR CXCH A,R2RLC AXCH A,R2XCH A,R3RLC AXCH A,R3DEC R6RET;出口 R6 R3R2;P51 4.1.3 双字节二进制浮点数加法,R7R5R4+R6R3R2=R7R5R4SFDUA: ACALL SJJ;参见 2.6.3(对阶)ACALL AD5432;参见程序一(尾数相加)JNB OV,SONACALL RST77;参见程序一(右规)RETSON: ACALL SLST2;参见 2.5.3RET;P49 4.1

21、.1 双字节无符号数加法- 子程序AD5432: MOV A,R4;尾数相加ADD A,R2MOV R4,AMOV A,R5ADDC A,R3MOV R5,ARET;P55 4.2.3 双字节有符号数减法,R7R5R4-R6R3R2=R7R5R4SFDUS: LCALL SJJ;参见 2.6.3(对阶)LCALL SU5432;参见程序一(尾数相减)JB OV,LPSLCALL SLST2;参见 2.5.3(左规)RETLPS: MOV A,R5JNB 0E7H,LEKCLR CAJMP LPELEK: SETB CLPE: LCALL RST77;参见 4.1.1(右规)RET;P27 2.

22、6.3 二进制浮点数对阶SJJ: MOV A,R6XRL A,R7JZ RET1CLR CMOV A,R7SUBB A,R6JB 0E7H,SRSH7LCALL SRST6AJMP SJJSRSH7: LCALL SRST7AJMP SJJRET1: RETSRST6: MOV A,R3JB 0E7H,LPS0;右规CLR CAJMP LPS1LPS0: SETB CLPS1: RRC AMOV R3,AMOV A,R2RRC AMOV R2,AINC R6RETSRST7: MOV A,R5JB 0E7H,LPS00CLR CAJMP LPS11LPS00: SETB CLPS11: RRC

23、 AMOV R5,AMOV A,R4RRC AMOV R4,AINC R7RET;P53 4.2.1 双字节无符号数减法- 子程序SU5432: CLR CMOV A,R4SUBB A,R2MOV R4,AMOV A,R5SUBB A,R3MOV R5,ARET;P23 2.5.3 双字节有符号数左规SLST2: MOV 20H,R5JB 07H,SEGALPSS0: JB 06H,LPSS1;正LCALL LSTBMOV 20H,R5AJMP LPSS0SEGA: JNB 06H,LPSS1LCALL LSTBMOV 20H,R5AJMP SEGALPSS1: RETLSTB: CLR CX

24、CH A,R4RLC AXCH A,R4XCH A,R5RLC AXCH A,R5DEC R7RET;P49 4.1.1 二进制浮点数加法- 子程序-右规RST77: MOV A,R5RRC AMOV R5,AMOV A,R4RRC AMOV R4,AINC R7RET;P59 4.3.3 双字节浮点数有符号数乘法,R7R5R4 X R6R3R2 =R7 R1 四位SFDUM: ACALL SLST2;参见 2.5.3(左规)ACALL SLST32;左规MOV A,R7ADD A,R6MOV 21H,AACALL SDUMUL;参见 3.3.4MOV R7,21HMOV A,R1;积左规AD

25、D A,#04HMOV R0,AMOV 7AH,AMOV A,R7MOV R0,APOP 0E0HMOV R2,#04HACALL SMLST;参见 2.5.4(左规)PUSH 0E0HMOV A,R0MOV R7,AMOV A,7AHRETSLST32: MOV 20H,R3;左规JB 07H,SAEGLCP0: JB 06H,LCP1ACALL LSTMOV 20H,R3SJMP LCP0SAEG: JNB 06H,LCP1ACALL LASTMOV 20H,R3SJMP SAEGLCP1: RETLAST: CLR CMOV A,R2RLC AMOV R2,AMOV A,R3RLC AM

26、OV R3,ADEC R6RET;P37 3.3.4 双字节有符号二进制定点数乘法SDUMUL: MOV A,R5;求被乘数符号ANL A,#80HMOV R6,AJZ NEG32NEG54: MOV A,R4CPL AADD A,#01HMOV R4,AMOV A,R5CPL AADDC A,#00HMOV R5,ANEG32: MOV A,R3;求乘数符号ANL A,#80HMOV R7,AJZ DDUMULMOV A,R2;乘数求补CPL AADD A,#01HMOV R2,AMOV A,R3CPL AADDC A,#00HMOV R3,ADDUMUL: MOV A,R6;求积的符号XR

27、L A,R7MOV 20H,AACALL DUMUL;参见程序一JNB 07H,RETURNNEG4: MOV R7,#04H;积求补SETB CLDP: MOV A,R1CPL AADDC A,#00HMOV R1,AINC R1DJNZ R7,LDPMOV A,R6MOV R1,ARETURN: RET;P33 3.3.1 二进制定点数双字节无符号数乘法DUMUL: MOV A,R1MOV R6,AMOV R7,#04HCLEAR: MOV R1,#00HINC R1DJNZ R7,CLEARMOV A,R6MOV R1,AMM: MOV A,R2MOV B,R4MUL ABACALL A

28、DDMMOV A,R2MOV B,R5MUL ABACALL ADDMMOV A,R3MOV B,R4MUL ABDEC R1ACALL ADDMMOV A,R3MOV B,R5MUL ABACALL ADDMMOV A,R6MOV R1,ARETADDM: ADD A,R1MOV R1,AMOV A,BINC R1ADDC A,R1MOV R1,AINC R1MOV A,R1ADDC A,#00HMOV R1,ADEC R1RET;P24 2.5.4 多字节有符号浮点数左规SMLST: MOV A,R0MOV R1,AMOV A,R2;求尾数位数MOV B,#08HMUL ABDEC AMO

29、V R3,ADEC R1MOV 20H,R1JB 07H,SEEGLEP0: JB 06H,LEP2;正ACALL LADACALL LESTDJNZ R3,LEP0AJMP LEP2SEEG: JNB 06H,LEP2;负ACALL LADACALL LESTDJNZ R3,SEEGLEP2: RETLAD: INC R1;求尾数低位字节地址指针MOV A,R1CLR CSUBB A,R2MOV R1,ARETLEST: MOV A,R2;左规MOV R4,ACLR CLEP1: MOV A,R1RLC AMOV R1,AINC R1DJNZ R4,LEP1DEC R0DEC R1MOV 20H,R1RETEND

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报