过程控制系统实验报告
更新时间:2023-09-25 14:57:01 阅读量: 综合文库 文档下载
- 过程控制系统推荐度:
- 相关推荐
过程控制系统实验报告
姓 名:
指导教师 :
南京理工大学 2015 年 5月
实验二 传感器、执行器实验
一、实验目的
1
了解传感器、执行器的工作原理,掌握它们在实际过程控制中的应用。
二、实验要求
编程实现系统液位、温度、流量等模拟量的数据采集以及模拟量的输出。 三、实验步骤
1、液位传感器的测试
在水箱内按要求注入不同高度的纯净水,利用万用表和USB-4711A板卡的A/D口分别测出液位传感器的输出电压,并在计算机内将电压转换成对应的高度。将测量数据填入下表。
高度 输出 万用表测量值(伏) A/D 口测量值 (伏) 250 mm 5.53 5.56 200 mm 4.91 4.92 393.36 96.68% 0.68% 150 mm 4.30 4.32 345.31 100 mm 3.68 3.71 296.48 50 mm 3.07 3.09 246.88 0mm -2.4 -2.4 192 / / 机内转换高度(mm) 444.92 相对误差(%) 相对误差(%) (消除仪器误差) 77.97% 1.17% 130.21% 196.48% 393.76% 2.21% 4.68% 8.76%
因为我们使用的实验仪器测高计有明显的机械误差,通过实际0mm时测量高度为192mm,表测电压为-2.4V。所以实际相对误差应是消除高度计所造成的机械误差之后的值,一并在表中列出了。
2、温度传感器的测试
用温度计测量出水温,同时利用万用表和USB-4711A板卡的A/D口测出温度传感器的输出电压,并在计算机内将其转换成相应的温度。将测量数据填入下表。
2
温度计 (度) 万用表测量值 (伏) A/D口测量电压 (伏) 机内转换温度(度) 相对误差(%) / 0.93 3、比例阀的控制
0.96 19.19 / 通过USB-4711A板卡的D/A口输出控制电压,比较机内控制电压与实际输出电压,并将结果填入下表。
控制量(伏) 测量值(伏) 相对误差(%) 0 0 0 2.5 2.49 0.4% 5 4.98 0.4% 7.5 7.47 0.4% 10 9.96 0.4%
四、思考题
1、用传感器测量过程变量的准确性如何?如果有误差,可以采取什么方法进行修正?
答:在测量过程变量时大量被测量是随时间变化的动态信号,传感器的输入与输出信号是一个时间函数,随着输入信号变化,实际传感器输出与输入不具有相同时间函数,将会产生系统误差和随机误差。
对于系统误差,可以采用差动法补偿来修正,随机误差可以采用统计学中的方法如算数平均或求标准偏差。
3
实验三 系统动态特性的测试
一、实验目的
学习单容对象动态特性的实验测定方法。
二、实验要求
通过实验的方法建立液位对象的过程数学模型。
三、实验步骤
利用液位对象的液位与输出流量的关系建立其模型 ⑴ 测试系统结构如图3-1所示。
进水 计算机 LT 出水 图3-1 利用液位—输出流量关系建立模型的实验原理图
FT ⑵ 原理
对于液位系统,根据动态物料平衡关系有
d?h ?Qi??QO?A 式 3-1
dt 式中: Qi—输入流量; QO—输出流量; h—液位高度; A—水箱截面积;
?Qi、?QO、?h分别为偏离某一平衡状态Qi0、QO0、h0的增量。
d?h?0,当Qi变化时,h、QO也将发生变化,由在静态时,Qi?QO,dt流体力学可知,流体在紊流情况下,h与流量之间为非线性关系,为简化起见,作线性化处理。近似认为QO与h在工作点附近成正比,而与出水阀的阻
4
力R2(称为液阻)成反比,即
?QO??h?h 或 R2? 式 3-2 R2?Q0由式 3-1、式-2,消去中间变量QO,再求拉氏变换得: 单容液位过程的传递函数为:
W(S)?R2?H(S)K 式 3-3
???Qi(S)R2AS?1TS?1⑶ 关闭出水阀,向水箱内注水至260mm左右,将出水阀旋开至适当位置(整个测量过程中保持出水阀开度不变),测量给定液位高度所对应的流量值,填入下表。根据式3-3求对象的数学模型。 h (mm) 120 160 200 240 QO(l/min) R2 1.880 471 1.965 541 473 2.039 2.137 408 R2
其中水箱的截面积A?190mm?175mm。
R2473473W(S)???R2AS?1473AS?1(1.51e7)S?1
四、思考题
1、分析可能造成模型不准确的原因。
答:①被控对象有较大的时间常数,导致变化过程较慢; ②单容水箱是一阶系统响应,被控变量的变化比较缓慢; ③被控对象具有传输延迟;
④被控对象不具有非线性,自平衡能力差。
5
实验四 液位单回路控制系统的设计及参数整定
一、实验目的
掌握过程计算机控制系统的单回路控制方式。
二、实验要求
设计单容水箱的液位单回路控制系统,实现液位的定值控制,并对系统进行参数整定。
三、实验内容
1、按照图4-1,在组合式实验装置上通过选择管路,构造液位单回路控制系统。
计算机
M 进水 LI 出水 图 4-1 液位单回路控制系统原理图
2、画出液位单回路控制系统方框图。
3、根据液位对象的数学模型,选择系统的采样周期 TS? 。
6
4、运用经验法确定数字调节器的参数。
根据经验公式,选择调节器参数KC、TI和TD值。观察不同参数情况下的控制效果,最终确定较为满意的调节器参数。
调节器参数 实验次数 性能指标 KC 1 2 3 4 1 2 2 1 TI 1 1 0.5 0.5 TD / / / / ?00 6.1% 6.3% 5.9% 5.3% tS 55 54 48 52
7
四、思考题
1、在控制过程中遇到了哪些问题,你是如何解决的?为了提高控制效果,你在控制算法上还采取了哪些措施?
答:实验中,开始程序一直记录数据有问题,后来和同学帮助下,原来是fprintf设定不对。最后的实验中,测流量总是开始就达到
最大,然后慢慢向下降落,怎么也搞不懂,在老师的指点下终于解决了问题,完成了实验。
采用了多次实验取较好数据的方法,消除了偶然误差的影响。本来还采用了微分算法,用了之后才知道不好,又去掉了。
实验五 流量单回路控制系统的设计及参数整定
一、实验目的
掌握过程计算机控制系统的一般设计方法。
二、实验要求
根据流量对象的特点,设计流量定值控制系统,并对系统进行参数整定,使系统具有较好的动、静态性能指标和抗干扰能力。
三、实验步骤
1、按照图5-1,在组合式实验装置上通过选择管路,构造流量单回路控制系统。
8
计算机
M 进水 FT 出水
图5-1 流量单回路控制系统原理图
2、画出流量单回路控制系统方框图。
3、根据流量对象的特点,选择系统的采样控制周期 TS? 。
4、 选择调节器参数,进行流量控制,记录控制结果,并就不同参数
下的控制效果进行定性讨论
控制器 实验次数 1 2 PID 3 4 0.5 1 0.5 0.5 / / 3.08% 7.95% 3.5 4.5 KC 0.5 1 TI 1 1 TD / / ?00 1.86% 4.3% tS 13.5 4.5 9
四、思考题
1、流量对象与液位对象有什么区别?流量控制系统的参数整定要注意 哪些问题? 答:(1)
①流量对象应用流量传感器,对于设定的流量值,系统会在达到 该流量时以大致稳定的流速往水箱注水;
②液位对象以设定的液位高度为基准,传感器一直对高度进行测量,达到设定高度后立即停止注水,并一直检测,当液面未达到设定值,再次
10
注水以此反复。
(2)注意数学模型的正确建立,在建模过程中减少盲目性,但是该方法较为复杂,在过程控制进行中直接进行工程正定,该方法简单,计算方便,但是参数不一定最佳,但实用;在此采用现场实验整定的方法,这种方法注意改变比例积分的参数,并有比较性地改变,有比较好得效果。
附实验程序:
实验二 传感器、执行器实验#include
void main()
{ PT_AIConfig ptAIConfig;
PT_AIVoltageIn ptAIVoltageIn; float advalue; float h;
float q=0;
FILE *fp=fopen(\ long DriverHandle; ULONG num1=0,num2=0; int count;
11
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,+/-5V DRV_AIConfig(DriverHandle, (LPT_AIConfig)&ptAIConfig); //读取指定AI通道的电压值 ptAIVoltageIn.chan = 0;//通道0
ptAIVoltageIn.gain = 0;//Gain Code,+/-5V ptAIVoltageIn.TrigMode = 0; //内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&advalue;//返回电压值 DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);
printf(\ ptCounterEventStart.counter=0;
DRV_CounterEventStart(DriverHandle,&ptCounterEventStart);
ptCounterEventRead.counter=0;
ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num1; DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead);
DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf(\ Sleep(1000);
ptCounterEventRead.counter=0;
ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num2; DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead);
12
DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf(\
count=num2-num1;
q=0.0122*count+0.3412; h=advalue*80;
printf(\fprintf(fp,\fprintf(fp,\ }
fclose(fp);
DRV_CounterReset(DriverHandle,0); DRV_DeviceClose( &DriverHandle ); }
实验三 系统动态特性的测试
#include
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,+/-5V DRV_AIConfig(DriverHandle_v, (LPT_AIConfig)&ptAIConfig); //读取指定AI通道的电压值 ptAIVoltageIn.chan = 0;//通道0
ptAIVoltageIn.gain = 0;//Gain Code,+/-5V ptAIVoltageIn.TrigMode = 0; //内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&advalue;//返回电压值 DRV_AIVoltageIn(DriverHandle_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,&ptCounterEventStart); ptCounterEventRead.counter=0; ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num1; DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead); DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf(\ Sleep(1000); ptCounterEventRead.counter=0; ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num2;
14
DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead); DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); printf(\ count=num2-num1; printf(\ FILE *fp=fopen(\ float fluid; while(!kbhit()){ DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn); ptCounterEventStart.counter=0; DRV_CounterEventStart(DriverHandle,&ptCounterEventStart); ptCounterEventRead.count=&num1; DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead); DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); Sleep(1000); ptCounterEventRead.count=&num2; DRV_CounterEventRead (DriverHandle, (LPT_CounterEventRead)&ptCounterEventRead); DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); count=num2-num1; fluid = (14.5*(count-13)/(1200-13)+0.5); printf(\ printf(\ printf(\ printf(\
15
printf(\ fprintf(fp,\ fprintf(fp,\ }
fclose(fp);
DRV_CounterReset(DriverHandle,0); DRV_DeviceClose( &DriverHandle );
DRV_DeviceClose( &DriverHandle_v ); //关闭设备 }
实验四 液位单回路控制系统的设计及参数整定#include
void main() { FILE *fp=fopen(\ long DriverHandle; PT_AIConfig ptAIConfig; PT_AIVoltageIn ptAIVoltageIn; float height_v_In; float m_h; float e1=0,e2=0,e3=0; //误差
16
float seth=200; float setv=0; float k=1,ti=0.5,td=0; //PID系数 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,+/-10V DRV_AIConfig(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;//通道0
,+/-10V ptAIVoltageIn.TrigMode = 0; //内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&height_v_In;//返回电压值 DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn);
ptAIVoltageIn.gain = 4;//Gain Code 17
if(height_v_In < setv) { e3=setv-height_v_In; 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>10) height_v_Out=10; else if(height_v_Out<0) height_v_Out=0; }
else height_v_Out=0; printf(\ printf(\ printf(\
//电压输出 ptAOVoltageOut.chan = 0; ptAOVoltageOut.OutputValue = height_v_Out;//所要设置的输出电压值,浮点型数据 DRV_AOVoltageOut(DriverHandle1,(LPT_AOVoltageOut)&ptAOVoltageOut); fprintf(fp,\h=%f, time=%f\\n\ } //AO配置 ptAOConfig.chan=0;//AO通道0 ptAOConfig.RefSrc=0;//内部参考源 ptAOConfig.MaxValue=10; ptAOConfig.MinValue=0; DRV_AOConfig(DriverHandle1, (LPT_AOConfig)&ptAOConfig);
ptAOVoltageOut.chan = 0; height_v_Out=0; ptAOVoltageOut.OutputValue = height_v_Out;//所要设置的输出电压值,浮点型数
18
据 DRV_DeviceClose( &DriverHandle ); //关闭设备 DRV_DeviceClose( &DriverHandle1 ); //关闭设备 }
实验五 流量单回路控制系统的设计及参数整定
#include
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;
19
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 *fp;
fp=fopen(\ while(!kbhit()) {
ptCounterEventStart.counter=0;
DRV_CounterEventStart(DriverHandle,&ptCounterEventStart);
ptCounterEventRead.counter=0;
ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num1; DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);
DRV_CounterEventRead (DriverHandle, &ptCounterEventRead); Sleep(500);
ptCounterEventRead.counter=0;
ptCounterEventRead.overflow=&over; ptCounterEventRead.count=&num2; DRV_CounterEventRead (LPT_CounterEventRead)&ptCounterEventRead);
DRV_CounterEventRead (DriverHandle, &ptCounterEventRead);
count=num2-num1;
Q=0.5+(2*(count-13))*0.0122; printf(\
20 (DriverHandle, (DriverHandle,
正在阅读:
过程控制系统实验报告09-25
日语能力测试二级词汇分类-副词09-22
西南大学网络与继续教育学院1606课程考试《马克思主义基本原理》05-24
公司新员工入职欢迎会领导致辞多篇04-25
中职语文文学常识填空题及答案03-10
苏教一年级下册复习资料08-18
四年级数学思维训练基础第8讲页码问题04-14
ch02计算机史前史08-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控制系统
- 过程
- 实验
- 报告
- 循环部分和数组作业(第6周)
- 甘肃省林地落界实施细则20120220apxg - 图文
- 《高效导学案》2017年高一地理人教版能力提升训练:第一单元《行星地球》地球宇宙环境Word版含答案
- my love 的歌词及中文翻译
- 鲁价费发〔2017〕68号
- 纪检监察专员工作职责
- 吉林大学南岭校区学生会维权部“牢骚打捞处”进校园啦! - 图文
- 交流采样原理
- 重大危险源管理制度1111
- 浅谈《简爱》
- 七年级下册文言文之 黔之驴
- 常青北路监理大纲删减后
- 化学研究报告标记版
- 正确认识民间融资 助推经济又好又快发展
- 说课课题教案
- 2018年中国钻机电控系统行业调研与未来报告目录
- 施工组织设计“10kV疏港线车路溪村公变台区低压改造工程” - 图文
- 大学生暑期英语家教社会实践报告
- 对外汉语中级说话课教案
- K3 BOS 实施开发应用指南 - 图文