基于单片机的电加热恒温箱控制器设计 - 图文(6)

2019-02-15 11:12

基于单片机的电加热恒温箱控制器设计

4数字PID及其算法 对电加热恒温箱的温度进行控制,把给定值与温度采集的值进行比较,根据偏差进行控制,控制算法采用PID调节算法。下面介绍两种PID控制方式,本系统采用增量式控制。

PID调节是连续系统中技术最成熟、应用最为广泛的一种调节方式。PID调节的实质就是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,其运算结果用以输出控制。在实际应用中,根据被控对象的特性和控制要求,可灵活地改变PID的结构,取其中的一部分环节构成控制规律,如比例(P)调节、比例积分(PI)调节、比例积分微分(PID)调节等。 4.1 PID算法的数字化

在模拟系统中,PID算法的表达式为

P(t)?Kpt)??e(?T1??1e(t)?dDtde(t)?T? (4-1) dt?式中 P(t)—调节器的输出信号;

e(t)—调节器的偏差信号,它等于测量值与给定值之差; Kp—调节器的比例系数; —调节器的微分时间。

T1—调节器的积分时间; TD由于计算机控制是一种采样控制,它只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须首先对式(4-1)进行离散化处理,用数字形式的差分方程式代替连续系统的微分方程,此时积分项可用求和及增量式表示:

?n0nne(t)dt??E(j)?t?T?E(j) (4-2)

j?0j?0de(t)dt?E(k)?E(k?1)?t?E(k)?E(k?1)T (4-3)

将式(4-2)和式(4-3)代入(4-1),则可得到离散的PID表达式:

??TkTDP(k)?Kp?E(k)?E(j)?E(k)?E(k?1)??? (4-4) ?T1j?0T??式中?t=T—采样周期,必须使T足够小,才能保证系统有一定的精度; E(k)—第k次采样时的偏差值; E(k-1)—第(k-1)次采样时的偏差值;

k—采样序号,k=0,1,2,…; P(k)—第k次采样时调节器的输出。

22

由式(4-4)可以看出,要想计算P(k),不仅需要本次与上次的偏差信号E(k)K和E(k-1),而且还要在积分项中把历次的偏差信号E(j)进行相加,即 ?E(j)

j?0这样,不仅计算烦琐,而且为保存E(j)还要占用很多的内存。因此,用式(4-4)直接进行控制很不方便,可以做如下改动。

根据递推原理,可写出(k-1)次的PID输出表达式:

? P(k)?Kp?Ek(??1?)TT1k?1?j?0TDEj(?)?Ek?(T? (4-5) ?E1)k?(?? 2 )?用式(4-4)减去式(4-5),可得:

P(k)?P(k?1)?Kp?E(k)?E(k?1)??K1E(k)?KD?E(k)?2E(k?1)?E(k?2)? (4-6)

式中 K1? KDKpTT1 — 积分系数; — 微分系数。

?KpTDT由式(4-6)可知,要计算第k次输出值P(k),只需知道P(k?1),E(k),E(k?1),E(k?2)即可,比用式(4-4)计算要简单得多。

在很多控制系统中,由于执行机构是采用电阻丝进行控制的,所以,只要给一个增量信号即可。因此,把式(4-4)和式(4-5)相减,得到:

?P(k)?P(k)?P(k?1)

E(?k)2E(?k1?)E??( k2)) (4-7

?Kp?E(k)?E(k?1?)?1KE(k)?D?K式中Kp,KD同式(4-6)。

式(4-7)表示第k次输出的增量?P(k),它等于第k次与第k?1次调节器的输出和差值,即在第k?1次的基础上增加(或减少)的量,所以式(4-7)叫做增量型

PID控制算式。

此外,除了上述两种控制算法外,还有一种称为速度控制的PID算法,即

V(k)??P(k)T

1?)TT1E(?k)TDT ?Kp???E(k)?E(kT??E?(k)2?E(k??) 1)?E?k(2)?(4-8

?4.2 PID算法的程序设计

用C语言进行PID程序设计有两种运算方法,一种用定点运算,一种为浮点运算。定点运算速度比较快,但精度低一点;浮点运算精度高,但运算速度比较慢。一般情况下,当速度变化比较慢时,可采用浮点运算。如果系统要求速度比较快,则需采用定点运算的方法。

4.2.1 位置型PID算法程序的设计

由式(4-7)可写出第k次采样时PID的输出表达式为

23

基于单片机的电加热恒温箱控制器设计

k P(k)?KpE(k)?1K?j?0E(?)jD?KE(?)k ) (4-9) E(?? k 1 P(k)?Pp(k)?P1(k)?PD(k) (4-10)

式(4-10)即为离散化的位置型PID编程公式,其流程如图4-1。

开始计算E(k)?R(k)?M(k)计算Pp(k)?KPE(k)计算P1(k)?K1E(k)?P(k?1)1计算PD(k)?KD?E(k?E(k?1)?计算P(k)=Pp(k)?P(k)?PD(k)1将P(k)转换成双字节整数 R2R3E(k?1)?E(k)结束图4-1 位置型PID运算程序流程图

4.2.2 增量型PID算法的程序设计

由式(4-7)可知,增量型PID算式为

?P(k)?Kp?E(k)?E(k?1)??K1E(k)?KD?E(k)?2E(k?1)?E(k?2)?

(?)Ek(??1设 ?Pp(k)?Kp?Ek ) ?P1(k)?K1E(k)

(?)E2k?( ?PD(k)?KD?Ek?1E)k?(?

2)所以,有 ?P(k)??Pp(k)??P1(k)??PD(k) (4-11)

式(4-11)为离散化的增量型PID编程表达式。增量型PID运算程序流程如图4-2。

24

开始计算e1?给定值-采样值计算ei?ei?1、ei?1?ei?2计算?ei?ei?1???ei?1?ei?2?计算Kp?ei?ei?1?计算K1ei计算KD???ei?ei?1???ei?1ei?2???计算Kp?ei?ei?1??K1ei计算?ui?Kp?ei?ei?1??K1ei?KD???ei?ei?1???ei?1?ei?2???计算输出值数据迭代ui结束 图4-2 增量型PID运算程序流程图

25

基于单片机的电加热恒温箱控制器设计

5 系统的软件设计 5.1 系统软件功能分析

对于单片机系统的设计,设计好了硬件,只是完成了一半工作,没有软件,硬件是没有意义的。因此必须设计出相关的程序,通过应用程序把器件与器件之间、器件与人之间建立起沟通和相关联系,才能发挥系统应有的作用。

恒温箱在上电复位后,处于停止加热状态,此时通过按键来设定预置温度和定时时间。初始温度和定时时间设定好后,开始加热,并实时的检测恒温箱的温度,通过PID控制算法计算出加热时间,从而控制晶闸管的导通和关断时间,以达到控制温度的目的。当恒温箱的温度达到初始温度后,在单片机的控制下处于恒温,知道定时时间到,蜂鸣器提示,停止加热。

根据上面对系统的分析,可实现下面几个功能: A. 系统初始化:对系统进行初始化;

B. 设定温度控制值和定时时间,控制系统转入相应的加热或恒温阶段; C. 检测恒温箱温度经过A/D转换,输入单片机进行处理; D. 进行PID运算,按照运算结果,驱动加热器加热,以调节温度; E. 实现定时功能,定时时间到,蜂鸣器蜂鸣提示。 5.2 主程序的设计

主程序主要进行初始化,分配内存单元及设置定时器参数,以便为系统正常工作创造条件。由于本系统采样数据为12位(双字节),加上一些给定值,如温度上限报警值,所以内存单元比较多,故本系统将同时使用内部RAM及外部RAM。主程序流程如图5-1所示,本系统的采样周期为5s,采用两个定时器串联的方法,即设T0为定时方式,设T1为计数方式。设T0为定时方式1,定时的时间间隔为100ms,时钟频率选6MHz。代入公式,

T??216?X??12?1/fosc可得出T0应装入的

时间常数X=3CB0H,可分别装TH0和TL0。设T1为计数方式2,计数值为50。

26


基于单片机的电加热恒温箱控制器设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:阿拉善旗历代王爷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: