工学过程控制流量控制系统_第1页
工学过程控制流量控制系统_第2页
工学过程控制流量控制系统_第3页
工学过程控制流量控制系统_第4页
工学过程控制流量控制系统_第5页
免费预览已结束,剩余40页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第一章 过程控制仪表课程设计的目的意义 11.1 设计目的 11.2 课程在教学计划中的地位和作用 1第二章 流量控制系统 (实验部分) 22.1 控制系统工艺流程 22.2 控制系统的控制要求 32.3 系统的实验调试 4第三章 HPF 脱硫工艺流程及控制要求 63.1 控制系统工艺流程 63.2 设计内容及要求 7第四章 总体设计方案 84.1 设计思想 84.2 总体设计流程图 . 84.3 硬件设计概要 84.4 硬件选型 94.5 硬件电路设计系统原理图及其说明 15第五章 软件设计 175.1 软件设计流程图及其说明 17第六章 系统调试中遇到的问题及解决方法 20第七章 收获

2、、体会 23附录 1 源程序及其说明 24参考文献 37第一章 微控制器应用系统综合设计的目的意义1.1 实验目的 本课程设计的目的在于培养学生综合运用理论知识来分析和解决实际问题 的能力,使学生通过自己动手对一个工业过程控制对象进行仪表设计与选型, 促 进学生对仪表及其理论与设计的进一步认识。 课程设计的主要任务是设计工业生 产过程经常遇到的压力、 流量、液位及温度控制系统, 使学生将理论与实践有机 地结合起来,有效的巩固与提高理论教学效果。1.2 课程设计在教学计划中的地位和作用本课程设计是为过程控制仪表课程而开设的综合实践教学环节,是对现代检测技术、自动控制理论、过程控制仪表、计算机控制

3、技术等前 期课堂学习内容的综合应用, 使学生加深对过去已修课程的理解, 用本课程所学 的基本理论和方法, 运用计算机控制技术, 解决过程控制领域的实际问题, 为学 生今后从事过程控制领域的工作打下基础。 因此本课程在教学计划中具有重要的 地位和作用。第二章流量控制系统(实验部分)2.1控制系统工艺流程图2.1内容器单闭环流量控制系统工艺流程图VL为电动阀,SSR为固态继电器说明:FT为流量变送器,FC为智能调节器, 控制输出,Q表示流量。图2.3同。PID智能调节器图2.2内容器单闭环流量控制系统方块流程图VL1图2.4双闭环比值控制方块流程图2.2控制系统的控制要求2.2.1 单闭环控制要求

4、给定流量范围为0400L/h,流量从200L/h稳态向300L/h稳态过渡的 调节时间不超过100s,超调量不超过5%稳态误差不超过土 5%.2.2.2 双闭环比值控制主回路(图2.4中FC1调节的回路)要求如单闭环控制要求,副回路(FC2 调节的回路)的比值K可在流量范围内实现0.51.5的比例控制,具体情况分为 主回路Q1稳定,改变比值K:畐寸回路的调节时间不超过100S,超调量不超过 5%,稳态误差不超过± 5% 比值K确定,主回路Q1随给定Qs改变:在Q1稳定在给定Qs后,副回路调节 时间不超过50s,超调量不超过5%稳态误差不超过土 5%2.3 系统的实验调试2.3.1 单

5、闭环流量控制 在实验面板上接好线,确认无误后打开实验机柜电源和水泵开关; 将智能调节器FC1设置为单路输入内给定、人工模糊自整定 PID调节方式; 调节 PID 参数:积分分离值为 0,先使积分时间 TI 为一较大值,微分时间 TD 为0;调节比例带P,使流量Q1能稳定到给定值附近,且过渡时间不太大、超调 量满足工艺要求;再调节积分时间 TI,使流量Q1的稳态误差减小以满足工艺要 求。若此时过渡时间也能达到工艺要求, 则可以不要微分作用, 若不能满足则慢 慢增加微分时间TD,使调节时间减小以满足工艺要求。说明:在调节比例带P使流量能稳定到给定值附近后,主要需解决的是减少稳态 误差(减小TI)、

6、减少超调量(增加比例带P或积分时间TI)和减少过渡时间(增 加微分时间TD或减小积分时间TI ),P、TI、TD这3个参数主要需调节的是P 和 TI ,观察无纸记录仪的响应曲线,多试几组参数,使流量控制达到工艺要求。2.3.2 双闭环比值控制在 2.3.1 中单闭环流量控制已满足工艺要求的前提下, 将其做为主回路, 不需 再改动其参数。 将调节器FC2设置为双路输入外给定、人工模糊自整定 PID调节方式。 将比值器设置为加法方式,比例系数 A=0.5( 0.51.5均可),B=0b Q1稳定后,副回路的给定也就一定了。调节PID参数(调节方法如单闭环控制),给调节器FC2选择合适的PID值以满

7、足工艺要求。特别说明:以上两个实验的调试问题在第七章详细讲述,此处只说明步骤。第三章 HPF 脱硫工艺流程及控制要求3.1 控制系统工艺流程HPF法脱硫是国内新开发的技术,它是以氨为碱源液相催化氧化脱硫新工艺 采用的催化剂HPF是一种复合催化剂,它对脱硫和再生过程均有催化作用。所产 废液完全可以回兑到炼焦煤中 , 从而大大简化了工艺流程。 脱硫、脱氰效率较高 , 一般可达到塔后煤气含HSW IOOmg/帛,含HCM300mg/m。HPF法脱硫的工艺流程是:鼓风机后的煤气进入预冷塔与塔顶喷洒的冷却水 逆向接触,被冷却为30 C,冷却水从塔下部用泵抽出,送外冷器被低温水冷至 28C送回塔顶循环喷洒

8、。采取部分剩余氨水更新循环冷却水,多余循环水返回机械化氨水澄清槽。预冷后的焦炉煤气经过两台并联的脱硫塔 , 从塔顶喷淋脱硫液以吸收煤气中的 HS、HCN同时吸收氨,以补充脱硫脱氰过程中消耗的氨)。脱H2S后的煤气送入洗 涤工段。两台并联的脱硫塔都有自己独立的再生系统,吸收了HS HCN勺溶液从塔溜出,经液封槽进入各自独立的反应槽, 再经溶液循环泵送入再生塔。 同时由空气压缩 机送来的压缩空气鼓入再生塔底部 , 溶液在塔内即得到再生。再生后溶液经液位 调节器返回各自对应的脱硫塔循环使用。浮于再生塔顶的硫泡沫利用位差流入泡沫槽 , 硫泡沫经泡沫泵送入戈尔膜过 滤器分离 , 清液流入反应槽 , 硫膏

9、经压缩空气压榨成硫饼装袋外销。 为避免脱硫液 盐类积累影响脱硫效果 , 排出少量废液送往配煤。脱硫工艺的流程如图3.1所示。图中L表示液位;P表示压力;T表示温度;F表示流量;I表示指示;C表示控制;V表示阀门;Q表示累计的导热油腔闊严片瑕藪凤工段*的黑余氢水;怖环卜康rjKMH鬣装直来 氏注讯水 冷餐粧风工段Vi £Xy事敘槽或丁-段的汕塑空弋t撐大T鼻"冲星水Ltmsi6轟汽#图3.1 HPF脱硫工艺流程流程图曲舗塔<«*»3.2 设计内容及要求1) .循环上水的流量范围在 8001000m/h,精度要求为土 5%2) .抽水高度(即预冷塔高度

10、)约20m第四章总体设计方案4.1设计思想设计的关键在于循环水的抽送、流量的检测和控制,分别可以通过选择合适 的工业水泵、流量计、无纸记录仪和流量积分演算智能调节器、电动调节阀完 成相关功能。另外,假设氨水与循环上水的流量比值有固定要求, 可增加比值器实现流量 比值控制。设循环上水的流量为主控量 Q1,氨水的流量给定则为 Q2s=Q1*K 二 者的配比为氨水:循环上水=K 1,则可用实验中的流量比值控制系统实现该控 制寸环节。4.2 总体设计流程图图4.1双闭环比值控制方块流程图4.3 硬件设计概要硬件设计主要是智能调节器的设计,可采用单片机做实时监控芯片,结合 外围电路实现流量信号的变换、采

11、集、 PID 运算与控制输出等功能。为了能实时 调整 PID 参数,需增加键盘扫描电路; 为了显示 PID 参数和流量的大小, 需增加 显示模块。4.4 硬件选型4.4.1 智能调节器的自行设计N转换可用OP07构成的比例放大器实现。由于 ADC0809勺转换速度只有 几十微妙,相对流量的变化时间很小,可以不要保持器。而ADC0809W DAC0832都是八位的转换器件,理论上的控制精度可达到1/255*100%=0.4%,足以满足流量控制的精度要求。V/I转换可用RCV420专换器。单片机选择STC89C5一是CMO工艺的单片机功耗较低;二是价格便宜;再 者内部程序存储器有8KB的FLASH

12、R0M能满足绝大部分工控过程实时监控程序 的烧写需求。显示部分用LCD采用长沙太阳人电子的SMC1602字符型液晶显示器。 键盘扫描可用 8279 加 4*4 矩阵键盘以中断方式实现。4.4.2 智能调节器选型4.4.1的部分可以用虹润的 HR-WP-XLS8智能调节器代替,其参数如下输入信号:模拟量热电偶:BE、J、K、S、T、WRe3-25 F2电 阻: Pt100、Pt100.1 、Cu50、Cu100、BA1、BA2流0 -10mA 420mA 020mA输入阻抗三250电Q电压05V、1 5V波形矩形、正弦或三角波幅度光电隔离,大于4V (或根据用户要求任定)频率010KHz (或根

13、据用户要求任定)输出信号:模拟量输出DC 0-10mA(负载电阻w 750Q) DC 420mA(负载电阻W 500Q ) DC 05V (负载电阻250KQ ) DC 15V (负载电阻250KQ )报警输出(阻性负载)继电器控制输出一一继电器 ON/OFF带回差。AC220V/3ADC24V/6A通讯输出光电隔离,RS-485/RS-232C接口,波特率12009600bps可设置,采用标准MODBUS RTU信协议馈电输出DC2± 1V,负载电流w 30mA精度:测量显示精度土 0.5%FS或土 0.2%FS频率转换精度±1脉冲(LMS 一般优于0.2%显示方式: 0

14、99999瞬时流量测量值显示 099999999999累积值显示 -1999999999温度补偿测量值显示 -1999999999压力补偿测量值显示 -1999999999流量(差压、频率)测量值显示高亮度LED(数码管)测量显示发光二极管工作状态显示设定方式:面板轻触式按键数字设定参数设定值断电后永久保存参数设定值密码锁定保护方式:断电后流量累积值时间保持大于两年,设定参数永久性保持电源欠压自动复位工作异常自动复位(Watch Dog)使用环境:环境温度050 r相对湿度< 85%RH避免强腐蚀性气体工作电源:常规型 AC220V % (50Hz± 2Hz,线性电源)特殊型

15、AC90X265V-开关电源 DC24± 2V开关电源 功耗: W 6W( AC220V性电源供电)< 6W( AC9A265V开关电源供电)W 6W(DC24V电源供电) 重量: 500g(AC220V 供电 ) 300g( 开关电源 )除智能调节器以外的硬件选择如下:4.4.3 电动调节阀选型采用湖南力升信息设备有限公司的LSDZ-50电动调节机构,技术指标如下出轴力矩 (N.m) : 50动作范围: 0360°动作时间( S) :20驱动电机( W) :10控制电路选项 :4-20mA 输入位置输出:4-20mA直流动力电源: 220VAC 50Hz精度:定位精

16、度: 0.5%,位置反馈精度: 0.5%环境温度:-25+55 °C重量: 2Kg4.4.4 流量计选型采用北京尺度方圆传感器有限公司的LWGY-250A05S技术指标如下精度: ± 0.5%R口径: 250mm, 标准量程 1201200m3/h重复性:0.05%0.2%4.4.5 比值器选型采用虹润的HR-WP-XQS80技术指标如下特性显示方式:以双排四位LED显示第一路测量值(PV1和第二路测量值(PV2 ,以红色/ 绿色光柱进行两路测量值百分比的模拟显示。显示范围:-19999999字。测量精度:土 0.2%FS或0.5%FS ± 0.1%FS(需特殊订

17、制)。 分 辨 率:±1字。报警方式:1-4个报警点控制(1AL、2AL、3AL、4AL) LED旨示。 报警精度:±1 字。保护方式:输入回路断线、输入信号超 / 欠量程报警;输入回路断线变送输 出保持、最大、最小可选。设定方式:面板轻触式按键数字设定,设定值断电永久保存。运算模型加减运算: S0=AS1± BS2公式 4.1乘法运算:S0=ASt< BS2公式4.2除法运算:S0=AS什BS2公式4.3计算精度: ±).5%FSh1字或±).2%FSh1字运算周期: 0.4秒注:SO输出信号;S1、S2输入信号;A、B 系数 输入信号

18、热电偶:K、E、S、B、J、T、R、Wre3-25;冷端温度自动补偿范围 0 50C,补偿准确度土 1C。热 电阻:Pt100、Cu100 Cu50 BA2 BA1;引线电阻补偿范围w 15Q。线性电阻:0400 Q远传电阻:30350Q (远传压力表)。直流电压:020mV 0100mV 05V 15V、05V开方、15V开方、 -5 5V;-10V10V、010V(订货时需指定,与其他信号不 兼容)。直流电流:010mA 420mA、020mA 010mA开方、420mA开方。 输入阻抗:电压信号 Ri > 500KQ。 输出信号输出精度:同测量精度。电流信号:DC420mA负载电阻

19、RW500Q;DC010mA负载电阻R<750Q。电压信号:DC05V; DC15V,负载电阻R> 250KQ,否则不保证连接外部仪表后的输出准确度。报警输出:继电器控制输出一继电器 ON/OFF带回差,触点容量-AC220V/1A;DC24V/3A (阻性负载)通讯输出:波特率一2400、4800、9600bps内部自由设定,采用 MODBUSTU 通讯协议。配电输出:DC2± 1V,负载电流 < 30mA 使用环境环境温度:-1055C;环境湿度:1090%RH耐压强度:输入/输出/电源/通讯相互之间 (1000V.AC/分钟)。绝缘阻抗:输入/输出/电源/通讯

20、相互之间 > 100MQ。交流电源:90265V (开关电源),频率:50Hz/60Hz直流电源:24V± 2V (开关电源)。功耗: <5W。4.4.6 无纸记录仪选型采用虹润的HR-SSR单色无纸记录仪,技术指标如下显示器:采用160*128点阵、高亮度黄底黑字液晶屏,LED背光、画面清晰; 基本误差 : 0.2%F.S输入规格 :全隔离万能输入 1 8 通道信号输入,通道间全隔离,隔离电压大于 400输入阻抗:电流:250 Q,电压>1血;热电阻:要求三线电阻平衡,引线电阻 <10Q。电 压:(05)V、(15)V、mV信号;电 流: (0 10)mA、

21、 (420)mA;热电阻: PT100、 Cu50、 BA1、 BA2;热电偶:S、B、K、T、E、J、R、N;表5.1HR-SSR万能输入量程表输入类型量程范围输入类型量程范围U型:010mA, 05V-999919999热 电 偶B型5001800C :川型:420mA, 15V-999919999S型-1001600C20mV020mVK型-1001300C100mV0100mV:E型:-1001000C :热 电 阻Cu50-50140°C1 J型-1001000CBA1-100C 600CR型-50 C1600CP BA2-100C 600C:N型:-200 C 1300

22、CPt100-200650CT型-100380C电阻0350Q-999919999传感器配电24VDC;输出规格:模拟输出 4-20mA输出;12路可组态继电器触点输出:触点容量为 3A、250VAC(阻性 负载);报警输出上上限、上限、下限、下下限;补偿运算:蒸汽根据IFC67公式计算蒸汽密度补偿饱和蒸汽与过热蒸汽的质量流量或热流量。一般气体温度、压力补偿测量标准体积流量。天然气温度、压力补偿测量标准体积流量。液体温度补偿测量标准体积流量或质量流量。补偿范围:蒸汽压力0.14.5MPa温度100500 E密度 0.1 100Kg/m比焓 2508 3224KJ/Kg一般气体压力060MPa温

23、度-100500 E液体温度100500C累积范围:099999999通讯、打印:通讯接口: RS232C或RS485波特率: 1200、 2400、 9600、 57600打印接口: RS232(直接连接微型打印机记录时间:记录间隔: 1、 2、 5、 10、 15、 30、 60、 120、 240秒可选。记录长度:八笔记录, 72小时/笔 (记录间隔 1 秒)720天/ 笔(记录间隔 4 分)。记录间隔可根据对象的不同而不同:对于 变化缓慢的信号如温度, 其记录间隔可取得大些, 如 30 秒;而 对于变化比较快的信号如流量, 其记录间隔可取 1 5 秒;其他 如液位信号,其记录间隔可取

24、110秒。数据备份和转存:128M 、256M、512M 1G U盘可选热电偶冷端补偿误差:土 1C断电保护时间:内置FLASH存储器保护参数和历史数据,断电后可永久保存。集成硬件时钟,掉电后也能准确运行。时钟误差:±1 分/月供电电源:开关电源 85VAC265VAC, 50Hz±5%环境温度: 0 50C环境湿度: 0 85%RH4.4.7 水泵选型采用威乐山姆逊(北京)水泵系统有限公司的立式单级管道泵 IL ,技术指标如下 流量范围 : 900m3/h压力范围 : 最大扬程: 85m 功率范围 : 0.25kw 至 200kw 说明:需用两台泵并联抽水。4.5 硬件电

25、路设计系统原理图及其说明来自变送器420mA电流信号LCDI/VP0P1DAC0832V/I送调节阀ADC08098279P3.24*4矩阵键盘图5.1智能调节器(自行设计)硬件原理图说明:来自变送器420mA的信号经I/V转换后得到05V的直流信号,单 片机STC89C52卖取A/D转化值,经PID算法程序处理后使DAC0832俞出相应的 控制量(注意图中DAC0832旨DAC模块,输出为05V电压量),经V/I转换后将 控制信号送给电动调节阀使阀门达到一定的开度以对应给定的流量。 8279将4*4 矩阵键盘的编码以中断方式(外中断 0)送给单片机,通过片内程序可实现 PID 参数的实时调整

26、。LCD用来显示流量当前值、给定值与 PID参数。第五章软件设计5.1软件设计流程图及其说明5.1.1主函数图5.1智能调节器(主函数流程图设计)说明:8279工作于二键锁定、编码方式;TO工作于定时方式1; PID参数的设置 由键盘中断完成;PID运算过程和输出控制由TO中断完成;PV值为当前流量, SV为给定量。5.1.2 键盘中断函数图5.2读键值修改PID参数中断函数5.1.3定时器TO中断函数图5.3定时器TO采样中断流程图5.1.4 LCD显示函数5.1.5图5.4 LCD显示函数流程图参数(P、Ti、Td、A、Ts)设置函数图5.5 PID参数设置函数流程图第六章 系统调试中遇到

27、的问题及解决方法说明:本部分为实验调试中遇到的问题,即使用虹润智能调节器做为流量控制系 统调节器遇到的问题。6.1调试单闭环流量控制系统时遇到的问题6.1.1阀门开度100%流量最大值才150L/h我首先想到的是量程范围是否设置错误了, 于是检查了一次智能调节器的二级参 数,结果没找出错误。于是很冒昧地请了吴老师帮忙,结果是分流开关被我开的 过大导致主回路的流量过小,把分流开关关小就可以提高主回路的流量值了。我完全忘了那是分流开关,只好乖乖接受吴老师的批评教育了。6.1.2无纸记录仪显示反馈流量振荡解决方法一一增大比例带P,由200调到了 800,反馈流量最终能稳定在给定值 200L/h附近,

28、此时调节时间(由振荡到稳定在给定值土%5为150s,未达到控制要求。6.1.3调节时间过大解决方法:减小积分时间Ti,由30s减小到22.5s,调节时间减少到100s左右 然后增加微分时间Td,由0增加到0.5s,可使调节时间小于90s,达到控制要 求。同时,从无纸记录仪上观察到流量过渡曲线(在给定值 200与给定值300 之间)超调小于5%稳态误差也小于土 5%各项指标达到控制要求。之后又多试了几组参数,最终得到较为理想的一组参数如下比例带P=620,积分时间Ti=22.5s,微分时间Td=0.5s,运算周期To=2s。对应流量控制指标为:从200L/h到300L/h,调节时间为80s,无超

29、调,稳态误 差土 2%6.2调试流量比值控制系统时遇到的问题6.2.1不了解比值器的连线方式实验时第一次接触比值器,虽然知道 X、丫是输入,Z是输出,但不知道面板上 标的X、丫 Z该怎么连线,问搭档和周围的同学没人知道,看实验指导书也没有 介绍怎么接线,因为怕接错了把仪表烧坏,所以求吴老师指导。在吴老师的细心 指导下我了解了比值器中的信号为直流电流信号,所以无论输入或者输出都要串联连接。而且由公式4.1、公式4.2、公式4.3可知比值器应工作在运算方式 2(即加法运算,公式4.1 ),比例因子A即为流量比值K,比例因子B置0。6.2.2副回路流量为0,与给定200L/h有明显偏差,但调节器无输

30、出“有偏差就肯定有控制输出”,本着这个想法,我怀疑是不是接线有问题,于是 检查了一次接线,可是没发现错误。接着我想到了输出是有的,可能极性反了, 即调节器的正反作用设置有误。结果一查二级参数,调节器工作在正作用方式下, 将其改为反作用方式后电动调节阀立刻产生动作,流量迅速提升。6.2.3调节器2的比例带已经调到999.9最大值,副回路流量仍然振荡图6.3畐U回路Td=1的响应曲线t图6.3畐咽路Td=0的响应曲线先去掉这完全可以肯定振荡与比例带无关, 可以考虑调节积分时间和微分时间FC2的微分作用,使Td=O,观察无纸记录仪发现副回路流量不再振荡。624主回路已稳定,改变比例 K时副回路的过渡

31、时间(2分钟)太长图6.6畐U回路Ti=7.5s的响应曲线要使副回路响应加快首先可以调节 FC2的比例带P,可是调小了容易振荡,调大 了对减少调节时间的作用不明显。于是将 FC2的比例带固定在680,减小积分时 间Ti,使Ti=7.5s,结果可使调节时间减少到70s。最后多试了几组参数,最佳的参数如下主回路保持单闭环实验的参数不变,副回路调节器FC2的比例带P=680,积分时间Ti=7.5s,微分时间Td=0,运算周期To=2s,积分分离值AT=100 可得控制指标为主回路Q1稳定,改变比值K:畐寸回路的调节时间为80S,无超调,稳态误差土2%比值K确定,主回路Q1随给定Qs改变:主回路Q1的

32、过渡时间为75s,无超 调,稳态误差小于土 5%副回路调节时间约90s (即主被控量Q1稳定后Q2经15 秒左右稳定),无超调,稳态误差约土 2%以上指标完全符合流量比值控制系统要求。第七章 收获、体会此设计采用双回路控制系统, 方案简单、并且在设计中采用了智能仪表能够 更好的适应环境变化对于控制系统的要求。 在整个课程设计过程中, 我切实感受 到一句话 “实践出真知” 的分量。有些东西是教堂上的课本没有的或者 根本找不到, 或者没有现成的例子, 这就要综合自己所学的知识技能再加上临时 的补充去解决这些问题。比如HPF脱硫工艺,我刚开始看到那流程图时头都大了, 尽是些没接触过的东西,心里很是抗

33、拒。可是心里还是很想做好这次课程设计, 于是硬着头皮把说明的文字对着图看了好几遍, 最后弄明白了整个工艺流程, 并 提取出需要我设计的流量控制部分。在编写软件和实验调试时都遇到了不少问题, 或是查阅相关资料, 或是求助 同学和老师, 最终能按时按质地完成本次课程设计的任务, 在此想对帮助我、 指 导我的老师和同学说声由衷的感谢。随着技术进步,人工模糊自整定 PID 控制在实际中的应用越来越显得不足, 但是对于一些简单控制系统来说还能达到控制要求, 计算机控制以及各种智能仪 表将在自动控制系统中占有绝对的优势!以后本人会逐步学习优越的控制方案, 应用智能控制仪表完成更好的系统控制!附录 1#in

34、clude"reg52.h"#include"absacc.h"#include"math.h"#include"intrins.h" #include"string.h"#define uchar unsigned char #define uint unsigned int/*8279 地址 */#define M8279_CON XBYTE0xF9FF #define M8279_DATA XBYTE0XF8FF* *AD0809地址 *#define STARTAD XBYTE0x7ff

35、f#define ADRESULT XBYTE0x7fffsbit ADBUSY=P33;/*液晶控制位定义 */sbit LCD_RS =:P2A4;sbit LCD_RW=P2A3;sbit LCD_EN =P2A2;比例带范围为 11000 积分时间范围为 1120s 微分时间范围为 0120s 采样周期 150ms 积分分离值 0%100% 给定值 8001000uchar data tabArryP4="300" / uchar data tabArryI3="50" / uchar data tabArryD3="1"/u

36、char data tabArryTs2="10" / uchar data tabArryA3="100" / uchar data tabArryQ04="800" / uchar data tabArryCurrentQ3="0" uint data Ts,Td,Ti,PP,SetQ0,CurrentQ;float data En,En_1,En_2,AT,Kd,Ki,Kp,pp,pd,pi,pn,pn_1;float data SetQ,CurrentQ0;uchar AD0809() /AD 转换程序uc

37、har result;STARTAD=0;while(ADBUSY=1);while(ADBUSY=0);result=ADRESULT;return(result);void PID_Init() /PID 系数初始化 , 无符号字符型转化为浮点型uint i,j;i=strlen(tabArryA);AT=0;for(j=0;j<i;j+)AT+=(uint)(tabArryAj&0x0f)*pow(10,i-j-1); / 更新采样周期 if(AT<0.1) AT=0.1;CurrentQ0=CurrentQ*400.0/255;En=(SetQ0-CurrentQ0

38、)/400;Kp=100.0/PP;Kd=Kp*Td/Ts;Ki=Kp*Ts/Ti;uchar PID_Process() / 积分分离 PID 运算uchar PID_result;PID_Init(); pp=Kp*(En-En_1);pi=Ki*En;pd=Kd*(En-2*En_1+En_2);if(abs(En)>AT) / 误差超过积分分离值 A 则去掉积分作用 pn=pn_1+pp+pd;elsepn=pn_1+pp+pd+pi;if(pn>1) pn=1; / 输出限幅if(pn<0) pn=0;En=En_1;En_1=En_2;pn_1=pn;PID_re

39、sult=pn*0xff;return PID_result;void init_8279() uchar s;/8279初始化M8279_CON=0XDF; do s=M8279_CON; while(s&0x80=1); M8279_CON=0X00; M8279_CON=0X3f; void delay(int ms) /int i;while(ms-)for(i = 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();延迟程序/*检查LCD忙状态*/*lcd_busy 为 1 时,忙,等待。 lcd-busy 为 0 时 , 闲,可

40、写指令与数据*/ bit lcd_busy()bit result;LCD_RS = 0; LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0&0x80);LCD_EN = 0;return result;/* 写指令数据到LCD */*RS=L , RW=L丘=高脉冲,D0-D7=指令码。void lcd_wcmd(uchar cmd)while(lcd_busy();LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_(); _nop_();P0 = cmd;_nop

41、_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;/* 写显示数据到LCD */*RS=H , RW=L,E=高脉?中do D7-数*void lcd_wdat(uchar dat) while(lcd_busy();LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;/* 设定显

42、示位置*void lcd_pos(uchar pos)数据指针 =80+ 地址变量lcd_wcmd(pos|0x80); /* LCD 初始化设定*void lcd_init()lcd_wcmd(0x38); /16*2显示, 5*7 点阵, 8 位数据delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0f); /delay(5);lcd_wcmd(0x06); /delay(5);lcd_wcmd(0x01); /delay(5);显示开,开光标移动光标清除LCD的显示内容void SETP() / uch

43、ar ch; int i,j;设定比例带 Plcd_wcmd(0x06); lcd_pos(0); lcd_wdat('P'); / lcd_wdat('=');i=0; while(tabArryPi=0x30) i+;while(tabArryPi != '0') lcd_wdat(tabArryPi);显示当前比例带i+;i=0; lcd_pos(2);while(ch!=0x17)&&(i!=4)if(P3A2!=1)M8279_CON=0x40; / 读数字 ch=M8279_DATA;ch=ch&0x3f;sw

44、itch(ch)case 0x04:tabArryPi=0x31;lcd_wdat('1');break;case 0x0c:tabArryPi=0x32;lcd_wdat('2');break; case 0x14:tabArryPi=0x33;lcd_wdat('3');break; case 0x05:tabArryPi=0x34;lcd_wdat('4');break; case 0x0d:tabArryPi=0x35;lcd_wdat('5');break; case 0x15:tabArryPi=0x3

45、6;lcd_wdat('6');break; case 0x06:tabArryPi=0x37;lcd_wdat('7');break; case 0x0e:tabArryPi=0x38;lcd_wdat('8');break; case 0x16:tabArryPi=0x39;lcd_wdat('9');break; case 0x0f:tabArryPi=0x30;lcd_wdat('0');break; default:break; i+; i=strlen(tabArryP);PP=0; for(j=0;j

46、<i;j+)更新比例带的值PP+=(uint)(tabArryPj&0x0f)*pow(10,i-j-1); / if(pp>1000) pp=1000;if(pp<1) pp=1;void SETD()/设定微分时间 Tduchar ch; int i,j;显示当前微分值lcd_wcmd(0x06); lcd_pos(0); lcd_wdat('T'); lcd_wdat('d'); / lcd_wdat('=');i=0;while(tabArryDi=0x30)i+;while(tabArryDi != '

47、0')lcd_wdat(tabArryDi);i+;i=1;while(ch!=0x17)&&(i!=3)if(P3A2!=1)M8279_CON=0x40; / 读数字 ch=M8279_DATA;ch=ch&0x3f;switch(ch)case 0x04:tabArryDi=0x31;lcd_wdat('1');break; case 0x0c:tabArryDi=0x32;lcd_wdat('2');break;case 0x14:tabArryDi=0x33;lcd_wdat('3');break;cas

48、e 0x05:tabArryDi=0x34;lcd_wdat('4');break;case 0x0d:tabArryDi=0x35;lcd_wdat('5');break;case 0x15:tabArryDi=0x36;lcd_wdat('6');break;case 0x06:tabArryDi=0x37;lcd_wdat('7');break;case 0x0e:tabArryDi=0x38;lcd_wdat('8');break;case 0x16:tabArryDi=0x39;lcd_wdat('

49、;9');break;case 0x0f:tabArryDi=0x30;lcd_wdat('0');break; default:break;i+; i=strlen(tabArryD);Td=0;for(j=0;j<i;j+)更新微分时间Td+=(uint)(tabArryDj&0x0f)*pow(10,i-j-1); /if(Td>120) Td=120;/设定积分时间 Tivoid SETI() uchar ch; int i,j;lcd_wcmd(0x06);lcd_pos(0);lcd_wdat('T');lcd_wdat(

50、'i'); / 显示当前积分值 lcd_wdat('=');i=0;while(tabArryIi=0x30)i+;while(tabArryIi != '0')lcd_wdat(tabArryIi);i+;i=0;lcd_pos(3);while(ch!=0x17)&&(i!=3)if(P3A2!=1)M8279_CON=0x40; / 读数字 ch=M8279_DATA;ch=ch&0x3f;switch(ch)case 0x04:tabArryIi=0x31;lcd_wdat('1');break;

51、case 0x0c:tabArryIi=0x32;lcd_wdat('2');break;case 0x14:tabArryIi=0x33;lcd_wdat('3');break;case 0x05:tabArryIi=0x34;lcd_wdat('4');break;case 0x0d:tabArryIi=0x35;lcd_wdat('5');break;case 0x15:tabArryIi=0x36;lcd_wdat('6');break;case 0x06:tabArryIi=0x37;lcd_wdat(&

52、#39;7');break;case 0x0e:tabArryIi=0x38;lcd_wdat('8');break;case 0x16:tabArryIi=0x39;lcd_wdat('9');break;case 0x0f:tabArryIi=0x30;lcd_wdat('0');break; default:break;i+; i=strlen(tabArryI);Ti=0;for(j=0;j<i;j+)更新积分时间Ti+=(uint)(tabArryIj&0x0f)*pow(10,i-j-1); /if(Ti>120) Ti=120;if(Ti<1) Ti=1;void SETTS()/uchar ch;int i,j;设定采样周期 Tslcd_wcmd(0x06);lcd_pos(0);lcd_wdat('T'); /lcd_wdat('s');

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论