过程控制系统实验报告汇总_第1页
过程控制系统实验报告汇总_第2页
过程控制系统实验报告汇总_第3页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、过程控制系统实验报告姓 名:指导教师 :南京理工大学 2015 年 5 月实验二 传感器、执行器实验、实验目的了解传感器、执行器的工作原理,掌握它们在实际过程控制中的应用二、实验要求 编程实现系统液位、温度、流量等模拟量的数据采集以及模拟量的输出。三、实验步骤1、液位传感器的测试 在水箱内按要求注入不同高度的纯净水,利用万用表和 USB-4711A 板 卡的 A/D 口分别测出液位传感器的输出电压,并在计算机内将电压转换成对 应的高度。将测量数据填入下表。高度输出250 mm200 mm150 mm100 mm50 mm0mm万用表测量值(伏)5.534.914.303.683.07-2.4A

2、/D 口测量值 (伏 )5.564.924.323.713.09-2.4机内转换高度 ( mm)444.92393.36345.31296.48246.88192相对误差( %)77.97%96.68%130.21%196.48%393.76%/相对误差( %) ( 消除仪器误差 )1.17%0.68%2.21%4.68%8.76%/因为我们使用的实验仪器测高计有明显的机械误差,通过实际0mm时测量高度为 192mm,表测电压为 -2.4V 。所以实际相对误差应是消除高度计所造 成的机械误差之后的值,一并在表中列出了。2、温度传感器的测试用温度计测量出水温, 同时利用万用表和 USB-4711

3、A 板卡的 A/D 口测出温度传感器的输出电压,并在计算机内将其转换成相应的温度。将测量数据 填入下表。温度计(度)万用表测量值 (伏)A/D 口测量电压 (伏)机内转换温度 (度)相对误差( %)/0.930.9619.19/3、比例阀的控制通过 USB-4711A 板卡的 D/A 口输出控制电压, 比较机内控制电压与实际 输出电压,并将结果填入下表。控制量(伏)02.557.510测量值(伏)02.494.987.479.96相对误差( %)00.4%0.4%0.4%0.4%四、思考题1、用传感器测量过程变量的准确性如何?如果有误差,可以采取什么 方法进行修正?答:在测量过程变量时大量被测

4、量是随时间变化的动态信号,传感器 的输入与输出信号是一个时间函数,随着输入信号变化,实际传感器输出与 输入不具有相同时间函数,将会产生系统误差和随机误差。对于系统误差, 可以采用差动法补偿来修正, 随机误差可以采用统计学 中的方法如算数平均或求标准偏差。实验三 系统动态特性的测试一、实验目的 学习单容对象动态特性的实验测定方法。、实验要求通过实验的方法建立液位对象的过程数学模型三、实验步骤利用液位对象的液位与输出流量的关系建立其模型 原理对于液位系统,根据动态物料平衡关系有Qi QO Ad h 式 3-1i O dt式中: Qi 输入流量; QO 输出流量;h 液位高度; A 水箱截面积;Qi

5、 、 QO、 h分别为偏离某一平衡状态 Qi0 、QO0 、 h0的增量。 在静态时, Qi QO,d h 0,当Qi变化时, h 、 QO也将发生变化,由 dt流体力学可知,流体在紊流情况下, h 与流量之间为非线性关系,为简化起见,作线性化处理。近似认为 QO与 h在工作点附近成正比,而与出水阀的阻力 R2 (称为液阻)成反比,即QOR2R2 hQ0式 3-2由式 3-1 、式-2 ,消去中间变量 QO ,再求拉氏变换得:单容液位过程的传递函数为:W (S)H (S)Q i (S)R 2 KR 2 AS 1 TS 1式 3-3 关闭出水阀,向水箱内注水至 260mm 左右,将出水阀旋开至适

6、当 位置(整个测量过程中保持出水阀开度不变) ,测量给定液位高度所对应的 流量值,填入下表。根据式 3-3 求对象的数学模型。W (S)R2R2 AS 1473473 AS 14731.51 e7) S 1h (mm)120160200240QO ( l/min )1.8801.9652.0392.137R2471 541 408R2473其中水箱的截面积 A 190mm 175mm 。四、思考题1、分析可能造成模型不准确的原因。答:被控对象有较大的时间常数,导致变化过程较慢; 单容水箱是一阶系统响应,被控变量的变化比较缓慢; 被控对象具有传输延迟; 被控对象不具有非线性,自平衡能力差。实验四

7、 液位单回路控制系统的设计及参数整定一、实验目的掌握过程计算机控制系统的单回路控制方式二、实验要求 设计单容水箱的液位单回路控制系统,实现液位的定值控制,并对系统 进行参数整定。、实验内容1、按照图 4-1,在组合式实验装置上通过选择管路,构造液位单回路 控制系统。2、画出液位单回路控制系统方框图3、根据液位对象的数学模型,选择系统的采样周期4、运用经验法确定数字调节器的参数根据经验公式,选择调节器参数 KC、TI 和TD 值。观察不同参数情况下 的控制效果,最终确定较为满意的调节器参数。7实验次数调节器参数性能指标KCTITD00tS111/6.1%55221/6.3%54320.5/5.9

8、%48410.5/5.3%52四、思考题1、在控制过程中遇到了哪些问题,你是如何解决的?为了提高控制效 果,你在控制算法上还采取了哪些措施? 答:实验中,开始程序一直记录数据有问题,后来和同学帮助 下,原来是 fprintf 设定不对。最后的实验中,测流量总是开始就达到 最大,然后慢慢向下降落, 怎么也搞不懂, 在老师的指点下终于解决了问 题,完成了实验。采用了多次实验取较好数据的方法, 消除了偶然误差的影响。 本来还 采用了微分算法,用了之后才知道不好,又去掉了。实验五 流量单回路控制系统的设计及参数整定一、实验目的 掌握过程计算机控制系统的一般设计方法。二、实验要求 根据流量对象的特点,设

9、计流量定值控制系统,并对系统进行参数整定, 使系统具有较好的动、静态性能指标和抗干扰能力。三、实验步骤1、按照图 5-1,在组合式实验装置上通过选择管路,构造流量单回路 控制系统。2、画出流量单回路控制系统方框图3、根据流量对象的特点,选择系统的采样控制周期S4、选择调节器参数,进行流量控制,记录控制结果,并就不同参数 下的控制效果进行定性讨论控制器实验次数KCTITD00tSPID10.51/1.86%13.5211/4.3%4.530.50.5/3.08%3.5410.5/7.95%4.5四、思考题1、流量对象与液位对象有什么区别?流量控制系统的参数整定要注意 哪些问题?答:(1)流量对象

10、应用流量传感器,对于设定的流量值,系统会在达到 该流 量时以大致稳定的流速往水箱注水;液位对象以设定的液位高度为基准, 传感器一直对高度进行测量, 达到设定高度后立即停止注水, 并一直检测,当液面未达到设定值, 再次10 注水以此反复。(2)注意数学模型的正确建立,在建模过程中减少盲目性,但是该 方法较为复杂, 在过程控制进行中直接进行工程正定,该方法简单,计 算方便,但是参数不一定最佳, 但实用;在此采用现场实验整定的方法, 这种方法注意改变比例积分的参数, 并有比较性地改变, 有比较好得效 果。附实验程序:实验二 传感器、执行器实验#include <stdio.h>#incl

11、ude <windows.h>#include <time.h>#include "driver.h"#include "conio.h"void main() PT_AIConfig ptAIConfig;PT_AIVoltageIn ptAIVoltageIn;float advalue;float h;float q=0;FILE *fp=fopen("test.txt","w");long DriverHandle;ULONG num1=0,num2=0;int count;11US

12、HORT over=0;PT_CounterEventStart ptCounterEventStart;PT_CounterEventRead ptCounterEventRead;DRV_DeviceOpen(0,&DriverHandle);while(!kbhit()ptAIConfig.DasChan=0;/AI 通道 0 ptAIConfig.DasGain=0;/Gain Code, +/-5VDRV_AIConfig(DriverHandle, (LPT_AIConfig)&ptAIConfig);/ 读取指定 AI 通道的电压值ptAIVoltageIn.ch

13、an = 0;/通道 0ptAIVoltageIn.gain = 0;/Gain Code, +/-5VptAIVoltageIn.TrigMode = 0; /内部触发ptAIVoltageIn.voltage = (FLOAT far *)&advalue;/返回电压值DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);printf("AD value=%f!n",advalue);ptCounterEventStart.counter=0;DRV_CounterEventStart

14、(DriverHandle,&ptCounterEventStart);ptCounterEventRead.counter=0;ptCounterEventRead.overflow=&over;ptCounterEventRead.count=&num1;(DriverHandle,(DriverHandle,DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);

15、printf("%lun",num1);Sleep(1000);ptCounterEventRead.counter=0;ptCounterEventRead.overflow=&over;ptCounterEventRead.count=&num2;DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);12DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf("%lun",

16、num2);count=num2-num1;q=0.0122*count+0.3412;h=advalue*80;printf("%dn",count);fprintf(fp,"q=%fn",q); fprintf(fp,"h=%fn",h);fclose(fp);DRV_CounterReset(DriverHandle,0);DRV_DeviceClose( &DriverHandle );实验三 系统动态特性的测试#include <stdio.h>#include <windows.h>#inc

17、lude <time.h>#include "driver.h"#include "conio.h"void main()long DriverHandle_v;PT_AIConfig ptAIConfig;PT_AIVoltageIn ptAIVoltageIn;float advalue;DRV_DeviceOpen(0,&DriverHandle_v); / 打开设备13/AI 配置ptAIConfig.DasChan=0;/AI 通道 0 ptAIConfig.DasGain=0;/Gain Code, +/-5VDRV_AI

18、Config(DriverHandle_v, (LPT_AIConfig)&ptAIConfig);/ 读取指定 AI 通道的电压值ptAIVoltageIn.chan = 0;/通道 0ptAIVoltageIn.gain = 0;/Gain Code, +/-5VptAIVoltageIn.TrigMode = 0; /内部触发ptAIVoltageIn.voltage = (FLOAT far *)&advalue;/返回电压值DRV_AIVoltageIn(DriverHandle_v,(LPT_AIVoltageIn)&ptAIVoltageIn);long

19、DriverHandle;ULONG num1=0,num2=0;int count;USHORT over=0;PT_CounterEventStart ptCounterEventStart;PT_CounterEventRead ptCounterEventRead;DRV_DeviceOpen(0,&DriverHandle);ptCounterEventStart.counter=0;DRV_CounterEventStart(DriverHandle,&ptCounterEventStart);ptCounterEventRead.counter=0; ptCoun

20、terEventRead.overflow=&over; ptCounterEventRead.count=&num1;DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf("num1=%lun",num1);Sleep(1000);(DriverHandle,14ptCounterEventRead.counter=0; ptCounter

21、EventRead.overflow=&over; ptCounterEventRead.count=&num2;(DriverHandle,DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);printf("num2=%lun",num2);count=num2-num1;printf("count=%dn",count);FILE

22、*fp=fopen("me.txt","w");float fluid;while(!kbhit()DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);ptCounterEventStart.counter=0;DRV_CounterEventStart(DriverHandle,&ptCounterEventStart);ptCounterEventRead.count=&num1;DRV_CounterEventRead(LPT_CounterEventR

23、ead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);Sleep(1000);ptCounterEventRead.count=&num2;DRV_CounterEventRead(LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);count=num2-num1;fluid = (14.5*(coun

24、t-13)/(1200-13)+0.5);printf("Height=%ft",advalue*80);printf("num1=%lun",num1);printf("num2=%lun",num2);(DriverHandle,(DriverHandle,15printf("Count=%dn",count);printf("Fluid=%fnn",fluid);fprintf(fp,"Height=%ft",advalue*80);fprintf(fp,"F

25、luid=%fn",fluid);fclose(fp);DRV_CounterReset(DriverHandle,0);DRV_DeviceClose( &DriverHandle );DRV_DeviceClose( &DriverHandle_v ); / 关闭设备 实验四 液位单回路控制系统的设计及参数整定#include <stdio.h>#include <windows.h>#include "driver.h"#include <conio.h>#include "time.h"

26、;#include <math.h> void main()FILE *fp=fopen("test1.txt","w");long DriverHandle;PT_AIConfig ptAIConfig;PT_AIVoltageIn ptAIVoltageIn;float height_v_In;float m_h;float e1=0,e2=0,e3=0; / 误差16float seth=200;float setv=0;/PID 系数float k=1,ti=0.5,td=0;int n=0;float time;long Drive

27、rHandle1; PT_AOConfig ptAOConfig; PT_AOVoltageOut ptAOVoltageOut;float height_v_Out=0;DRV_DeviceOpen(0,&DriverHandle); / 打开设备 DRV_DeviceOpen(0,&DriverHandle1); / 打开设备ptAIConfig.DasChan=0;/AI 通道 0 ptAIConfig.DasGain=4;/Gain Code , +/-10V DRV_AIConfig(DriverHandle, (LPT_AIConfig)&ptAIConfi

28、g);ptAOConfig.chan=0;/AO 通道 0 ptAOConfig.RefSrc=0;/ 内部参考源 ptAOConfig.MaxValue=10;ptAOConfig.MinValue=0;DRV_AOConfig(DriverHandle1, (LPT_AOConfig)&ptAOConfig);setv=seth/80;while(!kbhit() Sleep(300);n+;time=n*0.3;/ 读取指定 AI 通道的电压值 ptAIVoltageIn.chan = 0;/ 通道 0 ptAIVoltageIn.gain = 4;/Gain Code, +/-

29、10VptAIVoltageIn.TrigMode = 0; / 内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&height_v_In;/返回电压值DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);17if(height_v_In < setv)height_v_Out += k*(e3-e2)+0.3/ti*e3+td/0.3*(e3-2*e2+e1); / 增量式 PID 控制e1=e2;/前两次值e2=e3;/前一次值if(height_v_Out>

30、;10) height_v_Out=10;else if(height_v_Out<0) height_v_Out=0;else height_v_Out=0;printf("height_v_Out=%f!t",height_v_Out); printf("time=%f!t",time);printf("hight=%f!nn",height_v_In/5*400);/ 电压输出ptAOVoltageOut.chan = 0;ptAOVoltageOut.OutputValue = height_v_Out;/所要设置的输出

31、电压值 , 浮点型数据DRV_AOVoltageOut(DriverHandle1,(LPT_AOVoltageOut)&ptAOVoltageOut);fprintf(fp,"U=%f, h=%f, time=%fn",height_v_Out,height_v_In*80,time);/AO 配置ptAOConfig.chan=0;/AO 通道 0 ptAOConfig.RefSrc=0;/ 内部参考源 ptAOConfig.MaxValue=10;ptAOConfig.MinValue=0;DRV_AOConfig(DriverHandle1, (LPT_AO

32、Config)&ptAOConfig);ptAOVoltageOut.chan = 0; height_v_Out=0;ptAOVoltageOut.OutputValue = height_v_Out;/ 所要设置的输出电压值 ,浮点型数18DRV_DeviceClose( &DriverHandle ); /关闭设备DRV_DeviceClose( &DriverHandle1 ); /关闭设备实验五 流量单回路控制系统的设计及参数整定#include<stdio.h>#include<windows.h>#include"driv

33、er.h"#include<time.h>#include <conio.h>PT_CounterEventStart ptCounterEventStart;PT_CounterEventRead ptCounterEventRead;long DriverHandle;PT_AOConfig ptAOConfig;PT_AOVoltageOut ptAOVoltageOut;float davalue;float Q=0;float Qh=2;float t=0,U=0;float e1=0,e2=0,e3=0;float Kc=0.5,Ti=1,Ts=0.5;void main()ULONG num1=0,num2=0;int count;USHORT over=0;19DRV_DeviceOpen(0,&DriverHandle);ptAOConfig.chan=0;/AO 通道 0 ptAOConfig.RefSrc=0;/ 内部参考源 ptAOConfig.MaxValue=10;ptAOConfig.MinValue=0;DRV_AOConfig(DriverHandle, (LPT_AOConfig)&ptAOConfig);/ 电压输出FILE *fp;fp=fopen(

温馨提示

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

评论

0/150

提交评论