单片机PID控制直流电机转速(共51页).doc
精选优质文档-倾情为你奉上 本科毕业设计单片机PID控制直流电机转速 学生姓名: 学生学号: 院(系): 电气信息工程学院 年级专业: 电子信息工程 指导教师: 助理指导教师: 二一五年五月专心-专注-专业摘 要在运动控制系统中,对电机转速的控制有着十分重要的作用,其控制的手段,方式与算法很多。模拟PID控制是起源比较早的控制策略之一,经过长期的发展,形成了典型的结构,参数整定相对方便,并且能满足一般的控制场景;但不足的是在模拟PID控制系统中,参数一旦整定,在整个控制过程中都是不能改变的,而在实际中,由于现场的系统参数、速度、温度等环境时刻改变,使系统难以到最佳的控制效果,故采用模拟PID控制较难获得令人满意的控制效果。随着计算机技术与智能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高等优点,应用面越来越广。本设计以上面提到的数字PID为基本控制算法,以STM32F103C8单片机为控制核心,产生占空比受数字PID算法控制的PWM脉冲实现对直流电机转速的控制。同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。在系统中采用OLED显示屏作为显示部件,通过4×4矩阵键盘设定转速,启动,启动后可以通过显示部件了解电机当前的转速,当前误差。该系统控制精度高,具有很强的抗干扰能力。关键词 PID,PWM脉冲,占空比,无静差调节ABSTRACTIn the motion control system, the motor speed control has a very important role in many of its control means, methods and algorithms. Analog PID control is the origin of one of the control strategies earlier, after a long-term development, the formation of a typical configuration, parameter setting is relatively easy, and can meet the general control of the scene; but the downside is that the analog PID control systems, parameter once tuning, the entire control process is not changed, but in practice, due to system parameters scene, speed, temperature and other environmental changes in time, the system is difficult to control the best results, it is difficult to obtain using analog PID control satisfactory control effect. With the computer technology and intelligent control theory, digital PID technology gradually developed, it can not only realize the analog PID control tasks completed, and includes a control algorithm flexible, high reliability, application surface and wider.The design of digital PID control the above-mentioned basic algorithm to STM32F103C8 microcontroller core, the duty cycle by a digital PID algorithm generates the PWM pulse control to achieve DC motor speed control. At the same time the use of photoelectric sensors to convert the motor speed to pulse frequency back to the SCM, closed-loop speed control, to speed static error adjustment purposes. OLED display using a display unit in the system, by 4 × 4 matrix keyboard set the speed, start by displaying part of the current understanding of the motor speed, the current error after starting. The system control and high precision, has a strong anti-jamming capability.Key words PID, PWM impulse, , astatic modulation 目 录I1 绪论1.1课题背景21世纪,科学技术日新月异,显然,伴随着科技的飞速发展,控制技术也得到了快速的发展,现代控制设备的性能和结构都发生了翻天覆地的变化。我们已进入高速发展的信息时代,控制技术成为当今科技的主流之一,广泛深入到研究和应用工程等各个领域。目前,工业的自动化水平已成为度量各个行业现代化水平的一个十分重要的标志。然而,自PID控制器问世以来已有70多年历史,控制理论的发展也经历了古典、现代和智能控制理论三个阶段。却没有一种控制算法比PID调节规律更有效、更方便的了。现在大多数的调节器基本都源自PID。为什么PID应用如此广泛、又长久不衰? 原因之一是PID解决了自动控制理论所需要解决的最基本问题,既系统的快速性、准确性和稳定性。通过调节参数,在系统稳定的前提下,满足系统的抗扰和负载能力,同时,在PID中加入了积分项,使之成为一阶或多阶的系统,而这样的系统阶跃响应稳态误差为零。另一个原因则是其结构简单、工作可靠、调整方便。因此,PID控制技术也成为了工业控制的主要技术之一。随着我国国力日益强盛和全球经济的快速发展,PID控制技术已经渗透到了铁道运输、钢铁生产、汽车制造、航天航空、物流配送、医疗、饮料生产等各个领域。一大批机器设备制造商正处于蓬勃发展阶段,除满足本土市场庞大的机器设备需求外,走向国际市场,参与国际竞争也成为现实需求。但是由于中国科技相对落后,为此,我们需要更进一步的学习、掌握与应用先进的控制技术与解决方案,以提升设备性能、档次与市场竞争力。 1.2国内外研究现状和水平比例 - 积分 - 微分(PID)控制器被广泛应用于化工,冶金,机械,轻工等热工和工业过程控制系统中,是最常见的一种控制调节器。PID有几个重要的功能:提供反馈控制,通过积分作用能消除稳态误差,通过衍生诉讼预测未来。因此,PID控制器是特别适合的动力性能和控制性能过程中是良性的要求不高的场合。PID控制是一种分布式控制系统,该系统还包括在一些特殊用途的控制系统的一个重要组成部分。在工业过程控制,95以上的控制回路是PID结构的,而且大多数是实际PI控制回路。PID控制器许多有用的功能由于商业秘密并没有被广泛传播,比如模式切换和防止卷起装置等技术便是典型例子。现场总线的出现则是另一个重要的发展,这将对分布式系统的控制结构产生深远的影响。PID控制器的现场总线概念的一个重要组成部分,也可能与现场总线的发展被标准化。国际上有一些研究文章陈述了当前工业控制的状况,如1989年,日本电子测量仪器协会对过程控制系统制造在国际上做的调查报告。该报告显示,90以上的控制环路的是PID结构。在加拿大造纸厂额外的统计报告显示,一个典型的造纸厂一般有2000多控制回路,其中PI控制在97以上,而只有20的控制回路是相当令人满意的。究其原因一般情况差控制回路性能参数设定不当的30,30是阀门的问题。控制器的性能差的另外20有多种原因,如传感器的问题,不正确的采样频率滤波器和其他选项和问题。Ender也得到类似的统计:该过程已被安装在控制器处于手动模式30;循环的20调整使用厂家的参数值预置控制器制造商的参数;控制回路阀门和传感器的30,由于导致控制性能较差的问题。目前,自整定PID控制器可分为两大类:基于规则的方法和基于模型的方法。在国际上已经出现了一些商业产品,如Foxboro EXACT (760/761),它使用加上启发式规则调整参数的阶跃响应分析和模式识别技术;Alfa Laval Automation ECA400控制器,它采用继电器反馈和调整基于模型的方法;HoneywellUDC6000控制器,它采用阶跃响应分析和规则库对参数进行调整;Yokogawa SLPC-181/281,它使用基于模型的阶跃响应分析和调优方法。还有一些自我调整的软件包,如智能调谐器,这是Fisher-Rosemount公司用在一个封装分布式控制系统; Looptune,这是Honeywell公司的DCS系统TDC3000的改装套件, DCS调谐器,它是ABB主系统控制器调整一个包。1.3 PID控制器的发展趋势 伴随着社会的发展,人们追求生活的舒适性将越来越高,对其性能提出了越来越高的要求。PID控制技术作为一项具有发展前景和影响力的新技术,正越来越受到国内外各行业的高度重视。然而,随着科技的进步,借助于数字和网络技术的智能控制已经深入到了运动控制系统的方方面面,各种各样的新技术的应用也显著提高了运动控制系统的性能,因此,交流化、高频化、网络化、自适应化和最优化成为PID控制技术今后的发展方向。2 设计方案与论证2.1设计要求和技术指标 2.1.1基本功能按键设定转速,重设。实时显示实际转速,设定转速,误差值。PWM转速闭环控制。 2.1.2技术指标超调量8。调节时间4s。转速误差1。2.2 系统设计方案根据系统设计的任务和要求,设计系统框图如图2.1系统方案图所示。图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将需要的数据输入到单片机中,并且通过控制器显示到显示器上。在运行过程中控制器产生受PID调节的PWM脉冲并送到电机驱动电路中,经过驱动模块控制改变输出电压来控制直流电机转速,同时利用测速模块将当前转速反馈到控制器中,控制器经过PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。图2.1 系统方案图2.3 控制器模块设计方案根据设计任务,控制器主要用于产生占空比受数字PID算法控制的PWM脉冲,并对电机当前速度进行采集处理,根据算法得出当前所需输出的占空比脉冲。对于控制器的选择有以下三种方案。方案一:采用FPGA(现场可编辑门列阵)作为系统的核心控制器,FPGA可以实现各种复杂的逻辑功能,模块大,密度高,它可以将所有器件都集成在一块芯片里,这样既减小了体积,又提高了系统稳定性,并且还可以用EDA软件进行仿真、调试,便于对功能测试与控制。由于FPGA输入输出采用并行的方式,系统的处理速度得到很到的提高,对于大规模实时系统的控制核心是一个非常适合的选择。FPGA通过输入模块把参数输入,然后通过程序控制PWM脉冲的占空比,但是由于本次设计对数据处理实时性要求并不是很高,使得FPGA高速实时处理的优势不能得到充分发挥,并且由于其集成度高,使其成本偏高,而且芯片的引脚很多,导致硬件电路板的布线相对复杂,从而加大了电路设计与制作的工作量。方案二:采用AT89C52作为系统控制的方案。AT89C52单片机软件编程灵活、自由度大。相对于FPGA来说,它的芯片引脚少,在硬件很容易实现。并且它还具有功耗低、体积小、技术成熟和成本低等优点,在各个领域中应用广泛。虽然AT89C52单片机有这么多优点,可是对于此系统,不能硬件产生PWM波,而软件产生需要借助定时器中断,太消耗性能,并且还不能产生较高的频率,如若采用此处理器,必定达不到理想的效果。方案三:采用STM32F103C8作为此系统控制核心,STM32F1系列属于32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。最高72MHz工作频率,运行速度快,硬件资源丰富。综合上述三种方案比较,采用STM32F103C8作为控制器处理输入的数据并控制电机运动及时精确,完全满足设计要求。因此在本次设计选用方案三。2.4 电机驱动模块设计方案本次设计的主要目的是控制电机的转速,因此电机驱动模块是必不可少,其方案有一下两种。方案一:采用MOS管组合电路构成驱动电路,由于在驱动电路中采用了大量的晶体管相互连接,使得电路复杂、抗干扰能力差、可靠性下降,采用此方案,不能改变电机转动方向。方案二:采用专用的电机驱动芯片,如L298N电机驱动芯片,由于它内部已经考虑到了电路的抗干扰能力,安全以及可靠行,设计者不需要对硬件电路设计考虑很多,只需考虑到芯片的硬件连接、驱动能力等问题,可将重点放在算法实现和软件设计中,大大的提高了工作效率。并且还能使设计电路简单、抗干扰能力强、可靠性好。基于上述理论分析和实际情况,电机驱动模块选用方案二。2.5 速度采集模块设计方案本系统是一闭环控制系统,在调节过程中需要将设定与当前实际转速进行比较,速度采集模块就是为完成这样功能而设计的,其设计方案以下三种:方案一:使用霍尔传感器。该器件内部组成使用的是三片霍尔金属板。当磁铁与金属板正对时,会产生霍尔效应,促使金属板横向导通,故可以把磁片安装在电机上和在固定轴上安装霍尔集成片,通过脉冲计数的方式来获取电机的转速,从而实现对电机速度的检测。方案二:采用光电传感器。其检测原理为:相互对射安装接受器和发射器,使得发射器的光能直接对准接受器,当被测物遮挡光束时,传感器的输出就会产生变化,从而表示被测物体被检测到,通过脉冲计数的方式来获取电机的转速,从而实现对电机速度的检测。方案三:使用测速发电机对电机转速进行检测。该方案的实现原理是将测速发电机固定在直流电机的轴上,当直流电机转动时,带动测速电机的轴一起转动,因此测速发电机会产生大小随直流电机转速大小变化的感应电动势,因此精度比较高,但由于该方案的安装比较复杂、成本也比较高,在本次设计没有采用此方案。以上三种方案中,第三种方案不宜采用,第一种和第二种方案的测速原理基本相同都是将电机转速转换为电脉冲的频率进行测量,但考虑到市场中的霍尔元件比较难买,而且成本也比较高,所以综合考虑在设计中选用第二种方案进行设计。2.6 显示模块设计方案在电机转速控制系统中,系统需要对参数、工作方式以及电机当前运行状态的显示,因此在整个系统中必须设计一个显示模块,考虑有三种方案: 方案一:使用七段数码管(LED)显示。虽然数码管具有亮度高、工作电压低、易于集成、驱动简单、耐冲击且性能稳定等特点,并且它可采用BCD编码显示数字,编程容易,硬件电路调试简单,但是用于显示,太消耗系统性能,而且不能显示文字等更多的提示信息,所以不宜选用。方案二:采用1602LCD液晶显示器,该显示器控制方法简单,功率低、硬件电路简单、可对字符进行显示。但是由于并行传输数据,需要引脚较多,且显示效果难看,也不支持汉字,人机交互体验较差。方案三:采用OLED显示屏,该显示屏具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用范围广、构造及制程较简单,驱动电压低、能耗低等优异之特性,被认为是下一代的平面显示器新兴应用技术。最关键是还可以选择并行或者串行模式,串行模式可节约I/O口资源。基于三种的方案的对比,毫无疑问,方案三是最适宜的选择。2.7 键盘模块设计方案 在此系统中,系统需要通过按键进行设定值的输入、工作方式的设定,以及电机起停的控制,因此键盘在整个系统中是不可缺少的一部分,考虑有两种方案可选择: 方案一:独立键盘,这种键盘硬件和软件实现简单,并且各按键之间互相独立,每个按键都有一端接地或者接高电平,另一端接到输入线上。按键的工作状态不会直接影响到其它按键的输入状态。但是由于独立键盘的每一个按键都需要占用一条输入线,因此在按键数量比较多的时候,会浪费较多GPIO口,故此键盘仅仅适用于按键较少的场合。 方案二:采用4x4矩阵键盘,这种键盘的特点是列线、行线分别接输出线、输入线。按键设置在行、列线的交叉点上,利用这种矩阵结构只需4根行线和4根列线,因此在需要按键数量较多的场合适合用此键盘。但此种键盘的软件结构较为复杂。 根据上面两种方案的论述,由于本次设计的系统硬件连接比较复杂,所以采用方案二矩阵式键盘进行设计。2.8 电源模块设计方案 电源是任何系统能否运行的能量来源,无论那种电力系统电源模块都是不可或缺的,对于该模块考虑一下三种方案。 方案一:通过降压芯片(如7812、7805等)对整流后的电压进行降压、稳压处理,此方案可靠性、安全性高,对能源的利用率高,电路简单容易实现。 方案二:通过电阻分压的形式将整流后的电压分别降为控制芯片和电机运行所需的电压,此种方案原理和硬件电路连接都比较简单,但对能量的损耗大,在实际应用系统同一般不宜采用。 方案三:直接用USB连接电脑或者手机充电器。 根据系统的具体要求,采用方案三作为系统的供电模块即可。并且方便可靠。 2.9 确定方案 经过上述的分析与论证,系统具体方案图系统如图2.2所示,各模块采用的方案如下: (1)控制模块: 采用STM32F103C8T6单片机; (2)电机驱动模块: 采用直流电机驱动芯片L298N实现; (3)速度采集模块: 采用光电传感器; (4)显示模块: 采用OLED; (5)键盘模块: 采用标准的4×4矩阵式键盘; (6)电源模块: 手机充电器。图2.2系统具体方案图3 硬件电路设计3.1 STM32F103C8最小系统3.1.1 STM32F103xx简介STM32F103C8芯片是基于ARM Cortex-M3内核,专为要求高性能、低成本、低功耗的嵌入式应用专门设计的。时钟频率高达72MHz,运行速度25DMips/MHz,同时还具备一流的外设,1s的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度。STM32F103xx系统架构如图3.1所示,主系统由以下部分构成: 四个驱动单元:Cortex-M3内核DCode总线(D-bus),和系统总线(S-bus) 通用DMA1和通用DMA2 四个被动单元 内部SRAM 内部闪存存储器FSMC AHB到APB的桥(AHB2APBx),它连接所有的APB设备图3.1 STM32F103xx系统架构3.1.2 STM32F103XX管脚图与原理图引脚接线说明:PA0: PWM波输出PA1: 矩阵键盘行线0PA2: OLED屏D0引脚PA4: OLED屏D1引脚PA6: OLED屏RES引脚PB0: OLED屏DC引脚PB12:OLED屏CS引脚PA3: 矩阵键盘行线1PA5: 矩阵键盘行线2PA7: 矩阵键盘行线3PB10:矩阵键盘列线0PB11:矩阵键盘列线1PB12:矩阵键盘列线2PB13:矩阵键盘列线3PB6: 编码器输出1PB7: 编码器输出2图3.2 STM32F103XX管脚图图3.3 STM32F103XX原理图3.2 4x4矩阵键盘矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。矩阵键盘原理图如图 3.4所示。图 3.4 矩阵键盘原理图键值说明:S1 - S9 : 数字1到9S10 : 数字0 S11 : 设定S12 : 取消S13 : 启动 引脚接线说明:行0:PA1行1:PA3行2:PA5行3:PA7列0:PB10列1:PB11列2:PB12列3:PB133.3 L298N电机驱动模块L298N是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。 L298可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。其原理图如图3.5所示。引脚接线说明:ENA: PA0(PWM输入口)IN1: 接高电平IN2:接低电平VS: 12V电源GND:接地OUT1: 电机线1OUT2: 电机线2图 3.5 L298N驱动模块原理图3.4 光电编码器在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较,通过偏差进行PID运算,因此速度采集电路是整个系统不可缺少的部分。本课题中采用的是光电测速来实现的,首先在电机轴上固定一个编码盘,根据系统要求来选择编码盘的线数,要求越精确,则应选择线数越多的编码盘,编码盘形状如图3.6(a)所示,在圆盘的一侧有一个发光二极管,要求位置必须对准凹槽,在另一侧和发光二极光平行的位置上固定一光敏三极管,如图3.6(b)所示。如果电动机转动时,发光二极管发射出的光线透过编码盘上的缝隙照射到光敏三极管上,这样三极管就导通了,反之三极管截止,从而产生电平的变化,输出脉冲。电路原理如图3.6(b)所示,因此电机每转一圈在GPIOA0的输出端就会产生N个脉冲。这样就可根据脉冲的数量来计算电机此时转速了。例如当电机以一定的转速运行时,GPIOA0将输出如图3.7所示的矩形脉冲,若知道一段时间t内传感器输出的脉冲数为n,则电机转速v= n/(t*N) r/s。 (a) (b)图3.6 电机速度采集方案图3.7 传感器输出脉冲波形3.5 OLED显示屏3.5.1 OLED简介OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED 由于具备自发光,不需要背光源、厚度薄、对比度高、反应速度快、视角广、使用温度范围广、构造及制程较简单、可用于挠曲性面板等优异之特性。作为下一代的平面显示器新兴应用技术,与LCD 相比,由于OLED是自发光的,不需要背光,而LCD都需要背光,所以在同样的显示,OLED 效果好很多。但是以现在的技术,OLED 的尺寸还很难大型化,不过分辨率是可以做到很高的哦。在本设计中,我们使用OLED 作为显示模块,该模块实物图如图33.8,具有以下特点:1)模块有纯蓝色和黄蓝双色两种可选。2)驱动芯片:SSD1306。电压,3.3V 就可以工作了,5v有可能烧模块。3)高分辨率,小小尺寸就能达到128*64的高分辨率。4)多种接口模式,提供了多种接口模式包括:6800、8080 两种并行接口方式、3线或 4 线的穿行 SPI 接口方式,、IIC 接口方式(只需要 2 根线就可以控制 OLED 了!)。6)超低功耗,支持众多控制芯片:兼容51系列、MSP430系列、STM32/、CSR芯片等。 图 3.8 OLED显示屏3.5.2 四线串行信号线选择及时序图CS:OLED 片选信号。RST(RES):硬复位 OLED。DC:命令/数据标志(0,读写命令;1,读写数据)。SCLK:串行时钟线。在 4 线串行模式下,D0 信号线作为串行时钟线 SCLK。SDIN:串行数据线。在 4 线串行模式下,D1 信号线作为串行数据线 SDIN。图3.9 SPI模式写时序图3.5.3 OLED驱动芯片SSD1306SSD1306 的显存总共为 128*64bit 大小,分成了 8 页。每页包含了 128 个字节,其对应关系如表3.1所示,这样刚好是 128*64 的点阵大小。因为每次都是按字节写入的,然而这就存在一个问题,如果我们使用只写方式操作模块,那么,每次要写 8 个点,这样,我们在画点的时候,就必须把要设置的点所在的字节的每个位都搞清楚当前的状态(0/1?),否则写入的数据就会覆盖掉之前的状态,结果就是该显示的没有显示了,或者有些不需要显示的点显示出来了。这个问题在能读的模式下,我们可以先读出来要写入的那个字节,得到当前状况,在修改了需要更新的位之后再写进 GRAM,这样就不会影响到之前的状况了。因此我们在 STM32 的内部建立一个 OLED 的 GRAM (共 128*8 个字节),在每次更新时候,只是更新 STM32 上的 GRAM (实际上就是 SRAM),在修改完了之后,一次性把 STM32 上的 GRAM 写入到 OLED 的 GRAM。当然这个方法也有坏处,就是对于那些 SRAM很小的单片机(比如 51 系列)就比较麻烦了。表3.1 SSD1306显存与屏幕关系行(COL O-127)列(COM 0-63)SEG0SEG1SEG2···SEG125SEG126SEG127PAGE0PAGE1PAGE2PAGE3PAGE4PAGE5PAGE6PAGE7 4 软件设计4.1 PID简介及算法实现控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能主要由控制算法来实现。目前提出的控制算法有很多。根据偏差的比例(P)、积分(I)、微分(D)进行的控制,称之为PID控制。实际经验和理论分析都表明,PID控制,能够满足相当多工业对象的控制要求,至今仍是一种应用最为广泛的控制算法之一。4.1.1 PID简介在模拟控制系统中,调节器最常用的控制规律是PID控制,常规PID控制系统原理框图如图4.1所示,系统由PID调节器、执行机构及控制对象组成。图4.1 PID控制系统原理框图PID调节器是一种线性调节器,它根据给定值与实际输出值构成的控制偏差: 将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进行控制,故称为PID调节器。在实际应用中,常根据对象的特征和控制要求,将P、I、D基本控制规律进行适当组合,以达到对被控对象进行有效控制的目的。例如,P调节器,PI调节器,PID调节器等。4.1.2 PID算法实现PID算法是本系统的核心算法,它根据采样的数据与设定值进行比较得出偏差,对偏差进行P、I、D运算得到增量,从而改变PWM脉冲的占空比来实现对电机两端电压的调节,进而控制电机转速。其运算公式为: 因此要在单片机想实现PID控制就必须存在上述算法,其程序流程如图4.2所示。 图4.2 PID算法流程图4.2 主函数流程图系统上电显示第一界面,显示内容包含设计者院系信息及指导老师,当按下NEXT按键,进入第二界面,显示内容为毕业设计题目,当按下NEXT按键,系统依次初始化相关硬件设置,等待输入设定值,当设定好后,按下启动键,电机即可转动,同时系统进入PID控制调节,可通过屏幕显示的值来观察到实时速度。具体流程图如下图4.3。图4.3 主函数流程图4.3 定时中断速度采集4.3.1 STM32F103xx通用定时器简介 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作。其框图如图4.4。通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: 16位向上、向下、向上/向下自动装载计数器 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为165536之间的任意数值 4个独立通道: 输入捕获 输出比较 使用外部信号控制定时器和定时器互连的同步电路 如下事件发生时产生中断/DMA: 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 输入捕获 输出比较 支持针对定位的增量(正交)编码器和霍尔传感器电路图4.4 通用定时器框图4.3.2 速度采集原理及定时器流程图本系统中速度采集是一个十分重要的模块,它的精确度会直接影响到整个控制系统的精度。在设计中采用了光电传感器做为测速装置,其计算公式为: v= r/min从公式可知速度v的误差主要是由编码盘上的编码线的多少决定的,为了减少系统误差应尽量提高编码盘线数的数量,在本次设计中得的编码线数N为448,采样周期t为20ms,则速度计算具体程序流程如图4.5所示。图4.5 定时器中断处理流程图4.4 外部中断及中断处理流程图4.4.1 外部中断/事件控制器(EXTI)STM32F103xx有19个能产生事件/中断请求的边沿检测器。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。其框图如图4.6所示。EXTI控制器的主要特性如下: 每个中断/事件都有独立的触发和屏蔽 每个中断线都有专用的状态位 支持多达20个软件的中断/事件请求 检测脉冲宽度低于APB2时钟宽度的外部信号。参见数据手册中电气特性部分的相关参数。图4.6 外部中断控制器框图4.4.2 键盘中断处理流程图外部中断都是有矩阵键盘产生的,每当有按键按下,就会响应响应的中断,其流程图4.7如下:图4.7 键盘中断处理流程图5 系统测试结果5.1 系统调试数据通过对系统现场调试得出数据如表5.1所示,通过观察得出该系统比较合适的P、I、D三者的参数值为: =1.0, =0.3, =0.05。并且可以反映出PID调节器各校正环节的作用是:(1)比例环节:值的选取决定于系统的响应速度。增大能提高响应速度,减小稳态误差;但是,值过大会产生较大的超调,甚至使系统不稳定减小可以减小超调,提高稳定性,但过小会减慢响应速度,延长调节时间;(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强;(3)微分环节:能反映偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。通过数据分析可知,该系统完成了设计的任务及要求,证实了设计方案的可行性和设计方法的正确性。表5.1 系统调试数据次数设定设定设定设定(rpm)超调量调节时间(s)误差(%)11.00.10.06300084321.00.20.07300093231.00.30.06300053241.00.40.03300052151.00.30.05300041161.00.50.02300062371.00.30.0230006%2180.80.30.2300084390.80.40.23000943100.80.40.13000843111.20.5030006%54121.20.40.330007%54131.20.30.430006%645.2 系统效果图 结 论本设计的目的在于利用单片机实现PID算法产生PWM脉冲来控制电机转速。到目前为止通过对控制器模块、电机驱动模块、OLED显示模块、键盘输入模块、数字PID算法等进行深入的研究。完成了硬件电路的系统设计,软件设计,并且进行系统硬件的组装与软件集成调试。软件方面利用C语言进行编程,增强了程序的可移植性和灵活性。归纳起来主要做了如下几方面的工作:1、PID算法与PWM控制技术有机的结合;2、设计了速度检测电路,键盘输入电路,电机驱动电路;3、利用C语言进行程序设计;4、系