基于atmega32单片机专家系统的智能PID控制方案解析
扫描二维码
随时随地手机看文章
本系统以AVR系列的atmega32单片机为核心,通过设置atmega32的PWM控制寄存器产生脉宽可调的PWM波,对比例电磁阀的输入电压进行调制,从而实现了对气体流量的变量控制。单片机通过均速管流量计采集实际流量信号,根据该信号在其内部采用数字PID算法对PWM控制寄存器的值进行修改,从而达到精确的变量控制。为了防止外界干扰信号进入控制系统,单片机和均速管之间采用光电隔离,提高了系统的可靠性。
由均速管流量计对气体额流量进行监测,该种流量计属差压式流量计,由单点测速的皮托管演变发展而来,基于流体力学能量守衡原理,遵从伯努利定律,控制气体流量采用比例电磁阀。通过4×4键盘和128×64液晶模块实现人机对话,便于用户操作。
流量控制算法
考虑气动泵泵气过程的非线性等因素,采用了人类专家的知识和求解问题的启发式规则来构造专家控制器,从而实现流量的智能控制,保证气动泵供气的稳定性。
1 基于专家系统的智能PID控制简介
专家系统主要有五部分:知识库、数据库、推理机、解释部分和知识获取部分。本系统的被控对象具有比较大的非线性、滞后性等特性,考虑到对其控制性能、可靠性、实时性的要求,将专家系统简化,不设人机自然语言对话,将知识库、规则集缩小,于是专家系统变成了专家控制器,从而能使专家系统在控制器上实现。
基于专家系统的智能PID控制器。专家知识库是根据熟练操作工或专家的经验和知识,把各种工况下被控对象特性所对应的PID参数记录在数据库中而形成;数据库存放被控对象的输入和输出信号、给定信号(即获得了偏差和偏差变化率);逻辑推理机则从数据库中取出实际运行数据,根据给出的推理机制,从专家知识库中选择合适的参数,实现参数自整定PID控制。
2 流量的专家PID控制
在军工业生产中,当我们不完全了解一个系统和被控对象,或被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,这个时候往往采用PID控制技术最为方便。PID算法以其结构简单、稳定性好、工作可靠、高速方便而成为工业控制的主要技术之一。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。系统控制器的结构和参数必须通过经验和现场调试来确定。
模拟PID控制器的控制规律为:
(1)
式中,KP—比例系数;TI—积分常数;TD—微分常数;u0—控制常量。
由于单片机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,而不能像模拟控制那样连续输出控制量,进行连续控制;并且,单片机处理数据的量有限,综合考虑该系统采用增量式PID控制,其算式为:
u(k)=u(k-1)+Δu(k) (2)
Δu(k)=KP[e(k)-e(k-1)]+KIe(k) +KD[e(k)-2e(k-1)+e(k-2)] (3)
气体流量值经过比例换算之后作为气泵的给定值,通过PID控制器的输出来控制气泵的流量。e(k)为气泵给定流量与实际测量值的偏差;e(k-1)为上一时刻的误差值;e(k-2)为上一采样时刻的误差值。KP是解决幅值震荡,KP大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;KI是解决动作响应速度快慢的,KI大了响应速度慢,反之则快;KD是消除静态误差的,一般KD设置都比较小,而且对系统影响比较小。
由于气体流量测量的特殊性以及气体控制过程中的非线性、时变、滞后等特性,采用上述PID控制算法不能达到令人满意的效果,由此采用辅以专家控制规则来进行补偿控制。根据气泵偏差及其变化率,本文提出的控制器按以下6种情况进行设计:
①当|e(k)|>M1(PWM波的幅值)时,说明误差绝对值已经很大。不论误差变化趋势如何,都应考虑控制器的输出应按最大(或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。
Δu(k)=Δumax或者Δu(k)= -Δumax (4)
此时,系统相当于实施开环控制。
②当e(k)·Δe(k)≥0时,误差在朝绝对值增大方向变化,或误差为常值,未发生变化。如果此时|e(k)|>M2(设定的误差界限),说明误差也较大,可考虑由控制器实施较强的控制作用,以达到使误差绝对值朝减小方向变化,并迅速减小误差的绝对值,调节器输出可为
Δu(k)=KI{KP[e(k)-e(k-1)]+KIe(k)+KD[e(k)-2e(k-1)+e(k-2)]} (KI>1) (5)
如果|e(k)| ③当e(k)·Δe(k)<0、Δe(k)·Δe(k-1)>0或者e(k)=0时,说明误差在朝减小的方向变化,或者已经达到平衡状态。此时可考虑采取保持控制器的输出不变,输出为 Δu(k)=0 (6) ④当e(k)·Δe(k)<0、Δe(k)·Δe(k-1)<0时,误差处于极值状态,系统出现振荡现象。如果此时误差的绝对值较大,即|e(k)|≥M2,则采用较强的控制作用。 Δu(k)=K2KPe(k) (K2<1) (7) 反之则考虑实施较弱的控制作用。 Δu(k)=K3KPe(k) (K3<1)(8) ⑤当|e(k)|<&epSILon;,ε为一任意小的正数,可取为0.001。此时误差很小,考虑加入积分环节,减少稳态误差。控制算法为普通比例加积分控制 Δu(k)=KP[e(k)-e(k-1)] +KIe(k) (9) ⑥当e(k)=0时,说明系统已经达到平衡状态,此时可考虑维持当前控制量不变。调试发现当误差达到控制精度要求后可维持当前控制量不变,从而避免小范围的波动使被控对象更快稳定下来。 综上所述,系统调节器控制规律实际相当于变结构PID控制器,根据误差及误差变化情况选择不同的控制规律,以便使系统迅速达到给定流量值。 硬件部分 1PWM控制原理 PWM控制功率输出级为开关型结构,功耗小。在功率驱动放大电路中需要将PWM输出的电压信号转换为比例电磁铁的电流控制信号。因此,可采用大功率场效应晶体管IRF540,它能够提供足够大的电流驱动比例阀的比例电磁铁等效线圈,通过调整单片机的PWM波就可以实现电磁阀输入电压占空比的调节,从而实现对流量的调节。 PWM控制系统是非线性、非连续控制系统。其控制原理:先给被控参数设定一个期望值,接着该参数与测得的实际值经比较环节得出误差信号,误差信号再与一个三角波信号经比较器进行比较,当误差信号大于三角波信号时,就输出脉冲,反之不输出,因此,比较器输出一系列等振幅不等宽的矩形波,其脉冲宽度与误差信号成线性关系。根据该原理,采用PWM控制器输出的脉冲去触发开关,开关再去触发执行机构,执行机构按脉冲宽度的时间动作,从而达到自动控制参数的目的。 式中,M为PWM波的幅值;T为PWM的脉冲周期;Tk为PWM波的采样时间,k=0,1,2,3,…;b为比例系数。 2 比例电磁阀 比例电磁阀在20世纪60年代末就已经得到了应用,最初是用于液压控制系统,随着单片机和集成电路的发展,其逐渐应用到各种气体的流量控制中。比例型电磁铁的工作原理如下:线圈通电后,轭铁和衔铁内部产生磁通并产生电磁吸力,将衔铁吸向轭铁,同时衔铁上的弹簧受到压缩,当衔铁上的电磁力和弹簧力平衡时,衔铁停止位移。比例型电磁铁的衔铁运动时,气隙保持恒定,即衔铁在有效行程范围内,吸力保持恒定,而电磁铁的吸力在有效行程范围内和线圈的电流大小成正比。目前,过程控制用比例电磁阀均为单级阀,和普通单级电磁阀区别不大,如图4所示。控制信号进入控制器放大后,在比例电磁铁线圈的两端加上一定的电压,转换成一定的电流信号,驱动衔铁(即阀芯)开启,阀芯上的电磁力和弹簧力平衡后,阀门的开度不变;输入信号变化,阀门的开度也发生变化,从而达到控制所需参数的目的。 软件部分 1 PWM波的产生 设计采用单片机atmega32产生PWM信号。atmega32的定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。本设计采用快速PWM模式,快速PWM可以得到比较高频率的PWM输出,响应比较快,因此具有很高的实时性。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。快速PWM模式的控制寄存器设置如下: //输出端口初始化 PORTD=0x44; DDRD=0x20; //T/C1初始化 TCCR1A=0xC3;/*比较匹配时OC