基于AVR单片机的数字PID调节器设计

摘 要:数字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.

推荐访问:调节器 单片机 数字 设计 AVR