计算机控制系统课程设计直流电机测速调速系统
基于STM32的直流电机PID调速系统设计
《计算机控制技术课程设计》题目:基于STM32的直流电机PID调速学院:计算机与电子信息学院专业:电气工程及其自动化班级:电气12-5 学号: 12034320515 姓名:任课教师:完成时间: 2015.11.18——2015.12.30基于STM32的直流电机PID调速摘要电机转速控制在运动控制系统中占有至关重要的地位,本设计将电机转速控制作为研究对象;以PID为基本控制算法,STM32F103单片机为控制核心,产生受PID算法控制的PWM脉冲实现对直流电机转速的控制。
同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。
在系统中采320×240TFTLCD显示器作为显示部件,通过4个按键通过界面切换方式设置P、I、D、V四个参数和正反转控制,启动后可以通过显示部件了解电机当前的运行状态和系统的CPU温度。
该系统控制精度高,具有很强的抗干扰能力。
关键词:PID 直流电机反馈调节Based on the STM32 PID speed control of dc motorAbstractMotor speed control occupies a crucial position in the motion control system, the design of the motor speed control for the study; in the basic PID control algorithm, STM32F103 microcontroller core, by the PID control algorithm generates a PWM pulse to achieve DC speed control. At the same time the use of photoelectric sensors to convert the motor speed to pulse frequency feedback to the microcontroller to achieve closed-loop speed control, to speed static error adjustment purposes. Mining 320 ×240TFTLCD monitor as a display unit in the system, through four key settings P, I, D, V four parameters and reversing control through the interface switching mode, start to understand the current state of the motor and the system through the display unit CPU temperature. The system control and high precision, has a strong anti-jamming capability.Keywords: PID DC motor feedback regulation目录1. 绪论 (1)1.1研究背景与意义 (1)1.2本文主要研究方法 (1)2. 设计方案与论证 (2)2.1系统设计方案 (2)2.2控制器模块设计方案 (2)3. 系统硬件电路设计 (3)3.1整体电路设计 (3)3.1.1整体理论 (3)3.1.2整体简单结构图和资源分配图 (3)3.2最小单片机系统设计 (4)3.2.1STM32F103复位电路 (6)3.2.2电源电路 (6)3.3电机驱动电路设计 (7)3.4光电码盘编码器电路设计 (7)3.5显示电路设计 (8)3.6按键电路设计 (10)4. 系统软件设计 (10)4.1PID算法 (10)4.2PID参数整定方法 (11)4.3电机速度采集算法 (12)4.4程序流程图 (12)5. 系统调试 (13)5.1软件调试 (13)5.2系统测试与分析 (14)6. 总结与展望 (15)参考文献 (16)附录一部分程序源程序 (17)附录二系统界面实物图和PCB图 (20)1.绪论1.1研究背景与意义电动机在现代的工业中,是主要的驱动设备,尤其是直流电动机,由于它的平滑调速性和结构上的简单,使其成为许多电器,如洗衣机,电梯等的驱动。
直流电机调速方案设计
示,最终再由单片机输出 PWM 脉冲信号,通过测速电路把转速反馈给
器。引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放
CPU 并且通过 CPU 把转速显示在 LED 显示器上,从而到达想要设定的转
大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外
魏
第2页共4页
本文格式为 Word 版,下载可任意编辑
占空比的调整。
LED 采纳动态显示方式,通过四位数码管显示电机的实际转速,
2.1 直流电机调速的设计方案
方便系统的监控,系统用四位共阳数码管、采纳 9012 三极管开关电路
驱动电路用光耦隔离爱护电路,掌握部分由单片机和外围电路组
驱动、掌握数码管的显示。
成,实现各种掌握要求,外围电路主要完成对输入信号的采集、操作、
来转变平均电压的大小,从而掌握电动机的转速。因此,PWM 又
能单一,调试困难。本方案采纳单片机掌握系统,使得很多掌握功能及
被称为“开关驱动装置”.PWM 的`占空比确定输出到直流电机的平均
算法可以采纳软件技术来完成,为直流电动机的掌握提供了更大的敏捷
电压。所以通过调整占空比,可以实现调整输出电压无级连续调整。
0 引言
在 PWM 驱动掌握的调整系统中,按一个固定的频率来接通和断开电源,
直流电机是工业生产中常用的驱动设备,具有良好的起动、制动性
并依据需要转变一个周期内“接通”和“断开”时间的长短。通过转
能。早期直流电动机的掌握均以模拟电路为基础,采纳运算放大器、非
变直流电机电枢上电压的“占空比”
线性集成电路以及少量的数字电路组成。掌握系统的硬件部分冗杂、功
转速,并且能实时监控直流电动机的速度。由于采纳的是 PWM 掌握技
基于单片机的直流电机调速系统设计
直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 U=Ea+Ia(Ra+Rc)……………式1
式1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷 接触电阻的总和;Rc是外接在电枢回路中的调节电阻
由此可得到直流电机的转速公式为:
n=(Ua-IR)/CeΦ ………………………式2
式2中, Ce为电动势常数, Φ是磁通量。 由1式和2式得
n=Ea/CeΦ ……………………………式3
由式3中可以看出, 对于一个已经制造好的电机, 当励磁电压和 负载转矩恒定时, 它的转速由回在电枢两端的电压Ea决定, 电 枢电压越高, 电机转速就越快, 电枢电压降低到0V时, 电机就 停止转动;改变电枢电压的极性, 电机就反转。
PWM脉宽调速
PWM(脉冲宽度调制)是通过控制固定电压的 直流电源开关频率, 改变负载两端的电压, 从 而达到控制要求的一种电压调整方法。在PWM 驱动控制的调整系统中, 按一个固定的频率 来接通和断开电源, 并且根据需要改变一个 周期内“接通”和“断开”时间的长短。通 过改变直流电机电枢上电压的“占空比”来 达到改变平均电压大小的目的, 从而来控制 电动机的转速。也正因为如此, PWM又被称为 “开关驱动装置”。
, 软件简单。但每个按键需要占用一个输入口线, 在 按键数量较多时, 需要较多的输入口线且电路结构复杂, 故此种键盘适用于按键较少或操作速度较高的场合。
数码管显示部分 本设计使用的是一种比较常用的是四位数码 管, 内部的4个数码管共用a~dp这8根数据线, 为使用提供了方便, 因为里面有4个数码管, 所以它有4个公共端, 加上a~dp, 共有12个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)
直流电机测速系统课程设计
西安邮电学院单片机课程设计报告书题目:电机测速系统院系名称:自动化学院学生姓名:专业名称:自动化班级:自动XXXX班时间:20XX年X月X日至 X月XX日电机测速系统一、设计目的随着科技的飞速发展,计算机应用技术日益渗透到社会生产生活的各个领域,而单片机的应用则起到了举足轻重的作用。
在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。
为了能精确地测量转速,还要保证测量的实时性,要求能测得瞬时转速。
因此设计一种较为理想的电机测速控制系统是非常有价值的。
二、设计要求1.用按键控制电机起停;2.电机有两种速度,通过按键来改变速度;3.通过数码管显示每分钟或每秒的转速。
四、设计方案及分析(包含设计电路图)1. STC89C52单片机介绍STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
(1)单片机最小系统单片机最小系统电路如图所示,由主控器STC89C52、时钟电路和复位电路三部分组成。
单片机STC89C52作为核心控制器控制着整个系统的工作,而时钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。
图单片机最小系统(2)晶振电路(3)复位电路复位是单片机的初始化操作。
其主要功能是把PC 初始化为0000H ,使单片机从0000H 单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
2. ST151光电转速传感器是根据光敏二极管工作原理制造的一种感应接收光强度变化的电子器件,当它发出的光被目标反射或阻断时,则接收器感应出相应的电信号。
【设计】自动控制系统课程设计转速单闭环直流电机调速系统设计与仿真
【关键字】设计东北大学秦皇岛分校控制工程学院《自动控制系统》课程设计设计题目:转速单闭环直流电机调速系统设计与仿真学生:张海松专业:自动化班级学号:指导教师:王立夫设计时间:2012年6月27日东北大学秦皇岛分校控制工程学院《自动控制系统》课程设计任务书专业:自动化班级:509 学生姓名:设计题目:转速单闭环直流电机调速系统设计与仿真一、设计实验条件实验设备:PC机二、设计任务直流电机额定电压,额定电枢电流,额定转速,电枢回路总电阻,电感,励磁电阻,励磁电感,互感,,允许过载倍数。
晶闸管装置放大系数:,时间常数:,设计要求:对转速环进行设计,并用Matlab仿真分析其设计结果。
目录绪论--------------------------------------------------------------------------------11.转速单闭环调速系统设计意义-----------------------------12.原系统的动态结构图及稳定性的分析-----------------------22.1 转速负反应单闭环控制系统组成-----------------------22.2 转速负反应单闭环控制系统的工作原理-----------------33.调节器的选择及设计-------------------------------------33.1调节器的选择- --------------------------------------33.2 PI调节器的设计--- ---------------------------------44.Mat lab仿真及结果分析----------------------------------74.1 simulink实现上述直流电机模型-----------------------74.2 参数设置并进行仿真---------------------------------74.3结果分析--------------------------------- ---------155.课设中遇到的问题--------------------------------------166.结束语- ---------------------------------------------17参考文献- ---------------------------------------------17转速单闭环直流电机调速系统设计与仿真绪论直流电动机由于调速性能好,启动、制动和过载转矩大,便于控制等特点,是许多高性能要求的生产机械的理想电动机。
直流电机速度PID控制系统设计毕业论文(设计).doc.doc
序号(学号〉: 161240303长春大学 毕业设计(论文)直流电机速度PID 控制系统设计李一丹国际教育学院自动化1612403曹福成2016 年 5 月 30 0姓 名 学 院 专 业 班 级 指导教师直流电机速度PID控制系统设计摘要:针对现有的直流电机控速难的问题,本文设计了一种基于ATmegal6L单片机的直流电机速度控制系统。
本系统以ATinegal6L单片机为主控制器,搭载了L298n为电机驱动,通过霍尔元件进行测速,通过按键控制电机的转动方向和转动速度,并配以温度传感器DS18B20对温度进行监测,通过PID算法调节PW\1 进行对速度控制。
该系统包括的模块主要有单片机为主体的控制模块、电机的驱动模块、对电机速度进行监测的模块、由LCD1602构成的显示ky r模块、电源模块和按键控制模块等。
本系统可以通过PID算法实现可编程脉宽波形对直流电机的速度进行控制,并且可以显示出当前电机的转速。
关键词:单片机;PID算法;直流电机The design of DC motor speed control system with PID Abstract: According to the existing DC motor speed control problem, this paper describes the design of a DC motor speed control system based on ATmegal6L MCU. To ATMEGA16L microcontroller as the main controller for the system, equipped with a L298n for motor drive, through the hall element of speed, through the buttons to control the motor rotation direction and the rotation speed, and the temperature sensor DS18B20 the temperature monitoring, PID algorithm is used to adjust the PWM control of the speed. The system includes the following modules display microprocessor control module, as the main body of the motor drive module, monitoring module, the speed of motor is composed of LCD1602 module, power supply module and key control module.This system can realize through PID algorithm to control the speed of the programming pulse waveforms of DC motor, and can display the current motor speed.Keywords: single chip microcomputer, PID algorithm, DC motor ky r戈ml ml ——II —In —In | * 11—I 1111 ml 1111目录Bit (1)l.i选题背景及意义 (1)1.2国内外研宄现状 (2)1.3木文主要研究的内容 (3)第2章总体方案论述 (4)ky r2.1系统主要传感器介绍 (4)2.1.1温度传感器 (4)2.1.2转速检测模块 (5)2.2系统总体功能及方案选择 (6)2.2.1系统所需模块及功能 (6)2.2.2主控制器选择 (8)第3章系统总体硬件设计 (10)3.1单片机最小系统 (10)3.1.1ATmegal6L单片机的引脚分布 (10)3.1.2最小系统的硬件电路 (13)3.2电机驱动电路 (14)3.3温度检测电路 (15)3.4光电管提示电路和按键控制电路 (15)3.5LCD1602 显示电路 (16)3.6电源电路 (17)3.7本章小节 (18)第4章系统软件设计 (19)4.1系统总体流程图 (19)4.2 PID算法简介 (19)4.2.1PID算法介绍 (20)4.2.2HD算法结果 (21)4.3系统调试步骤 (21)4.4误差分析即改进方法 (22)给论 (23)致谢 (24)参考文献 (25)隱 (26)附录I系统总体硬件电路图 (26)附录II系统中部分程序 (27)ky r In—ml ml ml ml | , I af—.第1章绪论1.1选题背景及意义电动机简称电机,俗称马达,在现实生活中,我们处处都可以见到电机的身影,小到小学生玩的电动四驱车,大到炼钢厂用的滚动罐,这些都是电机家族的成员。
基于STM32的直流电机PID调速系统设计
《计算机控制技术课程设计》题目:基于STM32的直流电机PID调速学院:计算机与电子信息学院专业:电气工程及其自动化班级:电气12-5 学号:姓名:任课教师:完成时间:——基于STM32的直流电机PID调速摘要电机转速控制在运动控制系统中占有至关重要的地位,本设计将电机转速控制作为研究对象;以PID为基本控制算法,STM32F103单片机为控制核心,产生受PID算法控制的PWM脉冲实现对直流电机转速的控制。
同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。
在系统中采320×240TFTLCD显示器作为显示部件,通过4个按键通过界面切换方式设置P、I、D、V四个参数和正反转控制,启动后可以通过显示部件了解电机当前的运行状态和系统的CPU温度。
该系统控制精度高,具有很强的抗干扰能力。
关键词:PID 直流电机反馈调节Based on the STM32 PID speed control of dc motorAbstractMotor speed control occupies a crucial position in the motion control system, the design of the motor speed control for the study; in the basic PID control algorithm, STM32F103 microcontroller core, by the PID control algorithm generates a PWM pulse to achieve DC speed control. At the same time the use of photoelectric sensors to convert the motor speed to pulse frequency feedback to the microcontroller to achieve closed-loop speed control, to speed static error adjustment purposes. Mining 320 × 240TFTLCD monitor as a display unit in the system, through four key settings P, I, D, V four parameters and reversing control through the interface switching mode, start to understand the current state of the motor and the system through the display unit CPU temperature. The system control and high precision, has a strong anti-jamming capability.Keywords: PID DC motor feedback regulation目录1. 绪论 (1)研究背景与意义 (1)本文主要研究方法 (1)2. 设计方案与论证 (2)系统设计方案 (2)控制器模块设计方案 (2)3. 系统硬件电路设计 (3)整体电路设计 (3)整体理论 (3)整体简单结构图和资源分配图 (3)最小单片机系统设计 (4)STM32F103复位电路 (6)电源电路 (6)电机驱动电路设计 (7)光电码盘编码器电路设计 (7)显示电路设计 (8)按键电路设计 (10)4. 系统软件设计 (10)PID算法 (10)PID参数整定方法 (11)电机速度采集算法 (12)程序流程图 (12)5. 系统调试 (13)软件调试 (13)系统测试与分析 (14)6. 总结与展望 (15)参考文献 (16)附录一部分程序源程序 (17)附录二系统界面实物图和PCB图 (20)1.绪论1.1研究背景与意义电动机在现代的工业中,是主要的驱动设备,尤其是直流电动机,由于它的平滑调速性和结构上的简单,使其成为许多电器,如洗衣机,电梯等的驱动。
单片机课程设计PWM直流电动机调速控制系统方案
单片机原理及应用—— P W M直流电机调速控制系统概括直流电动机具有良好的启动性能和调速特性。
具有起动转矩大、调速平稳、经济大范围、调速容易、调速后效率高等特点。
本文设计的直流电机调速系统主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路和独立按键组成的电子产品组成。
电源采用78系列芯片,采用PWM波方式实现电机+5V、+15V调速,PWM为脉宽调制,通过51单片机改变占空比实现。
通过独立的按键实现电机的启停、调速和转向的手动控制,LED实现测量数据(速度)的显示。
电机转速采用霍尔传感器检测输出方波,通过51单片机统计1秒内方波脉冲个数,计算电机转速,实现直流电机的反馈控制。
关键词:直流电机调速; H桥驱动电路; LED显示屏; 51单片机目录摘要2摘要错误!未定义书签。
目录3第 1 章引言41.1 概述41.2 国外发展现状41.3 要求51.4 设计目的及6第 2 章项目论证与选择72.1 电机调速模块72.2 PWM调速工作模式72.3 PWM脉宽调制方式错误!未定义书签。
2.4 PWM 软件实现错误!未定义书签。
第三章系统硬件电路设计83.1 信号输入电路83.2 电机PWM驱动模块电路9第 4 章系统的软件设计104.1 单片机选型104.2 系统软件设计分析10第 5 章 MCU 系统集成调试135.1 PROTEUS 设计与仿真平台错误!未定义书签。
18传统开发流程对比错误!未定义书签。
第一章简介1.1 概述现代工业的电驱动一般要求部分或全部自动化,因此必须与各种控制元件组成的自动控制系统相联动,而电驱动可视为自动电驱动系统的简称。
在这个系统中,生产机械可以自动控制。
随着现代电力电子技术和计算机技术的发展以及现代控制理论的应用,自动电驱动正朝着计算机控制的生产过程自动化方向发展。
以实现高速、高质量、高效率的生产。
在大多数集成自动化系统中,自动化电力牵引系统仍然是不可或缺的组成部分。
基于PWM控制直流电机自动调速系统设计
1 绪论1.1 课题的研究背景和意义直流电动机是最早出现的电动机,也是最早能实现调速的电动机。
长期以来,直流电动机一直占据着调速控制的统治地位。
由于它具有良好的线性调速特性,简单的控制性能,高的效率,优异的动态特性;尽管近年来不断受到其他电动机(如交流变频电机、步进电机等)的挑战,但到目前为止,它仍然是大多数调速控制电动机的优先选择。
近年来,直流电动机的结构和控制方式都发生了很大变化。
随着计算机进入控制领域以及新型的电力电子功率元件的不断出现,使采用全控型的开关功率元件进行脉宽调制 (PulseWidthModulation,简称PWM)控制方式已成为绝对主流。
这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。
五十多年来,直流电气传动经历了重大的变革。
首先,实现了整流器件的更新换代,从50年代的使用己久的直流发电机一电动机组(简称G-M系统)及水银整流装置,到60年代的晶闸管电动机调速系统(简称V-M系统),使得变流技术产生了根本的变革。
再到脉宽调制 (PulsewidthModulation)变换器的产生,不仅在经济性和可靠性上有所提高,而且在技术性能上也显示了很大的优越性,使电气传动完成了一次大的飞跃。
另外,集成运算放大器和众多的电子模块的出现,不断促进了控制系统结构的变化。
随着计算机技术和通信技术的发展,数字信号处理器单片机应用于控制系统,控制电路己实现高集成化,小型化,高可靠性及低成本。
以上技术的应用,使系统的性能指标大幅度提高,应用范围不断扩大。
由于系统的调速精度高,调速范围广,所以,在对调速性能要求较高的场合,一般都采用直流电气传动。
技术迅速发展,走向成熟化、完善化、系统化、标准化,在可逆、宽调速、高精度的电气传动领域中一直居于垄断地位[1]。
目前,国内各大专院校、科研单位和厂家也都在开发直流数字调速装置。
姚勇涛等人提出直流电动机及系统的参数辨识的方法。
该方法依据系统或环节的输入输出特性,应用最小二乘法,即可获得系统或环节的内部参数,所获的参数具有较高的精度,方法简便易行。
直流电机调速控制和测速系统设计
直流电机调速控制和测速系统设计摘要:在电机结构之中,直流型的电机在性能上具有极高的优势,随着时代的飞速发展,有关直流电机的应用范围也越发广泛。
但是,传统的直流电机的工作性质决定它会面临有关运转方面的问题,如何进行转速控制便成为困扰直流电机发展与应用的重要原因。
而直流电机控制系统的出现,很好地缓解了这方面的问题,不但提高了直流电机的稳定性与精准性,同时还能够对直流电机开展有效的调速控制,以此来满足我国对相关设备的应用需求。
正因如此,本文就直流电机调速控制加以分析,并以此为基础开展相应的测速系统设计。
关键词:直流电机;调速控制;测速系统电子技术是新时代发展的基础,对于人们的日常生活有着极为重要的影响,随着我国科学技术的不断提升,有关直流电机的成本也在不断降低,在这一过程中,直流电机本身所具备的优良特性也会得到有效发挥,在发展前景方面也会更加乐观。
此外,由于直流电机本身在控制方面相对简单,且自身所具备的应用性比较强,在进行设计的过程中,只需要对其自身调速稳定内容进行优化即可。
但是,当前我国在有关这方面的控制技术上还存在着一定程度的问题,很多计算过程十分复杂,很难将直流电机的调速控制工作完全发挥出来。
正因如此,本文就这方面进行调速与测速系统的控制与设计,以此来确保整个电机设备的稳定性与安全性能够得到有效提升。
一、电机调速原理及其实现电机调速原理主要是指对电机两端所存在的电压进行数据上的更改,以此来完成对电机转速的调节工作,对于电机而言,当自身的电压方向出现改变,那么电机的旋转变化发生改变[1]。
而PWM在调速原理方面则是以脉冲信号为主,利用脉冲信号的输出特性来进行传输,并改变原本存在于电机内部空间的脉冲信号,通过间接或速度按钮来完成有关电机电压的更改工作,从而来确保电机的转速能够因此发生改变。
在这一过程中,电机内部的脉冲占比越大,转速也就越慢[2]。
本文针对直流电机进行相应的系统设计,整个电路主要是以H桥为主,为了确保整个驱动电机能够得到有效控制,将三极管进行单片机的引脚安装,将基极部分分别安装在P3.4以及P3.7这两部分,从而来确保当电机处于运行状态时,能够利用垫片机来对其自身的转速内容进行控制。
毕业设计(论文)基于智能pid的直流电机调速系统
摘要由于变频技术的出现,交流调速一直冲击直流调速,但综观全局,尤其是我国在此领域的现状,再加上全数字直流调速系统的出现,提高了直流调速系统的精度及可靠性,直流调速仍将处于重要地位。
对于直流调速系统转速控制的要求有稳速、调速、加速或减速三个方面,而在工业生产中对于后两个要求已能很好地实现,但工程应用中稳速指标却往往不能达到预期的效果,稳速要求即以一定的精度在所需要的转速上稳定运行,在各种干扰下不允许有过大的转速波动。
稳速很难达到要求原因在于数字直流调速装置中的PID调节器对被控对象及其负载参数变化自适应能力差。
模糊控制不要求被控对象的精确模型且适应性强,为了克服常规数字直流调速装置的缺点,本文将模糊控制与PID调节器结合,着手fuzzy-PID复合控制方案理论研究和硬件的实现,设计出相关控制方案的直流调速系统,该方案以AT89C51单片机为主控单元,合适的驱动电路和一些外围电路构成硬件系统;以参数模糊自整定PID为控制策略。
本文对于系统的硬件及软件设计进行了详细的设计,包括电机控制模块、检测模块、电机驱动模块的设计等,以及软件的控制思想和编程方法。
本系统的设计顺应了目前国外直流调速朝着数字化,发展的趋势,充分利用了单片机的优点,使得通用性得到了提高。
经过理论分析和设计此控制器的各项性能指标优于模糊控制器和常规PID 控制器,具有很强的鲁棒性。
关键词:模糊控制;直流调速;稳态性能;单片机AbstractAfter Frequency Conversion Technology appeared,AC speed regulation method had always impacted DC Speed Regulation,but Generally speaking,especially the status in our country,in addition to digital DC Speed Regulation emerged,it improving the precision and the reliability in DC Speed Regulation System.DC Speed Regulation was also in the important status.Speed stability、speed ratio、acceleration、deceleration are the four factors in DC Speed Regulation System,the last two factors already reached well in industry application.But the Stability index does not match the desired purpose.Stability index is that the DC motor running in the precision range on desired speed,even if the system has uncertain disturbance.It is hard to realize because of adaptiveability digital DC Speed Regulation device is not enough when in the condition of the load parameters change unpredictably.Fuzzy control does not need precision mathematic model to conquer the shortcoming in routine digital DC Speed Regulation.We can combine with the PID adjuster and fuzzy control,focusing on theory research and realization of fuzzy-PID compound control scheme,design relevant DC Speed Regulation System was designed in the dissertation.This scheme is based on the core of AT89C51 single chip,appropriate driver circuit and some peripheral circuits,Fuzzy Self-tuning PID is the control strategy,This dissertation also introduce the plan of hardware and software,including DC motor control module、driver module、examine circuit and so on in detail,if explained the method of control and the thought of software,this system got used to the trend of digital power in the international,used the single micro—computer fully,and improveed the general use of the power.Theoretical analysis and design showed that all performance indexes of Parameter Self-Adjusting Fuzzy Logic PID Controller was in advance of those of the simple fuzzy controller and the conventional PID controller.Especially,the adaptive fuzzy controller is robust.Keywords:fuzzy logic control(FLC);DC Speed Regulation;stability performance;Single micro-computer目 录摘 要 .................................................................................................................................................I Abstract ......................................................................................................................................... II 目 录 ............................................................................................................................................ I II第一章 绪论 (1)1.1 序言 (1)1.2 PID 控制中存在的问题 (1)1.3 模糊控制的发展状况 (2)模糊控制的发展过程 (2)模糊控制技术要解决的问题 (3)1.4 直流调速系统的发展概况 (4)1.5 本课题的研究内容及目的 (5)第二章 直流调速系统的理论分析 (6)2.1 控制理论在调速系统中的应用分析 (6)调速系统性能指标 (6)直流调速常用的方法 (7)2.2 传统直流调速系统中调节器参数的计算 (9)设计指标及要求 (9)固有、预置参数计算 (9)电流调节器参数计算 (10)转速调节器参数 (10)2.3 数字PID 调节器的原理及应用 (12)2.4 数字PID 控制器的算法实现 (14)第三章 模糊PID 控制算法设计 (16)3.1 模糊控制的原理 (16)模糊控制的理论基础 (16)模糊控制系统的组成 (16)模糊控制在实际中的适用性 (17)3.1.4 模糊控制器的设计方法 (17)3.2直流调速系统模糊PID 控制结构设计 .......................................................................... 18 被控过程对参数P K 、I K 、D K 的自整定要求 (19)3.3模糊自整定PID 参数控器设计 (20)确定控制器的输入、输出语言变量 (20)3.3.2确定各语言变量论域,在其论域上定义模糊量 .............................................. 21 确定P K 、I K 、D K 的调节规则 .. (21)模糊推理和模糊运算 (22)第四章 调速系统硬件设计 (24)4.1硬件总体方案设计 (24)4.2 主电路设计 (24)4.3 整流电力二极管参数的确定 (25)4.4 IGBT 的选择 (26)4.5 IGBT 驱动电路的设计 (26)IGBT 驱动电路的一般要求 (26)IGBT 的专用驱动集成电路 (26)4.6 泵升电压的抑制 (28)4.7 电流反馈信号检测装置设计 (29)概述 (29)4.7.2 电流检测装置的设计 (30)4.8转速检测环节及其与单片机接口电路的设计 (30)4.9 模拟量给定电流、转速反馈量与单片机的接口设计 (32)4.10 键盘与显示接口电路 (32)第五章系统软件设计 (34)5.1主程序 (34)5.2 A/D转换设计 (35)5.3键盘与显示子程序设计 (36)5.4模糊PID控制流程设计 (37)结论 (38)参考文献 (39)致谢 (42)第一章绪论1.1 序言在现代化的工业生产过程中,几乎无处不使用电力传动装置,生产工艺、产品质量的要求不断提高和产量的增长,使得越来越多的生产机械要求能实现自动调速。
基于STM32的直流电动机测速系统设计
的发展,直流电机因其具有良好的启动、制动和调速性能,已经广泛运用于工业控制、机械制造、电力电子等领域。
在现代工业控制领域里,通常需要对电动机的转速进行准确有效的控制,而精确控制的前提是需要对电机转速进行准确的测量,目前对电机转速测量的主要方法有:接触式测量,需要把传感器安装在转轴上,测量不方便;光电非接触式测量,这种测量方法需要电机部分外露,对测量和安装带来极大的不便。
本系统采用非接触式直流电动机转速检测装置,无需对电机本身或内部进行改装固定,只需要在电机外部安装电磁感应探头,利用电机内磁场的变化就可以准确的测量电机的转速。
1 系统方案的设计本系统通过自制的电磁感应传感器采集电动机的转速,采集到的信号通过滤波电路、放大电路、比较电路整形之后,由STM32的计数器获取电机磁场变化频率,进而转化出电机的转速,由STM32处理后通过OLED显示电机的转速值等信息。
测量的线性和精度同样由硬件调试得到,软件作为精度补偿,通过STM32的线性算法和补偿算法来得到相当高的精度。
■1.1 主控器件的选择采用 STM32(STM32F103C8T6)作为核心控制,它具有多功能定时器、功耗低、速度高、稳定性强、性价比高等特点,既可以满足作品要求,同时也简化了外部电路。
具有最高72MHz 的 CPU 工作频率和很强的控制和运算能力,能够实现一些复杂的控制和运算功能,对与实现输出脉冲波有良好的周期精度,满足系统要求。
■1.2 显示屏的选择采用 OLED液晶屏。
此款液晶能使人机交互显得更加人性化,具有可触摸屏,功耗小,体积适中,非常适合于少感器难度大、但是采集精度高、对于任意电机的适用性强)。
传感器的信号随电机内磁场的变化而变化,所以感应电流和转速之间具有线性关系的,且容易通过硬件电路及程序算法进行校正。
(1)采用C型电感型探头(如图1)此传感器使用单一线圈对信号进行采集。
该电路的优点是采集信号的范围更广。
但是,当电机转速低时,电机供电电压低,电机产生的磁场弱,然而电路的噪声是一定的,此时C型探头接收到其他磁极的干扰也会增加,导致信号的信噪比不高,使后续电路的处理难度加大,且容易出现不稳定的触发。
电机调速课程设计
电机调速课程设计1 引言嵌入式微控制器又称单片机。
嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM、PEPROM、RAM、总线、总线逻辑、定时P计数器、WatchDog、IPO、串行口、脉宽调制输出、APD、DPA、Flash RAM、E2PROM 等各种必要功能和外设。
为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。
这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化进程、提高生产率等方面起到了极其重要的推动作用。
ARM是近年来发展非常迅速的处理器,有很好的应用前景。
将其应用于直流电机的调速控制,有极大的使用价值。
以脉宽调制技术为代表的电机数字驱动技术也在迅猛发展,将计算机应用于这一领域正好可以发挥其在数字控制方面的优势。
本课题研究了一种直流电机转速的控制系统。
基本思想就是利用ARM开发板具有的PWM端口,在不改变PWM方波周期(频率)的前提下,通过软件的方法调整PWM的占空比,控制电机输入电压,进而控制电机转速。
本方法所要求的ARM开发板必须具有PWM端口,另外,ARM芯片的工作速度尽量快。
在收到上位机指令后调整输出PWM占空比。
脉冲宽度调制是直流电机调速中最为有效的方法,即给直流电机输入高速的开关脉冲信号,通过改变脉冲信号开关的比例,达到速度控制的效果。
系统中使用的是前一种固定频率下改变占空比的PWM方法,在整个过程中改变的仅仅是电压信号的占空比,至于其它参数,尤其是脉冲频率并没有改变,通过调整基本周期内工作周期的大小来控制输出功率。
电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快。
基于51单片机的直流电机PWM调速控制系统设计
基于51单片机的直流电机PWM调速控制系统设计I摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。
本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。
另外,本系统中使用了霍尔元件对直流电机的转速进行测量,经过处理后,将测量值送到液晶显示出来。
关键词:PWM信号,霍尔元件,液晶显示,直流电动机II目录目录 (III)1 引言 (1)1.1 课题背景 (1)1.1.2 开发背景 (1)1.1.3 选题意义 (2)1.2 研究方法及调速原理 (2)1.2.1 直流调速系统实现方式 (4)1.2.2 控制程序的设计 (5)2 系统硬件电路的设计 (6)2.1 系统总体设计框图及单片机系统的设计 (6)2.2 STC89C51单片机简介 (6)2.2.1 STC89C51单片机的组成 (6)2.2.2 CPU及部分部件的作用和功能 (6)2.2.3 STC89C51单片机引脚图 (7)2.2.4 STC89C51引脚功能 (7)3 PWM信号发生电路设计 (10)3.1 PWM的基本原理 (10)3.2 系统的硬件电路设计与分析 (10)3.3 H桥的驱动电路设计方案 (11)5 主电路设计 (13)5.1 单片机最小系统 (13)5.2 液晶电路 (13)5.2.1 LCD 1602功能介绍 (14)5.2.2 LCD 1602性能参数 (15)5.2.3 LCD 1602与单片机连接 (17)5.2.4 LCD 1602的显示与控制命令 (18)5.3 按键电路 (19)5.4 霍尔元件电路 (20)III5.4.1 A3144霍尔开关的工作原理及应用说明 (21)5.4.2 霍尔传感器测量原理 (22)6 系统功能调试 (23)总结 (24)致谢 (25)参考文献 (26)IV1 引言1.1 课题背景1.1.2 开发背景在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。
基于51单片机的PWM直流电机调速系统
基于51单片机的PWM直流电机调速系统一、本文概述随着现代工业技术的飞速发展,直流电机调速系统在众多领域如工业自动化、智能家居、航空航天等得到了广泛应用。
在众多调速方案中,基于脉冲宽度调制(PWM)的调速方式以其高效、稳定、易于实现等优点脱颖而出。
本文旨在探讨基于51单片机的PWM直流电机调速系统的设计与实现,以期为相关领域的技术人员提供一种可靠且实用的电机调速方案。
本文将简要介绍PWM调速的基本原理及其在直流电机控制中的应用。
随后,将详细介绍基于51单片机的PWM直流电机调速系统的硬件设计,包括电机选型、驱动电路设计、单片机选型及外围电路设计等。
在软件设计部分,本文将阐述PWM信号的生成方法、电机转速的检测与控制算法的实现。
还将对系统的性能进行测试与分析,以验证其调速效果及稳定性。
本文将总结基于51单片机的PWM直流电机调速系统的优点与不足,并提出改进建议。
希望通过本文的阐述,能为相关领域的研究与应用提供有益参考。
二、51单片机基础知识51单片机,也被称为8051微控制器,是Intel公司在1980年代初推出的一种8位CISC(复杂指令集计算机)单片机。
尽管Intel公司已经停止生产这种芯片,但由于其架构的通用性和广泛的应用,许多其他公司如Atmel、STC等仍然在生产与8051兼容的单片机。
51单片机的核心部分包括一个8位的CPU,以及4KB的ROM、低128B 的RAM和高位的SFR(特殊功能寄存器)等。
它还包括两个16位的定时/计数器,四个8位的I/O端口,一个全双工的串行通信口,以及一个中断系统。
这些功能使得51单片机在多种嵌入式系统中得到了广泛的应用。
在PWM(脉冲宽度调制)直流电机调速系统中,51单片机的主要作用是生成PWM信号以控制电机的速度。
这通常是通过定时/计数器来实现的。
定时/计数器可以设置一定的时间间隔,然后在这个时间间隔内,CPU可以控制I/O端口产生高电平或低电平,从而形成PWM信号。
直流电机调速控制系统设计
成绩电气控制与PLC课程设计说明书直流电机调速控制系统设计.Translate DC motor speed Control system design学生王杰学号学院班级信电工程学院13自动化专业名称电气工程及其自动化指导教师肖理庆2016年6月14日目录1 ××11.1 ××××××11.1.1 ××××错误!未定义书签。
1.1.2 ××××1……1.2 ××××××11.2.1 ××××8……2 ×××××82.1 ××××××102.1.1 ××××10……3 ×××××123.1 ××××××123.1.1 ××××12……参考文献13附录14附录114附录2141 直流电机调速控制系统模型1.1 直流调速系统的主导调速方法根据直流电动机的基础知识可知,直流电动机的电枢电压的平衡方程为:R I E U a +=式(1.1)公式中:U 为电枢电压;E 为电枢电动势;R I a 为电枢电流与电阻乘积。
由于电枢反电势为电路感应电动势,故:n C E φe =式(1.2)式中:e C 为电动势常数;φ为磁通势;n 为转速。
由此得到转速特性方程如下:φe a C R I U /)(n -=式(1.3)由式(1.3)可以看出,调节直流电动机的转速有以下三种方法:1.改变电枢回路的电阻R ——电枢回路串电阻调速。
基于PID控制的直流电机调速系统方案
基于PID控制的直流电机调速系统1绪论1.1本课程的选题背景PID控制器(按闭环系统误差的比例、积分和微分进行控制的调节器)自30年代末期出现以来,在工业控制领域得到了很大的发展和广泛的应用。
它的结构简单,参数易于调整,在长期应用中已积累了丰富的经验。
特别是在工业过程控制中,由于被控制对象的精确的数学模型难以建立,系统的参数经常发生变化,运用控制理论分析综合不仅要耗费很大代价,而且难以得到预期的控制效果。
在应用计算机实现控制的系统中,PID很容易通过编制计算机语言实现。
由于软件系统的灵活性,PID算法可以得到修正和完善,从而使数字PID具有很大的灵活性和适用性,其中数字PID控制器是由软件编程在计算机内部实现的。
PWM控制的基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。
直到进入上世纪80年代,随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。
随着电力电子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM控制技术获得了空前的发展。
到目前为止,已经出现了多种PWM控制技术。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。
在电机控制系统开发中,常常需要消耗各种硬件资源,系统构建时间长,而在调试时很难对硬件系统进行修改,从而延长开发周期。
随着计算机仿真技术的出现和发展,可用计算机对电机控制系统进行仿真,从而减小系统开发开支和周期。
计算机仿真可分为整体仿真和实时仿真。
整体仿真是对系统各个时间段对各个对象进行计算和分析,从而对各个对象的变化情况有直观的整体的了解,即能对系统进行精确的预测,如Proteus就是一个典型的实时仿真软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XI`AN TECHNOLOGICAL UNIVERSITY课程名称直流电机测速调速实验专业:电气工程及其自动化班级:姓名:学号:指导教师:秦刚成绩:2016年7月11日计算机控制系统课程设计——直流电机测速调速系统一、选定题目:电机速度控制系统二、设计目的和要求:计算机控制技术的课程设计是一个综合运用知识的过程,它不仅需要微型机控制理论、程序设计方面的基础知识,而且还需要具备一定的生产工艺知识。
课程设计包括确定控制任务、系统总体方案设计、硬件系统设计、控制软件的设计等,以便使学生掌握计算机控制系统设计的总体思路和方法。
三、功能需求:1、基本功能:(1)该系统使用实验箱的直流电机、1602 液晶、 DA、键盘等模块完成设计;(2)直流电机通过DA模块使用PWM方式进行驱动及调速;(3)能够通过 1602 液晶显示当前转速及 PWM占空比;(4)通过按键控制电机的启动和停止。
2、扩展功能:(1)能够通过按键手动输入目标转速(转/秒),启动电机后控制电机稳定在目标转速;(2)使用 1602 液晶实时显示目标转速、当前转速及启停状态(on/off )。
四、实验思路:本直流电机调速系统以单片机系统为依托,根据 PWM调速的基本原理,控制电动机的转速为依据,实现对直流电动机的调速,并通过单片机控制速度的变化。
本设计的直流电机调速系统主要是由硬件和软件两大部分组成。
硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。
而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到控制器自动对电机速度的有效控制。
用51 来产生 PWM波就必须要用软件编程的方法来模拟。
方法大概可以分为软件延时和定时器产生两种方法。
本次课程设计我们采用定时器产生PWM方波。
定时器产生PWM:这种方法利用了定时器溢出中断,在中断服务程序改变电平的高低,在程序较复杂、多操作时仍能输出较准确的pwm波形。
五、实验设备:单片机开发实验仪一台;AT89C51;LCD1602;DA数模转换;按键;光电开关六、实验原理:1、硬件框图:硬件部分主要由电位器、模数转换模块、51 单片机、显示模块、驱动电路和无刷直流电机组成。
其功能框图如下:2、硬件介绍:1)1602 液晶显示模块电路1602C字符型液晶: CS:片选信号,低电平有效;RS:选择读写的是指令或数据, L:指令, H:为数据。
RW:读写控制端, L:写操作, H:读操作。
12864J 图形点阵液晶: CS:片选信号,低电平有效; CS1/2:左右半屏使能选择, H:左半屏, L:右半屏; RS:选择读写的是指令或数据,L:指令, H:为数据。
RW:读写控制端, L:写操作, H:读操作。
12864M图形点阵液晶: JP6 的 16 脚是空脚, JP6 的 15 脚是 PSB:PSB接高电平,CPU与液晶使用并行接口连接,连接方法与 12864J 完全相同; PSB接低电平,CPU与液晶使用串行接口连接,此时,RS、RW、E 与 CPU的 I/O 管脚相连(STAR ES59PA才有该功能)。
西安工业大学课程设计(论文)用纸R4VCC DS1470R31W2WR110K10K35RD246U5ACS U3BRSRWJP921(1602C 字符型液晶 )R4VCC DS1470R31W2WR110K10K35RD24U5A6CS U3BRS(1602C 字符型液晶 ) RWJP61VSS2VDD3V04RS5RW6ED07DB0D18DB1D29DB2D310DB3D411DB4D512DB5D613DB6D714DB715LED+16LED-1602CJP61VSS2VDD3V04RS5RW6ED07DB0D18DB1D29DB2D310DB3D411DB4D512DB5D613DB6D714DB7CS1/22115CS1 16CS23U3A2117RST18VOUT19LED+20LED-JP912864J西安工业大学课程设计(论文)用纸(12864J 图形点阵液晶)2) DAC0832 数模转换R71DS23VCC470CSU20R781 CSVDD202510WR118 -12VWRWR2W5D5C3319ILE170.1uFR151XFER1KD0 7 DI0 N VREF8VCCD1 6 CDI1 L+12V4D2 5 29DI2 3 RFB7R162U26CD3 4 8U23 89DI3 0D4 16 C IOUT1 112R1508Q7 D5 15 DI4 A 126CC2655DI5 DIOUT210D6 14 3DI6LM324ND713LM741CN1DI75OUT14W6 13R149AGND-12V10DGND10KR794.7KOUT1-12VCS :片选,低有效;OUT :转换电压输出;OUT1:经功放电路的电压输出;电位器 W5:调整基准电压。
3)发光管、按键、开关12西安工业大学课程设计(论文)用纸JP6512345 6 78VCCJP63AR10712 LED1470LED2DS32LED3LED4123456781111111111111111R R R R R R R R000000001111111155555555DS35 DS36 DS37 DS38 DS39 DS40 DS41 DS42B1JP65:发光管控制接口, 0-灯亮, 1-灯灭JP74VCC1 2 3 4 5 6 78R11910K1 A23456789CS29S30S31S32S33S34S35S36 B按键电路原理图12西安工业大学课程设计(论文)用纸JP80VCC1 2 3 4 5 6 78R124 10K1A2K5 K6 K7 K83456789S21S22S23S24S25S26S27S28B开关电路原理图CJP74:按键控制接口;按下-0 信号,松开- 1 信号JP80:开关控制接口;闭合-0 信号,断开- 1 信号4) AT89C51本课题中控制芯片的作用主要是与ADC0809相连接,采集模数转换后得到的8位二进制码,过公式计算后得到电压值,同时连接四位数码管进行显示。
综合考虑,选用 AT89C51即满足要求。
简介:AT89C51是一种带 4K 字节 FLASH存储器的低电压、高性能CMOS 8 位微处理器。
单片机的可擦除只读存储器可以反复擦除1000 次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8 位 CPU和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51引脚图如下:主要特性:与 MCS-51 兼容 ·;4K 字节可编程 FLASH 存储器;寿命: 1000写 /擦循环; 数据保留时间: 10 年 全静态工作: 0Hz-24MHz ; 三级程序存储器锁定; 128×8 位内部 RAM ; 32 可编程 I/O 线;两个 16 位定时器 /计数器; 5个中断源;可编程串行通道; 低功耗的闲置和掉电模式;片内振荡器和时钟电路;直流电机转速测量 / 控制5)使用光电开关测速VCC JP4R8DS41R18 DS10CTRLVCC4702330R17DS9330 LIGHTR16 R20R19DS8330 OP1 4.7K MQ4330 直流电机13855024U7AU7BR281234GP2S054.7KREVSN74LS14NSN74LS14NCTRL :控制电压 (DAC0832经功放电路提供 ) 输入;REV :光电开关脉冲输出 ( 用于转速测量 ) ;LIGHT :低电平点亮发光管。
3、软件设计主程序设计:主程序是一个循环程序,其主要思路是,先设定好速度初始值,这个初始值与测速电路送来的值相比较得到一个误差值,然后用 PID 增量式算法输出控制系数给 PWM发生电路改变波形的占空比,进而控制电机的转速。
主程序流程图如下:五、实验总结:计算机控制技术的课程设计相比硬件的课程设计,简直难了不止一个档次,作为主要的编程人员,当我实际要去控制一个物体的时候,我才知道自己以前学的知识有多么的不牢固,不过真真正正的去做一个实物控制程序的时候,才能真切的体会到以前书本上学的知识是如何运用到实际的,我基本上可以说是为了应付考试勉勉强强学了一些,这次实际做到项目设计后,才理解其真正的含义。
还有本次项目,我们采用了LCD显示屏作为显示单元,比LED数码管复杂,LCD液晶显示屏这也是以前没有运用到过的,所以总体来说,这次课程设计带给我的不仅仅是旧知识的复习,还有新的探索。
本课程设计得以完成,首先要感谢秦刚老师,因为课程设计在他的悉心指导下才能顺利完成。
他渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范、朴实无华、平易近人的人格魅力对我的影响非常深远。
本设计从选题到完成,每一部步是在老师的指导下完成的,倾注了老师大量的心血。
通过此次的课程设计,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在课程设计的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。
并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。
在以往的传统学习模式下,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好地处理知识和实践相结合的问题。
在课程设计的写作过程中也学到了做任何事情所要的态度和心态,对于发展过程中出现的任何问题和偏差都不要轻视,,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的。
再次感谢给我鼓励的老师、同学和朋友,谢谢!!六、附件:程序#include<reg52.h>#include<math.h>/*******************以下硬件连线设置 **************/sbit key0=P1^0;// 占空比(设定值)增按键;且rev 接 int0sbit key1=P1^1;// 占空比(设定值)减按键sbit power = P1^7;//启停按键sbit auto_run=P1^5;//自动运行按键sbit set=P1^4;//set 按键sbit left=P1^2;//左移光标sbit right=P1^3;//右移光标sbit LCD_RS=P3^0;//1602 的 RSsbit LCD_RW=P3^1;//1602 的 RWsbit sys_data=P3^4;//继电器控制脚,用于切换DA 功率输出方向(电机 or 加热电阻)xdata unsigned char dac0832_addr _at_ 0xd000;//DA的地址xdata unsigned char LCD_DATA _at_ 0x8000;//LCD1602的地址/*******************以下为系统的状态量设置**************/bit rps_triger=0;//转速(温度)刷新显示控制, 1 为需要刷新显示, 0 为不需要刷新显示bit scale_triger=0;//占空比刷新显示控制bit power_triger=0;//电源指示刷新显示控制bit power_data=0;//电源状态, 0 为关断, 1 为运行bit set_triger=0;//设置状态, 0 为正常运行, 1 为设置模式bit auto_triger=0;//auto(自动调整)状态,0 为正常模式,1 为自动调整模式bit auto_triger_triger=0;//auto 标志刷新显示控制,当auto 状态被被改变时才需刷新显示/*******************以下为系统的数据量 *****************/char set_data=0;//设置模式下设置的是第几位, 0~ 3(转速设定为 4 位),0~2(温度设定为 3 位)unsigned int scale=10;//占空比数据( 2 倍关系,可以控制到0.5%),初值为 5%unsigned int rps=0;//转速计数变量unsigned int rps1=0;//目标值变量unsigned int rps_data=0;//转速值unsigned int time=0;// 每秒计数变量(计数周期为250u 秒,故4000 次为 1 秒)unsigned int time2=0;//检测插值计数变量( 0.05 秒检测 1 次,实时调整比例系数)unsigned int time3=0;//比例系数控制(若当前值和目标值差值值大,则调整迅速,反之则缓慢调整)unsigned char time_scale=0;//占空比总周期计数变量,一个周期 200次,可以精确到0.5%unsigned int time_check[4]={1000,3000,6000,10000};//转速调整时间系数表格unsigned char check=0;//检测周期等级,分为 0~4 共 5 个等级,0 为极小时间系数, 4 为稳定不变void _nop_(void);/*******************延时函数 *****************/void delay(int a){while(a--);}/*******************外部中断初始化 *****************/void init_int0(){IT0=1;EA=1;}/*******************计数器 0 初始化 *****************/void T0_init(){TMOD = 0x01;TH0 = 0xff;//计数周期为 250u 秒TL0 = 0x1a;ET0=1;EA=1;TR0=1;}/*******************LCD1602相关函数 *****************/void LCD_write_com(unsigned char com){LCD_RS=0;LCD_RW=0;LCD_DATA=com;delay(80);}void LCD_write_data(unsigned char dat){LCD_RS=1;LCD_RW=0;LCD_DATA=dat;delay(80);}/*************LCD1602在电机调速系统下的初始化函数*************/{LCD_write_com(0x38);LCD_write_com(0x0c);LCD_write_com(0x06);LCD_write_com(0x01);LCD_write_com(0x80);LCD_write_data('R');LCD_write_data('P');LCD_write_data('M');LCD_write_com(0x88);LCD_write_data('S');LCD_write_data('e');LCD_write_data('t');LCD_write_com(0xc8);LCD_write_data('R');LCD_write_com(0xcd);LCD_write_data('.');LCD_write_com(0xcf);LCD_write_data('%');LCD_write_com(0x8b);LCD_write_data(rps1/1000+0x30);LCD_write_data(rps1%1000/100+0x30);LCD_write_data(rps1%100/10+0x30);LCD_write_data(rps1%10+0x30);}/***************光标闪烁开 ***************/ void flash_on(void){LCD_write_com(0x0f);/***************光标闪烁关 ***************/ void flash_off(void){LCD_write_com(0x0c);}/************显示当前转速或温度 **************/ void display_rps(void){flash_off();LCD_write_com(0x80);LCD_write_data('R');LCD_write_data('P');LCD_write_data('M');LCD_write_data(rps_data/1000+0x30);LCD_write_data(rps_data%1000/100+0x30);LCD_write_data(rps_data%100/10+0x30);LCD_write_data(rps_data%10+0x30);rps_triger=0;}/************显示当前占空比 **************/ void display_scale(void){flash_off();LCD_write_com(0xcb);LCD_write_data(scale/2/10+0x30);LCD_write_data(scale/2%10+0x30);LCD_write_com(0xce);LCD_write_data(scale%2*5+0x30);scale_triger=0;/************显示 auto 模式的状态 **************/void display_auto(void){flash_off();if(auto_triger==1){LCD_write_com(0xc3);LCD_write_data('a');LCD_write_data('u');LCD_write_data('t');LCD_write_data('o');}else{LCD_write_com(0xc3);LCD_write_data(' ');LCD_write_data(' ');LCD_write_data(' ');LCD_write_data(' ');}auto_triger_triger=0;}/************显示 power 的状态( on 或 off )*************/ void display_power(void){flash_off();LCD_write_com(0xc0);if(power_data==0){LCD_write_data('f');LCD_write_data('f');power_triger=0;auto_triger=0;}else{LCD_write_data('o');LCD_write_data('n');LCD_write_data(' ');power_triger=0;auto_triger=0;}}/************调整输出占空比函数 **************/ void check_rps(void){if(power_data==0) return;if(rps1<rps_data){scale--;if(scale<=1) scale=1;}else if(rps1>rps_data){scale++;if(scale>=199) scale=199;}}/************显示电机调速系统下set 模式函数 **************/void display_set(void){switch(set_data){case0:flash_on();LCD_write_com(0x8b);LCD_write_data(rps1/1000+0x30);LCD_write_ com(0x8b);delay(1000);break;case1:flash_on();LCD_write_com(0x8c);LCD_write_data(rps1%1000/100+0x30);LCD_ write_com(0x8c);delay(1000);break;case2:flash_on();LCD_write_com(0x8d);LCD_write_data(rps1%100/10+0x30);LCD_writ e_com(0x8d);delay(1000);break;case3:flash_on();LCD_write_com(0x8e);LCD_write_data(rps1%10+0x30);LCD_write_c om(0x8e);delay(1000);break;default:flash_off();break;}}/************以下为各个按键的函数 **************//************power电源键 **************/void fn_power(){if(power==1) return;elsedelay(20);//按键去抖if(power==0){while(power!=1);power_data=~power_data;power_triger=1;set_triger=0;auto_triger_triger=1;}else return;}}/************自动调整模式键 **************/ void fn_auto(){if(auto_run==1) return;else{delay(20);//按键去抖if(auto_run==0){while(auto_run!=1);if(power_data==0) auto_triger=0;else auto_triger=~auto_triger;auto_triger_triger=1;set_triger=0;}else return;}/************set设置模式键 **************/void fn_set(){if(set==1) return;else{delay(20);//按键去抖if(set==0){while(set!=1);set_triger=~set_triger;auto_triger=0;auto_triger_triger=1;}else return;}}/************减键( set 模式为调整目标值,运行模式调整占空比)**************/void fn_key0(){if(key0==1) return;else{delay(20);//按键去抖if(key0==0){while(key0!=1);if(set_triger==1)switch(set_data){case 0:if(rps1/1000>=1) rps1=rps1-1000; break;case 1:if(rps1%1000/100>=1) rps1=rps1-100; break;case 2:if(rps1%100/10>=1) rps1=rps1-10; break;case 3:if(rps1%10>=1) rps1=rps1-1; break;}}else{if(scale<=1) scale=1;else scale--;scale_triger=1;}}else return;}}/************加键( set 模式为调整目标值,运行模式调整占空比)**************/void fn_key1(){if(key1==1) return;else{delay(20);//按键去抖if(key1==0){while(key1!=1);switch(set_data){case 0:if(rps1/1000<9) rps1=rps1+1000; break;case 1:if(rps1%1000/100<9) rps1=rps1+100; break;case 2:if(rps1%100/10<9) rps1=rps1+10; break;case 3:if(rps1%10<9) rps1=rps1+1; break;}}else{if(scale>=199) scale=199;else scale++;scale_triger=1;}}else return;}}/************光标左移键( set 模式下有效) **************/void fn_left(){if(left==1) return;else{delay(20);//按键去抖if(left==0){while(left!=1);if(set_data>=3) set_data=3;else set_data++;}else return;}else return;}}/************光标右移键( set 模式下有效) **************/ void fn_right(){if(right==1) return;else{delay(20);//按键去抖if(right==0){while(right!=1);if(set_triger==1){if(set_data<=0) set_data=0;else set_data--;}else return;}else return;}}/************转数计数(外部中断0) **************/void int0() interrupt 0//外部中断 0 处理程序{rps++;//对转数计数器进行累加计数}/****************定时器 0 中断服务函数 *****************/void timer0(void) interrupt 1{unsigned int t;TH0 = 0xff;//重新装载计时常数TL0 = 0x1a;if(time_scale>=200) time_scale=0;//占空比计数控制if(time>=4000)//如果计满 1 秒,计秒变量归零,并将rps 的转数数据送到转速(温度)数据变量中保存{time=0;time_scale=0;if(sys_data==1) rps_data=rps*60/4;//在电机调速模式下:每转有 4 个脉冲,所以除以 4rps=0;//rps 归零rps_triger=1;//rps 显示开关有效if(check==4)//跳出稳态的判断{if(sys_data==1){if(abs(rps_data-rps1)>80) check=1;//如果在电机调速系统下,跳出稳态的条件是转速差超过80rpm}}}else{time_scale++;time++;//如果没计满 1 秒,则继续计数}if(power_data==1)//PWM 信号输出{if(time_scale<=scale) dac0832_addr=0xff;//PWM 信号输出else dac0832_addr=0x00;//PWM 信号输出}else dac0832_addr=0x00;//PWM 信号输出if(time2>=200)//数据差值检测, 0.5 秒 1 次{time2=0;t=abs(rps_data-rps1);//电机调速系统下的参数调整等级划分if(t>1200) check=0;else{if(t>500) check=1;else{if(t>200) check=2;{if(t>80) check=3;else check=4;//差值小于80rpm 进入稳态模式,不再调整输出占空比}}}}else time2++;if(check!=4)//在非稳态的情况下查表确定时间参数{if(time3>=time_check[check])//不同的系统查不同的表{time3=0;if(auto_triger==1) check_rps();}else time3++;}}/****************主函数 *****************/void main(){key0=1;//读引脚之前要写 1key1=1;power=1;set=1;T0_init();//T0 初始化init_int0();//外部中断 int0 初始化while(1){fn_switch();//按键查询函数fn_power();//按键查询函数fn_set();//按键查询函数fn_key0();//按键查询函数fn_key1();//按键查询函数fn_auto();//按键查询函数if(power_triger==1) display_power(); //当电源状态有改变时刷新显示电源状态if(rps_triger==1) display_rps();//当系统实时数据需要刷新时,刷新实时数据if(scale_triger==1) display_scale();//当占空比发生改变时刷新占空比数据if(auto_triger_triger==1) display_auto();// 当 auto 状态发生改变时刷新auto 状态显示if(set_triger==1)//当进入 set 状态时{fn_left();//查询左移右移按键fn_right();if(sys_data==1) display_set();//不同的系统(电机调速、温度控制)不同的 set 状态显示}}。