内蒙古科技大学毕业设计说明书(毕业论文)
?u(k)??up(k)??ui(k)??ud(k) (4.2)
其中
?up(k)?Kp[e(k)?e(k?1)] (4.3)
?ui(k)?KpTTi e(k) (4.4)
?ud(k)?ud(k)?ud(k?1) (4.5)
ud(k)?Td {ud(k?1)?KpKd[e(k)?e(k?1)]} (4.6)
KdT?Td u(k)?u(k?1)??u(k) (4.7)
其中ud(k)和ud(k-1)分别是实际微分环节第k,k-1时刻的输出。k为采样序号(k=0、1、2、??);Kp为调节器比例系数;Ki为调节器积分系数;Kd为调节器微分系数;e(k)为第K次采样时的偏差值;e(k-1)为第k-1采样时的偏差值;u(k)为第k次采样时调节器的输出值;u(k-1)为第k-1次采样时调节器的输出值;Δu(k)为第k次输出的增量。
相对于理想的增量型PID算式来说,实际微分PID控制算式具有可以有效限制高频干扰的优点。由于控制器输出的变化过大和过于频繁,现场希望当被调参数在一定范围内变化时,输出不改变。为了避免这种现象就要考虑到带死区的数字PID控制算法。带死区的数字PID控制算法:人为的设置一个死区(不灵敏区)值B,偏差的绝对值大于B时,则进行正常的PID控制输出;当偏差的绝对值小于等于B时,其控制输出维持在上次的输出不变,即△Uk为0。B值的设定要适当,过大的B值将会使系统产生很大的滞后,过小的B值将使控制动作过于频繁。
控制系统中存在着动态误差,在一般情况下用积分作用进行调节,但是在动态过程中(如系统的开工、停工或大幅度提降时),过大的积分作用可能导致系统稳定性的变坏,为了消除这种现象可以采用积分分离算法。具体方法是:在被控变量开始跟踪的时候,取消积分的作用,直到被控变量接近给定值时,才产生积分作用。积分分离控制算法的算式表示为:当式(4.8)成立时,为PD控制,Ti为0;当式(4.9)成立时,为PID控制。其中经数字滤波后的测量值为MK,给定值为UK,允许的最大偏差值为A。
EK?UK?MK?A (4.8)
31
内蒙古科技大学毕业设计说明书(毕业论文)
EK?UK?MK?A (4.9)
此外,在自动控制系统中,为了安全生产的要求,通常不希望调节阀“全开”或“全闭”,因此设定一个上限位pup和一个下限位pdown。换句话说,就是要求PID调节的输出必须限制在一个特定的幅度范围内,即
Pdown?U?Pup (4.10)
在具体系统中,不一定上限位和下限位都需要,可能只需要一个下限位或一个上限限位。
4.5 LED显示子程序
利用单片机内部的串行接口,可以实现静态的显示处理。这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或是免去扩展接口。
程序流程如图4.6所示。
子程序入口得到各显示位取段码取最高位数据准备数据加脉冲段码左移8位数据送完没?YN4位段码送完没?Y延时N
返回
图4.6 LED显示子程序流程图
在这种设计中,串行口工作于方式0,数据的输入输出都通过RxD实现,移位脉冲
32
内蒙古科技大学毕业设计说明书(毕业论文)
则由TxD发出。每次传送一个字节数据。每输出一个字节数据,单片机自动使串行中断请求标志TI置。通过测试该状态,即可确定该字节是否发送完毕。由硬件电路图可知,74LS164是串行输入并行输出的移位寄存器。它具有两个串行输入端和8位并行输出端(QA—QH)。
当显示数据从RxD端输出到移位寄存器74LS164的输入端AB时,74LS164将串行数据转换成8位输出码QA—QH,然后加到共阳极LED显示器上。究竟在哪一位上显示,还要P1口的状态而定。当某一位为低电平时,该位LED显示,其他位不显示。由于接口电路中显示模型输出地址和位选信号可一次选中,故只要一次输出即可显示一位。
4.6 Keil软件
4.6.1 Keil软件简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编语言相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组和在一起。运用Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil就是必不可少的编程软件,即使不适用C语言而仅使用汇编语言编程,Keil软件的方便易用的集成环境、强大的软件仿真调试工具也会让整个软件设计过程事半功倍。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,去Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体会高级语言的优势。
4.6.2 Keil软件编程流程及程序下载
Keil软件编程是在Keil uVision3界面上实现的。要实现软件编程,需要按下列步骤进行操作:
(1)启动 Keil uVision3
从uVision3的Project菜单中选择New Project,这时将出现“产生新工程”对话框,在对话框输入项目文件名,点击保存,出现“选择设备”对话框,在器件数据库中选择单片机STC89C52。
(2)新建一个源文件
33
内蒙古科技大学毕业设计说明书(毕业论文)
用菜单选项File—New新建一个源文件,在打开的编辑窗口输入源代码,并另存为*.c的文件。
(3)选择建立的工程
点击工程下方的*.c文件,用Add Files to Group?按钮把文STARTUP.A51添加到项目中。加入文件如图4.7所示。
图4.7 加入文件
(4)创建HEX文件
输入调试程序直至没有错误,创建一个HEX文件来进行软件模拟。如图4.8所示。
图4.8 输出HEX文件
(5)下载程序到单片机
下载程序使用软件STC-ISP V391,启动软件后选择器件STC89C52RC。单片机选型如图4.9所示。
图4.9 下载时单片机选型
34
相关推荐: