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

付费下载

下载本文档

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

文档简介

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

2、量值(伏)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-4711A板卡的A/D 口测出 温度传感器的输出

3、电压,并在计算机内将其转换成相应的温度。将测量数据 填入下表。温度计(度)万用表测量值(伏)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、函数,随着输入信号变化,实际传感器输出与 输入不具有相同时间函数,将会产生系统误差和随机误差。对于系统误差,可以采用差动法补偿来修正,随机误差可以采用统计学 中的方法如算数平均或求标准偏差。24实验三系统动态特性的测试一、实验目的学习单容对象动态特性的实验测定方法。二、实验要求通过实验的方法建立液位对象的过程数学模型。三、实验步骤利用液位对象的液位与输出流量的关系建立其模型原理对于液位系统,根据动态物料平衡关系有dt式3-1式中:Qi 输入流量;Qo 输出流量;h 液位高度; A 水箱截面积;心Qi、在静态时,AQo、也h分别为偏离某一平衡状态Qi0、QO0、ho的增量。Q=Qo, 回 =0,

5、当Qi变化时,h、Qo也将发生变化,由 dt流体力学可知,流体在紊流情况下, h与流量之间为非线性关系,为简化起 见,作线性化处理。近似认为Qo与h在工作点附近成正比,而与出水阀的阻力R> (称为液阻)成反比,即AQo/ 或 R"hR2心 Qo式3-2由式3-1、式-2,消去中间变量 Q,再求拉氏变换得:R2式3-3单容液位过程的传递函数为:R2W(S) = :7=473473473 AS + 1(1 .51 e7) S + 1h (mm)120160200240Qo (l/min )1.8801.9652.0392.137R24711541408R473其中水箱的截面积A =

6、190mm>M75mm。w(s)=HlSl二二亠AQi (S) R2 AS +1 TS +1(3)关闭出水阀,向水箱内注水至 260mm左右,将出水阀旋开至适当 位置(整个测量过程中保持出水阀开度不变),测量给定液位高度所对应的 流量值,填入下表。根据式3-3求对象的数学模型。四、思考题1、分析可能造成模型不准确的原因。答:被控对象有较大的时间常数,导致变化过程较慢; 单容水箱是一阶系统响应,被控变量的变化比较缓慢; 被控对象具有传输延迟; 被控对象不具有非线性,自平衡能力差。实验四 液位单回路控制系统的设计及参数整定一、实验目的掌握过程计算机控制系统的单回路控制方式。二、实验要求设计单

7、容水箱的液位单回路控制系统,实现液位的定值控制,并对系统 进行参数整定。三、实验内容1、按照图4-1,在组合式实验装置上通过选择管路,构造液位单回路 控制系统。2、画出液位单回路控制系统方框图。3、根据液位对象的数学模型,选择系统的采样周期4、运用经验法确定数字调节器的参数。根据经验公式,选择调节器参数 Kc、Ti和Td值。观察不同参数情况下 的控制效果,最终确定较为满意的调节器参数。实验次数调节器参数性能指标KcTiTdtS111/6.1%55221/6.3%54320.5/5.9%48410.5/5.3%52液位单回路控制系统2501502001-Or5-O2-0.5-010050OBO0

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

9、方法。二、实验要求 根据流量对象的特点,设计流量定值控制系统,并对系统进行参数整定, 使系统具有较好的动、静态性能指标和抗干扰能力。三、实验步骤1、按照图 5-1,在组合式实验装置上通过选择管路,构造流量单回路 控制系统。2、画出流量单回路控制系统方框图。3、根据流量对象的特点,选择系统的采样控制周期Ts = 04、选择调节器参数,进行流量控制,记录控制结果,并就不同参数 下的控制效果进行定性讨论控制器实验次数KcT|TdtsPID10.51/1.86%13.5211/4.3%4.530.50.5/3.08%3.5410.5/7.95%4.5流量单回路控制系统Cf1-1-00 5-0.5-01

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

11、程序:实验传感器、执行器实验#include <stdio.h> #include <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 D

12、riverHandle;ULONG num1=0,num2=0;int count;USHORT 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)&

13、;ptAIConfig);/ 读取指定 AI 通道的电压值ptAIVoltageIn.chan = 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); ptCo

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

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

16、CounterEventRead); printf("%lun",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 );实验三 系统动态特性的测试#includ

17、e <stdio.h> #include <windows.h>#include <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); / 打开设备/AI 配置ptAIConfig.DasChan=0;/AI

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

19、verHandle_v,(LPT_AIVoltageIn)&ptAIVoltageIn);long 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,&ptC

20、ounterEventStart);(DriverHandle,ptCounterEventRead.counter=0; ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num1; DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf("num1=%lun",num1

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

22、nt=num2-num1;printf("count=%dn",count);FILE *fp=fopen("me.txt","w");float fluid;while(!kbhit()DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);ptCounterEventStart.counter=0;DRV_CounterEventStart(DriverHandle,&ptCounterEventStart);ptCounterEventRead.

23、count=&num1;DRV_CounterEventRead(LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);(DriverHandle,Sleep(1000);ptCounterEventRead.count=&num2;DRV_CounterEventRead(LPT_CounterEventRead)&ptCounterEventRead);DRV_CounterEventRead (Driver

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

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

26、t;#include <conio.h>#include "time.h"#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; /float seth=200;/PID 系数float setv=0

27、;float k=1,ti=0.5,td=0;int n=0;float time;long DriverHandle1;打开设备打开设备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, +/-10VDRV_AICo

28、nfig(DriverHandle, (LPT_AIConfig)&ptAIConfig);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;

29、/通道 0ptAIVoltageIn.gain = 4;/Gain Code, +/-10VptAIVoltageIn.TrigMode = 0; / 内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&height_v_In;/ 返回电压值 DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);if(height_v_In < setv) e3=setv-height_v_In;height_v_Out += k*(e3-e2)+0.3/ti*e3+td/0.3*(e

30、3-2*e2+e1); 增量式 PID 控制e1=e2;/前两次值e2=e3;/前一次值if(height_v_Out>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);/ 电压输出 ptAOVoltag

31、eOut.chan = 0; ptAOVoltageOut.OutputValue = height_v_Out;/ 型数据所要设置的输出电压值 ,浮点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.MaxVa

32、lue=10;ptAOConfig.MinValue=0;DRV_AOConfig(DriverHandle1, (LPT_AOConfig)&ptAOConfig);ptAOVoltageOut.chan = 0; height_v_Out=0; ptAOVoltageOut.OutputValue = height_v_Out;/所要设置的输出电压值 ,浮点型数关闭设备关闭设备DRV_DeviceClose( &DriverHandle ); /DRV_DeviceClose( &DriverHandle1 ); /实验五 流量单回路控制系统的设计及参数整定#inc

33、lude<stdio.h> #include<windows.h> #include"driver.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;

34、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;DRV_DeviceOpen(0,&DriverHandle);ptAOConfig.chan=0;/AO 通道 0 ptAOConfig.RefSrc=0;/ 内部参考源 ptAOConfig.MaxValue=10;ptAOConfig.MinValue=0;DRV_AOConfig(DriverHandle, (LPT_AOConfig)&ptAOConfig);/ 电压输出 FILE

温馨提示

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

评论

0/150

提交评论