直流电机转速计算机控制系统设计.doc

上传人:李司机 文档编号:1089202 上传时间:2022-06-22 格式:DOC 页数:21 大小:320.01KB
返回 下载 相关 举报
直流电机转速计算机控制系统设计.doc_第1页
第1页 / 共21页
直流电机转速计算机控制系统设计.doc_第2页
第2页 / 共21页
直流电机转速计算机控制系统设计.doc_第3页
第3页 / 共21页
直流电机转速计算机控制系统设计.doc_第4页
第4页 / 共21页
直流电机转速计算机控制系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《直流电机转速计算机控制系统设计.doc》由会员分享,可在线阅读,更多相关《直流电机转速计算机控制系统设计.doc(21页珍藏版)》请在三一办公上搜索。

1、word2 / 21计算机控制技术课程设计(论文)题目:题目:直流电机转速控制系统设计word3 / 21课程设计(论文)任务及评语课程设计(论文)任务及评语院(系): 教研室:自动化 word4 / 21学 号学生专业班级自动化课程设计题目直流电机转速控制系统设计课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数课题完成的功能、设计任务及要求、技术参数实现功能直流电动机作为执行元件,广泛应用于工业控制中,本设计要求采用单片机作为控制芯片,控制算法采用常规的 PID 控制,加上相应的输入输出通道,构成一个单闭环控制系统,使电机转速稳定运行,并实时显示转速值。设计任务及要求1、确定系统

2、设计方案,包括单片机的选择,输入输出通道,键盘显示电路;2、建立被控对象的数学模型;3、推导 PID 控制算式,设计 PID 算法的程序流程图或程序清单;4、仿真研究,验证设计结果。5、撰写、打印设计说明书一份;设计说明书应在 4000 字以上。技术参数技术参数电机参数:他励直流电动机,额定电压 36V,额定功率 2.2KW,额定转速 2000 转/分。设计指标:稳态运行时最大超调量小于 20%进度计划布置任务,查阅资料,确定系统方案(1 天)被控对象建模(1 天)算法推导,程序设计(3 天)仿真研究(2 天)撰写、打印设计说明书(2 天)答辩(1 天)指导教师评语及成绩平时: 论文质量: 答

3、辩:总成绩: 指导教师签字: 年 月 日wordV / 21摘 要在运动控制系统中,电机转速控制占有至关重要的作用,其控制算法和手段有很多,模拟PID控制是最早发展起来的控制策略之一,长期以来形成了典型的结构,并且参数整定方便,能够满足一般控制的要求,但由于在模拟PID 控制系统中,参数一旦整定好后,在整个控制过程中都是固定不变的,而在实际中,由于现场的系统参数、温度等条件发生变化,使系统很难达到最佳的控制效果,因此采用模拟PID控制器难以获得满意的控制效果。随着计算机技术与智能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高

4、等优点,应用面越来越广。本文章介绍了由 51 单片机以及直流电机、矩阵键盘、LCD 和传感器构成的转速闭环控制系统。其中传感器负责对电机转速进行测量,并将测量的结果反馈给控制中心,并由控制中心将之与设定值进行比较得到偏差,再由偏差产生直接控制作用去消除偏差。文章不但介绍了基于单片机的转速控制系统的软件设计,还涉及了硬件设计方法。文中介绍系统不但可以实现手动控制,还有无人值守,自动调速功能。关键词:直流电机闭环控制单片机 矩阵键盘 LCDwordVI / 21目 录第 1 章 绪论 1第 2 章 课程设计的方案 22.1 概述 22.2 系统组成总体结构 2第 3 章 硬件设计 33.1 控制器

5、 33.2 测速发电机 33.3 A/D 转换和 D/A 转换器 33.4 晶闸管整流控压 43.5 键盘模块 53.6 显示器 63.7 整体结构原理图 7第 4 章 软件设计 84.1 主流程设计 84.2 按键功能部分 94.3 PID 控制部分 94.4 参数确认 104.5 LCD 显示部分 11第 5 章 实验试验结果 12第 6 章 课程设计总结 13参考文献 14部分程序 15word1 / 21第 1 章 绪论直流电气传动系统中需要有专门的可控直流电源,常用的可控直流电源有以下几种:第一,最初的直流调速系统是采用恒定的直流电压向直流电动机电枢供电,通过改变电枢回路中的电阻来实

6、现调速。这种方法简单易行,设备制造方便,价格低廉。但缺点是效率低、不能在较宽围平滑调速,所以目前极少采用。第二,三十年代末,出现了发电机电动机(也称为旋转变流组),配合采用磁放大器、电机扩大机、闸流管等控制器件,可获得优良的调速性能,如有较宽的调速围(十比一至数十比一)、较小的转速变化率和调速平滑等。特别是当电动机减速时,可以通过发电机非常容易地将电动机轴上的飞轮惯量反馈给电网,这样,一方面可得到平滑的制动特性,另一方面又可减少能量的损耗,提高效率。但发电机电动机调速系统的主要缺点是需要增加两台与调速电动机相当的旋转电机和一些辅助励磁设备,因而体积设备较多、体积大、费用高、效率低、安装需要地基

7、、运行有噪声、维修困难等。第三,自出现汞弧变流器后,利用汞弧变流器代替上述发电机电动机系统,使调速性能指标又进一步提高。特别是它的系统快速响应性是发电机电动机系统不能比拟的。但是汞弧变流器仍存在一些缺点:维修还是不太方便,特别是水银蒸汽对维护人员会造成一定的危害等。第四,1957 年,世界上出现了第一只晶闸管,与其它变流元件相比,晶闸管具有许多独特的优越性,因而晶闸管直流调速系统立即显示出强大的生命力。由于它具有体积小、响应快、工作可靠、寿命长、维修简便等一系列优点,采用晶闸管供电,不仅使直流调速系统经济指标上和可靠性有所提高,而且在技术性能上也显示出很大的优越性。晶闸管变流装置的放大倍数在

8、10000 以上,比机组(放大倍数 10)高 1000 倍,比汞弧变流器(1000)高 10 倍;在快速响应性上,机组是秒级,而晶闸管变流装置为毫秒级。因此,目前在直流调速系统中,除某些特大容量的设备而且供电电路容量较小的情况下,仍有采用机组供电、晶闸管励磁系统以外,几乎绝大部分都已改用晶闸管相控整流供电了。随着微电子技术的发展,微机功能的不断提高以及电力电子、计算机控制技术的发展,电气传动领域出现了以微机为核心的数字控制系统。计算机的发展可以使复杂的控制规律较方便的实现,以计算机为核心的数字控制技术成为自控领域的主流,也给直流电气传动的发展注入了新的活力,使电气传动进入了更新的发展阶段。wo

9、rd2 / 21第 2 章 课程设计的方案2.1 概述本次设计主要是综合应用所学知识,设计直流电机转速控制系统设计,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“微型计算机控制技术”课程中所学的基本理论和基本方法,并初步掌握小型控制系统设计的基本方法。2.2 系统组成总体结构图 2.2 是基于单片机的转速控制系统的基本组成方框。主要由测速发电机,电机,矩阵键盘,LCD(12864) ,单片机(89C51)组成。测速发电机输出电压的大小反映机械转速的高低,并将该模拟量入如 A/D 转换器,转换成数字信号给单片机。单片机 89C51 是该系统的核心部分,一方面负责计算电机的转速

10、,另一方面将计算得到的转速与设定转速相比较,经过计算处理,得到相应的控制信号,并用该信号传入 D/A 转换器,再传入晶闸管调压器控制控制电压从而控制电机转速。通过键盘可以设定工作模式(通过输入设定转速,单片机自动控制电机转速,使其接近设定值)设定转速。由单片机检测哪一个按键按下,实现设定值的修改,并通过 LCD 实时显示设定值以及测得转速。电机测速发电机单片机D/A 转换器LCDA/D转换器键盘晶闸管图 2.2 系统框图word3 / 21第 3 章 硬件设计3.1 控制器采用AT89C51作为系统控制的方案。AT89C51单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法

11、和逻辑控制。相对于FPGA来说,它的芯片引脚少,在硬件很容易实现。并且它还具有功耗低、体积小、技术成熟和成本低等优点,在各个领域中应用广泛。3.2 测速发电机采用 ZYS 型直流测速发电机,直流测速发电机在结构上与普通小微型直流发电机相同,通常是两极电机,分为他励式和永磁式两种。他励式测速发电机的磁极由铁心和励磁绕组构成,在励磁绕组入直流电流便可以建立极性恒定的磁场。它的励磁绕组电阻会因电机工作温度的变化而变化,使励磁电流及其生成的磁通随之变化,产生线性误差。永磁式测速发电机的磁极由永久磁铁构成,不需励磁电源。磁极的热稳定性较好,磁通随电机工作温度的变化而变化的程度很小,但易受机械振动的影响而

12、引发不同程度的退磁。3.3 A/D 转换和 D/A 转换器该模块 A/D 转换选用 ADC0809 是 M 美国国家半导体公司生产的 CMOS 工艺 8通道,8 位逐次逼近式 A/D 转换器。其部有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。是目前国应用最广泛的 8 位通用 A/D 芯片。DAC0832 是 8 分辨率的 D/A 转换集成芯片。与微处理器完全兼容。这个 DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A 转换器由 8 位输入锁存器、8 位 DAC 寄存器、8 位 D/

13、A 转换电路及转换控制电路构成。3.4 晶闸管整流控压本设计采用三相全控桥式整流电路,由一组共阴极接法的三相半波可控整流电word4 / 21路和一组共阳极接法的三相半波可控整流电路串联而成。如图 3.4 所示。如图 3.4 三相桥式全控整流电路三相全控桥式整流电路要求用双窄脉冲触发,即用两个间隔 60的窄脉冲去触发晶闸管。产生双脉冲的方法有两种, 一种是每个触发电路在每个周期只产生一个脉冲, 脉冲输出电路同时触发两个桥臂的晶闸管,这叫外双脉冲触发; 另一种是每个触发电路在一个周期连续发出两个相隔 60的窄脉冲, 脉冲输出电路只触发一个晶闸管,这称为双脉冲触发。 双脉冲触发是目前应用最多的一种

14、触发方式。本设计采用 KC04 与 KC41C 组合的触发电路如图 3.4.1 所示触发电路。word5 / 213.4.1 KC04 与 KC41C 组成的全控桥触发电路3.5 键盘模块本次设计中采用的 4*4 的非编码键盘。矩阵式非编码键盘的电路原理图如图 3.4所示。当没有键按下时,行线和列线之间是不相连。若第 N 行第 M 列的键被按下,那么第 N 行与第 M 列的线就被接通。如果在行线上加上信号,根据列线的状态,便可得知是否有键按下。如果在行线上逐行加上一个扫描信号(本实验中用的低电平) ,就可以判断按键的位置。常用的按键识别有两种方法:一种是传统的行扫描法;另一种是速度较快的线反转

15、法。本实验中采用的是线反转法进行识键。键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。键盘可分为编码和非编码键盘两种。编码键盘采用硬件线线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能。这种键盘使用方便,但硬件较复杂,PC 机所用的键盘就属于这种。非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛使用。3.6 显示器液晶显示模块(LCD12864)由于其具有功耗低、无电磁辐射、寿命长、价格低、接口方便等一系列显著优点,被广

16、泛应用与各种仪表仪器、测量显示装置、计算机显示终端等方面。12864 汉字图形点阵液晶显示模块,可显示汉字及图形,置 8192个中文汉字(16X16 点阵) 、128 个字符(8X16 点阵)及 64X256 点阵显示RAM(GDRAM) 。主要技术参数和显示特性:电源:VDD 3.3V+5V(置升压电路,无需负压);显示容:128 列 64 行显示颜色:黄绿显示角度:6:00 钟直视LCD 类型:STN与 MCU 接口:8 位或 4 位并行/3 位串行配置 LED 背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等word6 / 213.7 整体结构原理图整体原理图如图 3.7 所

17、示:EA/VPP31XTAL119XTAL218RST9P3.7(RD)17P3.6(WR)16P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78(AD0)P0.039(AD1)P0.138(AD2)P0.237(AD3)P0.336(AD4)P0.435(AD5)P0.534(AD6)P0.633(AD7)P0.732(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)

18、P2.728PSEN29ALE/PROG30(TXD)P3.111(RXD)P3.010GND20VCC40AT89C51+5V1122334455667788991010111112121313141415151616171718181919202021212222LCDIN31IN42IN53IN64IN75START6EOC7D38OE9CLK10VCC11VREF+12GND13D114D215VREF-16D017D418D519D620D721ALE22ADD C23ADD B24ADD A25IN026IN127IN228UADC0809VREF8RFB9GND10IOUT111

19、IOUT212DI713DI614DI515DI416DI07CS1WR12GND3DI34DI25DI16XFER17WR218ILE19VDD20UDAC0832动动动动动动动动动动动动动动3.7 整体原理图第 4 章 软件设计4.1 主流程设计在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4.1所示。word7 / 21开始定时器初始化键盘选择工作模式是否启动电机显示信息刷新显示进行键盘扫描按键功能判断更新控制并清除标志位是图 4.1主流程图4.2 按键功能部分该部分首要任务是判定到底是哪个按键按下

20、,然后实现对应功能。如果是 11 号键按下,则工作模式设定为自动模式,可以通过 09 的数字键来更改设定速度,由单片机通过 PID 算法来控制电机转速接近设定值。如果是 12 号键按下,则工作模式设定为手动模式,可以通过 09 的数字键来直接控制电机转速。是word8 / 214.3 PID 控制部分如图 4.3 给出了数字 PID 增量控制算法的流程图,利用增量控制算法也可得出位置控制算法,即,这便是位)2() 1()()() 1()(210keqkeqkeqkukuku置型控制算式的递推算法,其流程和增量型算法类似,稍加修改即可。离线计算q0,q1,q2求 e(k)=r(k)-y(k)e(

21、k-2)=e(k-1) e(k-1)=e(k)将输给 D/A)(ku将 A/D 结果赋给 y(k)计算控制增量 )(ku)(ku)(ku)(ku)(ku)(ku)(ku)(ku采样时刻到否A/DD/A被控对象是否图 4.3 PID 控制算法流程图4.4 参数确认) 106. 0)(11 . 0(1) 1)(1()(210SSSTSTkSGTI =0.1 T2=0.06 得通常取,)(3 . 0)(010YtYst18. 01通常取,)(7 . 0)(020YtYst45. 02=)(1ln)(1ln2010120tytyttT8473. 012tt 根据上式确认,0T。8473. 03567.

22、 020. 1)(1ln)(1ln)(1ln)(1ln212010201102tttytytyttyntword9 / 21=0.58s0T= 0.159s求得数字 PID 调节器控制参数15. 0)/(2 . 01)/(37. 0096. 0)/(6 . 01)/(5 . 0)/(5 . 24 . 127. 0)/(35. 1 100002000100TTTTTTTTTTKKDP据上式确认数字 PID 调节器控制参数。4.5 LCD 显示部分其工作流程为先向 LCD 发送控制命令,再传送待显数据,最后刷新屏幕。其流程图如图 4.5 所示。入口发送命令延时发送数据延时显示返回图 4.5 LCD

23、 显示函数流程图word10 / 21第 5 章 实验试验结果通过实验室试验,输入已经确定的 Kp=1.4,T1=0.096,Td=0.15 得到如图 5.1 所示。图 5.1 实验图像超调量=297/2000=14% 小于 20%符合设计要求。第 6 章 课程设计总结这次课程设计结束,感谢工业大学给我这个锻炼的机会,感谢王老师给的指导。刚开始做设计的时候觉得无从下手,后来通过老师的指导慢慢的进入了状态,看书查找资料,在实验室做实验,过程中出现了很多的问题,经过老师和同学的帮助终于克服了。word11 / 21参考文献1新民.智能仪器设计基础.:工业大学,2009:42-562 程德福.智能仪

24、器.:机械工业,2009.9:101-1303 毅刚.单片机原理及接口技术M .:工业大学,2007:55-664 文金.单片机应用技术实训教程.:大学,2005:5-215 梁森.自动检测技术及应用. :机械工业,2009:32-33 部分程序PID 算法程序#include #include #include /void PIDInit(PID *PP);/*定义结构体和公用体*/#define N 8typedef struct PIDunsigned int setpoint; /*设定值*/unsigned int proportion; /*比例系数*/unsigned int i

25、ntegral; /*积分系数*/unsigned int derivative; /*微分系数 */unsigned int lasterror; /*前一拍误差*/unsigned int preerror; /*前两拍误差*/ PID; union stuunsigned int value;unsigned char num2; laser;union dat unsigned char dd2;word12 / 21 unsigned int number; collect;/*函数声明部分*/unsigned int PIDcal(PID *pp,int thiserror); v

26、oid PIDInit(PID *PP); void PortInit(void); unsigned int get_ad(void); unsigned int filter_valve(void); void Delayms(void); /*主函数部分*/ void main(void) PID vPID; /*定义结构体变量名*/unsigned int verror;unsigned int Error;unsigned int tempi;unsigned char LASERH,LASERL; /*误差的高低字节变量*/ WDT=0 xde; WDT=0 xad;/portin

27、it();PIDInit(&vPID);vPID.proportion=10; /*设置 PID 比例系数为 10*/ vPID.integral=10; /*设定 PID 积分系数 为 10*/vPID.derivative=10; /*设定 PID 微分系数为 10*/vPID.setpoint=50; /*根据实际情况设定*/IE= 0 x80;while(1)verror=filter_valve(); /*得到 AD 的滤波输出值 */word13 / 21Error=vPID.setpoint-verror; /*得到误差值*/tempi=PIDcal(&vPID,Error);

28、/*调用 PID 算法函数 得到误差增量*/laser.value+=tempi; LASERH=laser.num0; /*value 与 num2为共同体,变量名为 laser*/LASERL=laser.num1; /*存放高低字节*/ /*PID 算法函数,返回误差增量*/unsigned int PIDcal(PID *pp,int thisError)unsigned int pError,dError,iError;unsigned int templ; pError=thisError-pp-lasterror; iError=thisError; dError=thisErr

29、or-2*(pp-lasterror)+pp-preerror; templ=pp-proportion*pError+pp-integral*iError+pp-derivative*dError; /*增量计算*/ pp-preerror=pp-lasterror; /*存放误差用于下次运算*/ pp-lasterror=thisError; return (int)(templ8); /*测量值*/*float measure(void) 已知 A B 角为锐角 /* COSA=1/7 SIN(A+B)=14 分之 5 倍根号 3 */*long float value; /*求 COS

30、B*/*float A,B;A=acos(1/7);B=asin(5/14)*sqrt(3)-A;if(0Api/2)&(0Bpi/2) return cos(B); */word14 / 21 /*得到 ADC 转换值*/ unsigned int get_ad(void) while(AD0INT=0); AD0INT=0; collect.dd1=ADC0H; collect.dd0=ADC0L; return (collect.number); void Timer3_ISR(void) interrupt 14TMR3=0 x7f;/AMUX0SL=0 x00;AD0BUSY=1;v

31、oid Timer3_Init(unsigned char Highcounts,unsigned char Lowcounts) TMR3=0 x01; /*禁止定时器 3;清 TF3,采用 SYSCLK 为时基*/ TMR3RLH=-Highcounts; /*初始化重装载值*/ TMR3RLL=-Lowcounts; TMR3L=0 xff; /*设置为立即重装在*/ TMR3H=0 xff; EIE2|= 0 x01; /*允许定时 3 中断*/ TMR3|=0 x06; /*启动定时器 3*/ void ADCInit(void)word15 / 21 ADC0CF=0 x00; /

32、*选择 ADC0 的转换始终为系统时钟,增益为 1*/ ADC0=0 xc0; /*允许 ADC0 准备转换,定义低功耗跟踪方式,置 AD0BUSY位为 1 启动 ADC,寄存器数据右对齐*/ AMX0CF=0 x01; /*选择 AIN0 和 AIN!为通道 0 差分输入的正负端*/ /*PID 初始化*/void PIDInit(PID *PP) memset(PP,0,sizeof(PID); /*数字算术滤波子程序*/ unsigned int filter_valve(void)unsigned char i,j,temp;unsigned char count;unsigned i

33、nt valve_bufN;unsigned int sum=0;for(count=0;countN;count+)valve_bufcount=get_ad();Delayms();for(j=0;jN-1;j+) for(i=0;ivalve_bufi+1) temp=valve_bufi; valve_bufi=valve_bufi+1; valve_bufi+1=temp; word16 / 21 for(count=1;countN-1;count+) sum+=valve_bufcount; return (unsigned int)(sum/(N-2); /*延时子程序*/void Delayms(void)unsigned int ms;unsigned char i;while(ms-) for(i=0;i120;i+); 计算e(n)计算KIe(n)计算KP(e(n)-e(n-1)计算KD(e(n)-2e(n-1)+e(n-2)计算u(n)计算u(n)u(n-1)e(n-1)e(n-2)e(n)e(n-1)u(n)u(n-1)返回图4.1PID程序流程

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号