内蒙古科技大学毕业设计说明书(毕业论文)
方案2:由软件实现。采用MC9S12DG128单片机,用软件实现PID调节,外接键盘电路,可由键盘进行参数设定,串口实现单片机与上位机通信。
对于人工智能型PID调节器,功能强大但是价格昂贵。由于MC9S12DG128单片机性能优越,用基于单片机的数字PID调节器特点是价格低廉,结构简单,能灵活配置,现场针对性强,且符合结晶器设计要求。经反复比较及实际应用要求,最终选择方案2。 2.2.2 键盘方案的比较与选择
键盘实际上是由排列成矩阵形式的一系列按键开关组成的,它是单片机系统中最常用的一种输入设备,常用于实现数据输入、命令传送等功能,是人工干预的主要手段。
键盘类型一般可以分为两大类:编码键盘和非编码键盘。
编码键盘:闭合键的识别由专用的硬件译码器实现并产生按键编号或键值的称为编码键盘,如BCD码键盘、ASCII键盘等。由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘使用方便,但硬件比较复杂,价格较贵。对于主机任务繁重的情况,采用可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。
非编码键盘:靠软件识别的称为非编码键盘。只简单地提供键盘的行列与矩阵,其他操作比如按键的识别,按键的读数等全靠软件完成,故硬件较为简单,但相对编码键盘非编码键盘占用CPU时间较多。非编码键盘又包括有独立式按键结构、矩阵式按键结构两种。独立式按键结构是提将每一个独立按键按一对一的方式直接接到单片机的I/O输入线上,读键值时直接读I/O口,每一个键的状态通过读入键值0或1来反映键按下与否,所以也称这种方式为一维直读方式。这种方式实现简单,因为占用I/O资源较多,一般在键的数量较少的时候采用。矩阵式按键结构是用N条I/O线组成行输入口,M条I/O线组成列输出口,在行列线的每一个交点上设置一个按键。读键值的方法一般采用扫描方式,即输出口按位轮换输出低电平,再从输入口读入键信息,最后获得键值。占用I/O线较少,这种方式在按键较多时应用广泛。两种键盘示意图如图2-2所示。
键盘访问方式有两种方法,一种是采用中断方式,另一种是采用轮询方式。
21
内蒙古科技大学毕业设计说明书(毕业论文)
中断应用是提高微控制器工作效率的一种重要手段,中断方式与查询方式相比,MCU的程序设计更加高效与灵活,可以提高嵌入式系统的实时处理能力,扩大其应用范围,是在低功耗应用系统中,中断是一个必要的技术手段。可以说MCU的中断系统的功能如何在某种程序上决定了MCU的用途,中断功能强大与否也是判断MCU性能的一个指标。
图2-2 键盘示图
轮询方式相对中断方式而言,要消耗资系统资源,但是不需要占用系统的中断资源,在如果采用标志位检测方式,对系统的性能影响很小。
在本设计中,键盘用来设定PID的6个参数,考虑到单片机引脚和键盘的功能,方案最终采用非编码键盘中的独立键盘,用轮询方式访问。键盘接口接在MCU的A/D转换口上,因为系统的A/D转换口只有输入功能,不能输出,用来做键盘输入最为合适。
22
内蒙古科技大学毕业设计说明书(毕业论文)
第三章 软件设计
3.1 软件设计思想
软件主要实现PID算法和人机接口。人机接口包括串行口发送和键盘扫描,PID算法实现系统的PID控制。单片机上电后进行上电复位,复位后程序开始运行,分别对D/A转换器、D/A转换器、串口、定时器、PWM进行初始化。初始化后,D/A转换器、D/A转换器、D/A转换器、串口、定时器开始运行,同时单片机内部进行PID运算,定时器中断程序每1ms产生一次中断,键盘扫描计数器进行计数,当计数满10次时,对键盘扫描标志位进行置位,即每100ms扫描一次键盘。当有键按下时键盘程序执行相应功能,并且串口进行提示。键盘程序主要实现PID参数的设置,串行口发送PID运算的输出量和PID参数设置时的按键提示,PWM进行驱动蜂鸣器,当有键按下时,蜂鸣器发声用于按键提示。程序采用模块化编程,总体程序流程所图3-1所示。
开始硬件初始化波形信号发生振动信号采集PID运算有键按下Y键盘程序N
图3-1 总体设计流程图
3.2 各模块功能
本设计,共划分了4个模块,分别为PID算法模块,键盘功能模块,串口字字符发送模块,定时器中断处理模块,其中键盘功能模块因为很繁琐又划分为3个子模块。
23
内蒙古科技大学毕业设计说明书(毕业论文)
3.2.1 PID算法模块
因为增量式PID控制算法相对位置式PID控制算法有多优点,所以选用基于增量式的PID控制算法。增量式PID控制算法对D/A转换器输入数据和A/D转换器的输出数据进行增量式PID运算。增量式PID控制的算法如图3-2所示。
图3-2 增量型PID控制流程
由于系统的执行机构线性范围受到限制,当偏差E较大时,如系统在开工、停工或大幅度提降时,由于积分项的作用,将会产生一个很大的超调量,使系统不停的振荡。在计算机控制系统中,为了消除这一现象,可以采用积分分离的方法,即在控制量开始时跟踪,取消积分作用,直到被调量接近给定值时,才产生积分作用。
在基于增量式PID控制的基础上,由积分分离式PID控制的算式
?>A时,为PD控制 当E(k)=R(k)-M(k)=???A时,为PID控制可以得到积分分离式PID的程序流程如图3-3所示。
24
内蒙古科技大学毕业设计说明书(毕业论文)
图3-3 积分分离式PID控制程序流程
为了避免控制动作过于频繁,以消除由于频繁动作所引起的振荡,采用带死区的PID控制算式。其动作特性如图3-4所示。带死区的PID控制算式为
??P(k)当R(k)-M(k)?E(k)?BP(k)??
KP(k)当R(k)-M(k)?E(k)?B??式中,K为死区增益,其数值可为0,0.25,0.5,1等。死区B是一个可调的参数,B值太小使调节动作过于频繁,不能达到稳定被调对象的目的。如果B取得太大,则系统将产生很大的滞后,当B=0时,或K=1时,则为PID控制。其计算程序流程如图3-5所示。
图3-4 带死区的PID动作特性 图3-5 带死区的PID控制流程
综合上述所有PID控制程序,可得最终PID控制流程如图3-6所示。
25