当前位置:文档之家› PID温控器系统设计

PID温控器系统设计

PID温控器系统设计
PID温控器系统设计

课程设计报告

课程名称

专业:

班级:

指导老师:

姓名:

同组成员:

PID温控器系统设计与仿真

一、系统概述

PID温控器系统的工作原理图如图1,电炉内的热电阻温度传感器测出的温度信号经运算放大器放大和模/数转换后,由8051单片机读出电阻炉炉温,PID控制程序根据当前炉温和目标温度的偏差,按照一定的控制方法控制开关K的通与断,提供适当的加热功率,以使炉温尽快趋近目标温度。PID温控器还通过串口与PC 通信,以实现远程监控。LED和键盘用于人机接口,交流电过零检测部分可使8051只在正弦交流电零点附近控制开关K的通与断,以避免对交流电斩波而造成干扰。

图1

二、系统设计及仿真

1.PID温控器存储系统设计

PID温控器的存储系统设计中使用了一片3-8译码器74LS138来产生个芯片所需的片选信号。6264的CE信号来自于74LS138的Y3输出,要使Y3为低电平选中6264,则C、B、A的输入应为011,由此可计算出6264的地址范围为0x6000~0x7FFF,2764的地址范围为0x0000~0x1FFF。在Proteus仿真软件中建立如

图2所示的温控器存储系统的Memory.dsn模型文件。

图2

2.人机接口和PID温控器的输入/输出设计及仿真

2.1 PID温控器LED显示及仿真

图3是PID温控器LED显示部分的Proteus仿真原理图。8255A是较复杂的并行接口芯片,在PID控制器主要用作I/O口拓展,用于LED的显示。在编程时应注意,由于8255A的复位时间较长,在应用程序访问8255A之前,应有足够的延时保证8255A已正确复位,仿真时可不延时,但实际电路中必须加足够的延时。另外,在Proteus中建立仿真模型时,要保证8255A的器件编号小于8051的编号,否则仿真不能成功。打开建立的Memory.dsn模型文件,在其中新建一个名为LED 的设计页,将图3的内容画在该设计页中,然后将文件保存为Led.dsn。

图3

编写程序,在图3上的6位数码管上循环显示数字0~5。程序代码如下:

/*display.h*/

/*8255A端口地址*/

#define BASE 0x0000

#define PORT_A (BASE)

#define PORT_B (BASE+1)

#define PORT_C (BASE+2)

#define PORT_CONTROL (BASE+3)

#define LEDS 6 //共有6位LED

#define CA 0 //共阳

#define CC 1 //共阴

//函数声明

void turn_On(char led,char ChNumber,char mode);

void LedsOff();

void OneByOne(char datas[]);

extern void Init8255();

unsigned char code Select[];

unsigned char code LED_CODES[];

/*display.c*/

#include "absacc.h"

#include "Reg51.h"

#include "display.h"

//led灯选通信号

//高电平位选

unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20}; unsigned char code LED_CODES[]={0xc0,0xF9,0xA4,0xB0,0x99,//0-4 0x92,0x82,0xF8,0x80,0x90,//5-9

0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E

0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-

};

//初始化8255A

//各led位全灭

void Init8255()

{unsigned char i,j;

for(j=0;j<10;j++)

for(i=0;i<255;i++); //空循环延时,等待8255A复位

//A组,B组工作于方式0,C,B口输出

XBYTE[PORT_CONTROL]=0x90;

//所有的灯全关

LedsOff();

}

//点亮某led

//led:led灯编号,从右至左为0-5号

//chNumber:字符在段码表中下标

//mode:1-共阴,反相Led位选,0-共阳,同相led位选

//段均为同相驱动

void turn_On(char led,char ChNumber,char mode)

{

if(mode==CA)

XBYTE[PORT_C]=LED_CODES[ChNumber];//送字形码;

else

XBYTE[PORT_C]=~LED_CODES[ChNumber];//送字形码; XBYTE[PORT_B]=Select[led];//送选通信号

}

void LedsOff()

{//led全关

XBYTE[PORT_B]=0x00;

}

/*main.c*/

#include "reg51.h"

#include "display.h"

//循环在0-5位上显示数字0-5

void main()

{

unsigned int m;

unsigned char i;

Init8255();

i=LEDS-1;

while(1)

{

LedsOff();

for(m=50;m!=0;m--);//延时调整可改变显示效果

turn_On(i,i,CC);

for(m=50;m!=0;m--);//延时调整可改变显示效果

if(i==0)i=LEDS-1;

else i--;

}

}

程序运行结果如图4。

图4

2.3 PID温控器的键盘设计及其Proteus仿真

打开上小节建立的Led.dsn,删除LED设计页中的ULA2003A驱动部分,在LED 设计页中新建一个子电路LED_DRIVER,为该子电路加上图5中的输入/输出端子。进入子电路设计页,按照图6绘出原ULA2003驱动部分并加上相应端子。用

BUTTON元件绘出图5右上角的键盘部分,并为行扫描线和列扫描线上的端子命名为R0~R3和C0~C3。转到External Memory设计页,为8051的P1.0~P1.3加上连接端子并命名为R0~R3,为P1.4~P1.7加上连接端子并命名为C0~C3。将仿真模型文件另存为KeyBoard.dsn仿真模型文件。

图5

图6

为仿真模型KeyBoard.dsn编写按键处理程序,将所识别按键的行、列号显示在LED 的第1、2位和5、6位上。

程序代码如下:

/*KeyCheck.c 按键检测C程序*/

#include "absacc.h"

#include "display.h"

#include "Reg51.h"

void delay()

{char i;

for(i=255;i!=0;i--);

}

//用反转法检查按键的行列号(只检查单键)

//row返回行号,col返回列号

//若有键按下,函数返回1,否则返回0

char keyCheck(char *row,char *col)

{

unsigned char t1,t2,t3,i;

unsigned char Result=0;

P1=0xF0;t1=P1;

if(t1==0xf0) goto exit; //无键按下,返回

for(i=11;i!=0;i--)//去抖延时约20ms

delay();

t1=P1;

if(t1==0xf0) goto exit; //无键按下,返回Result=1;

//求列号

t2=0x80;t1=~t1;

for(i=4;i!=0;i--)

{t3=t2&t1;

if(t3!=0) {*col=i-1;break;}

else t2=t2>>1;

}

t1=~t1;

t1=t1|0x0f;//低4位置1

P1=t1;

t1=P1;

t2=0x08;t1=~t1;

for(i=4;i!=0;i--)

{t3=t2&t1;

if(t3!=0) {*row=i-1;break;}

else t2=t2>>1;

}

exit:

return Result;

}

/*main.c 源程序,现实所识别键的行、列号*/ #include "display.h"

#include "absacc.h"

#include "Reg51.h"

extern char keyCheck(char*row,char *col);

void main()

{char row,col,r;

char strIndexs[6]={20,20,20,20,20,20}; unsigned char i,k;

Init8255();

while(1)

{

r=keyCheck(&row,&col);

if (r==0)

{strIndexs[5]=20;strIndexs[4]=20;

strIndexs[1]=20;strIndexs[0]=20;

}

else

{strIndexs[5]=0;strIndexs[1]=0;

strIndexs[4]=row;strIndexs[0]=col;

}

for(k=6;k!=0;k--)

{LedsOff();

for(i=50;i!=0;i--);

turn_On(k-1,strIndexs[k-1],CC);

for(i=50;i!=0;i--);

}

}

}

程序运行结果如图7,当按下图5中第3行第1列上按键时,将在LED上显示键的行列号。

图7

3.PID温控器的炉温采样接口及仿真

图8是PID温控器的仿真原理图。图中74LS161用于提供ADC0808所需的时钟信号,其Q1、Q2、Q3、Q4输出信号的频率分别是其CLK引脚输入时钟信号频率的1/2、1/4、1/8、1/16,CLK输入信号来自于51单片机的ALE引脚输出,多路开关SW1为ADC0808选取不同的时钟频率。

图中P1为CPU访问片外数据存储空间地址0x2XXX时74LS138的译码输出,当CPU 写0x2XXX时,可使ADC0808锁存数据总线上D0、D1、D2的输入通道号;CPU读0x2XXX时,可将A/D转换结果读入到CPU中。P2为CPU访问片外数据存储空间地

址0x4XXX时74LS138的译码输出,当CPU读地址0x4XXX时,可将EOC信号从数据总线D7位读入到CPU中;RD、WR信号来自于51单片机的RD、WR引脚P3.6、P3.7。

打开前面完成的仿真模型文件KeyBoard.dsn,并另存为Adc.dsn.新建一个名为ADC0808的设计页,将图8的内容画在该设计页中;在进入External Memory设计页,为其中的AT89C51的P3口加上所需的端子并正确命名;在P3.3上加一个端子将其命名为EX1,P3.5加一个端子并将其命名为START,然后保存仿真文件。

图8

用端口查询方式编写程序从图8的ADC0808通道1读取AD转换值并显示在LED 上。

程序代码如下:

/*ADC.H*/

#define ADC_0808 1

#define ADC0808_DATA_PORT 0x2000

#define ADC0808_QUERY_PORT 0x4000

#define ADC0808_START_PORT 0x2000

//function :gets data from ADC chip,

//parameters:

//unsigned char ADC_Chip--the adc chip such as ADC_0808(9),

//AD574 and so on.the chip's resolution shouldn't be higher

//than 12 bits

//unsigned char channel:the channel that data from

//return value:if succeed,the data between 0 to 4095(12bits) read from selected channel of Adc chip, //else return -1.

unsigned char getData1(unsigned char ADC_Chip,unsigned char channel);

unsigned char getData2(unsigned char ADC_Chip,unsigned char channel);

/*ADC0808.c*/

#include "Adc.h"

#include "absacc.h"

#include "Reg51.h"

//端口(P3.3)查询方式

unsigned char getData2(unsigned char ADC_Chip,unsigned char channel)

{unsigned char flag=0;

unsigned char value=-1;

unsigned xdata ale;

switch (ADC_Chip)

{case ADC_0808:

P3=P3|0x08;//读入端口前相应位先置1

XBYTE[ADC0808_START_PORT]=channel;//输入通道锁存

//P3.4低--高--低脉冲启动AD转换

P3=P3&0xdf;//P3.4置低

P3=P3|0x20;//P3.4置高

P3=P3&0xdf;//P3.4置低

//查询转换是否完成(P3.3是否为0)

flag=P3;

while(1)

{ale=1;//注意:Proteus中8051模型有问题,在不访问片外RAM时ALE无输出, //故在此加入了一条访问片外RAM的语句ale=1 ,

//以产生ADC0808所需的时钟信号,实际的应用程序是不需要这条语句的

flag=flag & 0x08;

if(flag==0) break;

flag=P3;

}

//step 3:read data and return it

value=XBYTE[ADC0808_DA TA_PORT];

return value;

break;

}

}

/*main.c*/

#include "Adc.h"

#include "display.h"

#include "Reg51.h"

void dispStr(char strIndexs[],unsigned char value,char channel)

{char i,k;

for(i=0;i<3;i++)

{strIndexs[i]=value%10;

value=value/10;

}

strIndexs[4]=channel;

LedsOff();

for(i=50;i!=0;i--);

for(k=6;k!=0;k--)

{LedsOff();

for(i=50;i!=0;i--);

turn_On(k-1,strIndexs[k-1],CC);

for(i=50;i!=0;i--);

}

}

//端口查询读取通道1的值并显示

void main()

{unsigned char value;

unsigned int k;

char strIndexs[6]={20,20,20,20,1,12};//待显示字符下标

Init8255();

while(1)

{

value= getData2(ADC_0808,1);

for(k=100;k!=0;k--)

dispStr(strIndexs,value,1);

LedsOff();

}

}

运行程序结果如图9,数码管左边两位表示通道号,右边三位为读入的数据。

图9

4.PID温控器的温度测量电路设计及仿真

PID温控器的测温放大电路原理图如图10。

图10

打开以上所建立的Adc.dsn仿真图,在其中LED_KeyBoard设计页上建立如图(a)所示的放大子电路Amp,用以封装测温放大电路(b)。Amp子电路和模仿热电阻放置道0。进入子电路设计页,将图(b)绘制在子电路设计页,阻值变化的R

V4

最后将仿真图保存为Measure.dsn。图(b)中的R

用于调整放大电路的倍数,使

V5

电路在测温上限200℃时输出Uto刚好为5V;R

用于调节电桥的初始平衡,即

V2

在测温下限0℃时使电桥平衡,Uto为零。实际电路调整时,Uto的上下限与5V、0V有微小偏差。

在Measure.dsn温度测量仿真模型上编写程序,将ADC0808输入通道0上读入的数据转换为温度后显示在LED上。

程序代码如下:

/*main.c源程序*/

#include "Adc.h"

#include "display.h"

#include "Reg51.h"

//读取通道0输入并换算成温度(保留一位小数)显示并显示

//量程:0--200度

void main()

{unsigned char value; //通道0读入的数据

unsigned long t; //标度换算出的温度值

unsigned char i,m,n;

Init8255();

while(1)

{

value= getData1(ADC_0808,0);

//标度变换时,为避免浮点运算,将算出的温度放大10倍,并对第二位小数四舍

//五入,结果保留一位小数,如读入的value为103,则200*103*100)/255=8078

//t=(8078+5)/10=808(注意:C整除运算只取商的整数部分)

//则算出的温度为80.8度

t=((200*(unsigned long)value*100)/255+5)/10;

LedsOff();

for(i=200;i!=0;i--)

for(m=100;m!=0;m--);//延时

for(i=0;;i++)

{m=t%10;

if(i==1)

turn_On_WithDot(i,m,CC);

else

turn_On(i,m,CC);

for(n=50;n!=0;n--);

t=t/10;

if(t==0) break;

}

}

}

程序仿真结果如图11。

图11

1、PID温控器上/下位机串口通信及仿真

PID温控器串口通信的原理如图12所示。

图12

虚线边框内是PID温控器的串行通信口设计部分;黑色边框内部分用于模拟PC,便于调试通信程序,在PID温控器的实际电炉中是不需要的。打开前面建立的Adc.dsn仿真原理图,进入External Memory设计页,为A T89C51的TXD、RXD 引脚各连上一个接线端子并取名为T和R。将图12的内容画在External Memory 设计页中,将A T89C51的时钟频率设为12MHz,两个虚拟终端的波特率设为2400。然后将仿真原理图另存为Comm.dsn。运行如下程序。

/*--------------------------------------------------------------------------

INTRINS.H

Intrinsic functions for C51.

Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH All rights reserved.

--------------------------------------------------------------------------*/

#ifndef __INTRINS_H__

#define __INTRINS_H__

extern void _nop_ (void);

extern bit _testbit_ (bit);

extern unsigned char _cror_ (unsigned char, unsigned char);

extern unsigned int _iror_ (unsigned int, unsigned char);

extern unsigned long _lror_ (unsigned long, unsigned char);

extern unsigned char _crol_ (unsigned char, unsigned char);

extern unsigned int _irol_ (unsigned int, unsigned char);

extern unsigned long _lrol_ (unsigned long, unsigned char);

extern unsigned char _chkfloat_(float);

#if !defined (__CX2__)

extern void _push_ (unsigned char _sfr);

extern void _pop_ (unsigned char _sfr);

#endif

#endif

/*KeyCheck.c*/

#include "display.h"

#include "Reg51.h"

#include "intrins.h"

void delay()

{char i;

for(i=255;i!=0;i--);

}

//用扫描法检查按键的行列号(只检查单键)

//按仿真图设计,无键按下时行信号为低电平

//有键按下时,行信号为高电平

//row返回行号,col返回列号

//若有键按下,函数返回1,否则返回0

sbit P1_0 =0x90; //第0行信号

sbit P1_1=0x91; //第1行信号

sbit Clear=0x92; //74LS164清零信号

char keyCheck(char *row,char *col)

{char Result=0;

char i,mask=0x7f;

char column=0;

P1_0=1;P1_1=1; //读之前先置1

Clear=0;Clear=0; //74LS清全零

if(P1_0&P1_1) //无键按下,两行信号均为高电平

goto exit;

for(i=11;i!=0;i--)//去抖延时约20ms

delay();

if(P1_0&P1_1) //无键按下,两行信号均为高电平

goto exit;

//记录行号

if(P1_0==0) *row=0;

else *row=1;

Result=1;

//求列号

Clear=1;Clear=1;//允许74LS164串入并出

while(column<8)

{

TI=0;

SBUF=mask;

while(TI==0); TI=0;

if((P1_0&P1_1)==0)

{*col=column;

Result=1;

goto exit;

}

mask= _cror_(mask,1); //mask循环右移1位

column++;

}

if(column>7) Result=0;

exit:

return

Result;

/*main.c*/

#include "display.h"

#include "absacc.h"

#include "Reg51.h"

extern char keyCheck(char*row,char *col);

void main()

{char row,col,r;

char strIndexs[6]={20,20,20,20,20,20};//待显示字符下标组

unsigned char i,k;

SCON=0; /* 将串行口设置成工作方式0 */ ES=0; /* 禁止串口中断*/

EA=0;

strIndexs[5]=20;strIndexs[4]=20;

strIndexs[1]=20;strIndexs[0]=20;

while(1)

{

r=keyCheck(&row,&col);

if (r!=0) // //保存按键行列号

{strIndexs[5]=0;strIndexs[1]=0;

strIndexs[4]=row;strIndexs[0]=col;

}

for(k=6;k!=0;k--)

{LedsOff();

for(i=100;i!=0;i--);

turn_On(k-1,strIndexs[k-1],CC);

for(i=100;i!=0;i--);

}

}

}

打开两个虚拟终端,右击“发往单片机”虚拟终端,在弹出的快捷菜单选择Echo Typed Characters选项,在该虚拟终端中输入“hello world”字符串,单片机将接收到的字符串原样返回,并显示在“从单片机接收”虚拟终端上。仿真结果如图13。

图13

5、PID温控器直流电源与加热功率控制子系统的设计及仿真

5.1直流电源和过零检测设计

所有单片机系统都需要直流电源供电,本系统需要+12V、-12V、+5V这三种规格

的直流电,将220V交流电通过降压、整流、滤波、稳压后,可得到各种规格的直流电。当运算放大器的输出与输入之间无反馈回路时,由于运算放大器的放大倍数很大,即使两输入端只有微小的电位差,其输出都会饱和,其值接近运算放大器的工作电源电平。直流电源和过零检测设计的仿真原理图如图14。

图14

利用Proteus分析模拟及数字信号的Graph仿真,可得到LM358工作时输出的脉冲波形。LM358工作时的输入/输出信号的波形分析如下:在零点附近,同相端电压高于反相端电压,LM358输出正饱和,为+4V左右;在离交流电过零点稍远的地方,反相端电压高于同相端电压,LM358输出负饱和,为0V左右,按TTL电平规范,则LM358输出的是100Hz的矩形波;LM358的输出经74LS04反相器接

pid控制器设计

目录一设计任务与要求 二系统校正的基本方法与实现步骤 三PID的控制原理与形式模型 四设计的原理 五设计方法步骤及设计校正构图 六设计总结 七致谢 八参考文献

一 设计任务与要求 校正对象: 已知单位负反馈系统,开环传递函数为:s s s s G 1047035.87523500 )(23++=,设 计校正装置,使系统满足: (1)相位稳定裕量o 45≥γ (2)最大超调量%5≤σ 二 系统校正的基本方法与实现步骤 系统校正就是在自动控制系统的合适位置加入适当的装置,以改善和提高系统性能。按照校正装置在自动控制系统中的位置,可分为串联校正,反馈校正和顺馈补偿。 顺馈补偿方式不能独立使用,通常与其他方式同时使用而构成复合控制。顺馈补偿装置满足一定条件时,可以实现全补偿,但前提是系统模型是准确的,如果所建立的系统模型有较大误差,顺馈补偿的效果一般不佳。 反馈校正主要是针对系统中的敏感设备——其参数可能随外部环境条件发生变化,从而影响自动控制系统的性能——给敏感设备增加局部负反馈支路以提高系统的抗扰能力。由于负反馈本身的特性,反馈校正装置通常比较简单,只有比例(硬反馈)和微分(软反馈)两种类型。 串联校正是最基本也是最常用的校正方式,根据校正装置是否使用独立电源,可分为有源校正装置和无源校正装置;根据校正装置对系统频率特性的影响,可分为相位滞后、相位超前和相位滞后-超前校正装置;根据校正装置的运算功能,可分为比例(P )校正、比例微分(PD )校正、比例积分(PI )校正和比例积分微分(PID )校正装置。

三 PID 控制的原理与形式模型 具有比例-积分-微分控制规律的控制器,称PID 控制器。这种组合具有三种基本规律各自的特点,其运动方程为: dt t de dt t e t e t m K K K K K d p t i p p )()()()(0++=? 相应的传递函数为: ??? ? ? ? + +=S S s K K K G d i p c 1)( S S S K K K d i p 12++ ?= PID 控制的结构图为: 若14

PID控制的基本原理

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 PID 控制的基本原理 1.PID 控制概述 当今的自动控制技术绝大部分是基于反馈概念的。反馈理论包括三个基本要素:测量、比较和执行。测量关心的是变量,并与期望值相比较,以此误差来纠正和控制系统的响应。反馈理论及其在自动控制中应用的关键是:做出正确测量与比较后,如何用于系统的纠正与调节。 在过去的几十年里,PID 控制,也就是比例积分微分控制在工业控制中得到了广泛应用。在控制理论和技术飞速发展的今天,在工业过程控制中95%以上的控制回路都具有PID 结构,而且许多高级控制都是以PID 控制为基础的。 PID 控制器由比例单元(P)、积分单元(I)和微分单元(D)组成,它的基本原理比较简单,基本的PID 控制规律可描述为: G(S ) = K P + K1 + K D S (1-1) PID 控制用途广泛,使用灵活,已有系列化控制器产品,使用中只需设定三个参数(K P ,K I和K D )即可。在很多情况下,并不一定需要三个单元,可以取其中的一到两个单元,不过比例控制单元是必不可少的。 PID 控制具有以下优点: (1)原理简单,使用方便,PID 参数K P、K I和K D 可以根据过程动态特性变化,PID 参数就可以重新进行调整与设定。 (2)适应性强,按PID 控制规律进行工作的控制器早已商品化,即使目前最新式的过程控制计算机,其基本控制功能也仍然是PID 控制。PID 应用范围广,虽然很多工业过程是非线性或时变的,但通过适当简化,也可以将其变成基本线性和动态特性不随时间变化的系统,就可以进行PID 控制了。 (3)鲁棒性强,即其控制品质对被控对象特性的变化不太敏感。但不可否认PID 也有其固有的缺点。PID 在控制非线性、时变、偶合及参数和结构不缺点的复杂过程时,效果不是太好; 最主要的是:如果PID 控制器不能控制复杂过程,无论怎么调参数作用都不大。 在科学技术尤其是计算机技术迅速发展的今天,虽然涌现出了许多新的控制方法,但PID 仍因其自身的优点而得到了最广泛的应用,PID 控制规律仍是最普遍的控制规律。PID 控制器是最简单且许多时候最好的控制器。 在过程控制中,PID 控制也是应用最广泛的,一个大型现代化控制系统的控制回路可能达二三百个甚至更多,其中绝大部分都采用PID 控制。由此可见,在过程控制中,PID 控制的重要性是显然的,下面将结合实例讲述PID 控制。 1.1.1 比例(P)控制 比例控制是一种最简单的控制方式,其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳定误差。比例控制器的传递函数为: G C (S ) = K P (1- 2) 式中,K P 称为比例系数或增益(视情况可设置为正或负),一些传统的控制器又常用比例带(Proportional Band,PB),来取代比例系数K P ,比例带是比例系数的倒数,比例带也称为比例度。 对于单位反馈系统,0 型系统响应实际阶跃信号R0 1(t)的稳态误差与其开环增益K 近视成反比,即: t→∞

单片机温度控制系统PID设计

毕业论文(论文) 题目名称:单片机温度控制系统PID设计 题目类别:毕业设计 系(部): 专业班级: 学生姓名: 指导教师: 辅导教师: 时间:至 目录 任务书............................................................ I

毕业设计(论文)开题报告........................................... IV 毕业设计(论文)指导教师审查意见.................... 错误!未定义书签。教师评语.......................................... 错误!未定义书签。摘要............................................................. V Abstract ......................................................... VI 前言........................................................... VII 1 绪论 (1) 1.1选题背景 (1) 1.2 PID算法在控制领域中的应用 (2) 1.3 课题研究的目的及意义 (3) 2 总体方案论证与设计 (4) 2.1方案设计的要求与指标 (4) 2.2方案的可行性分析与方案选择 (4) 2.2.1方案可行性分析 (4) 2.2.2 方案的选择与确定 (6) 2.2.3系统结构框图 (6) 3 温度控制系统硬件设计和软件设计 (8) 3.1 系统硬件设计 (8) 3.1.1系统硬件组成 (8) 3.1.1.1AT89C51单片机的介绍 (8) 3.1.1.2测量温度元件的选择 (9) 3.1.1.3模数转换器ADC0809的介绍 (10) 3.1.1.4键盘和LED显示电路设计 (10) 3.1.1.5温度控制电路设计 (11) 3.2 系统软件设计 (11) 3.2.1主程序流程图及主程序 (11) 3.2.2 T0中断子程序 (15) 3.2.3 A/D转换子程序 (16) 3.2.4 数字滤波子程序 (18) 3.2.5温度标度变换子程序 (19) 3.2.6键盘显示子程序 (19) 3.2.7 PID算法介绍 (21) 4 系统仿真与调试分析 (21) 4.1系统仿真 (21) 4.2系统调试 (21) 5 结束语 (23) 参考文献 (23)

PID调节和温度控制原理

P I D调节和温度控制原理 字体大小:||2006-10-2123:17-阅读:209-:0 当通过热电偶采集的被测温度偏离所希望的给定值时,PID控制可根据测量信号与给定值的偏差进行比例(P)、积分(I)、微分(D)运算,从而输出某个适当的控制信号给执行机构,促使测量值恢复到给定值,达到自动控制的效果。 比例运算是指输出控制量与偏差的比例关系。比例参数P设定值越大,控制的灵敏度越低,设定值越小,控制的灵敏度越高,例如比例参数P设定为4%,表示测量值偏离给定值4%时,输出控制量变化100%。积分运算的目的是消除偏差。只要偏差存在,积分作用将控制量向使偏差消除的方向移动。积分时间是表示积分作用强度的单位。设定的积分时间越短,积分作用越强。例如积分时间设定为240秒时,表示对固定的偏差,积分作用的输出量达到和比例作用相同的输出量需要240秒。比例作用和积分作用是对控制结果的修正动作,响应较慢。微分作用是为了消除其缺点而补充的。微分作用根据偏差产生的速度对输出量进行修正,使控制过程尽快恢复到原来的控制状态,微分时间是表示微分作用强度的单位,仪表设定的微分时间越长,则以微分作用进行的修正越强。 PID模块操作非常简捷只要设定4个参数就可以进行温度精确控制: 1、温度设定 2、P值 3、I值 4、D值

PID模块的温度控制精度主要受P、I、D这三个参数影响。其中P代表比例,I代表积分,D 代表微分。 比例运算(P) 比例控制是建立与设定值(SV)相关的一种运算,并根据偏差在求得运算值(控制输出量)。如果当前值(PV)小,运算值为100%。如果当前值在比例带内,运算值根据偏差比例求得并逐渐减小直到SV和PV匹配(即,直到偏差为0),此时运算值回复到先前值(前馈运算)。若出现静差(残余偏差),可用减小P方法减小残余偏差。如果P太小,反而会出现振荡。 积分运算(I) 将积分与比例运算相结合,随着调节时间延续可减小静差。积分强度用积分时间表示,积分时间相当于积分运算值到比例运算值在阶跃偏差响应下达到的作用所需要的时间。积分时间越小,积分运算的校正时间越强。但如果积分时间值太小,校正作用太强会出现振荡。 微分运算(D) 比例和积分运算都校正控制结果,所以不可避免地会产生响应延时现象。微分运算可弥补这些缺陷。在一个突发的干扰响应中,微分运算提供了一个很大的运算值,以恢复原始状态。微分运算采用一个正比于偏差变化率(微分系数)的运算值校正控制。微分运算的强度由微分时间表示,微分时间相当于微分运算值达到比例运算值在阶跃偏差响应下达到的作用所需的时间。微分时间值越大,微分运算的校正强度越强。 通常,对于温度控制的理解,是觉得其技术成熟且改变不大。有一些工业的应用,不仅对时间进行精确的控制,而且在当设定值改变时,对于快速加温阶段和扰动的快速响应形成最小程度的过冲(overshoot)和下冲(undershoot)。一般采用的PID控制技术难以满足这些特殊的场合。

数字PID控制器设计

数字PID控制器设计 实验报告 学院电子信息学院 专业电气工程及其自动化学号 姓名 指导教师杨奕飞

数字PID控制器设计报告 一.设计目的 采用增量算法实现该PID控制器。 二.设计要求 掌握PID设计方法及MATLAB设计仿真。 三.设计任务 设单位反馈系统的开环传递函数为: 设计数字PID控制器,使系统的稳态误差不大于,超调量不大于20%,调节时间不大于。采用增量算法实现该PID控制器。 四.设计原理 数字PID原理结构图 PID控制器的数学描述为:

式中,Kp为比例系数;T1为积分时间常数;T D为微分时间常数。 设u(k)为第K次采样时刻控制器的输出值,可得离散的PID表达式为:? 使用模拟控制器离散化的方法,将理想模拟PID控制器D(s)转化为响应的理想数字PID控制器D(z).采用后向差分法,得到数字控制器的脉冲传递函数。

2.增量式PID控制算法 u(k)=u(k-1)+Δu(k) 增量式PID控制系统框图 五.Matlab仿真选择数字PID参数 利用扩充临界比例带法选择数字PID参数,扩充临界比例带法是以模拟PID调节器中使用的临界比例带法为基础的一种数字PID参数

的整定方法。其整定步骤如下 1)选择合适的采样周期T:,因为Tmin<1/10 T,选择采样周期为; 2)在纯比例的作用下,给定输入阶跃变化时,逐渐加大比例作用 Kp(即减小比例带δ),直至系统出现等幅震荡,记录比例增益 Kr,及振荡周期Tr 。Kr成为临界振荡比例增益(对应的临界比 例带δ),Tr成为临界振荡周期。 在Matlab中输入如下程序? G=tf(1,[1/150,36/150,185/150,1]); p=[35:2:45]; for i=1:length(p) Gc=feedback(p(i)*G,1); step(Gc),hold on end; axis([0,3,0,]) 得到如下所示图形: 改变其中的参数P=[35:2:45]为p=[40:1:45]得到下图曲线,得Kr约为43,Tr

根据SIMULINK的PID自动控制控制器设计与仿真

基于SIMULINK的PID控制器设计与仿真 1.引言 MATLAB是一个适用于科学计算和工程用的数学软件系统,历经多年的发展,已是科学与工程领域应用最广的软件工具。该软件具有以下特点:数值计算功能强大;编程环简单;数据可视化功能强;丰富的程序工具箱;可扩展性能强等。Simulink是MATLAB下用于建立系统框图和仿真的环境。Simulink环境仿真的优点是:框图搭建方便、仿真参数可以随时修改、可实现完全可视化编程。 比例-积分-微分(Proporitional-Integral-Derivative,PID)是在工业过程控制中最常见、应用最广泛的一种控制策略。PID控制是目前工程上应用最广的一种控制方法,其结构简单,且不依赖被控对象模型,控制所需的信息量也很少,因而易于工程实现,同时也可获得较好的控制效果。 2.PID控制原理 当我们不能将被控对象的结构和参数完全地掌握,或者是不能得到精确的数学模型时,在这种情况下最便捷的方法便是采用PID 控制技术。为了使控制系统满足性能指标要求,PID 控制器一般地是依据设定值与实际值的误差,利用比例(P)、积分(I)、微分(D)等基本控制规律,或者是三者进行适当地配合形成相关的复合控制规律,例如,PD、PI、PID 等。 图2-1 是典型PID 控制系统结构图。在PID 调节器作用下,对误差信号 分别进行比例、积分、微分组合控制。调节器的输出量作为被控对象的输入控制量。

图2-1典型PID 控制系统结构图 PID 控制器主要是依据给定值r (t )与实际输出值y (t )构成控制偏差,用公式表示即e (t )=r (t )-y (t ),它本身属于一种线性控制器。通过线性组合偏差的比例(P )、积分(I )、微分(D ),将三者构成控制量,进而控制受控对象。控制规律如下: 1 01() ()[()()]p d i de t u t K e t e t dt T T dt =++? 其传递函数为: ()1()(1)()p d i U s G s K T S E s T s = =++ 式中:Kp--比例系数; Ti--积分时间常数; Td--微分时间常数。 3.Simulink 仿真 3.1 建立数学建模 3.2 仿真实验 在传统的PID 调节器中,参数的整定问题是控制面临的最主要的问题,控制系统的关键之处便是将Kp 、Ti 、Td 三个参数的值最终确定下来。而在工业

PID控制详解

PID控制原理和特点 工程实际中,应用最为广泛调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制主要技术之一。当被控对象结构和参数不能完全掌握,或不到精确数学模型时,控制理论其它技术难以采用时,系统控制器结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能有效测量手段来获系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是系统误差,利用比例、积分、微分计算出控制量进行控制。 1、比例控制(P): 比例控制是最常用的控制手段之一,比方说我们控制一个加热器的恒温100度,当开始加热时,离目标温度相差比较远,这时我们通常会加大加热,使温度快速上升,当温度超过100度时,我们则关闭输出,通常我们会使用这样一个函数 e(t) = SP – y(t)- u(t) = e(t)*P SP——设定值 e(t)——误差值 y(t)——反馈值 u(t)——输出值 P——比例系数 滞后性不是很大的控制对象使用比例控制方式就可以满足控制要求,但很多被控对象中因为有滞后性。 也就是如果设定温度是200度,当采用比例方式控制时,如果P选择比较大,则会出现当温度达到200度输出为0后,温度仍然会止不住的向上爬升,比方说升至230度,当温度超过200度太多后又开始回落,尽管这时输出开始出力加热,但温度仍然会向下跌落一定的温度才会止跌回升,比方说降至170度,最后整个系统会稳定在一定的范围内进行振荡。 如果这个振荡的幅度是允许的比方说家用电器的控制,那则可以选用比例控制 2、比例积分控制(PI): 积分的存在是针对比例控制要不就是有差值要不就是振荡的这种特点提出的改进,它常与比例一块进行控制,也就是PI控制。 其公式有很多种,但大多差别不大,标准公式如下: u(t) = Kp*e(t) + Ki∑e(t) +u0

变速积分PID控制系统设计

课程设计报告设计题目变速积分PID控制系统设计课程名称计算机控制技术B 姓名苏丹学号2008100731 班级自动化0803 教师闫高伟

设计日期2011年7月5日 目录 摘要............................................................ 错误!未定义书签。Abstract .. (4) 第1章数字PID及变速积分简介.................................... 错误!未定义书签。 1.1 数字PID发展介绍 (1) 1.2 PID控制器工作原理 (2) 1.2.1 模拟式PID控制算法.................................. 错误!未定义书签。 1.2.2 数字式PID控制算法 (3) 1.3 变速积分简介............................................... 错误!未定义书签。第2章系统分析与设计............................................ 错误!未定义书签。 2.1 系统功能分析............................................... 错误!未定义书签。 2.1.1 对象整体分析 (5) 2.1.2系统分析与设计与系统开环增益 (6) 2.2计算机系统选择分析 (6) 2.2.1 8088CPU简介 (6) 2.2.2 其余模块的使用 (7) 2.3 软件设计分析 (12) 第3章硬件设计与软件编程 (12) 3.1 硬件设计 (12) 3.1.1 系统方框图 (12) 3.1.2 线路原理图 (12) 3.2 软件编程 (13) 3.2.1 软件流程图 (14) 3.2.2 程序源代码 (21) 第4章设计仿真与运行分析 (21) 4.1 结果分析 (21) 4.2 matlab仿真 (22) 总结.............................................................................错误!未定义书签。附录....... (26) 附录1 线路原理图 (28) 附录2 TDN-AC/ACS+教学实验系统介绍 (28) 附录3 参考资料 (30)

计算机控制系统课设报告--数字温度PID控制器的设计

《计算机控制系统A》课程设计 任务书 一、目的与要求 1、通过本课程设计教学环节,使学生加深对所学课程内容的理解和掌握; 2、结合工程问题,培养提高学生查阅文献、相关资料以及组织素材的能力; 3、培养锻炼学生结合工程问题独立分析思考和解决问题的能力; 4、要求学生能够运用所学课程的基本理论和设计方法,根据工程问题和实际应用方案的要 求,进行方案的总体设计和分析评估; 5、报告原则上要求依据相应工程技术规范进行设计、制图、分析和撰写等。 二、主要内容 1、数字控制算法分析设计; 2、现代控制理论算法分析设计; 3、模糊控制理论算法分析设计; 4、过程数字控制系统方案分析设计; 5、微机硬件应用接口电路设计; 6、微机应用装置硬件电路、软件方案设计; 7、数字控制系统I/O通道方案设计与实现; 8、PLC应用控制方案分析与设计; 9、数据通信接口电路硬件方案设计与性能分析; 10、现场总线控制技术应用方案设计; 11、数控系统中模拟量过程参数的检测与数字处理方法; 12、基于嵌入式处理器技术的应用方案设计; 13、计算机控制系统抗干扰技术与安全可靠性措施分析设计; 14、计算机控制系统差错控制技术分析设计; 15、计算机控制系统容错技术分析设计; 16、工程过程建模方法分析; 三、进度计划 序号设计内容完成时间备注 1 选择课程设计题目,查阅相关文献资料7月13日 2 文献资料的学习,根据所选题目进行方案设计7月14日

3 讨论设计内容,修改设计方案7月15日 4 撰写课程设计报告7月16日 5 课程设计答辩7月17日 四、设计成果要求 1、针对所选题目的国内外应用发展概述; 2、课程设计正文内容包括设计方案、硬件电路和软件流程,以及综述、分析等; 3、课程设计总结或结论以及参考文献; 4、要求设计报告规范完整。 五、考核方式 通过系统设计方案、总结报告、图文质量和学习与设计态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神等。 《计算机控制系统课程设计》成绩评定依据如下: 1、撰写的课程设计报告; 2、独立工作能力及设计过程的表现; 3、答辩时回答问题的情况。 优秀:设计认真,设计思路新颖,设计正确,功能完善,且有一定的独到之处,打印文档规范; 良好:设计认真,设计正确,功能较完善,且有一定的独到之处,打印文档规范; 及格:设计基本认真,设计有个别不完善,但完成基本内容要求,打印文档较规范; 不及格:设计不认真,未能完成设计任务,打印文档较乱或出现抄袭现象者。 说明: 同学选择题目要尽量分散,并且多位同学选同一个题目时,要求各自独立设计,避免相互参考太多,甚至抄袭等现象。 学生姓名:苏印广 指导教师:李士哲 2015年7月17日

常规pid控制器与模糊控制器的比较 ()

上机实验 已知系统的传递函数为G(S)=1/(10S+1)e-0.5s。假设系统给定为阶跃值r=30,系统的初始值r(0)=0试分别设计常规PID控制器和模糊控制器。 常规PID控制器的设计: 利用Ziegler-Nichols整定公式整定PID调节器的初始参数 由公式可得 P=18 Ti=1.65 Td=0

SIMULINK仿真图 设定仿真时间为10s 仿真结果

模糊控制器的设定 1 在matlab命令窗口输入“fuzzy”确定模糊控制器结构:即根据具体的系统确定输入、输出量。选取二维控制结构,即输入为误差e和误差变化ec,输出 为u如下图所示

2 输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,然后我们为模糊语言变量选取相应的隶属度函数。如下图所示

3 模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。首先要确定模糊规则,即专家经验。如图。 制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。

4.对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,反模糊化方法很多,我们这里选取重心法。 SIMULINK仿真图 在模糊控制器的输入和输出均有一个比例系数,我们叫它量化因子,它反映的是模糊论域范围与实际范围之间的比例关系,这里模糊控制器输入的论域范围均为[-6,6],假设误差的范围是[-10,10],误差变化率范围是[-100,100],控制量的范围是[-24,24],那么我们就可以算出量化因子分别为0.6,0.06,8。量

PID控制器设计

PID 控制器设计

PID 控制器设计 被控制对象的建模与分析 在脑外科、眼科等手术中,患者肌肉的无意识运动可能会导致灾难性的后果。为了保证合适的手术条件,可以采用控制系统自动实施麻醉,以保证稳定的用药量,使患者肌肉放松,图示为麻醉控制系统模型。 图1结构框图 被控制对象的控制指标 取τ=0.5,k=10,要求设计PID 控制器使系统调节时间t s ≤8s,超调量σ%不大于15%,并且输出无稳态误差。 控制器的设计 PID 控制简介 PID 控制中的积分作用可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。 微分作用可提高系统的响应速度, 但其对高频干扰特别敏感, 甚至会导致系统失稳。 所以, 正确计算控制器的参数, 有效合理地实现 PID 控制器的设计,对于PID 控制器在过程控制中的广泛应用具有重要的理论和现实意义。 在PID 控制系统中, PID 控制器分别对误差信号e (t )进行比例、积分与微分运算, 其结果的加权和构成系统的控制信号u (t ),送给对象模型加以控制。 PID 控制器的数学描述为 其传递函数可表示为: 1 1.0) 1.0(++s s k τ )1.0()15.0(1 2++s s 控制器 人 药物 输入 R(s ) 预期松弛程度 C(s) 实际松弛程度 + -

从根本上讲, 设计PID 控制器也就是确定其比例系数Kp 、积分系数T i 和微分系数T d , 这三个系数取值的不同, 决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。下面介绍基于MATLAB 的 Ziegler-Nichols 算法PID 控制器设计。 原系统开环传递函数G(s)=)1.0)(15.0)(11.0(10 +++s s s 做原系统零极点图 图2原系统零极点图

PID温度控制系统的设计

PID温度控制系统的设计 介紹以单片机为核心的PID控制温度控制系统,并给出了系统的硬件与软件设计方案。实验结果显示该系统的先进性。 标签:温控系统单片机PID控制 0 引言 控制仪表性能指标对温度控制有很大的影响,因此,常采用高性能调节仪表组成温控系统对被控对象(温度)进行严格控制。本文介绍以单片机AT89C51为核心器件构成的温度控制系统,它具有测量、控制精度高、成本低、体积小、功耗低等优点,可制成单机,广泛应用于冶金、化工、食品加工等行业对温度进行精确控制。 1 温控系统结构与工作原理 温控系统的结构如图1所示。热电偶测量出电炉的实际温度(mv信号),经放大、线性化、A/D转换处理后送入单片机接口。由键盘敲入设定温度值,此值与经A/D转换过的炉温信号存在一差值(假如两者温度不一致),由单片机PID调节电路进行比例、微分及变速积分算法对温控箱进行恒温控制。该系统采用传统的AT89C52单片机,其硬、软件完全符合系统的要求,为满足测控精确度的要求,A/D 电路选用12位转换器,分辨率为2-12。本系统采用三相数字过零触发器对六只晶闸管(Y/△接法均可)进行输出功率控制,即在电源电压过零时触发晶闸管,利用PID信号产生的控制信号使电流每周期按规定的导通波头数导通负载,达到控制输出功率,也就是控制炉温的目的。采用过零触发可减少电网谐波的产生,触发器与单片机光电隔离,可减少电网对微机的干扰,调功方式下电加温炉的平均功率为:P=3nU2/NR(1) 式中:P为输入电炉的功率;R为电炉的等效电阻;U为电网相电压;n为允许导通的波头数;N为设定的波头数。 注:公式(1)为负载Y接法适用 2 系统控制软件设计 2.1 PID参数的优化系统采用遗传算法(Genetic Algorithm,简称GA)离线优化PID参数[1]。20世纪70年代由美国J.Holland教授提出的遗传算法(GA)[2]是一种模拟生物进化过程的随机化搜索方法。它采用多路径搜索,对变量进行编码处理,用对码串的遗传操作代替对变量的直接操作,从而可以更好的处理离散变量。GA用目标函数本身建立寻优方向,无需求导求逆等复导数数学运算,且可以方便的引入各种约束条件,更有利于得到最优解,适合于处理混合非线性规划和多目标优化。系统采用二进制编码选择来操作,我们称为染色体串(0或1),每个串表

基于MATLAB的PID控制器设计说明

基于MATLAB的PID 控制器设计

基于MATLAB的PID 控制器设计 一、PID控制简介 PID控制是最早发展起来的经典控制策略, 是用于过程控制最有效的策略之一。由于其原理简单、技术成,在实际应用中较易于整定, 在工业控制中得到了广泛的应用。它最大的优点是不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数, 经过经验进行调节器参数在线整定, 即可取得满意的结果, 具有很大的适应性和灵活性。 积分作用:可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。 微分作用:可提高系统的响应速度, 但其对高频干扰特别敏感, 甚至会导致系统失稳。 所以, 正确计算控制器的参数, 有效合理地实现 PID控制器的设计,对于PID 控制器在过程控制中的广泛应用具有重要的理论和现实意义。 在PID控制系统中, PID控制器分别对误差信号e(t)进行比例、积分与微分运算, 其结果的加权和构成系统的控制信号u(t),送给对象模型加以控制。 PID控制器的数学描述为 其传递函数可表示为: 从根本上讲, 设计PID控制器也就是确定其比例系数Kp、积分系数T i 和微分系数T d , 这三个系数取值的不同, 决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。 二、MATLAB的 Ziegler-Nichols算法PID控制器设计。 1、PID控制器的Ziegler-Nichols参数整定 在实际的过程控制系统中, 有大量的对象模型可以近似地由一阶模型 来表示。这个对象模型可以表示为 sL - e sT 1 K G(s) + = 如果不能建立起系统的物理模型, 可通过试验测取对象模型的阶跃响应, 从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 利用MATLAB,通过使用step ( ) 函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应中, 可获取K 、L 和T参数, 也可在MATLAB中由dcgain ( ) 函数求取 K值。

计算机控制课程设计 基于PID算法电加热炉温度控制系统设计

成绩 《计算机控制技术》 课程设计 题目:基于数字PID的电加热炉温度控制系统设计 班级:自动化09-1 姓名: 学号: 2013 年 1 月 1 日

基于数字PID的电加热炉温度控制系统设计 摘要:电加热炉控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。本设计采用PID算法进行温度控制,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节相串联来实现温度的较为精确的控制。 电加热炉加热温度的改变是由上、下两组炉丝的供电功率来调节的,它们分别由两套晶闸管调功器供电。调功器的输出功率由改变过零触发器的给定电压来调节,本设计以AT89C51单片机为控制核心,输入通道使用AD590传感器检测温度,测量变送传给ADC0809进行A/D转换,输出通道驱动执行结构过零触发器,从而加热电炉丝。本系统PID算法,将温度控制在50~350℃范围内,并能够实时显示当前温度值。 关键词:电加热炉;PID ;功率;温度控制; 1.课程设计方案 1.1 系统组成中体结构 电加热炉温度控制系统原理图如下,主要由温度检测电路、A/D转换电路、驱动执行电路、显示电路及按键电路等组成。 系统采用可控硅交流调压器,输出不同的电压控制电阻炉温度的大小,温度通过热电偶检测,再经过变送器变成0 - 5 V 的电压信号送入A/D 转换器使之变成数字量,此数字量通过接口送到微机,这是模拟量输入通道。 2.控制系统的建模和数字控制器设计 2.1 数字PID控制算法 在电子数字计算机直接数字控制系统中,PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。

数字PID控制器设计制作(附答案)

数字PID控制器设计 设计任务: 设单位反馈系统的开环传递函数为: 设计数字PID控制器,使系统的稳态误差不大于0.1,超调量不大于20%,调节时间不大于0.5s。采用增量算法实现该PID控制器。 具体要求: 1.采用Matlab完成控制系统的建立、分析和模拟仿真,给出仿真结果。 2.设计报告内容包含数字PID控制器的设计步骤、Matlab仿真的性能曲线、采样周期T的选择、数字控制器脉冲传递函数和差分方程形式。 3.设计工作小结和心得体会。 4.列出所查阅的参考资料。

数字PID控制器设计报告 一、设计目的 1 了解数字PID控制算法的实现; 2 掌握PID控制器参数对控制系统性能的影响; 3 能够运用MATLAB/Simulink 软件对控制系统进行正确建模并对模块进行正确的参数设置; 4 加深对理论知识的理解和掌握; 5 掌握计算机控制系统分析与设计方法。 二、设计要求 1采用增量算法实现该PID控制器。 2熟练掌握PID设计方法及MATLAB设计仿真。 三、设计任务 设单位反馈系统的开环传递函数为: 设计数字PID控制器,使系统的稳态误差不大于0.1,超调量不大于20%,调节时间不大于0.5s。采用增量算法实现该PID控制器。 四、设计原理 1.数字PID原理结构框图

2. 增量式PID 控制算法 ()()()()()01P I D i u k K e k K e i K e k e k ∞ ==++--????∑ =u(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)] =u(k-1)+(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2) 所以Δu(k)=u(k)-u(k-1) =Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)] =(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2) 整理: Δu(k)= Ae(k)-Be(k-1)+Ce(k-2) A= Kp+Ki+Kd B=-(Kp+2Kd ) C=Kd 五、Matlab 仿真选择数字PID 参数 (扩充临界比例度法/扩充响应曲线法 具体整定步骤) 利用扩充临界比例带法选择数字PID 参数,扩充临界比例带法是 以模拟PID 调节器中使用的临界比例带法为基础的一种数字 PID 参数的整定方法。其整定步骤如下:;

PID控制原理讲解

经常有人问有关PID的用法,看一些有关单片及应用的书上都有关于PID的应用原理,但是面对具体的问题就不知道如何应用了,主要的问题是里面所用到的参数以及计算结果需要进行什么处理,通过什么样的换算才能具体的应用于实际,另外在计算方法上也存在着数值计算的算法问题,今天我在这里例举温度控中的PID部分,希望能够把PID的具体应用说明白。 一般书上提供的计算公式中的几个名词: 1. 直接计算法和增量算法,这里的所谓增量算法就是相对于标准算法的相邻两次运算之差,得到的 结果是增量,也就是说,在上一次的控制量的基础上需要增加(负值意味着减少)控制量,例如对于可控硅电机调速系统,就是可控硅的触发相位还需要提前(或迟后)的量,对于温度控制就是需要增加(或减少)加热比例,根据具体的应用适当选择采用哪一种算法,但基本的控制方法、原理是完全一样的,直接计算得到的是当前需要的控制量,相邻两次控制量的差就是增量; 2. 基本偏差e(t),表示当前测量值与设定目标间的差,设定目标是被减数,结果可以是正或负,正 数表示还没有达到,负数表示已经超过了设定值。这是面向比例项用的变动数据。 3. 累计偏差Σ(e)= e(t)+e(t-1)+e(t-2)+…e(1),这是我们每一次测量到的偏差值的总和,这是代 数和,考虑到他的正负符号的运算的,这是面向积分项用的一个变动数据。 4. 基本偏差的相对偏差e(t)-e(t-1),用本次的基本偏差减去上一次的基本偏差,用于考察当前控 制的对象的趋势,作为快速反应的重要依据,这是面向微分项的一个变动数据。 5. 三个基本参数:Kp,Ki,Kd.这是做好一个控制器的关键常数,分别称为比例常数、积分常数和 微分常数,不同的控制对象他们需要选择不同的数值,还需要经过现场调试才能获得较好的效果。 6. 标准的直接计算法公式: Pout(t)=Kp*e(t)+Ki*Σe(t)+Kd*(e(t)-e(t-1)); 上一次的计算值: Pout(t-1)=Kp*e(t-1)+Ki*Σe(t-1)+Kd*(e(t-1)-e(t-2)); 两式相减得到增量法计算公式: Pdlt=Kp*(e(t)-e(t-1)+Ki*Σe(t)+Kd*(e(t)-2*e(t-1)+e(t-2)); *这里我们对Σ项的表示应该是对e(i)从1到t全部总和,但为了打字的简便就记作Σe(t). 三个基本参数Kp,Ki,Kd.在实际控制中的作用: 比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。 积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,甚至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决于积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。 微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能遇见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下。可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。 具体应用中的数值量化处理: 上面只是控制算法的数学方法,似乎有点抽象,在具体的控制项目中怎样对应呢?也就是具体的量化问题。下面举一个在温度控制中的处理方法。

PID控制器设计

PID控制器设计 一、PID控制的基本原理和常用形式及数学模型 具有比例-积分-微分控制规律的控制器,称PID控制器。这种组合具有三种基本规律各自的特点,其运动方程为: dt t de dt t e t e t m K K K K K d p t i p p )( )( )( )( + + =? (1-1)相应的传递函数为: ? ? ? ? ? ? + + =S S s K K K G d i p c 1 ) ( S S S K K K d i p 1 2+ + ? = (1-2) PID控制的结构图为: 若1 4< T i τ,式(1-2)可以写成: = ) (s G c()() S S S K K i P 1 1 2 1 + + ? τ τ 由此可见,当利用PID控制器进行串联校正时,除可使系统的型别提高一级外,还将提供两个负实零点。与PI控制器相比,PID控制器除了同样具有提高系统的稳态性能的优点外,还多提供一个负实零点,从而在提高系统动态性能方面,具有更大的优越性。因此,在工业过程控制系统中,广泛使用PID控制器。PID控制器各部分参数的选择,在系统现场调试中最后确定。通常,应使积分部分发生在系统频率特性的低频段,以提高系统的稳态性能;而使微分部分发生在系统频率特性的中频段,以改善系统的动态性能。

二、实验内容一: 自己选定一个具体的控制对象(Plant),分别用P 、PD 、PI 、PID 几种控制方式设计校正网络(Compensators ),手工调试P 、I 、D 各个参数,使闭环系统的阶跃响应(Response to Step Command )尽可能地好(稳定性、快速性、准确性) 控制对象(Plant)的数学模型: ()()??? ? ??++=115.01 )(S S S G 2 322++=S S 实验1中,我使用MATLAB 软件中的Simulink 调试和编程调试相结合的方法 不加任何串联校正的系统阶跃响应: (1) P 控制方式: P 控制方式只是在前向通道上加上比例环节,相当于增大了系统的开环增益,减小了系统的稳态误差,减小了系统的阻尼,从而增大了系统的超调量和振荡性。 P 控制方式的系统结构图如下: 取Kp=1至15,步长为1,进行循环 测试系统,将不同Kp 下的阶跃响应曲线绘制在一张坐标图下:

(完整版)基于单片机的PID温度控制毕业设计

以下文档格式全部为word格式,下载后您可以任意修改编辑。 前言 温度是表征物体冷热程度的物理量。在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。 单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。但随之而来的是巨额的成本。在很多的小型系统中,处理机的成本占了系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。 随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。现在完

全可以运用单片机和电子温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,如果对此原理图稍加改进,还可以进行不同地点的实时温度检测和控制。

1绪论 1.1研究的目的和意义 温度是工业生产中主要被控参数之一,温度控制自然是生产的重要控制过程。工业生产中温度很难控制,对于要求严格的的场合,温度过高或过低将严重影响工业生产的产质量及生产效率,降低生产效益。这就需要设计一个良好温度控制器,随时向用户显示温度,而且能够较好控制。单片机具有和普通计算机类似的强大数据处理能力,结合PID,程序控制可大大提高控制效力,提高生产效益[9]。 例如钢铁生产过程中,按照工艺条件的规定保持一定的温度才能保证产品质量和设备的安全。对电气设备进行温度的监控,例如高压开关、变压器的出线套管等,判断可能存在的热缺陷,进而能及时发现、处理、预防重大事故的发生。因此研究温度控制仪具有重要的意义[10]。 在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合[16]。 目前市场上热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能.即使热水器具有辅助加热功能。也可能由于加热时间不能控制而产生过烧,从而浪费电能。本文设计的热水器控制系统以51单片机为检测控制中心单元,具有温度设定与控制功能。该控制器和以往显示仪相比具有性

相关主题
文本预览
相关文档 最新文档