基于单片机的直流调速系统的设计毕业论文

更新时间:2024-04-15 19:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013届毕业设计说明书

基于单片机的直流调速系统的设计

系 、 部: 电气与信息工程学院 学生姓名: 指导教师: 职称 教授 专 业: 电气工程及其自动化 班 级:

完成时间: 2013-5-28

2013届毕业设计课题任务书

院(系):电气与信息工程学院 专业:电气工程及其自动化

指导教师 课题名称 学生姓名 基于单片机的直流调速系统的设计 内 容 及 任 务 分析单片机对直流电机进行速度测量应用的基本原理,并用单片机产生PWM波来控制直流电机的可逆调速,从而实现了对普通直流电机的转速测量和转速调节。 研究以单片机AT89S52和IR2110控制的直流电机脉宽调制调速系统。利用AT89S52芯片可以进行低成本直流电动机控制系统的设计,并且能够简化系统构成、降低系统成本、增强系统性能、以满足更多应用场合的需要。 要求: (1)设计一个单闭环调速系统,通过外接键盘及按钮实现直流电机正转、反转及速度调节控制。 (2)直流电机转速调节范围为30-50转/秒,实时测量电机的实际转速,并要求在LED数码管上显示出来。 (3)选择可以构成闭环系统的方案、选择所需器件和模块、以及IGBT管组成桥式斩波电路。 (4)要求系统实现对电机的正转、反转、急停、加速、减速的控制,以及PWM的占空比在LED上的实时显示。 (5)对直流电机模型进行PID控制分析。 (6)对直流电机进行MATLAB仿真和分析。 拟 达 到 的 要 求 或 技 术 指 标

摘 要

本文主要研究了利用AT89S52单片机控制PWM信号从而实现对直流电机转速进行控制的方法。文章介绍了AT89S52的详细参数,并对PWM信号的原理、产生方法、以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了阐述。设计分为两个部分,硬件部分和软件部分。对于硬件部分首先从总体上做了设计,也就是以AT89S52为中心来组成硬件部分,其辅助部分包括了显示电路、测量电路、键盘电路;对于软件部分则选择了使用模块化的设计思路,根据本设计的要求以及它要实现的功能编写了属于每个模块部分的流程图。并且说明了软件的设计方式和思路。此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。在软件方面,文章中详细介绍了PID运算程序,初始化程序等的编写思路和具体的程序实现。本系统中使用了光电编码器对输出的转速进行了测量,并且作为反馈值输入到单片机进行PID运算,从而实现了对输出速度的控制。

关键词: PWM信号;IR2110;PID运算

ABSTRACT

This article mainly introduces the method to generate the PWM signal by using AT89S52 single-chip computer to control the speed of a D.C. motor. It also clarifies the principles of PWM and the way to adjust the duty cycle of PWM signal. The design is divided into two parts,hardware and software part.For the hardware part,the AT89S52 is the center form of the hardware part,the auxiliary part includes display circuit,measuring circuit,keyboard circuit;Software adopts modular design concept.write each modular flow chart.Discusses the design thought and method of software.In addition, IR2110 has been used as an actuating device of the power amplifier circuit which controls the speed of rotation of D.C. motor. What’s more, is used in this system to measure the speed of D.C. motor. In software, the article introduced the PID operation procedures, such as initial program and the writing of the thought and specific program realization .The result of the measurement is sent to A/D converter after passing the filtering circuit, and finally the feedback single is stored in the single-chip computer and participates in a PIDcalculation.

Key words: PWM signal;IR2110;PID calculation

目录

摘要 .............................................................. Ⅰ ABSTRACT .......................................................... Ⅱ 目录 .............................................................. Ⅲ 1 绪论 ............................................ 错误!未定义书签。

1.1直流电机的发展及设计背景 ................... 错误!未定义书签。 1.2直流电机调速原理 ........................... 错误!未定义书签。 1.3 系统方案与分析 ............................. 错误!未定义书签。 1.4总体硬件电路设计 ........................... 错误!未定义书签。 2 PWM脉宽调制原理 ................................. 错误!未定义书签。

2.1 PWM调速原理 ............................... 错误!未定义书签。 2.2 PWM 调速方法 ............................... 错误!未定义书签。 2.3 PWM 实现方式 ............................... 错误!未定义书签。 3硬件部分 ......................................... 错误!未定义书签。

3.1单片机的选型 ............................... 错误!未定义书签。 3.2驱动电路 ................................. 错误!未定义书签。

3.2.1 芯片IR2110性能及特点 ................ 错误!未定义书签。 3.2.2 IR2110的引脚图以及功能 ............... 错误!未定义书签。 3.2.3 元器件的选择比较、选型 .............. 错误!未定义书签。 3.3 H桥双极性主电路 .......................... 错误!未定义书签。 3.4检测回路 ................................... 错误!未定义书签。

3.4.1 光电编码器 ........................... 错误!未定义书签。 3.4.2 M/T法测速原理 ....................... 错误!未定义书签。 3.5 键盘及显示电路 ............................. 错误!未定义书签。

3.5.1键盘/显示芯片8279简介 ................ 错误!未定义书签。 3.5.2键盘设计 .............................. 错误!未定义书签。 3.5.3显示器设计 ............................ 错误!未定义书签。 3.6电源电路 ................................... 错误!未定义书签。 4系统软件设计 ..................................... 错误!未定义书签。

4.1 PWM实现方式 .............................. 错误!未定义书签。

4.1.1 定时器/计数器 ........................ 错误!未定义书签。 4.1.2 PWM产生程序 ......................... 错误!未定义书签。 4.2 系统程序设计 ............................... 错误!未定义书签。

4.2.1主程序及系统初始化模块 ................ 错误!未定义书签。 4.2.2 中断程序设计 ......................... 错误!未定义书签。 4.2.3 中断子程序模块 ....................... 错误!未定义书签。 4.3键盘/显示模块设计 .......................... 错误!未定义书签。 4.4数字PID控制器 ............................. 错误!未定义书签。

4.4.1 PID控制器原理 ....................... 错误!未定义书签。 4.4.2 数字PID控制器流程图 ................. 错误!未定义书签。

5系统的MATLAB仿真 ................................ 错误!未定义书签。

5.1 系统的建模与参数设置 ....................... 错误!未定义书签。 5.2电机Matlab仿真 ............................ 错误!未定义书签。 结 束 语 .......................................... 错误!未定义书签。 参考文献 .......................................................... 35 致 谢 ............................................................ 36 附 录 .......................................... 错误!未定义书签。7

1 绪论

1.1直流电机的发展及设计背景

直流电机问世已有一百四十多年的历史。在设计和制造技术上有很大进步, 新材料、新技术的应用以及整流电源的普及, 促进了一般工业用直流电机的不断扩大, 品种的日益繁多。从小至数瓦, 大到万余千瓦, 广泛地用于冶金、矿山、煤炭、起重运输、机床制造、纺织印染等各个部门中, 特别是近几年电子计算技术广泛应用在直流电机设计制造中。从直流电动机的演变历史, 也可以纵观直流电动机的发展历史和动向、从四十年代后期到五十年代的前期, 直流电动机的电源主要是采用M-G电动发电机组,六十年代初, 电动发电机组电源已被水银整流器逐渐代替, 到六十年代后期, 由于可控硅整流装置的出现, 并得到迅速发展, 可控硅整流电源已占统治地位。由于直流电源供电方式的不断更新换代, 特别是在最近的十几年期问, 进一步促使了直流电动机的单机功率、转速不断提高, 目前朝着高速、大功率方向发展。另外, 由于绝缘技术和分析技术的进步, 直流电动机已迅速向小型轻量, 低惯量方面发展。 时代在进步,各种各样的深入研究和技术也得到不断地发展和进步,理所当然,许许多多的科研成果和更多非常好的性能和品质直流电机产品得以出现。也就是在这个时候,1985年,一些具有创新意识的好公司像美国的Ingersol铣床公司利用自身的优势生产出了HVM600高速加工中心,它的优势在于进给速度最大值可达76.2m/min,这是其他产品很难超越的,因为这其中使用了永磁同步直线电机。随着时间的推移,直线电机速度的最大值不断变化,但时间定格在1997年时,直线电机速度的最大值已经能够达到150~200 m/min,能够做到这一点是20多家在汉诺威12.EMO展览会上展出自己家公司生产研发的直线电机传动装置,其中做的比较突出的是法国Renault automation公司的加工中心和德国Trumpf公司的激光机床。由于现代技术不断发展使得控制技术、冷却技术以及许多的新型磁性材料不断地被研制出来,从这些最被看好有未来的产品中我们能够得出,直线电机正在广泛的被应用于高速度机床的进给机构中。如今,直流调速受到了很大的冲击,原因在于变频技术的横空出世,使得交流调速的优势得以展现,但这并不影响一个非常重要的位置属于直流调速系统,原因在于从全局来看的话,考虑到我们国家在这方面的一些实际情况,另外还出现了直流调速系统的全数字化,使得可靠性及精度在直流调速系统得到了很大的提高。

稳速对于直流调速系统转速控制十分重要,因为这是个最难实现的指标,相对于调速、加速或减速这两方面来讲,稳速的指标在于要求以一个稳定的转速运动,转速的波动要控制在很小的范围内,要有一定能够应对不同的干扰的能力,工业上,能够很好地实现调速、加速或减速这两方面的功能,但是对于稳速精度的功能的实现还是

有一定的困难。

电机在各行各业发挥着重要的作用,而电机转速是电机重要的性能指标之一,因而测量电机的转速和电机的调速,使它满足人们的各种需要,更显得重要,而且随着科技的发展,PWM调速成为电机调速的新方式。

随着技术的高速进步,越来越多的行业开始采用控制系统的自动化,现代化生产变得越来越重要的是主流开始变为电气传动采用直流驱动控制。直流电动机之所以能在传动领域统治地位中占有重要的一席之地,原因在于它不仅控制性能好,调节方法简单,而且能够大范围平滑调速,转速调节非常灵活。现在社会生产中,只要是工厂自动化设备,不管是机器人还是数控机床都在广泛应用直流电动机。稍加思索我们就会知道,随着社会生产规模的继续加大,直流电机各方面的性能和直流电机的需求量都会需要提出一些新的要求,那就是更好的性能,更大规模的需求量。因此,对直流电机控制系统进行高可靠性的,高性能的研究工作对现实生活具有非常重要的意义。

1.2直流电机调速原理

直流电机电路模型如图1-1 所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。直流电机模型见图1-1。

图1-1 直流电动机电路模型

不同励磁方式的直流电动机机械特性曲线有所不同。但是对直流电动机的转速有以下公式:

Ua?IaRa n? (1-1)

Ce?式 Ua---电枢供电电压(V) Ia-------电枢电流(A)

?-------励磁磁通(Wb) R--电枢回路总电阻(Ω) Ce----电势系数,Ce?体数。

直流电动机转速的控制方法可分为两类:励磁控制法与电枢电压控制法。励磁控制法控制磁通,容易因磁场饱和而受到影响。所以常用的控制方法是改变电枢端电压调速的电枢电压控法。其中脉宽调制(PWM)就是保持频率不变,通过控制占空比来改变“占空比”的百分比,从而改变电枢电压的大小,实现对电动机转速的控制。

pN,p为电磁对数,a为电枢并联支路数,N为导60a1.3 系统方案与分析

本文主要研究了利用AT89S52单片机,通过PWM方式来改变电压的占空比实现直流电机速度的控制。文章中采用了通过编程实现PWM信号的发生,然后通过IR2110来驱动电机。利用光电编码器测得电机速度,把电压信号反馈给单片机,在内部进行PID运算,输出控制量完成闭环控制,实现电机的调速控制。

单片机直流电机调速简介:单片机直流调速系统可实现对直流电动机的平滑调速。PWM是通过控制固定电压的直流电源开关频率,改变电枢两端电压的大小,从而使电压变为要求的一种控制方法。在调整系统中,PWM的作用表现为控制电动机的转速。控制过程为在固定频率的前提下,即保持周期不变的情况下,根据设计要求来接通和断开电源,通过改变“接通”和“断开”时间的长短。从而使输出的平均电压发生变化,也就是因为改变了电枢电压的“占空比”,从而实现了控制平均电压的大小。因此,“开关驱动装置”也是PWM一个别称。本系统以AT89S52单片机为核心,通过单片机控制,C语言编程实现对直流电机的平滑调速。

本系统以单片机系统为依托,根据PWM调速的基本原理,以直流电机电枢上电压的占空比来改变平均电压的大小,从而控制电动机的转速为依据,实现对直流电动机的平滑调速,并通过单片机控制速度的变化。本文所研究的直流电机调速系统主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到控制器自动对电机速度的有效控制。

1.4总体硬件电路设计

系统总体设计框图

PWM AT89S52单片机(速度的测量 计算、输入设定及系统控制) 驱动电路 LED显示 直流电机 键盘控制

图1-2 直流电机PWM调速系统设计方框图

转速检测

2 PWM脉宽调制原理

2.1 PWM调速原理

PWM脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)的技术。下式是占空比计算公式:

t1 D? (2-1)

T 式中t1表示一个周期内开关管导通的时间,T表示一个周期的时间。

占空比D表示了在一个周期里,开关管导通的时间与周期的比值,变化范围为

0?D?1。由上式可知,当电源电压不变的情况下,电枢的端电压的平均值为VD?Vmax?D,因此占空比如果变化的话就可以改变端电压的平均值,从而达到调

速的目的,这就是PWM调速原理。如图所示:

图2-1 PWM信号的占空比

根据上图,假如是一直接通电源的话,电机的转速为最大,设为Vmax。现在我们

可以通过改变占空比来获得不同的转速,因为VD?Vmax?D。所以取不同的占空比

就能得到不同的转速,即通过占空比来达到调速的目的。

2.2 PWM 调速方法

调速原理如图2-1所示。通过控制脉冲占空比来改变电机的电枢电压。通常有3种方法改变占空比:

(1)定宽调频法:就是使t1的宽度保持不变,改变t2的宽度,此时周期T(即频率)也发生了变化,也就是所谓的宽度的大小不变,调整频率的大小;

(2)调宽调频法:就是使t2的宽度保持不变,改变t1的宽度,此时的周期T(即频率)也发生了变化,也就是所谓的调整宽度的大小和调整频率的大小;

(3)定频调宽法:就是使T(即频率)的宽度保持不变,改变t1的宽度,此时t2的宽度也会发生变化,也就是所谓的保持频率不变,调整宽度的大小。

从以上三种方法的分析中,选择哪种方法将影响系统的性能,一二种方法比较类似,都是通过改变周期(即频率)的大小来控制占空比,但这样会出现一个问题,一旦系统的固有频率和选择的控制频率比较靠近时,就会引起不必要的振荡,一般很少采用,所以本系统用的是第三种方法。因此,只要控制好脉冲的通电时间,就可以很容易实现控制转速。

2.3 PWM 实现方式

方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。

方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。故采用方案一。

本设计采用单闭环系统,之所以会选择闭环还没采用开环,原因在于闭环相对于开环具有一些比较突出的一些优点,闭环的主要特点在于存在反馈控制,反馈控制的作用表现为如果被控制量偏离给定值,这样的偏差就会被反馈控制通过自己的修正作用去消除。从这一角度看,它具有抑制干扰的能力,对元件特性变化不敏感,并能改善系统的响应特性。由于闭环系统的这些优点因此选用闭环系统。

如图2-2,通过单片机控制器产生PWM矩形波,PWM矩形波经过驱动电路的放大对直流电机进行PWM控制,由速度传感器对电机进行测速,并将测得的速度反馈到输入端即让反馈信号与给定量进行比较。从而达到对直流电机的较为精确的控制。

给定量 + + r PWM矩形波 被控量 单片机 _ 控制器 速度反馈 驱动电路 直流电机 y 光电编码器

图2-2直流电机PWM调速系统原理图

3硬件部分

3.1单片机的选型

综合各方面考虑本次设计采用低功耗、高性能CMOS8位微控制器AT89S52。它具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。 AT89S52主要性能:

1、与MCS-51单片机产品兼容

2、8K字节在系统可编程Flash 存储器 3、1000次擦写周期 4、全静态操作:0Hz-33MHz 5、三级加密程序存储器 6、32个可编程I/O口线 7、三个16位定时器/计数器 8、8个中断源

9、全双工UART串行通道 10、低功耗空闲和掉电模式 11、掉电后中断可唤醒 12、看门狗定时器 13、双数据指针 14、掉电标识符

AT89S52引脚图

图3-1 单片机引脚图

AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。

AT89S52内部包括了3个16位可编程定时器/计数器及看门狗定时器。16个触发

16器构成了定时器/计数器的16位,因此可以算出2?1为它的最大计数模值。当定时

器还是当计数器用,或者当计数器用时它的计数范围,或者当定时器用时它的定时范围,都可以通过它们的工作方式指令来设置,这就是通常所说的可编程。这种可编程是通过TMOD控制器来完成的。

3.2驱动电路

功率放大驱动芯片有多种,其中较常用的芯片有IR2110和EXB841,但由于IR2110具有双通道驱动特性,且电路简单,使用方便,价格相对EXB841便宜,具有较高的性价比,且对于直流电机调速使用起来更加简便,因此该驱动电路采用了IR2110集成芯片,使得该集成电路具有较强的驱动能力和保护功能。 3.2.1 芯片IR2110性能及特点

IR2110是美国国际整流器公司(International Rectifier Company )于1990年前后推出的,它采用了两种技术,分别是无门锁CMOS技术和高压集成电路,它相当于是IGBT和大功率MOSFET的专用驱动集成电路,正是因为具有这种优势,他被广泛应用于

马达调速、电源变换等功率驱动领域。这个电路芯片的特点是成本低,偏值电压高(< 600V),集成度高(可驱动同一桥臂两路) ,体积小(DIP14 ),响应快( ton/tof= 120/94 ns),而且驱动能力强, 内设欠压封锁,易于调试,除此之外,它还拥有外部保护封锁端口。为了使得驱动电源路数目较其他IC驱动大大减小,它的上管驱动采用外部自举电容上电。只需一路10一20V电源,2片IR2110驱动2个桥臂就能应对4管构成的全桥电路,这样做的优点很多,提高了系统的可靠性,降低了产品成本,大大减小了控制变压器的体积和电源数目。 3.2.2 IR2110的引脚图以及功能

NCVDDHINSDLINVSSNCHOUBUsNcVccCOMLO

图3-2 IR2110管脚图

IR2110使用了两种工艺,分别是闩锁抗干扰CMOS工艺和HVIC,不管是高端还是低端,他们的输出通道都是独立的;但是与标准的CMOS输出比较起来,它的逻辑输入是兼容的;并且自举电路用于浮置电源,500V是它工作电压可以达到的最大值,du/dt=±50V/ns,当条件为小于等于15V时,只有1.6mW是它的静态功耗;10~20V的电压范围为输出的栅极驱动电压,5~15V的电压范围就是它的逻辑电源电压,存在电压偏移的是逻辑电源,-5V~+5V就是它的电压偏移范围。CMOS施密特触发被应用于IR2110输入,滞后欠压锁定存在于两路。正是因为采用了推挽式驱动所以使得大于等于2A成为它的输出峰值电流,如果1000pF就是它的负载时,那么25ns就是它的开关时间。120ns为两路匹配传输导通延时,94ns为关断延时。可以承受反向电流的是IR2110的脚10,它最大能够承受2A的反向电流。

PWM1PWM2PWM1PWM2IR2110SDLINHINCOMLOVsHOVbR10C4IR2110VssVssLINSDCOMVbHOVsLOC5HINVD10VD11R9R11R12Ug2Ug1Ug3Ug4

图3-3 IGBT驱动电路

3.2.3 元器件的选择比较、选型

本设计采用IGBT,IGBT作为大功率的电路驱动器件,具有以下优点: (1)IGBT在正常工作时,导通电阻较低,增大了器件的电流容量。 (2)IGBT的输出电流和跨导都大于相同尺寸的功率MOSFET。

(3)较宽的低掺杂漂移区(n-区)能够承受很高的电压,因而可以实现高耐压的器件。

(4)IGBT利用栅极可以关断很大的漏极电流。

(5)与MOSFET一样,IGBT具有很大的输入电阻和较小的输入电容,则驱动功率低,开关速度高。虽然当IGBT关断(栅极电压降为0)时,IGBT的漏极电流也就相应地不能马上关断,即漏极电流波形有一个较长时间的拖尾——关断时间较长(10~50ms),所以IGBT的工作频率较低。但这本设计中IGBT仍然是本设计驱动的最理想器件。

IGBT型号选择:(1)IGBT承受的正反向峰值电压:

Uirm?2U?1.414?220V?309.32V (3-1)

考虑到2-2.5倍的安全系数,可选IGBT的电压为900V。

(2)IGBT导通时承受的峰值电流:

Iirm?2I?1.414?4.4?6.16A (3-2) 额定电电压按220V供电电压、额定功率10kVA容量算。在计算出(或测出)最大电压后,再留有20%~30%的裕量,选用的IGBT型号为三菱公司的CT60AM-18F,其耐压值为900V,最大峰值电流30A,完全满足设计要求。

3.3 H桥双极性主电路

从上面的原理可以看出,产生高压侧门极驱动电压的前提是低压侧必须有开关的

动作,在高压侧截止期间低压侧必须导通,才能够给自举电容提供充电的通路。因此在这个电路中,VT1、VT4或者VT2、VT3是不可能持续、不间断的导通的。我们可以采取双PWM信号来控制直流电机的正转以及它的速度。

将IC1的HIN端与IC2的LIN端相连,而把IC1的LIN端与IC2的HIN端相连,这样就使得两片芯片所输出的信号恰好相反。

在HIN为高电平期间,VT1、VT4导通,在直流电机上加正向的工作电压。其具体的操作步骤如下:

电源经VT1至电动机的正极经过整个直流电机后再通过VT4到达零电位,完成整个的回路。此时直流电机正转。

在HIN为低电平期间,LIN端输入高电平,VT2、VT3导通,在直流电机上加反向工作电压。其具体的操作步骤如下:

电源经VT3至电动机的负极经过整个直流电机后再通过VT2到达零电位,完成整个的回路。此时,直流电机反转。

因此电枢上的工作电压不是单极性的矩形脉冲波形,而是双极性矩形脉冲波形,电动机的转速和转向是由矩形脉冲电压的平均值来决定的,原因在于存在着机械惯性的缘故。

设PWM波的周期为T,HIN为高电平的时间为t1,这里忽略死区时间,那么LIN为高电平的时间就为T?t1。HIN信号的占空比为D?t1/T。设电源电压为V,那么电

枢电压的平均值为: Vout?[t1?(T?t1)]V/T?(2t1?T)V/T?(2D?1)V (3-3)

定义负载电压系数为λ,λ?Vout/V 那么λ?2D?1;当T为常数时,改变HIN为高电平的时间t1,也就改变了占空比D,从而达到了改变Vout的目的。D在0-1之间变化,因此λ在±1之间变化。如果我们联系改变λ,那么便可以实现电机正向的无级调速。

当λ?0.5时,Vout?0,此时电机的转速为0; 当0.5?λ?1时,Vout为正,电机正转; 当λ?1时,Vout?V,电机正转全速运行。

UsVT1Ug1VD1VD3VT3Ug3MGMOTOR DCVT2Ug2VD2VD4VT4Ug4

图3-4 桥式可逆PWM变换器电路

双极式控制可逆PWM变换器的四个驱动电压波形如图3-5所示。

Ug1Ug4tOtonUg3TUg2tOUABUstOtonT-Usidid1id2tO

图3-5 PWM变换器的驱动电压波形

他们的关系是:Ug1?Ug4??Ug2??Ug3。在一个开关周期内,当0?t?tonVT4饱和导通而VT3、VT2截止,时,晶体管VT1、这时UAB?Us。当ton?t?T时,

VT1、VT4截止,但VT3、VT2时UAB不能立即导通,电枢电流id经VD2、VD3续流,这

??Us。UAB在一个周期内正负相间,这是双极式PWM变换器的特征,其电

压、电流波形如图2所示。电动机的正反转体现在驱动电压正、负脉冲的宽窄上。当

T正脉冲较宽时,ton?,则UAB的平均值为正,电动机正转,当正脉冲较窄时,则

2反转;如果正负脉冲相等,ton?T,平均输出电压为零,则电动机停止。 2 双极式控制可逆PWM变换器的输出平均电压为

Ud?tonT?ton2tUs??(on?1)Us (3-4) TTT?tonU,电压系数γ?d TUs如果定义占空比ρ则在双极式可逆变换器中

γ?2ρ?1

1调速时,ρ的可调范围为0~1相应的γ??1~?1。当ρ?时,γ为正,电动

211ρ?ρ?机正转;当时,γ为负,电动机反转;当时,γ?0,电动机停止。但

22电动机停止时电枢电压是正负脉宽相等的交变脉冲电压,它并不等于零,从这里也可以看出电流也是交变的。因为存在正负脉宽相等条件,对交变电流的平均值而言,它的值也等于零,因而平均转矩是不产生,双极式控制有个很大的缺点就是它会徒然增大电动机的损耗。虽然这个缺点无法避免,但是它的好处还是很明显的,那就是高频微震电流存在于电动机停止时,正是因为这一点,正、反向时静摩擦死区被有效的消除了,“动力润滑”的作用因此而得名。

双极式控制的桥式可逆PWM变换器有以下优点: 1)可使电动机在四象限运行。

2)低速平稳性好,每个开关器件的驱动脉冲仍较宽,有利于保证器件的可靠导通。

3)电流一定连续。

4)电动机停止时有微震电流,能消除静摩擦死区。

3.4检测回路

检测回路利用光电编码器将转速直接转换成数字信号送入单片机进行处理。

3.4.1 光电编码器

编码器是一种转换装置,它能把直线位移或角位移转换成电信号。前者成为码尺,后者称码盘。编码器如果按照读出方式来分的话可以分为非接触式和接触式两种。非接触式的接受敏感元件是磁敏元件或光敏元件,光敏元件时常常使用以不透光区和透光区来表示代码的状态是“0”还是“1”;接触式采用电刷输出,一电刷接触绝缘区或导电区来表示代码的状态是“0”还是“1”。

同理,编码器如果按照工作原理来分的话可分为绝对式和增量式两种。绝对式编码器的特点为一个确定的数字码对应每一个位置,因此它的示值与测量的中间过程无关,而只与测量的起始和终止位置有关。增量式编码器与绝对式编码器原理一点也不相同,它的原理是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,然后用脉冲的个数来表示位移的大小。

通过比较增量式和绝对式的特点及优缺点,我们可以确定本设计可以采用增量式光电编码器来采样转速信号,如图3-6所示。增量式编码器最大的优势是专门用来测量转动角位移的累计量。下面我们这里以三相编码器为例来介绍增量式编码器的结构及其工作原理。

图3-6 编码器原理图

圆盘上有规则地刻有不透光和透光的线条是增量式光电编码器非常显著地特点,在圆盘两侧分别安放光敏元件和发光元件。一旦当圆盘随电机旋转时,光敏元件输出的脉冲是这样形成的,光敏元件接受的光增量会随透光线条同步变化,它输出的波形经过整形后便形成了脉冲。码盘上有向标志,每转一圈z相输出一个脉冲。码盘提供相位相差90°的两路脉冲信号,并以此来判断旋转方向。复位计数器采用编码盘输出的z相脉冲,每转一圈复位一次计数器。将A、B两相脉冲中任何一相输入计数器中,均可使计数器进行计数。

用D触发器的输出信号Q来判断编码盘的旋转方向。D触发器的时钟端和D输入端分别接整形后的A、B两相输出信号,采用A相脉冲的上升沿来触发D触发器的CLK端。电机的转动方向是这样确定的,由于A、B两相的脉冲相位相差90°,当电机反转时,A

相脉冲超前B相脉冲90°,则D触发器总是在B脉冲为低电平时触发,这时Q输出端输出为低电平。当电机正转时,B相脉冲超前A相脉冲90°,触发器总是在B脉冲为高电平时触发,这时D触发器的输出端Q输出为高电平。

为了在较宽的速度范围内获得快速和高精度的数字测速,选用转速传感器时本设计采用每转1024线的光电编码器,它产生的测速脉冲频率与电机转速有固定的比列关系,微机对该频率信号采用M/T法测速处理。之所以要保证转速检测的快速性和精度,是因为转速检测的快速性和精度对电机调速系统的静、动态性能影响极大。 3.4.2 M/T法测速原理

M/T法测速原理是在对时钟脉冲的个数m2进行计数的同时对光电编码器输出的测速脉冲数m1也进行计数。原理如图3-7:

图3-7 M/T法测速原理

测速时间Td由测速脉冲来同步,即由图3-7电路实现Td等于整m1个脉冲周期。设从图3-7上a点开始,计数器分别对m1和m2计数,到达b点,预计的测速时间Tc到,微机发出停机指令,但因为Tc不一定恰好等于整数个编码输出脉冲周期,所以计数器仍对时钟脉冲计数,直到c点时,可以利用下一个转速脉冲上升沿(即c点)触发数字测速硬件电路使计数器停止计数。这样,m2代表了m1个测速脉冲周期的时间。设时钟脉冲频率为

f0,光电编码器每转发出p个脉冲,则电机转速的计算公式为:

60?m1?f0 n? (3-5)

z?m2 由于M/T法的计数值m1和m2都随着转速的变化而变化,高速时,相当于M法测速,最低速时,m1?1,自动进入T法测速。因此,M/T法测速能适用的转速范围比

较大,是目前广泛应用的一种测速方法。希望在低速获得高精度测速值,于是利用光码盘A,B两相输出在相位上互差90°的二路脉冲经异或门二倍频再送入m1的计数器。这时,转速计算公式修改为:

A?K(1?3.5 键盘及显示电路

TTD?) (3-6) TIT键盘在单片机应用系统中能实现向单片机输入数据、传诵命令等功能,是人工干预单片机的主要手段.单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。键盘的工作方式的选取应根据实际应用系统中CPU工作的忙、闲情况而定。其原则是既要保证能及时响应按键操作,又要不过多占用CPU的工作时间。 3.5.1键盘/显示芯片8279简介

键盘/显示模块的核心控制器采用Intel公司的8279。如图12所示。它是一种专用智能芯片,能够实现段式数码显示和键盘输入控制。正是因为它具有这两种功能,它能减轻CPU的负担,并且可以大大简化单片机控制系统的软硬件设计,所以本设计使用这个芯片。下面是它功能的一些简单介绍:

(1)常规情况下,能同时管理64个物理键和16个八段数码管;

(2)能按FIFO(先进先出)方式实现8个键值的缓冲; (3)能自动实现按键的“去抖”和重键处理;

(4)能以中断或查询两种方式工作; (5)与微处理器接口简单。 其引脚定义如下:

DB0~DB7:双向数据总线 RL0~RL7: 检测输入线 SL0~SL3: 矩阵扫描线 IRQ:中断请求信号 /RD、/WR:读写选通信号 /CS:片选信号 /BD: 显示消隐信号 CLK:时钟信号 RESET:复位信号

SHIFT: 扩展键位的换档信号,带上拉电阻

CTRL/STB: 控制键输入/选通信号输入,带上拉电阻

A0:命令/状态或数据识别信号A=1,为写命令或读状态; A=0,为数据

3.5.2键盘设计

采用4*4式键盘,分数字部分和控制部分,如图下表所示。数字部分用来输入给定转速,控制部分用来控制电机的运行。

0 4 8 测速 1 5 9 2 6 取消

图3-8显示器图

3 7 确认 停车 输入给定转速时应注意的几个问题:(1)转速不足四位时,在前面加拨0凑够四位;(2)转速输入错误时,按取消键,显示器清空,重新输入值;(3)转速输入完成后,按确认键。

3.5.3显示器设计

采用共阴极的发光二极管构成可以显示4位十进制的显示器,运行中显示当前的实际转速值。如上图示。8279与单片机、键盘和显示器的外围总接线如图3-9示。

图 3-9显示器/键盘驱动电路

由于8279芯片有自动分时扫描功能,所以它可与CPU同时工作,减轻CPU的负担,而且接口方便,显示稳定,程序简单,可靠性高。

3.6电源电路

电源电路采用78系列芯片产生+5V、+15V。电路图如图3-10:

图3-10 78系列的电源电路

78XX,XX就代表它所输出的电压值,能降低电压4-5V,三端稳压集成电路电子产

品非常常见,用的比较多的有负电压输出的79××系列和正电压输出的78××系列。从名字上可见,稳压用的三端IC集成电路都是统一的标准,引脚输出只有三条,分别是接地端、输出端和输入端。

因为它具有两大比较突出的优势,首先电路内部有过流、过热及调整管的保护电路,其次它所需的外围元件极少,所以采用78/79系列三端稳压IC来组成稳压电源。三端集成稳压电路的输出电压是由该系列集成稳压IC型号中的78或79后面的数字表示的,如7909表示输出电压为负9V,7806表示输出电压为正6V。

另外,集成稳压IC型号中的78或79后面有时还会有一个L或M,如79L24或78M12,字母有它固有的含义,它是用来区别封装形式和输出电流等,其中78M系列最大输出电流为1A,78系列最大输出电流为1.5A,78L系列的最大输出电流为100mA。当然,对于实际应用还有一些事项要稍加注意,比如针对大功率的条件下,必须在三端集成稳压电路上安装足够大的散热器,小功率的话就不需考虑这个问题了。另外,还会出现稳压管温度过高的情况,这时稳压管的稳压性能将变差,此时稳压管损坏也很有可能出现。

4系统软件设计

4.1 PWM实现方式

调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便。

4.1.1 定时器/计数器

单片机内部的定时器是PWM信号软件实现的核心,就定时器而言,选用不同的单片机,它定时器的特点一般都会不同,就算是相同型号的单片机,如果它选择的定时器工作方式不同,或者选用的晶振不同,那么它定时器的定时初值与定时时间的关系也会不相同。那么,定时器的定时初值与定时时间的关系是第一要确定下来的东西。现在假如定时器/计数器为n位,单片机的时钟频率为值的关系为:

f,那么定时时间与定时器初

t1?(2n?Tw)?Nf?106 (4-1)

式中,N---个机器周期的时钟数;

Tw---定时器定时初值。

一般情况下,机型不同,N的值就会不同。在实际的设计过程中,常常是由已选择的具体的机型,然后给出它相应的值。而在本次设计中我们选用的是晶体振荡器的频率为12MZ的单片机,那么它的N的定时初值Tw来改变占空比就行了。 4.1.2 PWM产生程序

#include

#define uchar unsigned char uchar num;

sbit PWM=P1^0;

void init() {

TMOD=0x01;

TH0=(65536-500)/256; TL0=(65536-500)%6; EA=1; ET0=1; TR0=1; }

void T0_timer() interrupt 1 {

TH0=(65536-500)/256; TL0=(65536-500)%6; num++; }

void main() {

init(); while(1) {

if(num==4) {

PWM=~PWM; num=0; } } }

?6。综上所述,我们知道要想控制电机的转

速,我们需要控制占空比,而要达到控制占空比的目的,我们仅仅只需通过设定不同

4.2 系统程序设计

4.2.1主程序及系统初始化模块

主程序——完成系统初始化后,实现刷新显示、键盘处理、与上位计算机和其他外设通信等功能,总的来说,它主要完成一些实时性要求不高的功能,如图4-1。

初始化子程序——主要是完成一些系统运行参数和变量的初始化和硬件器件工作方式的设定等工作,如图4-2。

N 系统初始化 设定定时器、PWM、 数字测速工作方式 有键按下吗? Y 键处理 设定I/O、通信接口及显示、键盘工作方式 主程序 系统初始化

刷新显示 参数及变量初始化 数据通信 返回 图4-1 主程序流程图 图4-2 初始化子程序

主程序主要要完成的任务是三个方面:变量的初始化、内部定时/计数器T0、T1测速和键盘/显示芯片8279。

此程序共有2个中断源:外部中断0,用于电机故障处理;外部中断1,用于键盘输入处理。

4.2.2 中断程序设计 外部中断0模块设计

外部中断0是故障中断,优先级最高。当电机出现问题时向CPU申请中断。响应中断后封锁PWM输出,使电机停转。 外部中断1模块设计

外部中断1是键盘输入中断,高优先级。当键盘有输入值时,8279向CPU申请中断。读取键值,按其实际功能进行操作。 内部定时器T0溢出中断设计

转速测定为M/T式编码盘测速,要通过测取给定时间内的编码盘输出的脉冲数。T0用来定时,T1用来计数,T0和T1均工作于方式1。

T0定时50ms,单片机的时钟频率为12MHz,机器周期为1us, 4.2.3 中断子程序模块

中断服务子程序完成实时性强的功能,如故障保护、PWM生成、状态检测和数字PID调节等,中断服务子程序由相应的中断源提出申请,CPU实时响应。

图4-3 转速调节中断子程序框图 图4-4故障保护中断子程序框图

当故障保护引脚的电平发生跳变时申请故障保护中断,而转速调节采用定时中

断。两种中断服务中,故障保护中断优先级别最高,转速调节中断级别次之。

4.3键盘/显示模块设计

键盘/显示模块核心控制器件是8279,由软件设置为8字符显示,左端送入,编码扫描键盘,双键互锁,内部时钟频率设置为100KHz。按键操作由终端导入,静态显示方式。

分解速度值到显示缓冲区 是 选通个位? 否 是 选通个位? 否 是 选通个位? 否 是 选通个位? 否 否 显示完毕? 是 返回

显示个位 延时 显示十位 延时 显示百位 延时 显示千位 延时 图4-5 显示子程序

否 提速N转 是 停止记数 读计数器值 求出此时电机速度值 重装记数初值 开始记数 返回

图4-6测速子程序

4.4数字PID控制器

4.4.1 PID控制器原理

在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。 比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。 积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增

大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。 微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。 4.4.2 数字PID控制器流程图

数字PID控制算法可以分为位置式PID和增量式PID控制算法。 将模拟的PID算式

?1tde?t??u?t??Kp?e?t???e?t?dt?TD?u0 (4-2) ?TI0dt??用求和的方式代替积分;用增量的方式代替微分.则可作如下近似 t?kt (k=0, 1 ,2,……..)

?e?t?dt?t?e?jT??T?ej (4-3)

0j?0j?0tkkde?t?e?kT??e??k?1?T?ek?ek?1??dtTT

进行离散处理有 u?K?e?Tkp?k?TI?ej?j?0k?TD?ek?ek-1???u0 (4-4) T? 这便是增量式PID算式,由于它的每次输出均与过去有关,计算时要对Ek进行累加,故工作量大。因此一般不用位置式PID。对三式稍作推导即得到下式。

TTD? (4-5) Δuk?Aek?Bek-1?Cek-2式中 A?K???1?????TIT?TD? C?KTD (4-6)

B??K?P?1?2??T?T 由式看出,如果计算机采用恒定的采样周期T,一旦确定了ABC只要使用前三次

测量值的偏差,就可以由式求出控制增量。如图4-7所示.

计算NK存入46H—48H 开始开 始 计算ANK存入4CH—4EH

返 回 图4-7 PID流程图

降速N转 ΔNK>0 否,取ΔNK整数N 提速N转 是,取ΔNK整数N 计算ΔNK存入4CH—4EH 更新NK-1,NK-2 计算CNK-2存入4FH—51H 计算ANK+BNK-1存入4CH—4EH 计算BNK-1存入4FH—51H

给出PID运算参数TI、TD、KP

计算实际转速n=60M/ZTc Y 累加20次的计数值 是否计够20次? N 存放计数器T1中的值 保护现场 重新设定定时器/计数器的 初值并启动 调用转速调节器运算 保存运算结果 将实际转速转换成十进制, 送入显示RAM显示 重新设定定时器/计数器的初值并启 返回中断 图4-8 调速软件系统框图

5系统的MATLAB仿真

本次系统仿真采用控制系统仿真软件MATLAB7.0,使用MATLAB对控制系统进行计算机仿真的主要方法有两种:一是以控制系统的传递函数为基础,使用MATLAB的Simulink工具箱对其进行计算机仿真研究;另外一种是面向控制系统电气原理结构图,使用Power System工具箱进行调速系统仿真的新方法。本次系统仿真采用前一种方法。

5.1 系统的建模与参数设置

结合本设计的特点,转速负反馈的闭环直流调速系统原理框图图,如图5-1

图5-1无静差直流闭环调速系统的框图

下面我们将分别给出闭环调速系统各环节的传递函数和闭环调速系统的传递函数。

1.直流电机的传递函数

额定励磁下他励直流电机的等效电路如图5-2所示:

图5-2直流电动机等效电路

规定正方向如图所示。假如主电路电流连续,则动态电压方程为: Ud0?RId?LdId?E dt E?Cen (5-1)

忽略粘性摩擦及弹性转矩,电动机轴上的动力学方程为:

GD2dn Te?TL?

375dt电磁转矩 T式中

e?CmId (5-2)

TL——包括电动机空载转矩在内的负载转矩(N.m)。

GD——电力拖动系统折算到电动机轴上的飞轮惯量(N.m)。

22 Cm——额定励磁下电动机的转矩系数(N.m/A),

30Cm?Ce,将上述微分方程式加以整理可得

π Ud0?E?R(Id?TLdId) dtTmdE Id?IdL? (5-3)

Rdt其中 TL?L/R—————电磁时间常数;

GD2R Tm?———电力拖动系统机电时间常数;

375CeCmIdL?TL/Cm————过载电流(A)。

在零初始条件下,将上面的等式两边进行拉式变换,得 电压与电流之间的传递函数:

Id(s)1/R (5-4) ?Ud0(s)?E(s)TLS?1E(s)R 电流与电动势间的传递函数: (5-5) ?Id(s)?IdL(s)TmS根据上面两式并考虑n?5-3所示:

E/Ce即可得到额定励磁下直流电动机得动态结构图如图

IdL(s) Ud0(s) + Id(s) 1/R TlS?1R TmSE(s) 1 Cen(s) -

图5-3 额定励磁下直流电动机得动态结构图

前面的转速负反馈单闭环调速系统总有静差是因为电压放大器为比例放大器,如果选用比例积分调节器(即PI调节器),PI调节器的输出由两个分量组成,一个是积分分量

KpUdt,它能随时间对输入信号的不断积累,一个是比例分量KU?linpin,当Uin不为零时,积分作用将不断作用下去,输出积累上升,直到限幅最大值,当突加Uin时,相当于放大倍数为Kp的比例调节器;一旦Uin?0,输出将保持在此时的数值

上,极大的开环放大倍数能够使系统基本无静差,而稳态时PI调节器的放大倍数是它本身的开环放大倍数。积分控制可以使系统在偏差电压为零时保持恒转速运行,实现无静差调速,因此,采用比例积分调节器的闭环调速系统是无静差调速系统。

5.2电机Matlab仿真

本次设计选用直流电动机的额定参数直流电动机的额定参数

PNCeRaJa?2.2kW,UN?220V,IN?10A,nN?1480r/min,Ks?30.电动势系数

V.选取电动机各参数分别为?0.136V/min/r.他励电压:Uf?220?1.5Ω,La?0.5H,Ka?0.015,Kb?0.015,f?0.2Nms,?0.03kg.m2.分别以电动机电枢电压Ua(t)和负载力矩Md(t)为输入变量,以电

动机的转动速度为输出变量,在MATLAB中建立电动机的数学模型。 在MATLAB命令窗口中输入:

>> Ra=1.5;La=0.5;Ka=0.1; >> Kb=0.1;f=0.2;Ja=0.03; >> G1=tf(Ka,[La Ra]); >> G2=tf(1,[Ja f]); >> dcm=ss(G2)*[G1,1]; >> dcm=feedback(dcm,Kb,1,1); >> dcm1=tf(dcm) 运行结果为:

Transfer function from input 1 to output: 10/s^2 + 14 s + 43

Transfer function from input 2 to output: 50 s + 200/s^2 + 14 s + 43

>> step(dcm(1));

Transfer function from input 1 to output:

10 --------------- s^2 + 11 s + 11

Transfer function from input 2 to output:

50 s + 50 --------------- s^2 + 11 s + 11 >> step(dcm(1));

得到电动机的传递函数:?(s)/u(s)?10/S2?11S?11 带PID调节器的单环无静差调速系统的静态结构图如图5-4所示。

IdR Un* + - Un △Un Ks + Ud - 1/Ce n(s) PID ? 图5-4 无静差调速系统的静态结构图

系统基于Matlab中Simulink的结构图

图5-5系统基于Matlab中Simulink的结构图

图5-6仿真波形图

5.3系统仿真结果分析

结 束 语

本文所述的直流电机闭环调速系统是以单片微机AT89S52为核心的,采用单片机对电机实行调整在实际应用中有非常多的方法,本设计使用PWM软件方法对电机实现的调速过程只需非常低的成本并且具有非常大的灵活性,它使单片机的效能得以最大化的发挥,相比于其他方法,如其他用硬件或者硬件与软件相结合的方法实现对电机进行控制调整的方法,使用PWM软件方法对电机实现调速的这种方法对于简易速度控制系统的实现提供了一种非常有效的途径。而在软件方面,采用PID算法来确定闭环控制的补偿量也是由数字电路组成的直流电机闭环调速系统所不能及的。从控制的理论出发,带PI调节器的单环无静差调速系统,理论上是无差调速系统,单闭环系统的直流电机调速系统性能还有待提高,应用的范围还是很有限的,用Matlab进行仿真从自控原理的角度出发判断该闭环系统是否稳定,这为参数的修改提供了理论依据。

参考文献

[1] 陈伯时.电力拖动自动控制系统—运动控制系统[M].北京:机械工业出版社,2011年

[2] 王兆安.电力电子技术[M]. 北京:机械工业出版社,2009年

[3]杨学昭,王东云..单片机原理、接口技术及应用(含C51)[M].西安:西安电子科技大学出版社,2009年

[4] 陈渝光.电气自动控制原理与系统[M]. 北京:机械工业出版社,2007年 [7] 童诗白.模拟电子技术基础[M]. 北京:高等教育出版社,2003年 [8] 康华光.电子技术基础数字部分[M]. 北京:高等教育出版社,2004年 [10] 王海英,袁丽英,吴勃.控制系统的MATLAB仿真与设计[M]. 北京: 高等教育出版社,2009年

[11] 胡寿松.自动控制原理简明教程第二版[M].北京:科学出版社,2008年 [12]陈国呈.PWM逆变技术及应用[M].北京:中国电力出版社,2007年

[13]马忠梅.单片机的C语言应用程序设计[M].北京:北京航天航空大学出版社,2007年

[14]刘昌华,易逵.8051单片机的C语言应用程序设计与实践[M]. 北京:国防工业出版社,2007年

致 谢

这次毕业设计,凝结了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。

首先,我要特别感谢梅杨老师对我的悉心指导,在毕业设计期间曲老师指导我、帮助我收集文献资料,理清设计思路,完善操作方法,并对我所做的设计提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,想要完成这个设计是难以想象的。因此,特别需要感谢梅杨老师给予的耐心细致的指导,在此,再一次向梅教师以及关心帮助我的教师同学表示最诚挚的谢意!

其次,学校在这方面也给我们提供了很大的支持和帮助,学校领导比较重视,每个设计小组配有专门的指导老师,帮助我们能顺利完成整个设计。对于学校和老师为我的毕业设计所提供的极大帮助和关心,在此我致以衷心的感谢!

最后,还要感谢同学四年来对我的关心与支持,感谢各位老师在学习期间对我的严格要求。同时也要感谢身边朋友的热心帮助,没有你们的关心与支持,我不可能这么快完成我的毕业设计!这几个月的岁月是我学生生涯中最有价值的一段时光,也将会成为我以后永远的美好的回忆,在这里有治学严谨而不失亲切的老师,也有互相帮助情同骨肉的同学,更有和谐、融洽的学习生活氛围,这里将是我永远向往的地方。借此论文之际,我想向所有人表达我的最诚挚的谢意,愿我们将来都越来越好。

附 录

附录三:源程序

//************************************************************************* ///直流电机的pwm控制程序

///功能:直流电机的速度控制,速度测试,速度显示。

///************************************************************************* #include ///包含头文件 #include

#define gw DBYTE[0X40] ///定义显示缓冲区 个位 #define sw DBYTE[0X41] //////////////////十位 #define bw DBYTE[0X42] //////////////////百位 #define qw DBYTE[0X43] //////////////////千位 #define unint unsigned int ///自定义变量 #define uchar unsigned char sbit in1=P3^0; ///控制位定义 sbit in2=P3^1; sbit ena=P3^7;

uchar code zm[12]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x73,0x71};///在程序存储区定义字型码表

uchar code wm[4]={0xfe,0xfd,0xfb,0xf7};///在程序存储区定义字位控制码表 uchar a=8; ///占空比控制字 uchar n=1; ///速度增减量一 uchar m=2; ///速度增减量二 unint speedbuf=0; ///速度值 uchar zc=0; unint ys=0; key(); ///子函数声明 display(); control(); delays(); speedcan();

///*************************************************************************************************************

///主函数

///*************************************************************************************************************

main() { gw=sw=bw=qw=0; P0=0xc0;

///显示初始化

P2=0; in1=0; ///电机控制的初始化 in2=0; ena=1; TMOD=0X15; ///定时器1为定时模式,使用方式2;定时器0为计数模式,使用方式2

TH1=0Xfa; ///装定时器初值 TL1=0X24; TH0=0; ///装计数器初值 TL0=0; EA=1; ///开总中断 ET0=1; ///允许定时器0中断 ET1=1; ///允许定时器1中断 TR0=1; ///开计数器 TR1=1; ///开定时器 while(1) ///无限循环 { key(); ///调用按键扫描程序 control(); ///调用电机控制程序 display(); ///调用显示程序 speedcan(); ///调用速度处理程序 } }

///************************************************************************* ///中断处理程序,实现输出方波占空比控制

///************************************************************************* timer_1() interrupt 3 using 1 ///定时器1中断,使用寄存器组1 { TR1=0; ///停止定时 zc++; ///中断次数加1 ys++; control(); speedcan(); TH1=0Xfa; ///重装定时初值 TL1=0X24; TR1=1; }

///************************************************************************* ///脉宽控制程序,实现PWM的输出

///************************************************************************* control() { if(zc==a) {

ena=0; } if(zc==15) { zc=0; ena=1; } }

///************************************************************************* ///显示子函数,显示当前电机的速度

///************************************************************************* display() { uchar i; gw=speedbuf; ///求速度个位值送各位显示缓冲 sw=(speedbuf/10); ///求速度十位值送十位显示缓冲 bw=(speedbuf/100); ///求速度百位值送百位显示缓冲 qw=speedbuf/1000; ///求速度千位值送千位显示缓冲 for(i=0;i<4;) ///循环选中数码管的每一位 { P2=wm[i]; if(i==0) ///显示个位 { P0=zm[gw]; delays(); } else if(i==1) ///显示十位 { P0=zm[sw]; delays(); } else if(i==2) ///显示百位 { P0=zm[bw]; delays(); } else if(i==3) ///显示千位 {

P0=zm[qw]; delays(); } i++; } }

///************************************************************************* ///读速度值子函数,从计数器0中读计数值,经过计算,求出当前速度值

///************************************************************************* speedcan() { if(ys==500) { TR0=0; ///停止计数 speedbuf=((TH0*256+TL0)*8)/3;///读计数器 ys=0; TH0=0; ///重装计数初值 TL0=0; TR0=1; ///开计数器 } }

///************************************************************************* ///延时子函数

///************************************************************************* delays() { uchar i; for(i=80;i>0;i--); }

///************************************************************************* ///键盘扫描子函数,实现电机的方向 速度的控制

///************************************************************************* key() { uchar i; P1=0xff; ///拉高P1口的电平 i=P1; ///读P1口 if(i==0xfe) ///第一个键按下 { delays(); ///延时去抖动 if(i==0xfe) ///再判断按键是否按下 { in1=0; ///电机顺时针转动 in2=1;

} }

if(i==0xfd) { delays();

///第二个键是否按下

///延时去抖动 if(i==0xfd)

in1=1;

in2=0; } }

if(i==0xfb) { delays(); if(i==0xfb) { a=a+n; if(a>=15) a=15; } }

if(i==0xf7) { delays(); if(i==0xf7) { if(a>3) a=a-n; else a=3; } }

if(i==0xef) { delays(); if(i==0xef) { a=a+m; if(a>=15) a=15; } }

if(i==0xdf) {

///再判断按键是否按下 ///电机逆时针转动

///第三个键是否按下

///速度加((慢速)

///速度减(慢速)

///速度加,(快速)

{

本文来源:https://www.bwwdw.com/article/vaep.html

Top