当前位置:文档之家› 基本PID温度控制

基本PID温度控制

基本PID温度控制
基本PID温度控制

1实习内容及其要求

实习内容:通过温度的设定和反馈值,计算偏差,并使用PID控制算法输出控制信号,整定PID参数,是被控温度达到设定值,具体包括AC6611过程卡的接线和测试、人机界面程序设计、数据采集程序设计、PID算法程序设计,控制输出程序设计、PID参数的整定。

实习目的:通过实训,让学生了解计算机控制系统的基本组成,学会计算机控制硬件和软件的设计以及程序的调试,具备技术实现能力,基本能够处理实践过程中的问题并提出解决办法,进一步提高学生的计算机应用水平。在实训中设计出的方案和程序要满足规定和切合实际。

2 AC6611多功能过程通道卡

AC6611是一款廉价通用A/D、D/A板,AD工作在查询方式,采用PCI总线支持即插即用、无需地址跳线。AC6611具有16路单端模拟输入、32路开关量(16路输入及16路输出)、一路12位D/A。AC6611采用CH PCI接口芯片及门阵列作为主控芯片,可以提高可靠性。对不需要模拟输出的用户可以选择AC6610,与6611兼容。

2.1 功能特点与技术指标

AC6611可以实现慢速直流电压、电流(需要转换板)信号采集以及小型测控、仪表系统的控制。AC6611有模拟量输入、模拟量输出、开关量输入输出,他们可以完成相应不同的功能。

(1)模拟量输入(A/D)

A/D转换器: 120KHZ ,12位A/D,ADS7816,A/D内置采样保持器。

工作方式:软件查询。

16路单端输入,输入阻抗:1MΩ

最大输入耐压电压:< +12V/-5.5V,瞬时输入耐压:-25V - +30V

连接器:DB25孔式输入连接器。

A/D最大通过率: 70KHZ,输入通道建立时间<8uS。

双极性输入范围:5V,单极性输入范围:5V、10V。输入范围跳线器选择,对应输入幅度及精度如下:

输入系统精度(FSR)跳字

0-10V 0.1% 1LSB

0-5V 0.1% 1.5LSB

-5V-+5V 0.1% 1LSB

(2)模拟量输出(D/A)

1路12位DA,分辨率12位,精度:0.2%,

电压输出,最大输出电流:5毫安。

输出零点误差小于±10毫伏。

输出范围:10伏、±10伏,跳线器选择。

输出建立时间小于:50微秒。

输出插座:DB25(孔)连接器。

(3)开关量输入/输出

16路开关量输入(2个8位),16路开关量输出(2个8位)

TTL电平(兼容3伏逻辑)

开关量输出复位后为输出为低电平“0”。

输出高电压 > 2.5V,低电压 < 0.5V,最大输出电流:8mA

输入电流:<0.1mA 输入高电压门限:〉2V,低电压:〈 0.8V。

输入耐压:高电平最大耐压:8伏,低电平:-0.4伏。

连接器:40脚扁平电缆插座。

(4)其它

符合PCI V2.1标准,供电:+5伏、+12伏、-12伏。

AC6611占用64个I/O选通空间(自动分配)。

工作温度:0-70℃,尺寸:12(W) X 9(H) (厘米)

2.2 应用方法和步骤

(1)安装AC6611驱动程序

以Windows XP 平台下安装AC6611 驱动程序

①关闭计算机的电源;

②将ac6611 板卡插入PCI 槽中;

③打开计算机电源,启动Windows XP,Windows XP 将会显示找到新硬件;

④在“找到新硬件向导”对话窗中选择“从列表或指定位置安装”,下一步;

⑤选择驱动所在目录,进行安装(\ac6611\driver\);

⑥按找到新硬件向导的提示进行下一步;

⑦Windows XP 将显示完成添加/删除硬件向导,单击完成即可完成安装过程

安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号,不表示设备有问题,只是表示系统不知道ac6611 板卡是何种类型设备)驱动安装后,ac6611.sys, ac6611.dll 文件就自动被复制到系统中去了,可以进行其他测试、开发工作了。若无法正常安装,请换一台机器再尝试安装过程,若安装成功,说明安装不成功的机器系统有问题,考虑重装系统,在进行安装AC6611 驱动。

注意:一般情况下,实验室已经安装好AC6611的驱动程序,只是在驱动程序出现问题或在没有驱动程序的机器上使用AC6611时才需要重新安装驱动程序。

(2)将AC6611板卡接到计算机上

(3)AC6611板卡的静态测试

使用AC6611测试程序可以检查AC6611板卡的功能是否正确,AC6611的测试程序不需要安装,其名为“AC6611(静态).EXE”,找到其存放目录双击即可,其界面如下图2-1所示,界面分为A/D、D/A和I/O三个测试区域。-

1)AC6611模拟量输入的测试

以下操作在界面的A/D测试区域进行操作,如图所示。

图2-1 AC6611板卡的静态测试界面

AC6611的输入量程可以是0~5V、0~10V和-5V~+5V,选择的输入量程应该和板卡设置的量程一致,否则无法获得正确的采集结果。

②选择起始通道通道和结束通道

AC6611共有16个通道,可以选择任何一个或多个通道进行采集,如果只采集一个通道,将起始通道和结束通道设为相同即可。

③给指定的通道施加电压信号,注意不能超过选择的量程和极限电压范围,否将损坏AC6611板卡。

④按启动按钮,启动数据采集,其显示情况如图2-3所示。

图2-2 AC6611 模拟量输入测试

⑤观察采集结果和实际施加的电压是否相同或接近,如果相同或接近,则说明板卡是好的,否则说明板卡存有故障。如果板卡是好的,则还可利用测试软件测试其各项指标。

注意:可以使用AC6611的D/A输出作为电压信号源。

2)AC6611模拟量输出的测试

以下操作在界面的A/D测试区域进行操作,如图2-3所示

图2-3 AC6611 模拟量输出测试

AC6611的模拟量输出量程可以是0~10V或-10V~+10V,选择的输出量程应该和板卡设置的量程一致,否则无法获得正确的采集结果。

②使用鼠标移动滑块即可改变模拟量输出值,滑块移动后对应的电压值在屏幕上有显示。

③使用万用表测量输出电压,如果和给定的输出电压一致或接近,则说明AC6611的D/A输出是正常的,否则有问题。

④通过测试软件可以测试D/A的各项指标。

注意:可以将AC6611的A/D当作万用表使用。

3)AC6611 I/O功能的测试

以下操作在界面的I/O测试区域进行操作,如图2-4所示。

图2-4 AC6611 开关量输入/输出测试

AC6611共有16路开关量输入和16路开关量输出,其中DI7~DI0和DI15~DI8分别为开关量输入的低8路(占1字节)和高8路(占1字节);其中DO7~DO0和DO15~DO8分别为开关量输出的低8路(占1字节)和高8路(占1字节)。对于开关量输入,红色方块表示高电平,绿色方块表示低电平;对于开关量输出,划钩(选中)表示输出高电平,反之输出低电平。采用万用表测量其输出是高电平还是低电平。

注意:可以将某路开关量输出和开关量输入互连,通过改变某路开关量输出,观察某路开关量输入是否跟随开关量输出变化来测试I/O功能是否正确。

4)AC6611程序的设计

AC6611 提供有WDM 驱动程序,支持Windows 98/Windows 2000/XP 操作系统,提供DLL 接口,支持多种语言,并提供大量例程方便用户开发使用(Visual C 6.0(win32 console、MFC)、Visual Basic 6.0、C++ Builder6.0、Delphi 6.0)。

开发工作主要是通过调用DLL 库中的专用函数操作AC6611 板卡,从而达到实现AD、DA、DIO 等功能。对于C++一类的语言,可以使用动态调用DLL 的法使用DLL,如VisualC++\C++ Builder;对于Visual Basic\Delphi 等语言基本省略了加载DLL 的过程,定义了函数说明后,可以直接使用DLL 中的函数。

在本次实训中,AC6611 程序设计的步骤如下:

①加载DLL;

②调用AC6611_CreateDevice();

③调用AC6611_AD( )、AC6611_DA( );

④AC6611_CloseDeivce()。

⑤卸载DLL

⑥头文件

3 方案设计

3.1 加热器的过程特性

在本次实验中,使用的加热器其加热上限是100℃。在加热的过程中,通过计算机的控制,其温度不断地逼近设定值,并在允许的偏差范围内有较小的波动。其在工作的时候是通过外在的控制器给予它一个模拟的信号,来驱动加热器工作,在此同时它也会向控制器反馈它此时的温度状态。

3.2 加热器温度控制系统的实现方案

对于加热器温度控制系统,在硬件上我们采用的是AC6611板卡、AC157和一个用于实训的加热器。在软件上我们采用的基本的PID控制算法对其进行的控制输出。从而有机的把软硬件整合成为一个整体,构成一个比较简易的加热器温度控制系统。

3.3 AC6611和加热器接线图设计

AC6611是通过AC157和加热器相连接的,在加热器的输出和地之间还需要接一个500Ω的电阻,将4到20毫安的电流转换成2到10伏的电压。其具体的

实物接线图和模块如图3-1、3-2所示:

图3-1 AC6611和加热器模块接线图

图3-2 AC6611和加热器实物接线图

3.4 控制程序的方案设计和模块划分

控制程序中主要包括界面的设计(见图3-3)、数据采集处理程序的设计、实时控制程序设计等。数据采集和处理和处理程序设计包括AC6611数据采集程序、D/A输出程序、标度换算等相应的程序设计。

其中界面设计包括趋势曲线、棒图的显示、报警显以及各个参数的显示等。在趋

势曲线和棒图的显示时,我们分别用红、蓝、绿三种颜色的线条显示SP、PV和MV的相应实时值,其值来自PID的算法程序的输出。在编辑栏中我们可以修改PID控制算法的相应的参数P、I、D等。当修改完成后,我们可以点击确认按钮,将修改后的参数送入到算法程序中去。

图3-3 主界面图

4 数据采集与输出程序设计

4.1 AC6611数据采集与温度换算程序

AC6611要控制温度需要将加热器温度的采集进来,由于AC6611的是电流为0-10毫安,电压为2-10伏,温度为0-100度,电流转换成电压只需在两端加入串入500欧的电阻,电压转和温度要通过转换才能实现显示温度。程序分别如下:unsigned long ad_data;

AC6611_AD(hDevice, 12, &ad_data);

PV=ad_data*10/4095.0;

PV=(PV-2)*100.0/8; //转换成温度

4.2 数字滤波算法及程序设计

由于在数据采集有很多的干扰以及不确定因素,要将采集进来的数据通过数值滤波将没用的信号滤掉。班次采用的是算术平均值法即按输入的N 个采样为数据(1N i X i =),寻找这样一个y ,让y 与个采样值间的偏差的平方和为最小,

使21E min[()]N i i y x =-∑ = 由一元函数求极值原理可得11n

i i y x N ==∑ 这样就是算术平均值的算法,算出有用信号。

4.3控制量与D/A 代码换算及输出程序

控制量要通过D/A 换算再通过相应的输出程序才能在编辑框中显示相应的数值,程序如下:

unsigned long da;

da=(unsigned short int)(Un*4095.0/100.0);

AC6611_DA(hDevice,da);

Edit1->Text=FloatToStr(SP);

Edit2->Text=FloatToStr(PV);

Edit3->Text=FloatToStr(Un);

Edit4->Text=FloatToStr(P);

Edit5->Text=FloatToStr(I);

Edit6->Text=FloatToStr(D);

5 控制算法程序设计

计算机控制技术控制具体的设计要通过一定的程序以及算法才能实现相应的控制,在本次中主要包含显示曲线的程序设计、PID 算法程序设计下面分别介绍他们。

5.1 显示曲线的程序实现

在本次实训中我们总共有图的显示包含趋势图和棒图,在C++Bulider 中应在对象画布(canvas )中绘制,再通过设置画布的属性来实现具体图形的绘制。画笔Pen 可以设置画布的眼神、风格、宽度等本次用到的是颜色和宽度,在画图时定义了颜色和宽度是在定义具体的画点(包含起点和终点)就行了。

趋势曲线图程序如下:

for(int i=0;i<479;i++){

pvtrend[i]=pvtrend[i+1]; //最新数据

sptrend[i]=sptrend[i+1];

mvtrend[i]=mvtrend[i+1];

}

pvtrend[479]=3*PV;

sptrend[479]=3*SP;

mvtrend[479]=3*Un;

Image1->Picture->LoadFromFile("qushi.bmp");

Image1->Canvas->Pen->Width = 1; //曲线粗细程度

Image1->Canvas->Pen->Color = clRed;//测量值曲线为红色Image1->Canvas->MoveTo(0,300);//曲线起点

for(int i=0;i<480;i++) //曲线由480 个点组成Image1->Canvas->LineTo(i,300-sptrend[i]); //两点之间连一直线Image1->Canvas->Pen->Color = clBlue;

Image1->Canvas->MoveTo(0,300);

for(int i=0;i<480;i++)

Image1->Canvas->LineTo(i,300-pvtrend[i]);

Image1->Canvas->Pen->Color = clGreen;

Image1->Canvas->MoveTo(0,300);

for(int i=0;i<480;i++)

Image1->Canvas->LineTo(i,300-mvtrend[i]);

棒图程序如下:

Image2->Picture->LoadFromFile("bangtu.bmp");

Image2->Canvas->Pen->Color = clRed; //给定值棒图为红色

Image2->Canvas->Pen->Width = 5; //棒条宽度

Image2->Canvas->MoveTo(35,294); //给定值棒条起点

Image2->Canvas->LineTo(35,294-SP*3); //比例变换

Image2->Canvas->Pen->Color=clBlue;

Image2->Canvas->MoveTo(55,294);

Image2->Canvas->LineTo(55,294-PV*3);

Image2->Canvas->Pen->Color=clGreen;

Image2->Canvas->MoveTo(70,294);

Image2->Canvas->LineTo(70,294-Un*3);

5.2 PID 算法程序设计

本次中我们做的是基本PID 控制它的基本算法如下:

基本PID 程序如下:

En=SP-PV;

DUn=q0*En+q1*En1+q2*En2;

Un=Un1+DUn;

if( Un>100.0) Un=100.0;

if(Un<0) Un=0;

Un1=Un;

En2=En1;

En1=En;

6 控制程序的调试

6.1 主要调试内容

在程序编写完成后,为验证系统的稳定性和可靠性,此时我们需要让系统运行起来,经过反复的操作和验证后的系统才是一个稳定可靠的系统。在系统的调试中,我们调试的主要内容包括:硬件调试和软件调试。软件调试又包括子程序??????--++=∑=T 1k e k e T i e T T k e K k u D k 0i I P )()()()()([][]

()()(1)()()2(1)(2)P I D u k K e k e k K e k K e k e k e k ?=--++--+-012()()(1)(2)u k q e k q e k q e k ?=+-+-0(1)D P I T T q K T T =++02(1)D P T q K T =-+0D P T q K T

=()(1)()u k u k u k =-±?

的调试后再综合的调试。

6.2 调试方法

硬件的调试:在进行硬件调试的时候,我们可以让硬件在极限条件进行工作,观察其性能是否稳定,其个方面的指标是否有较大的波动,以验证其性能的优劣。

子程序的调试:在操作界面上对开发的系统进行各种各样的试探性操作,观察程序是否存在没有考虑到的漏洞,以对其进行修改和调试。

PID参数的整定:在这次实训中PID参数的整定是最重要的环节,也是系统调试的核心内容。其参数整定的方法是根据被控过程的特性来确定PID控制器最佳的比例系数、积分时间和微分时间的大小。

6.3 调试步骤和结果

(1)硬件的调试和结果

硬件的调试一般是静态调试这个在AC6611的应用中讲到这里不再多说,其中硬件调试还包括硬件优劣的检查方法是,我们可以让硬件在极限条件进行工作,观察其性能是否稳定,其个方面的指标是否有较大的波动,以验证其性能的优劣。硬件的调试结果在AC6611静态调试中已包括。

(2)子程序的调试和结果

调试的时候我先一个个子程序的运行看是否住存在错误,再一步步改进程序中的错误,再全部一起调试。

趋势曲线图的调试:在绘制趋势曲线图的时候运行程序时有一个错误“clPink”没得通过查阅C++Builder的书发现在Canvas的属性中没得粉色,然后就将“clPink”改为“clGreen”。运行后发现图形的起点和终点与设置的不一样,后面想到老师讲的图形的坐标与我们数学中用到的有一些不一样,后面通过计算准确的显示图形。

棒图的调试:棒土运行后与趋势曲线图有相同的错误就是颜色,还有就是运行后发现棒图很细,我将棒图中的“Image2->Canvas->Pen->Width=1;”改为了“Image2->Canvas->Pen->Width=5;”这样棒图就清晰很多。

(3)PID参数整定和结果

PID参数整定先是比例后积分再微分,PID参数整定结果是将趋势曲线图显示为最佳状态,第7节将详细介绍PID参数的整定和结果,这里不多说明。

7 PID参数的整定

7.1 整定方法

PID参数的整定的方法主要有两大类:一是理论计算整定法,主要是通过系统的数学模型进行理论计算得到控制器参数,但还必须通过工程实际进行相应的调整和修改。二是工程整定发,这种方法主要依靠的是操作者的经验直接在控制系统的试验中进行。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。这些工程参数整定的方法对操作的经验依赖性大,一般只适用于有较长工作年限的操作者。但是不管事哪种参数整定的方法,都必须在实际的系统中进行相应的调试、修改和完善,才能够找到控制的最佳参数。

7.2 整定结果及分析

在进行PID参数的整定过程中,我们将以P=20、I=10、D=5为一个参照的基本参数,来说明在整定的过程中P、I、D三个参数对控制器性能的影响,在此过程中,每次的整定都只将改变其中的一个参数,其他的参数不变,这样我们便能够清晰的从整定实时趋势曲线的输出直观的判断出各个参数在控制器中所扮演的角色。从而更加深刻的加强我们对PID控制器的认知。没整定的PID见图7-1。

图7-1 PID没整定的图

由上图可知系统超调量大,调节时间较长,震荡次数较多,稳态误差大,则要进行P、I、D分别的整定。

(1)比例的整定

比例能迅速反应误差,从而减小误差,但是不能消除稳态误差,如果P过大会引起系统的不稳定。在整定P时通过边试边观察的方法和一些经验当我们P 为10时得到了反应快,超调小的响应曲线,系统误差达到了允许范围内。整定后的图见7-2

图7-1 比例整定图

(2) 积分的整定

由上图可知静态误差不能瞒足要求,则我们整定积分环节,整定前的积分时间为10,其它的以原来的为准,整定时我们将积分时间加大和减小观察图形,其中当积分时间为30时图如图7-3.

(3)微分的整定

微分控制可以减小超调量。克服震荡,使系统的稳定性提高,同时加快响应速度,减小调节时间,改变系统的动态性能。微分整定是输入一个一个不同的D 得到的图形,当微分时间为1时图如7-4.

图7-3 积分整定图

图7-4微分整定图

通过以上我们对单一参数的调节,我们可以清楚知道,在PID控制器中:比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,比例系数的增大会系统的不稳定;积分控制的作用是,只要系统存在误差,积分控制作用就不断的积累,输出控制量以消除误差,因而只要哟足够长的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现震荡;微分控制可以减小超调量,克服震荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

8 技术小结

在本次实训中,我们利用C++Builder编写的基于AC6611板卡的单回路加热器温度控制系统。主要进行了AC6611的应用,C++Builder的编程和调试、PID 参数的制定操作。这写巩固我的计算机控制技术,在今后的学习和工作中都将给我带来相当的影响

在本次实训中先画好了界面,在编程的时候遇到了遇到了很多困难,首先是坐标的计算,在原来的坐标计算中画出的图形不行,在我查了老师讲的资料后发现这个坐标与我们数学中的坐标相反,通过边画图边计算的方法,准确的画出了趋势曲线图。再编程时我还有一个问题很严重就是调用AD和条用DA老是弄反在同学给我的讲解和理解程序功能的情况下顺利解决。

程序写好后我们要进行程序的调试,调试的时候出现错误都是用英语写出错误的原因,由于我们英语不是很好很多错误都看不懂,我在网上查阅下了一个英语的翻译词典,这样看懂了错误的原因,改正了程序中的错误。在没错误的情况下还有6个警告,我发现6个警告是同一个错误源程序中我将程序写为

Edit1->Text=FloatToStrF(SP,0,4,4);我改成Edit1->Text=FloatToStr(SP);这样警告消除。

最后在进行了PID参数的整定时我用了很多的时间来整定参数,在各项指标基本上能够满足实训的要求后才停止整定。PID参数整定时候我们要一个一个参数的整定,边整定边观察与原来的对比直到达到最佳的PID,因此在PID参数整定的过程中一定要,严格的遵循参数整定的方法,以便达到高效率、高精度的控制。整定后我发现在数字PID控制器中采样周期越小,其控制效果就越接近于连续PID的控制效果,P、I、D他们对曲线的影响也不尽相同。

参考文献

[1]于海生.计算机控制技术[M].北京:机械工业出版社,2007..

[2]王锦标.计算机控制系统[M].北京:清华大学出版社,2004.

[3程展鹏.BorlandC++Builder6应用开发技术解析[M] 北京:清华大学出版社.

[4] 计算机控制技术[M].范立南、李雪飞.械工业出版社2009

[5]疏松贵.计算机控制系统理论与应用[M].北京:科学出版社,1998.

附录:控制程序清单

//-------------------------------------------------------------------#include

#pragma hdrstop

#include "Unit1.h"

//------------------------------------------------------------------- #pragma package(smart_init)

#pragma resource "*.dfm"

float SP=0,PV;

int pvtrend[480];

int sptrend[480];

int mvtrend[480];

float P=10,I=8,D=5;

float Un=0.0,DUn=0.0,Un1=0.0,En=0.0,En1=0.0,En2=0.0;

float q0,q1,q2;

float TS=1.0;

TForm1 *Form1;

//-------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender)

{

q0=P*(1+TS/I+D/TS);

q1=-P*(1+2*D/TS);

q2=P*D/TS;

Edit1->Text=FloatToStr(SP);

Edit4->Text=FloatToStr(P);

Edit5->Text=FloatToStr(I);

Edit6->Text=FloatToStr(D);

hDLL=LoadLibrary("ac6611.dll");

if(hDLL!=NULL)Label25->Caption = "AC6611.dll load ok!"; (FARPROC&)AC6611_CreateDevice=GetProcAddress(hDLL,"AC6611_CreateDevic e"); //创建驱动句柄(FARPROC&)AC6611_CloseDevice=GetProcAddress(hDLL,"AC6611_CloseDevice" ); //关闭驱动句柄

(FARPROC &)AC6611_DI=GetProcAddress(hDLL,"AC6611_DI");

//数字量输入,port=0-1两个通道,8位数据由DiData返回(FARPROC &)AC6611_DO=GetProcAddress(hDLL,"AC6611_DO");

//数字量输出,port=0-1两个通道,8位数据由DoData输出(FARPROC &)AC6611_DiBit=GetProcAddress(hDLL,"AC6611_DiBit");

//数字量输入,port=0-1两个通道,指定位输入

(FARPROC &)AC6611_DoBit=GetProcAddress(hDLL,"AC6611_DoBit");

//数字量输出,port=0-1两个通道,指定位输出

(FARPROC &)AC6611_DA=GetProcAddress(hDLL,"AC6611_DA");

//DA输出,0-4095

(FARPROC&)AC6611_VoltageToDA=GetProcAddress(hDLL,"AC6611_VoltageToDA" );

(FARPROC&)AC6611_AD=GetProcAddress(hDLL,"AC6611_AD"); //通用AD采样(FARPROC&)AC6611_AD_CHN=GetProcAddress(hDLL,"AC6611_AD_CHN");

//设置AD通道0-15

(FARPROC&)AC6611_ADS=GetProcAddress(hDLL,"AC6611_ADS");

//直接AD采样,为单通道AD采样设计

(FARPROC&)AC6611_ADToVoltage=GetProcAddress(hDLL,"AC6611_ADToVoltage" );

hDevice=AC6611_CreateDevice(0, &ErrorOf6611);

//创建驱动,选择第0块卡

if(hDevice != -1){

Label26->Caption = "AC6611 Card Is Exist!";

}else{

Label26->Caption = "AC6611 Card Is not Exist!";

}

}

//------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

unsigned long ad_data;

unsigned long da;

AC6611_AD(hDevice, 12, &ad_data);

PV=ad_data*10/4095.0;

PV=(PV-2)*100.0/8; //转换成温度

//基本PID算法程序

En=SP-PV;

DUn=q0*En+q1*En1+q2*En2;

Un=Un1+DUn;

if( Un>100.0) Un=100.0;

if(Un<0) Un=0;

Un1=Un;

En2=En1;

En1=En;

da=(unsigned short int)(Un*4095.0/100.0);

AC6611_DA(hDevice,da);

//绘制图

for(int i=0;i<479;i++)

基于PID法温度控制

基于PID法的温度控制 摘要:一种新型的PID温度控制系统,该系统采用单片机芯片,可方便对系统加热周期T及PID中的个参数进行线性修改;具有对高低进行报警功能。主要研究PID算法。 关键字:单片机;温度控制;PID控制器 引言:在化工、石油、冶金等生产过程的物理过程和化学反应中,温度往往是一个很重要的量,为了达到所需的精度范围,采用PID控制,对PID的各种参数进行整定以满足不同的场合。 一、温度控制器的主要问题及解决方法 1、传统的温度控制器的问题 传统的温度控制器的电热元件一般以电热棒、发热圈为主,两者里面都用发热丝制成。发热丝通过电流加热时,通常达到1000℃以上,所以发热棒、发热圈内部温度都很高。一般进行温度控制的电器机械,其控制温度多在0-400℃之间,所以,传统的温度控制器进行温度控制期间,当被加热器件温度升高至设定温度时,温度控制器会发出信号停止加热。但这时发热棒或发热圈的内部温度会高于400℃,发热棒、发热圈还将会对被加热的器件进行加热,即使温度控制器发出信号停止加热,被加热器件的温度还往往继续上升几度,然后才开始下降。当下降到设定温度的下限时,温度控制器又开始发出加热的信号,

开始加热,但发热丝要把温度传递到被加热器件需要一定的时候,这就要视乎发热丝与被加热器件之间的介质情况而定。通常开始重新加热时,温度继续下降几度。所以,传统的定点开关控制温度会有正负误差几度的现象,但这不是温度控制器本身的问题,而是整个热系统的结构性问题,使温度控制器控温产生一种惯性温度误差。 2、PID控制解决 要解决温度控制器这个问题,采用PID控制技术,是明智的选择。PID控制,是针对以上的情况而制定的、新的温度控制方案,用先进的数码技术通过Pvar、Ivar、Dvar三方面的结合调整,形成一个模糊控制,来解决惯性温度误差问题。然而,在很多情况下,由于传统的温度控制器温控方式存在较大的惯性温度误差,往往在要求精确的温控时,很多人会放弃自动控制而采用调压器来代替温度控制器。但是用调压器来代替温度控制器时,必须在很大程度上靠人力调节,随着工作环境的变化而用人手调好所需温度的度数,然后靠相对稳定的电压来通电加热,勉强运作,但这决不是自动控温。当需要控温的关键很多时,就会手忙脚乱。这样,调压器就派不上用场,因为靠人手不能同时调节那么多需要温控的关键,只有采用PID模糊控制技术,才能解决这个问题,使操作得心应手,运行畅顺。 二、该温控系统的结构和原理: 1、系统的结构: 系统功能主要实现断水保护和高水位指示、自动保温、自动报警

三菱PID控制实例

三菱PLC和FX2N-4AD-TC实现温度PID闭环控制系统的学习参考。。。。。。

风机鼓入的新风经加热交换器、制冷交换器、进入房间。原理说明:进风不断被受热体加温,欲使进风维持一定的温度,这就需要同时有一加热器以不同加热量给进风加热,这样才能保证进风温度保持恒定。 plc接线图如下,按图接好线。配线时,应使用带屏蔽的补偿导线和模拟输入电缆配合,屏蔽一切可能产生的干扰。fx2n-4ad-tc的特殊功能模块编号为0。

输入和输出点分配表 这里介绍pid控制改变加热器(热盘管)的加热时间从而实现对温度的闭环控制。

在温度控制系统中,电加热器加热,温度用热电耦检测,与热电耦型温度传感器匹配的模拟量输入模块 fx2n-4ad-tc将温度转换为数字输出,cpu将检测的温度与温度设定值比较,通过plc的pid控制改变加热器的加热时间从而实现对温度的闭环控制。pid控制时和自动调谐时电加热器的动作情况如上图所示。其参数设定内容如下表所示。 三菱plc和fx2n-4ad-tc实现温度pid闭环控制系统程序设计:

用选择开关置x10作为自动调谐控制后的pid控制,用选择开关置x11作为无自动调谐的pid控制。 当选择开关置x10时,控制用参数的设定值在pid运算前必须预先通过指令写入,见图程序0步开始,m8002为初始化脉冲,用mov指令将目标值、输入滤波常数、微分增益、输出值上限、输出值下限的设定值分别传送给数据寄存器d500、d512、d515、d532、d533。 程序第26步,使m0得电,使用自动调谐功能是为了得到最佳pid控制,自动调谐不能自动设定的参数必须通过指令设定,在第29步~47步之间用mov指令将自动调谐用的参数(自动调谐采用时间、动作方向自动调谐开始、自动调谐用输出值)分别传送给数据寄存器d510、d511、d502。 程序第53步开始,对fx2n-4ad-tc进行确认、模式设定,且在plc运行中读取来自fx2n-4ad-tc的数据送到plc的d501中,103步开始对pid动作进行初始化。 第116步开始,x10闭合,在自动调谐后实行pid控制,当自动调谐开始时的测定值达到目标值的变化量变化1/3以上,则自动调谐结束,程序第128步~140步,自动调谐

温度控制的PID算法-及C程序实现

温度控制与PID算法 温度控制与PID算法j较为复杂,下面结合实际浅显易懂的阐述一下PID控制理论,将温度控制及PID算法作一个简单的描述。 1.温度控制的框图 这是一个典型的闭环控制系统,用于控制加热温区的温度(PV)保持在恒定的温度设定值(SV)。系统通过温度采集单元反馈回来的实时温度信号(PV)获取偏差值(EV),偏差值经过PID调节器运算输出,控制发热管的发热功率,以克服偏差,促使偏差趋近于零。例如,当某一时刻炉内过PCB板较多,带走的热量较多时,即导致温区温度下降,这时,通过反馈的调节作用,将使温度迅速回升。其调节过程如下:

温度控制的功率输出采用脉宽调制的方法。固态继电器SSR的输出端为脉宽可调的电压U OUT 。当SSR的触发角触发时,电源电压U AN通过SSR的输出端加到发热管的两端;当SSR的触发角没有触发信号时,SSR关断。因此,发热管两端的平均电压为U d=(t/T)* U AN=K* U AN 其中K=t/T,为一个周期T中,SSR触发导通的比率,称为负载电压系数或是占空比,K 的变化率在0-1之间。一般是周期T固定不便,调节t, 当t在0-T的范围内变化时,发热管的电压即在0-U AN之间变化,这种调节方法称为定频调宽法。下面将要描述的PID 调节器的算式在这里的实质即是运算求出一个实时变化的,能够保证加热温区在外界干扰的情况下仍能保持温度在一个较小的范围内变化的合理的负载电压系数K。 2.温度控制的两个阶段 温度控制系统是一个惯性较大的系统,也就是说,当给温区开始加热之后,并不能立即观察得到温区温度的明显上升;同样的,当关闭加热之后,温区的温度仍然有一定程度的上升。另外,热电偶对温度的检测,与实际的温区温度相比较,也存在一定的滞后效应。这给温度的控制带来了困难。因此,如果在温度检测值(PV)到达设定值时才关断输出,可能因温度的滞后效应而长时间超出设定值,需要较长时间才能回到设定值;如果在温度检测值(PV)未到设定值时即关断输出,则可能因关断较早而导致温度难以达到设定值。为了合理地处理系统响应速度(即加热速度)与系统稳定性之间地矛盾,我们把温度控制分为两个阶段。

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),每个串表

温度的PID控制及程序示例

温度的PID 控制 一.温度检测部分首先要OK. 二、PID 调节作用 PID 控制时域的公式 ))()(1)(()(?++ =dt t de Td t e Ti t e Kp t y 分解开来: (1) 比例调节器 y(t) = Kp * e(t) e(k) 为当前的温差(设定值与检测值的插值) y(k) 为当前输出的控制信号(需要转化为PWM 形式) # 输出与输入偏差成正比。只要偏差出现,就能及时地产生与之成比例的调节 作用,使被控量朝着减小偏差的方向变化,具有调节及时的特点。但是, Kp 过大会导致动态品质变坏,甚至使系统不稳定。比例调节器的特性曲线. (2) 积分调节器 y(t) = Ki * ∫(e(t))dt Ki = Kp/Ti Ti 为积分时间 #TI 是积分时间常数,它表示积分速度的大小,Ti 越大,积分速度越慢,积分作用越弱。只要偏差不为零就会产生对应的控制量并依此影响被控量。增大Ti 会减小积分作用,即减慢消除静差的过程,减小超调,提高稳定性。 (3) 微分调节器 y(t) = Kd*d(e(t))/dt Kd = Kp*Td Td 为微分时间 #微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变化。偏差变化越快,则产生的阻止作用越大。从分析看出,微分作用的特点是:加入微分调节将有助于减小超调量,克服震荡,使系统趋于稳定。他加快了系统的动作速度,减小调整的时间,从而改善了系统的动态性能。 三.PID 算法: 由时域的公式离散化后可得如下公式:

y(k) = y(k-1)+(Kp+Ki+Kd)*e(k)-(Kp +2*Kd)*e(k-1) + Kd*e(k-2) y(k) 为当前输出的控制信号(需要转化为PWM形式) y(k-1)为前一次输出的控制信号 e(k) 为当前的温差(设定值与检测值的插值) e(k-1) 为一次前的温差 e(k-2) 为二次前的温差 Kp 为比例系数 Ki = Kp*T/Ti T为采样周期 Kd = Kp*Td/T 四.PID参数整定(确定Kp,Ts,Ti,Td): 温度控制适合衰减曲线法,需要根据多次采样的数据画出响应曲线。 所以需要通过串口将采样时间t, 输出y(t)记录下来,方便分析。 1)、不加入算法,系统全速加热,从常温加热到较高的温度的时间为Tk, 则采样时间一般设为 T = Tk/10。 2)、置调节器积分时间TI=∞,微分时间TD=0,即只加比例算法: y(k) = y(k-1)+Kp*e(k) 比例带δ置于较大的值。将系统投入运行。(δ = 1/Kp) 3)、待系统工作稳定后,对设定值作阶跃扰动,然后观察系统的响应。若响应振荡衰减太快,就减小比例带;反之,则增大比例带。如此反复,直到出现如图所示的衰减比为4:1的振荡过程时,记录此时的δ值(设为δS),以及TS 的值(如图中所示)。当采用衰减比为10:1振荡过程时,应用上升时间Tr替代 振荡周期TS计算。 系统衰减振荡曲线 图中,TS为衰减振荡周期,Tr为响应上升时间。 据表中所给的经验公式计算δ、TI及TD的参数。

温度PID控制实验

温度PID 控制实验 一、实验目的 1.加深对PID 控制理论的理解; 2.认识Labview 虚拟仪器在测控电路的应用; 3.掌握时间比例P、积分I、微分D 对测控过程连续测控的影响以及提高测控系统的精度; 4.通过实验,改变P、I、D 参数,观察对整个温度测控系统的影响; 5.认识固态继电器和温度变送器,了解其工作原理。 二、预习要点 1.PID 控制理论与传递函数。请学生在0-100 的范围里,自己选择较好的KP,KI,KD 值,用该控制参数进行后续实验; 2.了解A/D、D/A 转换原理; 3.Labview 虚拟仪器图形软件(本实验指导书附录中对使用环境详细介绍)。 三、实验原理 温度是通过固态继电器的导通关断来实现加热的,控制周期即是一个加热和 冷却周期,PID 调节的实现也是通过这个周期实现的,在远离温度预设值的时固 态继电器在温度控制周期中持续加热(假设导通时间是T),在接近温度预设值 时通过PID 得到的值来控制这一周期内固态继电器的开关时间(假设导通时间是 1/2T)维持温度(假设导通时间是1/4T)。如图1 所示: 图1 加热周期控制示意图 8 四、实验项目 1.用PID 控制水箱温度; 2.用控制效果对比完成数据对比操作,选出最佳值。 五、实验仪器 ZCK-II 型智能化测控系统。 六、实验步骤及操作说明 1.打开仪器面板上的总电源开关,绿色指示灯亮起表示系统正常;

2.打开仪器面板上的液位电源开关,绿色指示灯亮起表示系统正常; 3,确保贮水箱内有足够的水,参照图2 中阀门位置设置阀门开关,将阀门1、3、5、6 打开,阀门2、4 关闭; 图2 水箱及管道系统图 4.参看变频器操作说明书将其设置在手动操作挡; 5.单击控制器RUN 按钮,向加热水箱注水,直到水位接近加热水箱顶部,完 全 淹没加热器后单击STOP 按钮结束注水; 6.关闭仪器面板上的液位电源开关,红色指示灯亮起表示系统关闭; 7.打开仪器面板上的加热电源开关,绿色指示灯亮起表示系统正常; 8.打开计算机,启动ZCK-II 型智能化测控系统主程序; 9.用鼠标单击温度控制动画图形进入温度控制系统主界面,小组实验无须在个 人信息输入框填写身份,直接确定即可; 10.在温度系统控制主界面中,单击采集卡测试图标,进入数据采集卡测试程序。 请在该选项中确定选择设备号为端口1,因为我们接入数据采集卡的端口是1 号 9 端口,其他数据端口留做其他方面使用的,所以切记不能选错,否则程序会报 错 并强制关闭。选择采集通道时请选择0 号通道即温度传感器占用的通道。控制上、 下限选项是为设置报警电路所预设的,在本实验中暂未起用该功能,感兴趣的 同 学可以试着完善它,本实验报警数值是+1V 以下和+5V 以上,这里只做了解即可。 采样点数(单位:个)、采样速率(单位:个/秒)和控制周期(单位:毫秒) 请 参照帮助显示区进行操作,一切设置确认无误后即可单击启动程序图标,观察 温 度和电压的变化,也可以单击冷却中左边的开关按钮进入加热程序,观察温度 上 升曲线及电流表和电压表变化,确认传感器正常工作后点击程序结束,等待返 回 主界面图标出现即可返回温度控制主界面进入下一步实验。 11.在温度系统控制主界面中,单击传感器标定图标,进入传感器标定程序。 本 程序界面和数据采集卡测试程序界面基本相同,操作请参照步骤10 进行,一切 设置确认无误后即可单击启动程序图标,观察温度和电压的变化,同时用温度

基于单片机的PID温度控制系统

基于单片机的PID温度控制系统 【摘要】本设计在单片机的基础上,利用PID算法完成了温度控制系统的硬件设计和软件设计,实现更加精确高效的水的温度控制。本系统主要分为单片机控制模块,LCD显示模块,传感器检测模块,继电器控制模块等,通过传感 器模块检测水温然后发送给单片机,单片机对数据进行处理后由LCD显示,同时反馈给继电器,继电器接收到信号后控制加热器进行对水温的加热,从而达到精确控制水的温度的目的。该系统以节能高效为出发点,适用于小到热带鱼缸大到渔场养殖等多种场所。 【关键词】单片机、PID、温度控制 1.前言 1.1课题的背景及研究意义 温度作为一个不可忽视的因素存在于现代工业的生产中,工业生产过程中的温度控制一直是十分重要的环节。但控制在工业生产中已很难把握,并且对于那些以严格为目标的生产工艺,太高或太低的温度会对生产效率和质量造成显著的影响,从而导致生产效益的降低。这就要求我们开发出一种能够很好控制并且可以随时将温度展示给客户观看的温度控制器。单片机拥有着如同那些计算机一样强大的数据分析与处理能力,通过与PID相结合,我们可以很大程度上提高控制程序的能力,这样就能使生产效益得到提高[2]。 温度的测量、控制与保持是单片机温度测量系统中的重要部分,温度测量是工业生产中最要要的物理量之一。而有效的测量温度的方法之一就是通过单片机,所以单片机温度测量系统能够广泛的应在工业生产中,在电力工程、化工、机械、冶金等重点行业,有一个重要的测量任务,在日常生活中也可以得到广泛的应用。 以热带鱼缸为例,系统设计不够周全、结构不够简单化、性价比不够高等问题普遍的存在于目前市场上的各种热带鱼缸中,很多的鱼缸在温度控制方面都存在着许多缺陷,比如对温度控制的不够精确,常常还没达到设定温度就停止加热等。即使它达到了设定的温度,也有因加热时间长短不能有效地控制而导致能量的浪费问题。本次设计的温度控制系统是以51单片机为基础利用PID算法进行精确的温度控制,功能主要有温度设定、显示与控制等方面。此控制器和显示装置与以前的相比具有成本低,高精度的温度控制和显示,使用方便,性能稳定等优点,可以提高能源利用效率,在经济与社会效益上有一定的推动[3]。 1.2国内外现状及水平 这几年,我们在理论上对温度控制的研究已经比较成熟,但是在具体的温度测量与控制上,我们对于如何精确的对其进行控制等方面还存在着一些问题。温度控制技术按照控制目标的不同可分为两类:动态温度跟踪与恒值温度控制。动态温度跟踪实现的控制目标是使被控对象的温度值按预先设定好的曲线进行变化。在工业生产中很多场合需要实现这一控制目标,如在发酵过程控制,化工生产中的化学反应温度控制,冶金工厂中燃烧炉中的温度控制等。恒值温度控制的目的是使被控对象的温度恒定在某一数值上,且要求其波动幅度不能超过某一给定值。从工业温度控制器的发展过程来看,温度控制技术大致可分以下几种: 1.2.1定值开关温度控制法

自动控制 温度PID控制实验

实验四 温度PID 控制实验 1、实验目的 通过实验了解简单反馈系统的组成,掌握简单调节系统“手动-自动”无扰动切换投运方法以及用临界比例度法对调节器参数进行工程整定。 2、实验原理 温度控制系统实验原理框图如图4所示,图中电/气转换器、可控硅控制器和容器温度组成广义被控对象。容器温度为系统控制对象,记为T y 。温度变送器检测得到输出的4-20mA 的电流反馈信号T fy ,由数据采集卡经A/D 转换成数字信号,输入计算机。再与给定值T r (从键盘输入)比较,得到偏差信号。计算机根据偏差信号,执行相应的控制算法程序,例如,数字PID 控制算法、自校正控制算法、模糊控制算法或者其它控制算法等,计算出控制量经D/A 转换成1-5V 的电压,再经电压-电流转换器转换成4-20mA 的电流控制信号T u 。控制广义对象的输出T y ,使其跟踪给定值T r 。 图4 被控对象为容器温度,操作变量为可控硅电压输出的温度控制系统 该实验装置组成闭环控制系统时,计算机都采用增量式PID 算式: ))2()1(2)(()())1()(()1()(-+--++ --+-=k e k e k e T T k e T T k e k e K k u k u d i c (2-1) 其中: )(k u :当前时刻的控制量 )1(-k u :上一时刻的控制量 c K :放大倍数,对应控制参数“P ” i T :积分常数,对应控制参数“I ” d T :微分常数,对应控制参数“D ” T :控制周期 )(k e :当前时刻的给定量和检测量的偏差 )1(-k e :上一时刻的给定量和检测量的偏差 )2(-k e :两个时刻前的给定量和检测量的偏差 3、接线说明 模拟信号端子板和测量信号以及控制信号的接线简图如图5所示

PID温度控制的PLC程序设计

PID温度控制的PLC程序设计 温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。PID控制系统是得到广泛应用的控制方法之一。在本文中,将详细讲叙本套系统。 l 系统组成 本套系统采用Omron的PLC与其温控单元以及Pro-face的触摸屏所组成。系统包括CQM1H-51、扩展单元TC-101、GP577R以及探温器、加热/制冷单元。 l 触摸屏画面部分(见图1-a) 1-a 如图所见,数据监控栏内所显示的002代表现在的温度,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有六个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在PLC的地址与一些开关的地址如下所列。 比例带: DM51 积分时间: DM52 微分时间: DM53 滞后值: DM54 控制周期: DM55 偏移量: DM56 数据刷新: 22905 l PLC程序部分 002:PID的输入字 102:PID的输出字 [NETWORK] Name="Action Check" //常规检查 [STA TEMENTLIST] LD 253.13 //常ON OUT TR0 CMP 002 #FFFF //确定温控单元是否完成初始化 AND NOT 255.06 //等于 OUT 041.15 //初始化完成 LD TR0 AND 041.15 OUT TR1 AND NOT 040.10 //不在参数设置状态 MOV DM0050 102 //将设置温度DM50传送给PID输出字 LD TR1 MOV 002 DM0057 //将002传送到DM57 [NETWORK] Name="Setting Start"//设置开始 [STA TEMENTLIST] LD 253.13 OUT TR0 AND 229.05 //触摸屏上的开始设置开关

温度控制pid 过控课程设计

温度控制pid 过控课程设计 摘要 人类的生活环境中,温度扮演着极其重要的角色,可以说几乎80%的工业部门都不得不考 虑温度对自身系统的影响,温度是与人类生产生活密切相关的一个物理量,由此便产生了各种各样的温度测量方法。根据测温精度和范围的不同,可选用不同的测温方式。目前常常采用模拟集成温度传感器,该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器的特点是,功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。然而在很多工业应用的场合下,环境非常恶劣,这种以人工的方式直接操作设置仪表很不现实,采用有线数据通信的方式也会受很多环境、质量、功能等方面的限制,在数据记录上也还要靠人工抄写,不能形成自动控制的系统。 温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影 响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。 随着单片机技术的日益成熟,单片机在温度控制上的应用也日趋广泛。本文采用STC89C52单片机采用积分分离式PID算法和带死区的PID算法两种控制方式,并通过对试验结果的 比较,发现对控制精度较高的系统和响应速度较慢的系统带死区的PID算法确实不大实用,而前者在应一定程度上若再辅以微分先行则基本上能满足系统要求。 关键字:STC89C52单片机,PID算法,积分分离式,微分先行。 Abstract Man's living environment, the temperature plays a very important role, can be said that almost 80% of the industrial sector had to take into account the effects of temperature on their systems, temperature is closely related to human production and life of a physical quantity, thus given rise to a wide range of temperature measurement method. According to the different temperature measurement accuracy and scope may make use of the temperature in different ways. There is often analog integrated temperature sensor, the sensor is made using silicon semiconductor

PID温度控制的PLC程序设计(梯形图语言)教学文案

P I D温度控制的P L C 程序设计(梯形图语言)

PID温度控制的PLC程序设计(梯形图语言) PID温度控制的PLC程序设计 温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。PID控制系统是得到广泛应用的控制方法之一。在本文中,将详细讲叙本套系统。 l 系统组成 本套系统采用Omron的PLC与其温控单元以及Pro-face的触摸屏所组成。系统包括CQM1H-51、扩展单元TC-101、GP577R以及探温器、加热/制冷单元。 l 触摸屏画面部分(见图1-a) 1-a 如图所见,数据监控栏内所显示的002代表现在的温度,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有六个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在PLC的地址与一些开关的地址如下所列。 比例带 : DM51 积分时间 : DM52 微分时间 : DM53 滞后值 : DM54 控制周期 : DM55 偏移量 : DM56 数据刷新 : 22905

l PLC程序部分 002:PID的输入字 102:PID的输出字 [NETWORK] Name="Action Check" //常规检查 [STATEMENTLIST] LD 253.13 //常ON OUT TR0 CMP 002 #FFFF //确定温控单元是否完成初始化 字串1 AND NOT 255.06 //等于 OUT 041.15 //初始化完成 LD TR0 AND 041.15 OUT TR1 AND NOT 040.10 //不在参数设置状态 MOV DM0050 102 //将设置温度DM50传送给PID输出字 LD TR1 MOV 002 DM0057 //将002传送到DM57 [NETWORK] Name="Setting Start"//设置开始 [STATEMENTLIST] LD 253.13 OUT TR0 AND 229.05 //触摸屏上的开始设置开关 DIFU 080.05 //设置微分

基于PID电加热炉温度控制系统设计

基于PID 电加热炉温度控制系统设计 1概述 电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、 机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地 位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的 控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法 很难达到好的控制效果。 单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在 工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进行炉温 控制,可以提高控制质量和自动化水平。 在本控制对象电阻加热炉功率为800W ,由220V 交流电供电,采用双向可 控硅进行控制。本设计针对一个温度区进行温度控制,要求控制温度范围 50~350C ,保温阶段温度控制精度为正负1度。选择合适的传感器,计算机输出 信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数 学模型为: 1 )(+=-s T e K s G d s d τ 其中:时间常数Td=350秒 放大系数Kd=50 滞后时间τ=10秒 控制算法选用改PID 控制

2系统硬件的设计 本系统的单片机炉温控制系统结构主要由单片机控制器、可控硅输出部分、 热电偶传感器、温度变送器以及被控对象组成。 系统硬件结构框图如下: 图2-1 系统硬件结构框图 看门狗 报警提醒 通信接口 LED 显示 键盘 微 型 控 制 机 AT89S52 温度检测PT100 驱动执行机构 8路D/A 转换器DAC0832 测量变送 8路A/D 转换器ADC0809 加热电阻 温度

PID工艺流程图的说明与介绍

PID工艺流程图的说明与介绍 PID:Process and Instrument Diagram 即管道及仪表流程图、管道仪表流程图借助统一规定的图形符号和文字代号,用图示的方法把建立化工工艺装置所需的全部设备、仪表、管道、阀门及主要管件,按其各自功能以及工艺要求组合起来,以起到描述工艺装置的结构和功能的作用。 管道和仪表流程图又称为PID,是PIPING AND INSTRUMENTATION DIAGRAM的缩写。PID的设计是在PFD的基础上完成的。它是化工厂的工程设计中从工艺流程到工程施工设计的重要工序,是工厂安装设计的依据。 化工工程的设计,从工艺包、基础设计到详细设计中的大部分阶段,PID 都是化工工艺及工艺系统专业的设计中心,其他专业(设备、机泵、仪表、电气、管道、土建、安全等)都在为实现P&ID里的设计要求而工作。 广义的PID可分为工艺管道和仪表流程图(即通常意义的PID)和公用工程管道和仪表流程图(即UID)两大类。 PID的设计介绍 1.PID的设计内容 PID的设计应包括下列内容 1.1 设备 (1)设备的名称和位号。 每台设备包括备用设备,都必须标示出来。对于扩建、改建项目,已有设备要用细实线表示,并用文字注明。

(2)成套设备 对成套供应的设备(如快装锅炉、冷冻机组、压缩机组等),要用点划线画出成套供应范围的框线,并加标注。通常在此范围内的所有附属设备位号后都要带后缀“X”以示这部分设备随主机供应,不需另外订货。 (3)设备位号和设备规格 PID上应注明设备位号和设备的主要规格和设计参数,如泵应注明流量Q和扬程H;容器应注明直径D和长度L;换热器要注出换热面积及设计数据;储罐要注出容积及有关的数据。和PFD不同的是,PID 中标注的设备规格和参数是设计值,而PFD标注的是操作数据。 (4)接管与联接方式 管口尺寸、法兰面形式和法兰压力等级均应详细注明。一般而言,若设备管口的尺寸、法兰面形式和压力等级与相接管道尺寸、管道等级规定的法兰面形式和压力等级一致,则不需特殊标出;若不一致,须在管口附近加注说明,以免在安装设计时配错法兰。 (5)零部件 为便于理解工艺流程,零部件如与管口相邻的塔盘、塔盘号和塔的其他内件(如挡板、堰、内分离器、加热/冷却盘)都要在PID中表示出来。 (6)标高 对安装高度有要求的设备必须标出设备要求的最低标高。塔和立式容器须标明自地面到塔、容器下切线的实际距离或标高;卧式容器应标明容器内底部标高或到地面的实际距离。 (7)驱动装置

温度控制的PID算法的C语言程序

我的题目是:基于PID算法的温度控制系统 89C51单片机,通过键盘输入预设值,与DS18B20测得的实际值做比较,然后驱动制冷或加热电路。用keil C语言来实现PID的控制。 最佳答案 7f0f2f1c2f

89C 89C89C1 L50℃3℃2006-02-17 2009-04-23 2009-04-23 2009-04-24 2009-04-24

2009-10-11 超低温漂移高精度运算放大器0P07将温度一电压信号进行放大,便于A/D进行转换,以提高温度采集电路的可靠性。模拟电路硬件部分见图2。 图2 ?温度电压转换电路 电控制执行电路的设计 ??? 由输出来控制电炉,电炉可以近似建立为具有滞后性质的一阶惯性环节数学模型。其传递函数形式为: ??? 可控硅可以认为是线形环节实现对水温的控制。单片机输出与电炉功率分别属于弱电与强电部分,需要进行隔离处理,这里采用光耦元件TLP521 在控制部分进行光电隔离,此外采用变压器隔离实现弱强电的电源隔离。 ??? 单片机PWM 输出电平为0 时,光耦元件导通,从而使三极管形成有效偏置而导通,通过整流桥的电压经过集电极电阻以及射集反向偏压,有7V 左右的电压加在双向可控硅控制端,从而使可控硅导通,交流通路形成,电阻炉工作;反之单片机输出电平为0 时,光耦元件不能导通,三极管不能形成有效偏置而截止,可控硅控制端电压几乎为零,可控硅截止从而截断交流通路,电炉停止工作。此外,还有越限报警,当温度低于下限时发光二极管亮;高上限时蜂鸣器叫。控制执行部分的硬件电路如下: 图3? 控制执行部分电路 3 键盘及显示的设计 ??? 键盘采用软件查询和外部中断相结合的方法来,低电平有效。图3 中按键AN1,AN2,AN3,AN4, AN5的功能定义如表1所示。 ??? 按键AN3与相连,采用外部中断方式,并且优先级定为最高;按键AN5和AN4分别与和相连,采用软件查询的方式;AN1则为硬件复位键,与R、C构成复位电路。

温度的PID控制及程序示例

温度的PID 控制 一.温度检测部分首先要OK. 二、PID 调节作用 PID 控制时域的公式 1 de(t) y(t) Kp(e(t) e(t) Td ) Ti dt 分解开来: (1) 比例调节器 y(t) = Kp * e(t) e(k) 为当前的温差(设定值与检测值的插值) y(k) 为当前输出的控制信号(需要转化为PWM 形式) # 输出与输入偏差成正比。只要偏差出现,就能及时地产生与之成比例的调节 作用,使被控量朝着减小偏差的方向变化,具有调节及时的特点。但是,Kp 过 大会导致动态品质变坏,甚至使系统不稳定。比例调节器的特性曲线. (2) 积分调节器 y(t) = Ki * ∫(e(t))dt Ki = Kp/Ti Ti为积分时间 #TI 是积分时间常数,它表示积分速度的大小,Ti 越大,积分速度越慢,积分作用越弱。只要偏差不为零就会产生对应的控制量并依此影响被控量。增大Ti 会减小积分作用,即减慢消除静差的过程,减小超调,提高稳定性。 (3) 微分调节器 y(t) = Kd*d(e(t))/dt Kd = Kp*Td Td 为微分时间 #微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变化。偏差变化越快,则产生的阻止作用越大。从分析看出,微分作用的特点是:加入微分调节将有助于减小超调量,克服震荡,使系统趋于稳定。他加快了系统的动作速度,减小调整的时间,从而改善了系统的动态性能。 三.PID 算法:由时域的公式离散化后可得如下公式:

y(k) = y(k-1)+(Kp+Ki+Kd)*e(k)-(Kp +2*Kd)*e(k-1) + Kd*e(k-2) y(k) 为当前输出的控制信号(需要转化为PWM 形式) y(k-1)为前一次输出的控制信号 e(k) 为当前的温差(设定值与检测值的插值) e(k-1) 为一次前的温差 e(k-2) 为二次前的温差 Kp 为比例系数 Ki = Kp*T/Ti T 为采样周期 Kd = Kp*Td/T 四.PID 参数整定(确定Kp,Ts,Ti,Td ):温度控制适合衰减曲线法,需要根据多次采样的数据画出响应曲线。所以需要通过串口将采样时间t, 输出y(t) 记录下来,方便分析。 1) 、不加入算法,系统全速加热,从常温加热到较高的温度的时间为Tk, 则采样时间一般设为T = Tk/10 。 2) 、置调节器积分时间TI= ∞,微分时间TD=0,即只加比例算法: y(k) = y(k-1)+Kp*e(k) 比例带δ置于较大的值。将系统投入运行。 (δ = 1/Kp ) 3) 、待系统工作稳定后,对设定值作阶跃扰动,然后观察系统的响应。若响应振荡衰减太快,就减小比例带;反之,则增大比例带。如此反复,直到出现如图所示的衰减比为4:1的振荡过程时,记录此时的δ值(设为δS),以及TS 的值(如图中所示)。当采用衰减比为10:1振荡过程时,应用上升时间Tr 替代 振荡周期TS 计算。 系统衰减振荡曲线图中,TS为衰减振荡周期,Tr 为响应上升时间。据表中所给的经验公式计算δ、TI 及TD的参数。 表衰减曲线法整定计算公式

PID水温控制系统

一、前言 能源问题已经是当前最为热门的话题,离开能源的日子,世界将失去一切颜色,人们将寸步难行,我们知道虽然电能是可再生能源,但是在今天还是有很多的电能是依靠火力,核电等一系列不可再生的自然资源所产生,一旦这些自然资源耗尽,我们将面临电能资源的巨大的缺口,因而本设计从开源节流的角度出发,节省电能,保护环境。 本设计任务和主要内容: 设计并制作一个水温自动控制系统,控制对象为 1 升净水,容器为搪瓷或塑料器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。 本设计主要内容如下: (1)温度设定范围为:40~90℃,最小区分度为 1℃,标定温度≤1℃。 (2)环境温度降低时温度控制的静态误差≤1℃。 (3)用1602液晶显示水的实际温度。 (4)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 (5)温度控制的静态误差≤0.5℃。 二、系统方案 1、温度传感器的选取 目前市场上温度传感器较多,主要有以下几种方案: 方案一:选用铂电阻温度传感器。此类温度传感器线性度、稳定性等方面性能都很好,但其成本较高。 方案二:采用热敏电阻。选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。 方案三:采用DS18B20温度传感器。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出远端引入。此器件具有体积小、质量轻、线形度好、性能稳定等优点其各方面特性都满足此系统的设计要求。 比较以上三种方案,方案三具有明显的优点,因此选用方案三。 2、键盘显示部分 控制与显示电路是反映电路性能、外观的最直观部分,所以此部分电路设计的好坏直接影响到电路的好坏。 方案一:采用可编程控制器8279与数码管及地址译码器74LS138组成,可编程/显示器件8279实现对按键的扫描、消除抖动、提供LED的显示信号,并对LED显示控制。用8279和键盘组成的人机控制平台,能够方便的进行控制单片机的输出。 方案二:采用单片机AT89C52与4X4矩阵组成控制和扫描系统,并用89C52的P1口对键盘进行扫描,并用总线的方式在P0口接1602液晶来显示水温和设定值,这种方案既能很好的控制键盘及显示,又为主单片机大大的减少了程序的

PID流程图图例注解

PID流程图图例注解: 交流接触器:触点表示方式: NC:normal close 正常状态关常闭触点 NO:normal open 正常状态开常开触点 阀门定位器:触点表示方式:(主要出现在电气原理图中) TSO: 力矩开关常开触点:torque switch open TSC: 力矩开关常闭触点:torque switch close LSO: 行程开关:locational switch open LSC: 行程开关:locational switch close LSF: 闪光开关:locational switch flas 阀门定位器:PID图纸中阀门附近标的符号:(主要出现在 PID图纸上) FC: fault colse 故障时阀门关闭 FO: fault open 故障时阀门打开 TSO:tight shut off 紧急切断阀 GSO:control valve with limit switch full open (阀门全开位置反馈,后台显示并记录) GSC:control valve with limit switch full close (阀门全关位置反馈,后台显示并记录) GCO: 属于GSC与GSO的合并(阀门全开/全关位置反馈)

ZSC:position switch close 阀门全关指示(后台记录并显示) ZSO:position switch open 阀门全开指示(后台记录并显示) LC:locational close 阀门现场关闭指示(现场指示,不远传。) LO:locational open 阀门现场开启指示(现场指示,不远传。) CSC:car seal close 表示安全阀:铅封关(未经允许严禁开启阀门,铅封状态为关闭) CSO:car seal open 表示安全阀:铅封开(未经允许严禁关闭阀门,安全阀铅封状态为开启) 控制符号PID图纸正菱形+ US:联锁开关控制,此级别的联锁在DCS系统中实现 UZ:联锁开关控制,此级别的联锁在ESD系统中实现(SIS 系统) KS:开关量顺序控制此控制在DCS系统中实现 测量符号PID图纸 a.温度测量符号: TI:temperature instruction 温度指示(带现场指示,温度传感器)

基于单片机的PID温度控制毕业设计

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

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

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