摘 要:数字PID调节器具有操作简单,控制精度准确,安全可靠性高等优点,广泛应用于工业生产过程中。提出一种以AVR单片机ATmega16为核心的数字PID调节器,该调节器充分利用了高性能AVR单片机的片内资源及外围扩展电路,能够接收多种类型的测量信号,具有较强的在线修改和丰富的控制功能,并且采取硬件和软件双重抗干扰措施提高了调节器的可靠性。
关键词:数字PID调节器;AVR单片机;ATmega16;手/自动无扰切换
中图分类号:TP274 文献标识码:B
文章编号:1004-373X(2010)03-140-03
Design of Digital PID Regulator Based on AVR Single Chip Microcomputer
SHAO Lianhe,XU Hongbing
(Baoding Electric Power Vocational & Technical Collge,Baoding,071051,China)
Abstract:A digital PID regulator has many advantages such as simple operation, accurate control,high security and reliability. It is widely used in industrial production process. The design of a digital regulator is introduced. The regulator is based on AVR single chip microcomputer ATmegal 16.It makes full use of high-performance AVR microcontroller chip resources and external expansion of the circuit. It can receive various types of measurement signals. It has a strong online modification and abundant control functions. The reliability of the regulator is improved by hardware and software anti-jamming means.
Keywords:digital PID regulator;AVR single chip microcomputer;ATmega16;manual/automatic non-disturbance switching
0 引 言
在连续生产过程控制中,按偏差的比例(P)、积分(I)、微分(D)进行控制的PID调节器[1]是应用最为广泛的一种自动控制器。它具有原理简单、易于实现、适用面广等优点。在计算机用于生产过程控制之前,模拟PID控制器一直占主导地位。单片机的出现,使以单片机为核心的数字PID调节器迅速成为应用最广泛的自动控制器。
本文设计了一种基于AVR ATmega16[2-4]单片机的数字PID调节器,其实现的主要功能有:
(1) 无跳线技术,可随意改变输入信号类型,有多种显示方式;
(2) 控制方式为增量式PID控制,控制输出为4~20 mA电流;
(3) 可进行零点、量程的调整,可进行全数字化冷端补偿;
(4) 设定参数断电永久保留及参数密码锁定;
(5) 调节器具有参数上、下限越限报警和报警触点输出功能;
(6) 可实现通信和打印功能。
1 数字调节器前面板设计
设计的数字调节器的前面板包括:液晶显示器[5],显示状态信息、参数设置信息、时间等;6个状态显示发光二极管,分别显示下限报警、上限报警、手/自动状态、电流输入、K型热电偶输入、PT100热电阻输入;上层4个数码管,正常显示测量值,参数类型;下层4个数码管,正常测量时显示设定值,参数设置时显示参数值;5个按键,其中SET键用于选择参数设定模式,或在参数设定时用于选择下一个参数;▼用于减小数值;▲用于增加数值;用于更改要设定的位;M/A用于手/自动切换;复位键用于程序复位。
2 数字调节器的硬件设计
该数字调节器的硬件系统原理框图如图1所示。该调节器的硬件电路包括开关电源、输入信号采集与转换电路、参数设置电路、状态显示及报警输出电路、模拟量输出与手/自动切换电路、显示电路、键盘控制电路、打印机接口电路、时钟电路、串行通讯接口电路等。
数字调节器的控制核心ATmega16是一款基于RISC(精简指令集)的低功耗、高性能的8位单片机,可达到每秒处理百万条指令的运行速度。此外,该芯片还具有比较丰富的片上资源。外扩的数据存储器可以有充裕的空间来处理数据。
图1 数字调节器硬件结构
2.1 开关电源电路
开关电源主要由输入整流电路、集成开关电路、高频变压器、输出整流滤波电路、输出反馈电路等组成。开关电源用于给调节器提供±12 V的直流电源,供采集电路中的运算放大器进行信号转换使用。单片机使用的+5 V电源是由开关电源的+12 V经三端稳压器7805提供的。
2.2 参数设置电路
参数设置电路如图2所示。
图2 数字调节器的参数设置电路
出于节省I/O口,减少按键数目,缩小调节器的体积、避免误操作等考虑,在调节器的键盘处理上采用“按键复用[6]”方式实现不同参数的设置。在电源断开又重新上电时,所有一级和二级参数保持掉电前的数值。变量CLK为设定参数禁锁,其设定值与对应的说明如表1所示。
表1 CLK的设定值与对应说明
符号名称设定范围说明
CLK设定参数禁锁CLK=00
CLK=01
CLK=12
CLK=132
CLK=其他按SET可修改一级参数
按SET+<退出
按SET+<可修改
按SET+<可修改二级参数
禁锁(参数不可修改)
2.3 输入信号采集与转换电路
ATmega16单片机有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A 的8 路单端输入电压进行采样。现场来的4~20 mA电流信号、0~50 mV热电偶输入信号、PT100热电阻信号、热敏电阻信号分别经过相应的输入转换电路转换为单片机可接受的0~5 V电压信号后直接接至单片机A口引脚。同时对转换后的数字量进行标度变换、数字滤波等数据处理,增加数据的可信度、提高稳定性和抗干扰能力。
2.4 数字调节器的输出及手/自动切换电路
由于ATmega16单片机的PWM输出为电压信号,需要将单片机输出的0~5 V电压转换成4~20 mA电流输出,供执行单元使用。
在手/自动切换中可以选择手动输出还是自动输出,并实现无扰切换。为了保证正常工作时,手/自动运行状态能够迅速切换,数字调节器的手/自动切换通过外部中断INT0实现,手/自动切换电路如图3所示。
图3 数字调节器手/自动切换电路
3 数字调节器的软件设计
系统软件流程如图4所示。主要包括系统初始化、数据采集及处理、PID控制[7]、手/自动无扰切换、参数设置、状态显示、报警处理等部分。
图4 系统软件流程图
在参数设置中,所有涉及到的一级参数、二级参数、信号输入、输出、调节器输入、输出等均采用全局变量传递,各程序模块本身使用到的变量,尽量采用局部变量。设计一级参数设置显示函数、二级参数设置显示函数时,可引进形参,根据参数序号确定参数,进行相应显示。对于各函数之间的公用变量均采用全局变量。
当自动输出转为手动输出时,输出值是在转变前的基础上手动增或减;而当手动输出转为自动输出时,也为无扰动切换。为保证PID运算的采样周期固定,信号采样及PID处理均在定时中断中完成。
热电偶冷端补偿时,首先要检测环温[8]值,然后再根据环温值进行冷端补偿计算。对数据进行平滑处理[9,10]
时可考虑建一个函数,其函数描述如下:
Float adcx(char adc_input,float n)//adcx:函数名,参数:(通道号,变换值:)
{float x=0;char i;
ADCSRA=0x83;//初始化设置
ADMUX=adc_input〡0x40;
for(i=0;i<8;i++)
{
ADCSRA〡0x40;
while((ADCSRA & 0x10)==0);
ADCSRA〡0x10;
x=x+ADCW;
}
x=x/8;//8次采集平均值
x=x*n/1023;
return x;
}
4 结 语
本文采用AVR高性能ATmega16单片机设计了一种数字PID调节器,通过实验综合测试和实际应用检验,该调节器具有人机界面友好、操作简便、控制准确、性能稳定、性价比高等优点,能够满足生产过程的要求,具有很好的推广前景。
参考文献
[1]程蔚萍.热工自动控制设备[M].北京:中国电力出版社,2007.
[2]彭同明,徐学勤.单片机原理及应用[M].北京:中国电力出版社,2005.
[3]李长林.AVR单片机应用设计[M].北京:电子工业出版社,2005.
[4]胡学海.单片机原理及应用系统设计[M].北京:电子工业出版社,2007.
[5]傅勤毅,李海浪.单片机与液晶显示器的接口及应用[J].今日电子,2005(6):70-72.
[6]刘海成.AVR单片机原理及测控工程应用[M].北京:北京航空航天大学出版社,2008.
[7]刘金琨.先进PID控制及其Matlab仿真[M].北京:电子工业出版社,2003.
[8]田开坤,徐海霞.基于AVR单片机捕获中断和热敏电阻的温度测量[J].现代电子技术,2008,31(3):138-140.
[9]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007.
[10]张齐.单片机应用系统设计技术——基于C语言编程[M].北京:电子工业出版社,2004.