毕业设计(论文)-基于AT89S52单片机的小功率直流电机的测速和控制系统设计.doc_第1页
毕业设计(论文)-基于AT89S52单片机的小功率直流电机的测速和控制系统设计.doc_第2页
毕业设计(论文)-基于AT89S52单片机的小功率直流电机的测速和控制系统设计.doc_第3页
毕业设计(论文)-基于AT89S52单片机的小功率直流电机的测速和控制系统设计.doc_第4页
毕业设计(论文)-基于AT89S52单片机的小功率直流电机的测速和控制系统设计.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 1 页共 50 页 小功率直流电机的测速和控制小功率直流电机的测速和控制 摘要摘要 本设计采用两片 MCU(AT89S52) ,完成了小型直流电机转速的采集、计算、显示、键盘设定, 并将非均匀采样情况下的增量式积分分离 PID 控制算法应用于直流电机的 PWM 调速,实现了对电机转速的测量和 控制,解决了通常低采样周期时系统的超调以及 PID 算法的积分饱和问题。 关键词关键词 转速 PID 控制 mcu AT89S52 PWM MeasuringMeasuring AndAnd ControllingControlling TheThe RotationalRotational SpeedSpeed OfOf SmallSmall PowerPower DCDC ElectromotorElectromotor ZHANGZHANG Wu-jiangWu-jiang (Grade 02,Class 2,Major Electronic and Information Engineering,Shaanxi University of Technology,Hanzhong 723000,Shaanxi) Tutor,Lu chao AbstractAbstract This design use two set of MCU(AT89S52) , has completed small DC electromotor rotational speed sampling, calculating,displaying, the keyboard setting, And has applied the PID control theoretics to the modulation of PWM rotational speed of DC electromotor, measuring and the controlling the rotational speed of the electromotor, has solved out modulation and PID algorithm integral saturated problem. KeywordsKeywords Rotational Speed;PID control;mcu(AT89S52);PWM 第 2 页共 50 页 目录 引言 .4 1 设计方案论证 .4 1.1 系统结构方案论证.4 1.2 转速测量方案论证.4 1.3 电机驱动方案论证.5 1.4 键盘显示方案论证.5 1.5 PWM 软件实现方案论证.5 2 系统原理框图设计 .6 3 各模块的分析、计算与硬件电路设计 .6 3.1 速度测量电路的设计.6 3.1.1 转速/频率转换电路的设计.6 3.1.2 脉冲滤波整形电路的设计.6 3.2 电机驱动电路的设计3.7 3.3 LCD 显示电路与单片机的接口设计.8 5 系统各部分子功能程序设计 .10 5.1 电机转速测量程序设计.10 5.2 键盘程序设计.11 5.3 LCD 显示子程序的设计4.11 6 数字 PID 及其算法的改进 .13 6.1 PID 控制基本原理.13 6.2 三个基本参数 Kp,Ti,Td 在实际控制中的作用研究.14 第 3 页共 50 页 6.3 数字 PID 控制算法1.14 6.4 PID 算法的改进, “饱和”作用的抑制2.15 6.5 PID 控制算法的单片机程序实现.17 7 PWM 信号的单片机程序实现 .17 8 系统的调试过程与测试 .17 8.1 转速度测量部分调试.17 8.2 PID 各项系数赋初值 .17 8.3 实验调试和确定 PID 算法各项系数 .18 8.3.1 赋初值调试分析。.18 8.3.2 修改 PID 各项系数值调试分析 .18 8.3.3 PID 各项系数值的确定 .18 9 结束语 .19 注释 1.19 致谢: .19 参考文献 .19 附录 1:硬件总图 .20 附录 2:程序清单: .21 引言引言 目前见到的许多关于直流电机的测速与控制类文献中,虽然能实现直流电机的无级调速,但还 第 4 页共 50 页 存在一些问题,如无法与计算机直接接口,许多较为复杂的控制算法无法在不增加硬件成本的情况 下实现,控制器的人机界面不理想。总的来讲,控制器的智能化程度不高,可移植性差。虽然采用 PWM 芯片来实现电机无级调速的方案成本较低,但当控制器针对不同的应用场合增加多种附加功能 时,其灵活性不够,而且反而增加硬件的成本5。还有一些使用 PLC 控制器或高档处理器芯片 (如 DSP 器件)的文献,它们虽然具有较高的控制性能,但由于这些高档处理器价格过高,需要更 多的外围器件,因此也不具备在通常情况下大规模使用的条件。从发展趋势上看,总体的研究方向 是提出质量更高的算法和调速方案,以及在考虑成本要求的前提下选择适合这种算法的核心控制器。 1 1 设计方案论证设计方案论证 根据设计任务,要求调速采用 PID 控制器,因此需要设计一个闭环直流电机控制系统。该系统 采用脉宽调速,使电机速度等于设定值,并且实时显示电极的转速值。通过对设计功能分解,设计 方案论证可以分为:系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论 证,PWM 软件实现方案论证。 1.11.1 系统结构方案论证系统结构方案论证 方案一:采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出 PWM 控制信号。 方案二:采用两片单片机(AT89S52),其中一片做成 PID 控制器,专门进行 PID 运算和 PWM 控 制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向 PID 控制器提供 设定值和测量值,设定 PID 控制器的控制速度等。 方案一的优点是系统硬件简单,结构紧凑。但是其造成 CPU 资源紧张,程序的多任务处理难度 增大,不利与提高和扩展系统性能,也不利于向其他系统移植。方案二则与方案一相反,虽然硬件 增加,但在程序设计上有充分的自由去改善速度测量精度,缩短测量周期,优化键盘,显示及扩展 其它功能。与此同时,PID 控制算法的实现可以精益求精,对程序算法或参数稍加改动即可移植到 其他 PID 控制系统中。因此通过比较,选择方案二。 1.21.2 转速测量方案论证转速测量方案论证 方案一:采用记数的方法。具体是通过单片机记单位时间 S(秒)内的脉冲数 N,每分钟的转 速:M=N/S60。 方案二:采用定时的方法。是通过定时器记录脉冲的周期 T,这样每分钟的转速:M=60/T。 比较两个方案,方案一的误差主要是1 误差(量化误差) ,设电机的最低设计转速为 120 转/ 分,则记数时间 S=1s,所以其误差得绝对值|=|(N1)/S60-N/S60|=60(转/分) ,误差计 算公式表明,增大记数时间可以提高测量精度,但这样做却增大了速度采样周期,会降低系统控制 灵敏度。而方案二所产生的误差主要是标准误差,并且使采样时间降到最短,误差 第 5 页共 50 页 =60/(T1)-60/T,设电机速度在 1206000 转/分之间,那么 0.01sT0.5s,代入公式 得:0.00024|0.6(转/分) 。由此明显看出,方案二在测量精度及提高系统控制灵敏度等方 面优于方案一,所以本设计采用方案二。 1.31.3 电机驱动方案论证电机驱动方案论证 方案一:采用专用小型直流电机驱动芯片。这个方案的优点是驱动电路简单,几乎不添加其它 外围元件就可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全, 价格也比较便宜。 方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。这 个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性 不高。 方案三:采用由达林顿管组成的 H 型 PWM 电路。用单片机控制达林顿管使之工作在占空比可调 的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H 型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广 泛采用的 PWM 调速技术。 通过比较和对市场因素的考虑,本设计采用方案一,使系统的设计核心在 PID 控制上。 1.41.4 键盘显示方案论证键盘显示方案论证 方案一:采用 44 键盘,可直接输入设定值。显示部分使用 4 位数码管,优点是显示亮度大, 缺点是功耗大,不符合智能化趋势而且不美观。 方案二:使用 4 个按键,进行逐位设置。显示部分是使用支持中文显示的 LCD,优点是美观大 方,有利于人与系统的交互,及显示内容的扩展;缺点是成本高,抗干扰能力教差。 为了系统容易扩展、操作以及美观,本设计完全采用方案二。 1.51.5 PWMPWM 软件实现方案论证软件实现方案论证 脉宽调制的方式有三种:定频调宽、定宽调频和调宽调频。本设计采用了定频调宽方式,采用 这种方式的优点是电动机在运转时比较稳定,并且在采用单片机产生 PWM 脉冲的软件实现上比较方 便。对于实现方式则有两种方案。 方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在 几个 us。 方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定 的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范 第 6 页共 50 页 单片机(速度的 测量计算、输入 设定及系统控制) 单片机(PID 运算控制器、 PWM 模拟发生器) 电机 速度采集电路 电机驱动电路 键 盘 显示器 围。由于本设计采用了两片 AT89S52 单片机,MCU 资源充足,因此选择方案一。 2 系统原理框图设计 系统原理框图如图 2.1 所示,是一个带键盘输入和显示的闭环测量控制系统。主体思想是通 过系统设定信息和测量反馈信息计算输出控制信息。 图 2.1 系统原理框图 3 各模块的分析、计算与硬件电路设计 3.13.1 速度测量电路的设计速度测量电路的设计 3.1.13.1.1 转速转速/ /频率转换电路的设计频率转换电路的设计 理论上,是先将转速转化为某一种电量来测量,如电压,电流等。设计中将转速测量转化为电 脉冲频率的测量。基于这一思想,可以采用一对霍尔感应传感器,使输出信号的一只在转轮一侧固 定,另一只则粘在对应位置的转轮上,这样,电机每转一圈,传感器将会输出一个脉冲,然后将脉 冲放大、整形后即可通过单片机测量其频率求出转速。实际实验中,由于市场采购原因,暂用三极 管输出型红外光电耦合器代替霍尔传感器。如图 3.1 所示,在电机转轮一处开孔,这样,每转一圈, 三级管(红外接收头)透光导通一次,OUT 端输出一个上脉冲,即完成了转速频率的转换 3.1.23.1.2 脉冲滤波整形电路的设计脉冲滤波整形电路的设计 由于电机在转动的过程中有很大的晃动,而且本设计中测量装置做工粗糙,因此所获得的脉冲 信号参杂有高频噪声或误动脉冲。为了提高测量的准确,且尽可能地减少错误,设计中如图 3.2 所 示 OUT 输出端加一电容接地。为了既能抑制噪声又不影响测量,电容值 C 的选择很重要。根据实际 测量,设计中所使用的直流电机转速可达 6000 转/分。其所产生的脉冲周期 T=1/(6000/60) S=0.01S,一个周期内,脉冲持续时间约为 1/8T=0.00125S,低电平时间约为 7/8T=0.00875S,由于 接收头感光导通电阻很小,所以电容迅速充电,当低电平到来时开始放电,为保证下一个脉冲的检 测,放电时间 t 应小于低电平持续时间 7/8T,根据电路,t=R2C0.00875,代入 R2 值解不等式 可得:C0.000017F。单位换算得 C0.017F ,为了方便整形,实际设计中 C=0.001F 。由于单 第 7 页共 50 页 M B1 Motor Q1 亮亮亮亮亮 DS1 亮亮亮亮亮 470 R1 510 R2 PWM(亮亮亮亮亮亮亮 CGND OUT VCC 510 R2 P3.2 Q1 亮亮亮亮亮 VCC 0.001uF C1SN7406N SN7406N 片机中断 I/O 口的需要输入信号是正规的矩形脉冲,所以电路的脉冲整形电路采用 74 系列反向器 74LS06 进行两次反向后输入单片机。 图 3.1 转速/频率转化电路 图 3.2 脉冲滤波整形电路 3.23.2 电机驱动电路的设计电机驱动电路的设计3 本设计采用目前市场上较容易买到的 L298N 直流或步进电机驱动芯片,它采用单片集成塑装, 是一个高电压、大电流全双桥驱动器,由标准的 TTL 电平控制。L298N 支持 50V 以内的电机控制电 压,在直流运转条件下,可以通过高达 2A 的电流,因此它满足了一般小型电机的控制要求。其内 部原理结构如图 3.3。接法见图 3.4,图中二极管的作用是消除电机的反向电动势,保护电路,因 此采用整流二极管比较合适。PWM 控制信号由 in1、in2 输入。如果 in1 为高电平,in2 为低电平时 电机为正向转速,反之 in1 为低电平,in2 为高电平时,电机为反向转速。本设计将 in2 直接接地, 即采用单向制动的方式。通过实验,本设计中不必使用双向制动也可达到设计要求。 第 8 页共 50 页 OUT4 IN4 IN3 GND ENA VS OUT3 SENSA OUT2 IN1 IN2 VSS ENB OUT3 SENSB L298N U3 VCC PWM OUT BA D4D5 D6D7 亮亮亮亮亮亮VM MGND 亮亮亮亮亮亮亮亮亮 M B1 Motor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 LCD RT12232F VSS VCC VO RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 亮亮亮亮P1亮 P0.2 P0.1 P0.0 10K R VCC GND 亮亮亮 图 3.3:L298N 内部原理结构图 图 3.4:电机驱动电路 3.33.3 LCDLCD 显示电路与单片机的接口设计显示电路与单片机的接口设计 设计中采用的 LCDRT12232F 是一种内置 8192 个 16*16 点汉字库和 128 个 16*8 点 ASCII 字 符集图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及 12832 全点阵液晶显示器组成。可完 成图形显示,也可以显示 7.52 个(1616 点阵)汉字,与外部 CPU 接口采用并行或串行方式控制。 本设计采用并行方式控制,LCD 与单片机的通讯接口电路如图 3.5 所示采用直连的方法,这样设计 的优点是在不影响性能的条件下还不用添加其它硬件,简化了电路,降低了成本。 4 系统总程序框图设计 系统程序程序框图如图 4.1 所示,概述了程序的总体结构和工作过程。 第 9 页共 50 页 开始 系统初始化 显示初始化 调用按键子程序 系统总控制器PID 控制器 开始 系统初始化 PID 参数初始化 空操作(循环用) 有键按下? 无 键处理子程序 PID 参数计算 中断 0 接收设定值子程序 中断返回 中断 1 接收测量值子程序 中断返回 PID 计算处理 计算 PWM 定时值 定时中断 0、外中断 0 测量计算转速 发送测量值 有 中断返回 定时中断 1 系统时间记时、 处理 中断返回 属于总 控制器 通过按键完 成发送设定 值 图 3.5:LCD 显示电路与单片机的接口 图 4.1 系统总程序框图 5 系统各部分子功能程序设计 5.15.1 电机转速测量程序设计电机转速测量程序设计 第 10 页共 50 页 设计中考虑到电机的工作环境一般比较恶劣,因此除了硬件外,从程序上除了要更高的精确度 也需要进行更多的抗干扰设计,从而实现软件的大范围检错、纠错或丢弃错误等。在程序的设计过 程中,对严重不符合要求的测量数据(如大于 6000 转对应的数据)进行了丢弃处理,而对于正常 范 图 5.1 外中断 0 服务子程序框图 围内的数据错误采用了采 5 取 3 求平均的算法(即采集 5 个数据,去掉 一个最大值一个最小值, 否 为 “0” 为 “1” 否 否 是 是 否 是 进入中断 检测中断标志 开定时器记时 设中断标志为“1” 系统时间初始化 中断返回 关闭定时器及总中断 判断数据是否正常 保存数据 是否“采 5”处理? 说明:当电机转速过低时, 如果进行采 3 取 5 处理将 会使控制速度太低,同时 低速状态的错误发生几率 较小,所以不采用采 5 取 3 求平均处理。 完成 5 组数据采集? “取 3“求平均处理 计算速度值 速度值是否正常? 发送速度值到 PID 控制器 系统时间初始化 定时器初值初始化 中断返回 第 11 页共 50 页 键盘服务子程序 位选键按下否? 加 1 键按下否? 减 1 键按下否? 位选循环右移 调用加 1 子程序 调用减 1 子程序 否 否 否 否 发送键按下否? 是 是 是 键值处理、保存、显示 向 PID 控制器发送 返回 然后将剩余 3 数据求平均) 。实验表明,此方法降低了系统采集转速中出现的错误。对于转速的测 量方法,是通过速度脉冲信号下降沿触发单片机的外中断,中断服务子程序在某一个脉冲的下降沿 开启定时器记时,然后在下一个下降沿关闭定时器,通过对定时器数据进行运算处理可以得到信号 周期进而得到速度值。其程序框图如图 5.1。可以看出,此方法下的采样周期是随转速变化的,转 速越高采样越快。通过这种非均匀的速度采样方式可以使电机在高速情况下,实现高速度高精度的 控制。 5.25.2 键盘程序设计键盘程序设计 键盘程序设计的任务是赋予各按键相应的功能,完成速度设定值的输入和向 PID 控制器的发送。 4 只按键一只用来位循环选择,告诉单片机要调整的是设定值的个位、十位、百位还是千位。第二、 三只按键分别是减 1、加 1 减。在没有位选择的情况下对设定值整体进行减 1、加 1;在有位选择 的情况下仅对相应位进行减 1、加 1,并且当按着不释放按键时可以实现快速连续减 1、加 1,同时 允许循环减、加(既当某位为 0 时,在减 1 则为 9,某位为 9 时,加 1 则为 0) 。最后一只按键是确 认发送键,按下它后,单片机将设定值送给 PID 控制器,从而实现设定控制。程序框图如图 5.2。 图 5.2:键盘电路程序框图 5.35.3 LCDLCD 显示子程序的设计显示子程序的设计4 LCD 的详细使用过程可参阅对应型号的使用手册。仅在本小节强调以下内容:LCD 使用的关 键是根据显示需要正确地对其进行初始化设置,而一般情况下不用考虑如何向它读写指令或数据, 因为制造厂商所给的使用资料里就附有驱动程序,如果没有也可以从网上搜索下载得到。然而我们 必须清楚那些初始化设置之间的关系,以及它是如何利用设置读取、显示数据字符的,不然就会发 第 12 页共 50 页 系统延迟 设定使用基本指令集 清屏,地址指针归位 设定游标的移动方向 及指定显示的移位 返回 LCD 初始化子程序 调入待显示数据指针 调用写入指令子程序写入 DDRAM 地址 调用数据输入子程序 计算 DDRAM 地址 调待显示屏幕位置数据 待显示数据指针加 1 一行数据显示完? 否 返回 显示完所有行? 否 是 是 LCD 写入显示数据子程序 生一些不可预料的错误,例如表 5.3 所示。因此,熟读 LCD 驱动芯片使用手册也是一个关键环节。 表 5.3 LCD 中文字型的编码写入地址对照 在 RT12232F 中,CGRAM 字型与中文字型的编码只可出现在每一 Address Counter 的开始位置, 图表中最后一行为错误的填入中文码位置,其结果会产生乱码象。 80818283848586878889 HLHLHLHLHLHLHLHLHLHL SHAANXI.LIGONGXUE. 陕西理.物理系02电. 陕西理.物理系02电. 图 5.4 LCD 显示初始化程序和写数据程序框图 第 13 页共 50 页 u上 上上 上t上 上上 上Kp上 上e上 上上 上t上 上上 上 1 Ti 上 上上 上 0 t上 上e 上 上上 上上 上上 上上 上d上 上上 上 u上 上上 上t上 上上 上Kp上 上e上 上上 上t上 上上 上 1 Ti 上 上上 上 0 t上 上e 上 上上 上上 上上 上上 上d上 上 上 上 Td上 上d上 上上 上e上 上上 上t上 上 上 上 dt 上 上 u上 上上 上t上 上上 上Kp上 上e上 上上 上t上 上 u上 上上 上t上 上上 上Kp上 上e上 上上 上t上 上上 上 Td上 上d上 上上 上e上 上上 上t上 上 上 上 dt 上 上 R(t) Kp Ki/S KdS 控制对象 C(t) U(t) E(t ) 通常 LCD 的初始化包括复位设置、清除显示、地址归位、显示开关、游标设置、读写地址设置、 反白选择以及睡眠模式等等。实际中根据需要,正确、灵活地修改这些设置可以达到较为满意的显 示效果。LCD 中所有汉字、数字和字符都可以通过它的 ASCII 码来访问显示;图象的显示是通过将 相关软件(提取汉字、图象点阵数据程序)产生的数据按照 LCD 手册的要求完成响应设置后写入即 可。由于本设计中没有使用到图形显示,所以没有详述。对于系统使用的汉字、字符和数据的 LCD 显示初始化程序和写数据程序框图见图 5.4。 6 数字 PID 及其算法的改进 6.16.1 PIDPID 控制基本原理控制基本原理 PID 控制即比例(Proportional) 、积分(Integrating) 、微分(Differentiation)控制。在 PID 控制系统中,完成 PID 控制规律的部分称为 PID 控制器。它是一种线形控制器,用输出 y(t)和 给定量 r(t)之间的误差的时间函数 e(t)=r(t)-y(t). PID 控制器框图如图 6.1。实际应用中,可以 根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,如: 6.1PID 控制算法框图 比例(P)控制器: 比例积分(PI)控制器: 比例+积分+微分(PID)控制器: 比例+微分(PD)控制器: 第 14 页共 50 页 上 上 上 上 上 上 上 上 上 上积积上 上,上 上 上 上 上 上 上 上 上 上积积上 上时时则则上 上: 1 Ti 上 上上 上 0 t e上 上上 上上 上上 上上 上d上 上 上 上 Ts Ti 上 上上 上 j上 上0 k e上 上上 上j上 上 上 上 上 上 上 上 上 上 上 上 上 上 上 上: Td de上 上上 上t上 上 dt 上 上 TD tS上 上 e上 上上 上k上 上上 上e上 上上 上k上 上1上 上 上 上 上 上应应上 上PID上 上 上 上变变为为: u上 上上 上k上 上上 上KP上 上e上 上上 上k上 上上 上 TS TI 上 上上 上 k j上 上0e 上 上上 上j上 上上 上 TD TS 上 上上 上e上 上上 上k上 上上 上e上 上上 上k上 上1上 上 上 上 上 上上 上u0上 上 u上 上上 上k上 上上 上KPe上 上上 上k上 上上 上KI上 上上 上 k j上 上0e 上 上上 上j上 上上 上KD上 上e上 上上 上k上 上上 上e上 上上 上k上 上1上 上 上 上上 上u0上 上 上 上,u上 上上 上k上 上为为上 上k上 上 上 上样样时时上 上 上 上 上 上 上 上; KP上 上为为上 上 上 上 上 上 上 上 上 上 上 上;KI上 上为为积积上 上 上 上 上 上 上 上 上 上,KI上 上KP上 上 TS TI;KD上 上为 为上 上 上 上 上 上 上 上 上 上 上 上,KD上 上KP上 上 TD TS ; TS上 上为为上 上样样上 上 上 上. 式中,Kp 为比例运算放大系数,Ti 为积分时间,Td为微分时间。 6.26.2 三个基本参数三个基本参数 KpKp,TiTi,TdTd 在实际控制中的作用研究在实际控制中的作用研究 通过使用 MATLAB 软件中 SIMULINK 的系统仿真功能对 PID 算法进行仿真,现将结果作以下概 括。 比例调节作用:是按比例反映系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用 用以减少偏差,属于“即时”型调节控制。比例作用大,可以加快调节,减少误差,但是过大的比 例,使系统的稳定性下降甚至造成系统的不稳定。 积分调节作用:使系统消除静态误差,提高无误差度。因为有误差,积分调节就进行,直至无 误差,积分调节停止,积分调节输出一常值,属于“历史积累”型调节控制。积分作用的强弱取决 与积分时间常数 Ti,Ti 越小,积分作用就越强。反之 Ti 大则积分作用弱,加入积分调节可使系统 稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成 PI 调节器或 PID 调节器。 微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差的变化趋势, 因此能产生超前的控制作用,在偏差还没有形成之前,以被微分调节作用消除,因此属于“超前或 未来”型调节控制。因此,可以改善系统的动态性能。在微分时间选择合适的情况下,可以减少超 调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。 此外,微分反映的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用, 需要与另外两种调节规律相结合,组成 PD 或 PID 控制器。 6.36.3 数字数字 PIDPID 控制算法控制算法1 在单片机数字控制系统中,PID 控制算法是通过单片机程序来实现的。对于数字信号处理,不 论是积分还是微分,只能用数值计算去逼近。当采样周期相当短时,用求和代替积分,用差商来代 替微商,使 PID 算法离散化,将描述连续时间 PID 算法的微积分方程,变为描述离散时间 PID 算法 的差分方程。其算法变换如图 6.2注释 1。 图 6.2 数字 PID 算法 图中 PID 算法为非递推形式,称为全量算法。为了求和,必须将系统偏差的全部过去值 e(j) 第 15 页共 50 页 上 上 上 上上 上上 上 上 上PID上 上 上 上上 上:u上 上上 上k上 上上 上KP上 上e上 上上 上k上 上上 上 TS TI 上 上上 上 k j上 上0e 上 上上 上j上 上上 上 TD TS 上 上上 上e上 上上 上k上 上上 上e上 上上 上k上 上1上 上 上 上 上 上上 上u0上 上上 上 上 上 u上 上上 上k上 上1上 上上 上KP上 上e上 上上 上k上 上1上 上上 上 TS TI 上 上上 上 k上 上1 j上 上0e 上 上上 上j上 上上 上 TD TS 上 上上 上e上 上上 上k上 上1上 上上 上e上 上上 上k上 上2上 上 上 上 上 上上 上u0两两上 上 上 上减减上 上 上 上 上 上 上 上 上 上 上 上 上 上增增上 上 上 上 上 上: 上 上u上 上上 上k上 上上 上u上 上上 上k上 上上 上u上 上上 上k上 上1上 上 上 上KP上 上上 上e上 上上 上k上 上上 上e上 上上 上k上 上1上 上上 上 TS TI 上 上e上 上上 上k上 上上 上 TD TS上 上 上 上 e上 上上 上k上 上上 上2上 上e上 上上 上k上 上1上 上上 上e上 上上 上k上 上2上 上 上 上上 上 对对上 上 上 上进进上 上归归上 上 上 上 上 上:上 上u上 上上 上k上 上上 上q0上 上e上 上上 上k上 上上 上q1上 上e上 上上 上k上 上1上 上上 上q2上 上e上 上上 上k上 上2上 上 上 上 上 上q0上 上KP上 上1上 上 TS TI 上 上 TD TS上 上 ,q1上 上 上 上KP上 上1上 上2上 上TD TS上 上 , q2上 上KP上 上TD TS u上 上上 上k上 上上 上 上 上u上 上上 上k上 上上 上u上 上上 上k上 上1上 上上 上q0上 上e上 上上 上k上 上上 上q1上 上e上 上上 上k上 上1上 上上 上q2上 上e上 上上 上k上 上2上 上上 上u上 上上 上k上 上1上 上 上 上 上 上q0上 上KP上 上1上 上 TS TI 上 上 TD TS上 上 q1上 上 上 上KP上 上1上 上2上 上TD TS上 上 上 上q2上 上KP上 上 TD TS (j=0,1,2)值都存储起来。这种算法得出了控制量的全量输出 u(k),是控制量的绝对数值。在 控制系统中,这种控制量决定了执行机构的的位置,比如,在本设计电机控制系统中,这种算法的 输出对应了相应的速度值。因此,人们将这种算法称为“位置 PID 算法” 。 除了“位置 PID 算法”以外,常见的还有增量式 PID 控制算法。当执行机构需要的不是控制量 的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用 PID“增量算法” 。此算法可 由“位置 PID 算法”求出。如图 6.3 所示增量式 PID 算法推理过程。 综合两种算法,本设计是产生一个 PWM 信号去控制直流电机,PWM 信号的高电平持续时间对应 的控制量是一个绝对值,而不是一个控制量的增量。但是如果采用“位置 PID 算法”则需要考虑控 制量的基值 u0,即 Kp=0 时的控制量,而直接用增量式 PID 算法只能计算出控制量的增量。所以,设 计中,先采用增量式控制控制算法计算出控制量的增量,然后加上上一次的控制量即可以得到本次 的控制量,其表达式见图 6.4。综合来说,本系统的 PID 算法是以增量式算法实现“位置 PID 算法” 的结果,使控制得到简化、容易实现。 图 6.3 增量式 PID 算法 图 6.4 本设计 PID 算法表达式 6.46.4 PIDPID 算法的改进,算法的改进, “饱和饱和”作用的抑制作用的抑制2 抑制 PID 算法的“饱和”作用,通常有两种方法。一种算法是遇限削弱积分法,其基本思想是: 一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说, 在计算u(k)时,将判断上一时刻的控制量u(k)是否已超出限制范围,如果已超出,那么将根 据偏差的符号,判断系统输出是否在超调区域,由此决定是否将相应偏差计入积分项。 另一种算法是积分分离法。减小积分饱和的关键在于不能使积分项累积过大。第一种修正方法 是一开始就积分,但进入限制范围后即停止累积。后者介绍的积分分离法正好与其 相反,它在开 始时不进行积分,直到偏差达到一定的阀值后才进行积分累计,算法流程图见图 6.5。图中, A,B,C 分别代表 q0,q1,q2。这样,一方面防止了一开始有过大的控制量,另一方面即使进入饱和 后,因积分累积小,也能较快退出,减少了超调。 由于本系统的控制对象是一个具有惯性或称其为滞后特性的直流电机,一方面要求控制要尽可 能高的反映速度,另一方面也要尽可能减少超调。因此,积分分离法比较适合本系统。 第 16 页共 50 页 开始 PID 参数初始化 取给定值 r(k)和测量值 c(k) |e(k)| e(k)=r(k)-c(k) u(k)=q0e(k)+ q1e(k-1)+ q2e(k-2) u(k)= q0e(k)-f(k-1) u(k)= u(k)+u(k-1) f(k)= q1e(k) 输出 u(k) g(k-1)=g(k) f(k-1)=f(k) e(k-1)=e(k) 返回 综合上面关于 PID 算法的研究,已经得出一个针对本系统的 PID 算法“增量式积分分离 PID 控制算法” 。在此控制算法中,误差较大时采用的是 PD 算法控制。 在 PID 控制器的实现过程中,发现不同的电机除了惯性不同外,还有一个参数不容忽略,那 就是电机在转动过程中的摩擦力。由于摩擦力总是阻碍电机转动,所以相当于额外的给控制量对应 的电动机转矩加了一不定量的负转矩。如果 PID 的输出的控制增量对应的转矩为正,则会抵消一部 分增量,但如果 PID 输出的控制增量对应的转矩为负,则会助长这一增量。如此以来,如果电机在 加速过程中使用和减速过程中同样的 PID 参数,就有可能出现加速欠条,减速超调的情况。实验中, 也证明了这一分析的正确性。 解决这一问题的方法是利用微分项的校正作用,在电机加速状态, 和减速状态采用不同的微分系数,即在不同的时段采用不同的微分系数,其中加速时微分系数为 Kd1,减速时微分系数为 Kd2。这样系统的控制算法就成为“变系数增量式积分分离控制算法”了, 可以通过设定参数得到更佳的校正作用。 图 6.5 增量式积分分离 PID 算法流程图 第 17 页共 50 页 6.56.5 PIDPID 控制算法的单片机程序实现控制算法的单片机程序实现 要编写一个已知算法的单片机程序,首先要考虑的就是数据的结构和存储方式了。因为它直接 影响到系统的控制精度,以及 PID 算法的实现质量。本系统之所以专门采用一片单片来实现 PID 算 法,就是因为从一开始的设计思路就是尽可能高的提高系统的控制精度。要提高系统的控制精度, 在计算过程中仅取整数或定点小数是不够的,所以本设计采用三字节浮点数运算。对于 AT89S52 单 片机而言,有足够的内存去存储和处理这些数据。另外,为了使程序的参数修改方便,更易于应用 到其他 PID 控制系统中去,在一开始的参数赋值程序中,参数是以十进制 BCD 码浮点数存储的,参 数赋值完成后,紧接着就是对参数进行二进制浮点数的归一化处理,以及复合参数 q0,q1,q2等的计 算。这些工作在系统启动后迅速就完成了,之后 PID 控制器只进行 PID 核心控制算法的计算。PID 算法的程序框图如图 6.5 所示算法。由于本系统采用的是单级单向调速, 所以当 PID 控制算法的 输出结果 u(k)为负数时就将其清另零了,当大于系统饱和值时,赋值 u(k)为饱和值。 7 PWM 信号的单片机程序实现 理论上,只要 PWM 脉冲的周期正比于 PID 控制算法的输出结果结果。具体实现过程中,取 u(k)的整数部分(记为:UT)保存,然后用 PWM 信号的周期值减去 UT 所得值即为定时器 1 的初 值(记为:INIT) 。其程序框图见图 7.1。 图 7.1:产生 PWM 控制信号程序框图。 8 系统的调试过程与测试 8.1 转速度测量部分调试转速度测量部分调试 将数字示波器探头加在转速脉冲整形电路输出端,使电机处于某一稳定转速下,通过比较示波 器显示的频率和 LCD 显示的实测值,如表 8.1,发现转速测量误差不会大于 1,从而验证了转速测 量部分设计的正确。之所以一次通过实验,不用修改,是因为之前进行了反复的软件调试与仿真。 8.2 PID 各项系数赋初值各项系数赋初值 电机启动时,PID 控制器接收第一组设定值和实测值,通过程序计算得到误差值 e(k)。此时, 系统初始化 e(k-1)、e(k-2)、u(k) 、u(k-1)值为 0。由于一开始系统只进行 PD 运算,所以要获得合 适的电机启动转矩,比例系数 Kp 和微分系数 Td1 的计算如下。 首先进行一次开环实验,实验数据如表 8.2。 定时器 0 中断 将 PWM 输出端置高电平 “1” 装入 50ms 初值 设定时器 1 中断优先级最高 中断返回 定时器 1 中断 设定时器 0 中断优先级最高 将 PWM 输出端清零 装入 PWM 信号初值 INIT 中断返回 第 18 页共 50 页 u(k)400050006000 转速 N113422163263 表 8.2 开环实验数据表 为了确定 Kp,初步赋值 T=2.4,Td1=4。设电机启动时速度设定为 1000 转/分,则 e(k)=1000,e(k) -e(k-1)=1000,从开环实验数据可以看出,若要电机在第一时间以较大转矩启动,那么 u(k)应大 于 4000,计算时设 u(k)=4000,则, =4000 ,代入各参数值得 Kp=2.33。 )1()( 1 )()(keke T Td keKku P 现在暂不考虑电机转动摩擦得影响,使 Td2=Td1=4,且设当误差值小于 =100 时进行 PID 算 法。PID 算法的比例系数也适用 Kp,积分系数初步赋值 1.2,微分系数 Td=Td1=4。 8.3 实验调试和确定实验调试和确定 PID 算法各项系数算法各项系数 调试过程经历了一下几个步骤 8.3.1 赋初值调试分析。赋初值调试分析。 将各参(系)数已赋初值的程序编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论