×
单片机 > 单片机程序设计 > 详情

基于atmega32单片机专家系统的智能PID控制方案解析

发布时间:2020-06-06 发布时间:
|

    本系统以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)|

    Δu(k)=KP[e(k)-e(k-1)] +KIe(k)                      (9)

    ⑥当e(k)=0时,说明系统已经达到平衡状态,此时可考虑维持当前控制量不变。调试发现当误差达到控制精度要求后可维持当前控制量不变,从而避免小范围的波动使被控对象更快稳定下来。

    综上所述,系统调节器控制规律实际相当于变结构PID控制器,根据误差及误差变化情况选择不同的控制规律,以便使系统迅速达到给定流量值。


    硬件部分

    1  PWM控制原理

    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;/*比较匹配时OC1A输出高电平,在top值时清零ICP下降沿捕捉,

    时钟1/8分频(暂定),即工作在反相pwm模式*/

    TCCR1B=0x0A;//10位快速pwm模式

    TCNT1H=0x00;//start at 0

    TCNT1L=0x00;

    2 控制系统的程序流程

    3 PID子程序流程

    将系统误差e(k)和误差变化率Δe(k)变化范围定义为e(k),e(k)={NB,NM,NS,O,PS,PM,PB},各元素分别代表流量差值及流量差值变化率。根据不同的e(k),Δe(k)的量化取值和控制器数学模型,选择相应的控制器计算公式进行PID运算,从而完成流量的智能控制。


    Matlab下的仿真

    Matlab是控制系统的一种分析和仿真软件,利用它可以方便准确地对控制系统进行仿真,为了验证数字PID算法的可靠性,采用Matlab6.5下的simulink组件对增量数字PID算法进行了仿真。仿真结果表明运用PID对PWM方波进行调解具有良好的动态性和稳定性,从而证明了该气体流量控制系统得可行性。

 

    结语

    本设计采用了西门子的专用PID模块,大大简化了程序。同时,采用了图形编程方式,使程序更直观,交互界面更加友好。运用数字PID算法结合AVR单片机的PWM功能实现了气体流量的控制,利用PWM信号控制比例电磁阀开口的大小,实现了流量的连续控制,减少了滞后性,同时采用了增量式数字PID算法调节,实现了闭环控制,使系统调节更准确、更稳定。此外,运用Matlab软件进行了仿真,证明了系统的可行性。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计