首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于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.