内蒙古科技大学毕业设计说明书(毕业论文)
图3.6DAC0832与单片机连接电路
17
内蒙古科技大学毕业设计说明书(毕业论文)
第四章 智能温度控制系统的软件设计
智能温度控制系统的软件部分按其功能分为:监测程序、测控程序和其他模块辅助程序。监测程序是整个系统软件的中心环节,又称为主程序。它接收和分析各种命令,管理和协调全部程序的执行,其包括系统初始化,系统自检等部分;测控程序主要包括数据采集,数据处理,输出控制和自我诊断等部分。其他模块辅助程序包括显示子程序和键盘中断子程序。
4.1主程序的设计
系统上电或复位后,进入控制系统主程序。主程序是软件设计的中枢环节,是整个程序架构的关键所在,从中也体现了程序设计模块化的思想。在主程序中完成系统的初始化、A/D转换、信号处理、显示处理、键盘处理、控制算法处理、输出控制等功能。主程序流程图如图4.1所示。
4.2A/D转换子程序
A/D转换器的程序设计与芯片的转换时间、系统参数的多少以及参数的变换速度有关。一般来讲,如果系统的参数不多,且变换速度比较快,A/D转换器的转换时间比较短,因而多数采用查询方式。相反,如果系统的参数比较多,变换速度比较慢,所采用的A/D转换器的转换时间比较长,一般可采用中断方式。具体采用哪种方式好,要根据具体情况来确定。
A/D转换程序的设计主要分为三步:①启动A/D转换;②查询或等待A/D转换结束;③读出转换结果。对于8为A/D转换器,一次读数即可。
由于从模拟量转换为计算机所能接受的数字量需要一定的时间,所以当A/D转换器启动之后,需要等待转换结束信号生效后才能读出A/D转换结果。对于单片机而言,其丰富的指令系统,且片内设有定时器,使得无论采用软件方式还是硬件方式提供一段时间的延时都是很容易做到的。通常,将延时的时间定得略大于转换时间,以确保读数准确无误。至于采用软件方式,还是通过硬件进行延时,各有利弊。软件方式编程简单,但需要花费机时;采用定时器则需要对其进行初始化编程,但延时过程中不占用机时。
在设计A/D转换程序时,必须和硬件接口电路结合起来进行。A/D转换流程图如图4.2所示。
18
内蒙古科技大学毕业设计说明书(毕业论文)
开始开始系统初始化写配置命令调A/D转换子程序 置0,选中该芯片CS线性化写“选择通道0”命令,开始A/D转换标度变换调显示子程序EOC由低到高跳变?N调键盘子程序Y调PID控制算法程序读上次采样结果调D/A转换子程序CS置1,一次采样结束是否结束?N结束Y结束 图4.2A/D转换程序流程图
图4.1 主程序流程图
4.3控制算法子程序
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,
19
内蒙古科技大学毕业设计说明书(毕业论文)
这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
4.3.1PID控制规律介绍
比例(P)控制 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。
积分(I)控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
微分(D)控制 在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重损失。微分(PD)控制器能改善系统在调节过程中的动态特性。
PID算法的两种类型: (1)位置型控制
?Tu(n)?KP?e(n)?TI??e(i)?i?0n?TD?e(n)?e(n?1)???u0 (4-1) T?位置型的递推形式
u(n)?u(n?1)??u(n)?u(n?1)?a0e(n)?a1e(n?1)?a2e(n?2) (4-2) 其程序流程图如图4.3所示。
20
内蒙古科技大学毕业设计说明书(毕业论文)
PID位置型运算程序计算E(k)=P(k)-M(k)计算Pp(k)?KpE(k)计算PI(k)?KIE(k)?PI(k?1)计算PD(k)?KD[E(k)?E(k?1)]计算P(k)?P(k)?P(k)?P(k)PID将P(k)转换成双字节数E(k-1)←E(k)返回 图4.3PID位置型控制程序流程图
(2)增量型控制
?u(n)?u(n)?u(n?1)?KP?e(n)?e(n?1)??KP(4-3)
TTe(n)?KPD?e(n)?2e(n?1)?e(n?2)?TIT增量型PID算法的算式
?u(n)?a0e(n)?a1e(n?1)?a2e(n?2) (4-4)
式中a0?KP(1?2TTTTD?),a1??KP(1?D),a2??KPD
TTTIT其程序流程图如图4.4所示。 本文采用的是位置式 PID 控制器。
系统一旦出现了偏差,比例调节立即作用已减少偏差。比例作用大,可加快调节,减少误差,但过大的比例,会使系统的稳定性下降,甚至造成系统的不稳定。积分调节使系统消除稳态误差,提高无差度。积分作用的强弱取决于积分时间常数 Ti,Ti 越小,积分作用越强,反之则积分作用弱。加入积分调节可使系统
21