基于单片机的智能PID控制器设计.docx_第1页
基于单片机的智能PID控制器设计.docx_第2页
基于单片机的智能PID控制器设计.docx_第3页
基于单片机的智能PID控制器设计.docx_第4页
基于单片机的智能PID控制器设计.docx_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

华北水利水电大学毕业设计(论文) 存档编号 毕 业 设 计题目 基于单片机的PID控制器设计 学 院 专 业 姓 名 学 号 指导教师 完成时间 教务处制49独立完成与诚信声明本人郑重声明:所提交的毕业设计(论文)是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,郑重确认没有剽窃、抄袭等违反学术道德、学术规范的侵权行为。文中除已经标注引用的内容外,不包含其他人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了谢意。本人完全意识到本声明的法律后果由本人承担。毕业设计(论文)作者签名: 指导导师签名: 签字日期: 签字日期:毕业设计(论文)版权使用授权书本人完全了解有关保管、使用毕业设计(论文)的规定。特授权可以将毕业设计(论文)的全部或部分内容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交毕业设计(论文)原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。毕业设计(论文)作者签名: 导师签名:签字日期: 签字日期:目 录摘要IAbstractII第1章 绪论11.1 课题的提出及研究意义11.2 PID控制技术的发展及趋势11.3 课题研究的内容2第2章 PID原理及应用42.1 模拟PID调节器42.2 数字PID控制器52.2.1 模拟PID控制规律的离散化52.2.2 数字PID控制器的差分方程52.2.3 常用的控制方式52.2.4 PID算法的两种类型62.3 数字PID控制的参数选择72.3.1 数字PID参数的原则要求和整定方法72.3.2 常用的简易工程整定法72.4 智能PID控制算法82.4.1 智能PID控制算法的设计82.4.2 模糊PID控制算法8第3章 硬件设计93.1 系统的总体框图93.2 单片机系统93.2.1 S12XS系列引脚图103.2.2 时钟电路113.2.3 复位电路123.3 驱动电路和电源123.4 测速模块133.5 拨码开关15第4章 软件设计164.1 程序设计思路164.2 程序设计流程图174.3 程序设计174.3.2 主程序模块的设计174.3.3 PID功能实现模块的设计184.3.4 中断测速模块程序的设计19第5章 系统调试215.1 软件调试215.2 系统调试与结论215.2.1 软件界面215.2.2 调试结果22参考文献24致谢25附录一 原理图26附录二 系统整体程序27附录三34附录四43附录五45基于单片机的PID控制器设计摘要PID控制是一种应用非常广泛的控制技术,在工业生产和科学发展中起着关键作用。简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立数学模型的确定性系统。然而,在工业生产过程中往往具有非线性,时变不确定性,难以建立精确的数学模型,应用传统PID控制,往往不能达到理想的控制效果。本设计是在传统PID的基础上,加入智能控制的方法,设计了智能PID控制器。该控制器是在传统PID控制的基础上,依靠准确识别误差的特征而做出相应的决策来调整PID的三个参数。系统在硬件在线仿真调试环境下,将数据直观的在虚拟示波器上显示出来,以控制直流电机转速为例,简单分析证明了智能PID控制算法较传统的PID算法的优越性。本文依靠灵活的控制方式,使得系统本来处于矛盾地位的快速性、准确性、和稳定性在这种控制算法下兼得。系统具有较好的控制效果和兼容性,可自适应环境变量。关键词:单片机,PID控制,PID,直流电机Design of PIDcontroller based on MCUAbstractPID control is a very wide application of control technology, plays a key role in industrial production and scientific development. Simple, robust and high reliability are widely used in industrial process control, especially for the establishment of a mathematical model of the deterministic system. However, in the process of industrial production, it is often nonlinear and time-varying, it is difficult to establish accurate mathematical model, and it can not achieve the ideal control effect by applying the traditional PID control.This design is based on the traditional PID, adding intelligent control method, designed the intelligent PID controller. The controller is based on the traditional PID control, and the three parameters of the PID are adjusted by the characteristics of the accurate identification error. System in the on-line simulation of hardware debugging environment, the data directly in the virtual oscilloscope display, in order to control the speed of DC motor, for example, simple analysis proved intelligent PID control algorithm is better than the traditional PID algorithm is superior.This article relies on the flexible control mode, which makes the system have in the contradictory position of rapidity, accuracy, stability, and in this control algorithm have your cake and eat it. The system has good control effect and compatibility, adaptive environment variables.Keyword:MCU,PID control, PID,DC motor第1章 绪论1.1 课题的提出及研究意义PID控制是最早发展起来的控制策略之一,由于其简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立数学模型的确定性系统。而实际工业生产过程往往具有非线性性、时变不确定性,难以建立精确的数学模型,应用常规PID控制器不能达到理想的控制效果。为了弥补常规PID的不足之处、改善控制效果,本文探讨并研制了一种基于MC9S12XS128单片机的智能算法基础上的PID控制器,通过单片机来实现智能PID控制算法。并借助于直流电机调速过程控制系统进行试验。1.2 PID控制技术的发展及趋势自从上世纪30年代以来,自动化技术获得惊人的成就,现在在工业生产和科学发展中起着关键作用。当前,自动化装置已成为大型设备不可分割的一部分。可以说,如果不配备适当的自动化设备,大型生产过程根本无法进行。事实上,自动化水平高低已经成为衡量工业企业现代化的一个重要标志。传统的过程控制中对液位高度等参数控制都采用PID控制,可以说获得了很好的效果。在生产过程中,PID控制已经成为历史最悠久、生命力最强的基本方式。此后,随着计算机和PLC的发展,计算机和PLC与模糊PID控制技术完美的结合,可以通过计算机控制PLC产生PID参数,控制被控对象以及反馈数据给计算机进行处理。模糊控制是近十几年来迅速发展的一项技术,与神经网络及专家控制并称为智能控制,但由于其简单实用目前已成功应用于各种控制系统中。模糊控制是以模糊集合论、模糊语言变量及模糊逻辑推理为基础的一种计算机数学控制方法属于非线性控制方法。由于引入专家的逻辑思维方式使得模糊控制器具有一定的自适应控制能力因而特别适用于难于用精确数学模型描述的系统并且有很强的鲁棒性和稳定性。模糊控制是一种基于规则的控制。它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取、动态特性不易掌握或变化非常显著的对象非常适用。基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统的语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。模糊控制算法是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。模糊控制系统的鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,尤其适合于非线性、时变及纯滞后系统的控制。随着工业的发展,对象的复杂程度不断加深,尤其对于大滞后、时变的、非线性的复杂系统:其中有的参数未知或缓慢变化;有的带有延时或随机干扰;有的无法获得较精确的数学模型或模型非常粗糙。加之,人们对控制品质的要求日益提高,常规的PID控制的缺陷逐渐暴露出来。对于时变对象和非线性系统,传统的PID控制更是显得无能为力。因此常规PID控制的应用受到很大限制和挑战。人们在对PID应用的同时,也对具进行了各种改进。主要体现在以下两个方面:一是对常规PID本身结构进行改进,即变结构PID控制。另一方面,专家控制、模糊控制和神经网络控制是目前智能控制中最为活跃的领域,它与常规的PID控制相结合,扬长避短,发挥各自的优势,形成所谓的智能PID控制。这种新型控制器己经引起人们的普遍的关注和极大的兴趣,并己得到较为广泛的应用。它具有不依赖精确数学模型的特点,对系统参数变化具有较好的鲁棒性。智能控制(Intelligent control)是一门新兴的理论和技术,它是传统控制发展显地提高了系的高级阶段,主要用来解决那些用传统方法难以解决的复杂系统的控制,其中包括智能机器人系统,复杂工业过程控制系统,交通运输系统,航天航空系统等。近年来,智能控制与常规PID控制相结合,形成所谓智能PID控制。它简化了建模程序,算法简单,明统的控制品质,引起了国内外学者的广泛关注,已经成为当前控制领域研究热点之一。1.3 课题研究的内容本文主要是用单片机来实现智能PID控制系统,采用MC9S12XS128单片机为主控制芯片的设计方法。本文具体研究内容包括以下几个方面:第一章 提出研究课题第二章 阐述PID的原理及其应用第三章 以控制直流电机转速为例,构造本系统的PID控制的硬件设计第四章 用MC9S12XS128单片机为基础,设计系统所有程序第五章 系统调试与仿真并得出结论第2章 PID原理及应用2.1 模拟PID调节器一、模拟PID控制系统组成 图2-1 模拟PID控制系统原理框图二、模拟PID调节器的微分方程和传输函数PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。 1、PID调节器的微分方程 式中 2、PID调节器的传输函数 三、PID调节器各校正环节的作用1、比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。2、积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。3、微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。2.2 数字PID控制器2.2.1 模拟PID控制规律的离散化表2-2 模拟PID控制规律的离散化模拟形式离散化形式2.2.2 数字PID控制器的差分方程式中 称为比例项 称为积分项 称为微分项2.2.3 常用的控制方式 1、P控制 2、PI控制 3、PD控制 4、PID控制 2.2.4 PID算法的两种类型 1、位置型控制 式中,T采样周期,必须使T足够小,才能保证系统有一定的精度;e(n)-第n次采样的偏差值e(n-1)-第(n-1)次采样的偏差值;n-采样序号,n=O,1,.2u(n)-第n次采样的输出u0-基准值 2、增量型控制 位置式PID算法的缺点是:由于全量输出,所以每次的输出均与过去的状态有关,计算时要对误差进行累加。计算运行工作量大,而且如果计算机出现故障,会引起执行机构位置的大幅度变化,这种情况往往是生产实践不允许的。在某些场合会造成很严重的生产事故,因此就利用增量式PID控制算法,所谓增量式PID控制是数字控制器的输出只是控制量的增量。增量式PID算法的优点:动由于微机输出增量,所以误动作影响小,必要时可用逻辑判的方法去掉。在位置式控制算法中,由手动到自动切换时,必须首先使微机的输出值等于阀门的原始开度,即u(n-1),才能保证手动/自动无扰动切换,这将给程序设计带来困难。而增量式设计只与本次误差值有关,与阀门原来的位置无关,因此增量式容易实现手动/自动无扰动切换。不产生积分失控,所以容易获得较好的调节效果。但是这种算法也有不足之处:积分截断效应大,有静态误差;溢出的影响大。所以,应该根据被控对象的实际情况加以选择。一般认为,在对控制精度要求较高的系统中,应当采用位置式控制算法,而在以步进电动机或多圈电位器作执行器的系统中,则应当采用增量式控制算法。2.3 数字PID控制的参数选择2.3.1 数字PID参数的原则要求和整定方法1、原则要求:被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输出应能保持在给定值,操作变量不宜过大,在系统与环境参数发生变化时控制应保持稳定。一般是满足主要方面,并兼顾其它方面。2、PID参数整定方法:理论计算法依赖被控对象准确的数学模型(一般较难做到)工程整定法不依赖被控对象准确的数学模型,直接在控制系统中进行现场整定(简单易行)2.3.2 常用的简易工程整定法1、扩充临界比例度法适用于有自平衡特性的被控对象整定数字调节器参数的步骤是:(1)选择采样周期为被控对象纯滞后时间的十分之一以下。(2)去掉积分作用和微分作用,逐渐增大比例度系数直至系统对阶跃输入的响应达到临界振荡状态(稳定边缘),记下此时的临界比例系数及系统的临界振荡周期。2、扩充响应曲线法适用于多容量自平衡系统参数整定步骤如下:(1)让系统处于手动操作状态,将被调量调节到给定值附近,并使之稳定下来,然后突然改变给定值,给对象一个阶跃输入信号。(2)用记录仪表记录被调量在阶跃输入下的整个变化过程曲线。3、归一参数整定法令,。则增量型PID控制的公式简化为 改变Kp,观察控制效果,直到满意为止。2.4 智能PID控制算法2.4.1 智能PID控制算法的设计传统的控制方式是以不变的统一模式来处理变化多端的动态过程,而实际工业控制系统中的不确定性是不可避免的。因此在控制算法中,只有充分考虑了客观不确定性因素的影响,才能使算法实际有效。智能PID控制,将传统的PID控制算法和智能控制算法结合在一起,仍采用比例、积分和微分控制功能来实现,依据动态过程中的误差特征信息智能调整PID系数的控制方案。智能控制以模糊控制和自动控制理论为基础,总结人的控制经验,以产生式规则描述其启发、觉推理及控制行为。它具有分层的信息处理和决策机构、在线的特征辨识和特征记忆、开发式和直接逻辑推理等特征。智能控制认为,系统误差e(t)、误差变化率 e (t)构成求解的信息空间。基于单片机MC9S12XS128的智能控制算法,与传统PID控制算法相结合,根据误差e(t)和 e(t)来准确反映误差变化趋势,将控制模态进行了一定的细分。2.4.2 模糊PID控制算法模糊PID控制是根据PID控制器的三个参数与偏差e(t)和偏差的变化率e (t)之间的模糊关系,在运行时不断检测e(t)及e (t),通过事先确定的关系,利用模糊推理的方法,在线修改PID控制器的三个参数,让PID参数可自整定。就我个人的理解而言,它最终还是一个PID控制器,但是因为参数可自动调整的缘故,所以能解决实际中的很多非线性问题。根据误差类型去修改PID参数,使得控制更加智能。总的说来,多模态识别控制正是依靠这种灵活而巧妙的识别,决策,再识别,再决策的控制方式,使得那些本来处于矛盾状态的控制品质(快速性、稳定性、准确性)在该系统下能够兼得。第3章 硬件设计3.1 系统的总体框图设计一个PID闭环自动控制系统。本设计是应用MC9S12XS128芯片进行设计制作的控制系统,通过编码器的反馈达到对电机转速快速控制的效果。在实验程序中通过对不同的拨码开关来设置各速度,在按键按下之后使系统变换各种速度,并进行在线仿真调试。最后,结合PCB板的实际接线情况进行编程。使实验顺利完成。根据电机控制的要求,可将本系统分为三个模块,第一模块是PID控制模块,主要负责电机速度的控制,从而使电机速度快速稳定,第二个模块是编码器测速模块,反馈电机速度,用于闭环调节;第三是电源模块,给各模块提供电源,让各模块工作。其系统功能设计结构如图:上电复位电路 MC9S12XS128振荡电路电机模块拨码开关编码器测速图3-1 总体功能结构框图根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,CodeWarrior仿真,做出实物,设计体会与总结。3.2 单片机系统单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机现在的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。近些年来,单片机以很强的面向控制能力等优点,在工业自动化控制、智能化仪表、家用电器、机器人通讯、航空航天技术、数据处理、交通运输等方向获得了广泛的应用。3.2.1 S12XS系列引脚图图3-2 S12XS系列管脚图MC9S12XS128是16位单片机,由16位中央处理单元(CPU12X)、128KB程序Flash(P_lash)、8KB RAM、8KB数据Flash(D_lash)组成内存储器。主要功能模块包括:内部存储器: 内部PLL锁相环模块 2个异步串口通讯SCI 1个串行外设接口SPI MSCAN模块 1个8通道输入/输出比较定时器模块TIM 周期中断定时器模块PIT 16 通道A/D转换模块ADC 1个8通道脉冲宽度调制模块PWM输入输出数字I/O口说明:PORTA、PORTB、PORTK 为通用 I/O 口PORTE 中的IRO和XIRQ引脚可作为外部中断输入PORTT 集成了TIM模块功能PORTS 集成了SCI和SPI模块功能PORTM 集成了CAN总线模块PORTP 集成了PWM模块功能PORTH、PORTJ 可作为外部中断输入口PORTAD 集成了ATD模块功能3.2.2 时钟电路图3-3 时钟电路(晶振)XTAL是片内振荡器的反相放大器输入端,EXTAL则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL,而EXTAL悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为16MHz,时钟频率就为8MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.2.3 复位电路复位电路通常采用内部信号复位和按钮复位两种方式,此电路系统采用的是按钮上电复位电路。本系统采用的复位电路如下图所示:图3-4 复位电路图3.3 驱动电路和电源驱动电路模块驱动电路(Drive Circuit),位于主电路和控制电路之间,用来对控制电路的信号进行放大的中间电路(即放大控制电路的信号使其能够驱动功率晶体管),称为驱动电路。本系统采用BTN7971驱动芯片组成全H桥驱动模块,具有过热、过流保护功能。系统采用双H桥驱动电路,能够实现电机的正反转,使系统具有更好的减速效果。图3-5 驱动电路电源模块稳压电源(stabilized voltage supply)是能为负载提供稳定交流电源或直流电源的电子装置。包括交流稳压电源和直流稳压电源两大类。本系统采用LM2940将7.2V电压降压稳定到5V,为系统各个部分提供稳定的电压。图3-6 稳压电源模块3.4 测速模块光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。一般的光电编码器主要由光栅盘和光电探测装置组成。在本系统中,由于光电码盘与电动机同轴,电动机旋转时,编码器与电动机同速旋转经编码器检测输出若干脉冲信号。通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还提供相位相差90的2个通道的光码输出,根据双通道光码的状态变化以确定电机的转向。本系统采用的是欧姆龙E6A2-CS3C 200线光电编码器。图3-7 光电编码器编码器输出端接10K的上拉电阻,将输出的信号变化为单片机能够识别的高低电平。编码器硬件连接原理图电路如下:图3-8 编码器硬件连接原理图光耦隔离电路的必要性:驱动电路副边与主电路有耦合关系,而驱动原边是与控制电路连在一起,主电路是一次电路,控制电路是ELV电路,一次电路和ELV电路之间要做加强绝缘,实现绝缘要求一般就采取变压器光耦等隔离措施。光耦隔离电路(原理图):图3-9 光耦隔离电路原理图3.5 拨码开关拨码开关每一个键对应的背面上下各有两个引脚,拨至ON一侧,这下面两个引脚接通;反之则断开。这八个键是独立的,相互没有关联。此类元件多用于二进制编码。图3-10 八路拨码开关第4章 软件设计本设计采用C语言来编写程序,编程及调试简单,C语言是在国内外广泛使用的一种计算机语言,也是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。4.1 程序设计思路在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。当系统的电路设计定型以后,软件的任务也就明确了。一般来说,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控复位软件,它是防止程序跑飞的。我设计时,应从以下几个方面考虑: 1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。设计出合理的软件总体结构,使其清晰、简捷、流程合理。 2)各功能程序实行模块化、子程序化。 3)在编写应用软件之前,应绘制出程序流程图。 4)根据在线仿真的结果调整程序等。 本设计采用了模块化设计,主要由主程序模块、PID功能实现模块、中断测速模块三大部分模块组成。4.2 程序设计流程图开始关总中断系统初始化开总中断PID控制器控制电机转速编码器测速图4-1 系统程序流程图 系统主程序中主要进行系统各部分的初始化和电机PID的无限循环控制,在程序没有跑飞的前提下,周期定时器中断采集编码器脉冲,算出电机实际运行速度,通过编码器的反馈,单片机对电机进行闭环控制。4.3 程序设计本系统设计采用了模块化设计,主要由主程序模块、PID功能实现模块、中断测速模块三大部分模块组成。4.3.2 主程序模块的设计主程序包括各部分的初始化、总中断使能控制,以及拨码开关的扫描和电机的PID控制。初始化模块包括锁相环、电机PWM、累加器、IO口和周期定时器的初始化。其中,锁相环的初始化使单片机的频率(40M)工作在大于外部晶振(16M)的频率之上。MCU的支撑电路一般需要外部时钟来给MCU提供时钟信号,而外部时钟的频率可能偏低,为了使系统更加快速稳定运行,需要提升系统所需要的时钟频率。这就得用到了XS128内部的锁相环。XS128内部集成了锁相环电路,其系统时钟既可由外部晶振直接提供,也可以通过锁相环倍频后提供,经锁相环超频后,单片机的工作频率达40M。 void main(void) DisableInterrupts; /关中断 PLL_Init(); /锁相环初始化,设置主频40MHZ Motor_Init(); /电机PWM初始化 INIT_PAI(); /初始化累加器 IO_Init(); /IO口初始化 PIT0_init(); /周期定时器初始化 EnableInterrupts; /开总中断 for(;) _FEED_COP(); /feeds the dog get_set_speed(); get_output_speed(); 4.3.3 PID功能实现模块的设计对于电机PID控制,本系统采用增量式PID控制,通过实时反馈的数据,确定PID的各参数值,再加以计算,最后输出PWM控制电机的转速,达到快速、稳定、准确的效果。void get_output_speed(void) Set_speed=S_speed; /读取电机预设值/*运用增量PID计算出电机PWM输出值*/Ek_speed=Set_speed-speed;output_speed=Pre_output_speed+s_Kp*(Ek_speed-Pre_Ek_speed)+s_Ki*Ek_speed+s_Kd*(Ek_speed-2*Pre_Ek_speed+Last_Ek_speed);Last_Ek_speed = Pre_Ek_speed; Pre_Ek_speed = Ek_speed; if(output_speed 400) /电机速度限制 output_speed= 400;else if (output_speed 100) output_speed =100; PWMDTY23=150;/(int)output_speed; /输出电机闭环速度Pre_output_speed = output_speed; /储存上次速度 4.3.4 中断测速模块程序的设计本系统采用的是脉冲累加器在脉冲上升沿来临时记录脉冲的数目,再利用PIT周期定时器,5ms的定时中断准确计算电机的实时转速,然后反馈给单片机系统进行计算。void PIT0_init(void) /中断模块初始化 PITCFLMT=0x00; /关闭定时器 PITCE_PCE0=1; /使能通道0 PITMUX=0x00; /选择micro timer0 PITMTLD0=199; /micro time base 0 equals 100 clock cycles /8位微定时器 PITLD0=999; /time-out period =(PITMTLD+1)*(PITLD+1)/fBUS=5ms /16位 PITINTE=0x01; /使能通道0中断 PITCFLMT=0x80; void INIT_PAI(void) /初始化累加器 PACTL_PAEN=0; /事件计数方式上升沿,启动脉冲累加器A PACTL_PAMOD=0; PACTL_PEDGE=1; PACNT = 0; PACTL_PAEN=1; /始能脉冲累加器,累加上升沿#pragma CODE_SEG _NEAR_SEG NON_BANKED /中断测速void interrupt 66 PIT0(void) PITTF_PTF0=1; /清除PIT0的标记 PACTL_PAEN=0; pulse=PACNT; PACNT=0; speed=(float)(pulse/1339)*12); PACTL_PAEN=1; #pragma CODE_SEG DEFAULT第5章 系统调试5.1 软件调试一个单片机系统经过总体设计,完成了硬件和软件开发。元器件安装后在系统存储器中放入编制好的应用程序,系统即可运行。本仿真开发系统具有如下的功能:1)系统硬件电路的初始功能实现;2)系统程序的输入与修改;3)程序的运行、调试(单步运行、设置断点)、排错、状态查询功能;4)将程序下载到单片机芯片中。5.2 系统调试与结论虚拟仪器(VI- Virtual Instrument)是指通过应用程序将通用计算机与功能化硬件结合起来,用户可通过友好的图形界而操作计算机,就像在操作自己定义、自己设计的单个仪器一样,从而完成对被测量的采集、处理、分析、判断、显示、数据存储等。在这种仪器系统中,各种复杂测试功能、数据分析和结果显示都完全由计算机软件完成,在很多方面有传统仪器无法比拟的优点。本设计选用CodeWarrior自带的虚拟示波器来显示所用到的数据。5.2.1 软件界面图5-1 虚拟示波器显示界面5.2.2 调试结果传统PID调试结果图5-2 传统PID调试结果根据误差类型调整PID参数调试结果图5-3 参数根据误差调整的PID调试结果模糊PID控制调试结果图5-4 模糊PID控制调试结果5.3 结论根据仿真结果可以看出,从最开始的传统PID控制到模糊PID算法,算法优化,输出曲线也次更加贴近阶跃曲线:更加快速、更加准确、更加稳定。本次设计是在传统PID的基础上,加入智能控制的方法,设计出了智能PID控制器。该控制器是依靠准确识别误差的特征而做出相应的决策来调整PID的三个参数,再经PID计算式计算出输出值。系统在硬件在线仿真调试环境下,将数据在虚拟示波器上显示,以控制直流电机转速为例,分析证明了智能PID控制算法较传统的PID算法的优越性。依靠灵活的控制方式,使得系统本来处于矛盾地位的控制品质:快速性、准确性、和稳定性在这种控制算法下兼得。具有较好的控制效果和兼容性,可自适应环境变量。参考文献1 赵全利.单片机原理及应用教程M.北京机械工业出版社,2012.2 张阳,吴晔,滕勤.MC9S12XS单片机原理及嵌入式系统开发M.电子工业出版社,2010.3 彭伟.单片机C语言程序设计实训100例.电子工业出版社,2009.4 张鹏,王雪瑞.单片机原理与应用实例教程M.海洋出版社,2008.5 李海滨,片春媛,许瑞雪.单片机技术教程与项目实例J.中国电力出版社,2009.6 周润景,徐宏伟,丁莉.单片机电路设计、分析与制作D.机械工业出版社,2010.7 罗金成.智能全数字直流调速系统理论研究与设计D.武汉理工大学,2006.8 廖艳娥.具有模糊控制的直流传动系统的研究设计,西北工业大学,2004.9 杨琳琳.数字直流调速系统的设计与实现D.合肥工业大学,2007.10 蒋大明.自动控制原理M.北京交通大学出版社 , 2003.11 于海生.计算机控制技术M.机械工业出版社 , 2007.致谢在本次设计论文完成之际,首先要向我的指导老师表示真诚的谢意。同时要向曾经帮助过我的同学表示诚恳的感谢。在设计过程、论文写作期间,正是老师的指点和师兄的从旁协助才能顺利完成。这次毕业设计经过了十四个周的时间。从查资料,整理资料到搭硬件、读程序,写程序,改程序,仿真直至通过老师的验收,一切都充满了刻苦与艰辛,其间充满了挫折可是同时又伴随着欢乐。其次,还要感谢大学四年各位老师的悉心教导,本设计是围绕单片机而设计的,需要用到单片机、模电、数电、自动控制原理等方方面面的知识。同时,我自身的专业知识、动手能力和文档撰写能力也得到了一定的提升。同时也使我明白了我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要与实践相结合,理论问题即实践课题,解决问题即课程研究,通过自己的双手来解决问题比用脑子解决问题来的更加深刻。再次感谢在这次毕业设计中给予我无限帮助的老师和同学,正是由于你们的慷慨协助,才有我今天的顺利完成!附录一 原理图电源模块电路 电机驱动模块电路硬件复位模块电路 光电隔离模块电路系统总体硬件原理图附录二 系统整体程序/* 毕业设计部分程序(PID控制器用于电机调速) */ 各个端口接线说明: PB口: 8路拨码开关设置速度 PORTS口: PSO TXD 用于串口调试工具 PS1 RXD PWM输出口 23-电机正转 45-电机反转 PORTT口: PT7 脉冲累加器输入口 /* 注意:版权所有,请勿改动 */#include /* common defines and macros */#include derivative.h /* derivative-specific definitions */声明全局变量#define uchar unsigned char #define uint unsigned int /函数声明voi

温馨提示

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

评论

0/150

提交评论