单片机温度控制及PID控制程序的设计 联系客服

发布时间 : 星期二 文章单片机温度控制及PID控制程序的设计更新完毕开始阅读cd3d7f3887c24028915fc3be

河南工程学院毕业设计(或论文)

(4)

因此它的传递函数为:

(5)

它由于用途广泛、使用灵活,已有系列化产品,使用中只需设定三个参数(Kp, Ki和Kd)即可。在很多情况下,并不一定需要全部三个单元,可以取其中的一到两个单元,但比例控制单元是必不可少的。

首先,PID应用范围广。虽然很多工业过程是非线性或时变的,但通过对其简化可以变成基本线性和动态特性不随时间变化的系统,这样PID就可控制了。 其次,PID参数较易整定。也就是,PID参数Kp,Ki和Kd可以根据过程的动态特性及时整定。如果过程的动态特性变化,例如可能由负载的变化引起系统动态特性变化,PID参数就可以重新整定。

其次,PID控制器在实践中也不断的得到改进,下面两个改进的例子。在工厂,总是能看到许多回路都处于手动状态,原因是很难让过程在“自动”模式下平稳工作。由于这些不足,采用PID的工业控制系统总是受产品质量、安全、产量和能源浪费等问题的困扰。PID参数自整定就是为了处理PID参数整定这个问题而产生的。现在,自动整定或自身整定的PID控制器已是商业单回路控制器和分散控制系统的一个标准。

在一些情况下针对特定的系统设计的PID控制器控制得很好,但它们仍存在一些问题需要解决:

第二节 PID调节温度的分析

一、温度控制的基本方法

本系统执行电路采用可控硅调节方式。可控硅调节方式一般有两种。 一种是移相法:其原理是通过调节可控硅的触发相位的相位角达到对电压的调节,这个电压是指有效电压,直观上就是对一个正弦波形的前边切掉一块,用不同的切割位置以保留剩余的面积。

9

河南工程学院毕业设计(或论文)

另一种是控制时间比例的方法。即在给定周期里改变可控硅的接通时间,就能达到改变加热功率的目的,从而实现温度调节。

本系统采用第二种方法。 详述如下:

本系统设定一个标准的加温周期,为2分钟,我们就在这个两分钟周期内对输出进行控制,也就是说在这个2分钟内加温多少时间,全速加温就是连续整个周期(2分钟)都加温,当然停止加温就是完全不输出,根据我们的计算可以让加温时间在0~2分钟内变化,比如计算所得我们在这一个周期内应该加温1分钟30秒,经过两分钟以后再测量被加温物体的温度,通过计算我们应该加

系 图4-1输出功率与通断时间的关温1分28秒,当然这里除了加温以外的时间就是不加温,等待下一个周期到来,再进行实际测量计算下一个周期我们的输出量,周而复始,不断地修正我们的输 出量,以达到对温度的有效控制。也就是说把一个周期分成若干份,例如1/2,1/4等等这样的,根据反馈数据的大小来选择在具体的导通的时间,从而控制电阻炉的加热功率,以达到调节温度的目的。

但是在程序内部一般不是用时分秒来计算的,因此,为了对应程序处理上的方便,就要使用单片机的一个定时器用于系统全部时钟,例如显示刷新、键盘扫描等,相对于单片机的计算来说,温度的控制周期比较长,所以对2分钟(电阻炉温度控制周期为2分钟)进行细分,将每分钟进行100等分,则两分钟就是200等分,这样就达到了200个输出等级了,这样的输出比例已经足够细里。取200得另一个好处是,对应于MCS51的8位单片机刚好可以在一个字节内进行运算,程序简单运算速度快。当需要改变定时周期时,有些不同的加热对象,例如对较大热惯性的加热对象是,可能2分钟周期太短路,我们可以通过修改基本定时常数的办法来实现,而保持200等分不变。

对2分钟进行200等分,则基本单位是T=60*2/200=0.6ms,这对于单片机

10

河南工程学院毕业设计(或论文)

来说太长了,因为如果我让我的定时器做到这么慢的定时周期就干不了别的事了,为了显示、键盘等的处理一般我们定时在5-10ms,所以就需要另外设定一个变量tTemp1在每一个定时中断发生时对tTemp1计数。例如:本系统的定时器的定时常数对应于10ms,则设定tTemp1在达到60的时候才确认是达到600ms了,才作为一个基本的输出时间单位。对应于总周期的修改,200等分可以不用修改,而只要修改变量tTemp1的判断边界就可以了,例如对应于2分钟时是60,则在3分钟为周期时边界改为90就行了,定下了基本控制时间分辨率以后,其计算就可以不用改变了。 二、PID参数的确定

PID的三个基本参数Kp,Ki,Kd,一般是通过试验的方式来确定的,根据我们的实际工作对象去初步确定,然后在实际运行过程中进行调节,以便达到相对比较理想的效果。本系统以比例调节为基础,微分、积分为辅,我们所设定得PID三个参数是根据参考书籍上的“常见控制系数PID参数经验选择范围”中的温度参数,其中Kp为1.6~5,Ti(分)为3~10,Td(分)为0.5~3。

第三节 抗干扰的设计

一、产生干扰的原因以及结果

干扰可以沿着各种线路侵入单片机系统,也可以以场的形式从空间侵入,干扰作用在单片机的输入系统可以使模拟信号失真、数字信号出错;干扰作用在单片机的输出系统可以使各输出信号混乱,不能正常反映单片机系统的真是输出量;干扰作用在单片机系统的内核可以使CPU芯片内部逻辑发生混乱,有可能导致取操作码变成了取操作数,发送出错误的地址值,读取到错误的数据或指令,寄存器值发生变化,产生错误的跳转等现象。译码器或存贮器因干扰而发生逻辑混乱时,CPU将取到错误的指令和数据,或把数据写到错误地址的单元。在CPU取指令周期中,如果数据线和地址线受到干扰而出错将导致CPU取到错误指令;印制板线路及各连接线因干扰而产生信号叠加时也会导致CPU读取到错误的指令和数据。

因干扰而出现系统失控的原因很多,但大都可以归结为程序计数器PC的内容发生了变化,引起程序“跑飞”,CPU执行一系列错误的指令从而导致系统失

11

河南工程学院毕业设计(或论文)

控。由于干扰的随机性,对MCS51单片机来说,PC的值被改变后,可能志向64KB空间中的任意位置。根据PC“跑飞”后的不同运动轨迹,可将其分为:(1)PC可能指向系统未使用的存贮器空间;(2)PC可能指向程序区或数据区。当PC指向系统未使用的存贮器空间时,CPU将把该地址处的随机数据当作指令,导致CPU执行错误的指令;当PC指向程序区时,即使指向某一指令的操作码,也不是本应执行的哪条指令的操作码;如果PC指向数据区和程序区的操作码时,CPU就会把数据或操作数误以为是操作码。可见,一旦PC“跑飞”,在其错误的引导下,CPU可能会一错再错,执行一系列的错误指令,发出错误的控制命令,导致系统失控,CPU在执行错误的指令的过程中,可能会破坏数据区、专用寄存器内容、堆栈指针等等。

二、抗干扰的措施

在应用中,因PC“跑飞”而引起系统失控的后果是严重的,对于本系统的而言可能是不能控制电磁炉,导致干锅等现象。因此必须尽可能早地发现并及时将PC的值拉回,这就要求失控后具有快速自恢复的能力。针对本系统的设计宗旨,将采取一下抗干扰措施:

1、利用指令冗余技术的软件抗干扰措施

当PC受干扰而指向程序区时,可采用指令冗余技术使PC纳入正轨。当“跑飞”道某一条单字节指令上时,便可自动纳入正轨;当“跑飞”道某一条双字节指令上时,有可能落到其操作数上,从而继续出错;当PC“跑飞”道某一条三字节指令上时,继续出错的机会更大。因此,因该多用单字节指令,并在关键的地方人为的插入一些单字节指令NOP ,或将有效单字节指令重写。这便是指令冗余。

(1)NOP的使用

在双字节指令和三字节指令之后插入两条NOP指令,可保护其后的指令被完整地执行而不被拆散,从而使程序走上正轨。为了不明显降低程序正常运行的效率,不可能在程序中加入太多的冗余指令。因此,常在一些对程序流向其决定作用的指令(如RET、RETI、LACALL、LJMP、JC、JNC、DJNZ等等)和某些对系统工作状态至关重要的指令(如SETB、EA等等)之前插入两条NOP指令,确保正确地执行。

12