BH-1S型燃烧热测定仪数据采集及处理程序的改进*
2015-02-13徐永群徐坦叶芳
徐永群 徐坦叶芳
(1韶关学院化学系 广东韶关512005;2韶关市第一人民医院设备科 广东韶关512001)
BH-1S型燃烧热测定仪是20世纪90年代末由南京大学应用物理研究所开发的物理化学实验仪器[1],其测定原理如图1所示,它将铂电阻传感器探测到的量热计内筒温度的电信号经放大、A/D转换后送入微处理器,再由微处理器读取温度值,并以串行数据的形式送入计算机,然后由计算机采集串口的温度值,用雷诺图校正法算出物质燃烧后的温度升高值ΔT,再依ΔT,用恒容燃烧热比对测量法算出物质的燃烧热。该仪器设计合理、性能稳定、仪器联机,具有现代化特色,有利于培养学生的创新性实验能力,能满足大专院校物理化学实验和一般固体物质燃烧热测定的要求。
图1 BH-1S型燃烧热测定仪原理图
由于该仪器开发较早,故在实验数据采集和处理方面有值得改进的地方。如数据采集时,如果没有设置好坐标范围,显示的温差-时间图就较小,不利于学生依显示曲线对实验过程的控制;在ΔT计算过程中,温差曲线拐点值要从原始数据中查找,不便于学生正确地对实验数据进行处理。为了充分利用计算机进行数据处理,笔者对数据采集和处理程序均进行了改进。在数据采集过程中,采用自适应坐标绘制温差-时间曲线,数据图总是具有一定的大小,可使学生及时准确地了解到系统温度变化的情况,便于对实验过程的控制;在燃烧热计算过程中,将待测物和标准物的温差-时间曲线显示在同一界面上,通过设置和调整曲线拐点的号码,可从曲线图上观察到拟合直线与原始数据点吻合的程度,具有所见即所得的效果,从而可使学生准确判断拐点设置的正误。这些改进,充分利用了计算机可视化的优点,提高了工作效率,简化了数据处理过程,增强了测定结果的准确性。本文重点介绍用VB6.0设计改进程序的思想和方法,以便与同行交流。
1 数据采集程序的设计
1.1 串行数据的格式以及温度、温差的算法
串行数据通讯的特点是在一根线上按顺序一位一位地传送数据,该仪器是以串行同步通讯的方式进行的,计算机从串口COM1接收到的每个数据块均由7位数据构成,其数据格式和各位的意义如图2所示,其中第i+1位的144为数据块开始的标识,第i位的235为数据块结束的标识,为固定值;其他各位依系统温度的变化在0~255之间变化。
图2 同步通讯串行数据结构图
温度和温差的计算方法如下:
温度/℃=(第i+2位的值+第i+3位的值×256)/100=(49+12×256)/100=31.21当第i+5位的值≤127时:
温差/℃=(第i+4位的值+第i+5位的值×256)/1000=(13+1×256)/1000=0.269当第i+5位的值>127时:
温差/℃=-(第i+4位的值+(256-第i+5位的值)×256)/1000
1.2 自适应坐标显示温差-时间曲线的方案
自适应坐标的设置就是要在固定的屏幕显示区间内依数据数值的大小自动调整坐标的标度,从而使在测定过程中温差-时间曲线图总具有一个较合理的大小[3]。
1.3 数据采集过程的关键程序段
数据采集用VB6.0自带的标准控件MSComm来实现,各种参数和属性的设置均采用默认值,具体采集温差数值Dtemperature的程序段如下:
Dim i As Integer,byin()As Byte
Dim Dtemperature As Single MSComm1.PortOpen=True
byin()=MSComm1.Input
For i=LBound(byin)To UBound(byin)
If byin(i)=235 And byin(i+1)=144 Then
Dtemperature=(byin(i+4)+byin(i+5)*256)/1000
If a2>127Then Dtemperature=-(-a1+(256-a2)*256)/1000
End If
Next i
计算机读取温差的时间由时间控件Timer1控制,一般采样间隔是30秒,即Timer1.Interval=30000,这一时间间隔在测定之前可以人为设定。每次采样后就需刷新温差-时间曲线,其自适应坐标绘制曲线图的程序段如下:
Tmax=1:Xmax=500'该句在主程序中
Private Sub Timer1_Timer()
Static j As Integer
Line(1500,100)-(12000,8000),,B'设定绘图区域
j=j+1
t(j)=(j-1)*Timer1.Interval/1000'读时间
x(j)=Dtemperature'读温差
If(x(j)-x(1))>Xmax Then Xmax=x(j)-x(1)
If Xmax=0 Then Xmax=1
If t(j)>Tmax Then Tmax=t(j)
For k=1 To j-1
x1=1500+(t(k)-t(1))/Tmax*10500
x2=1500+(t(k+1)-t(1))/Tmax*10500
y1=7000-(x(k)-x(1))/Xmax*6900
y2=7000-(x(k+1)-x(1))/Xmax*6900
Line(x1,y1)-(x2,y2):Circle(x2,y2),30
Next k
End Sub
2 燃烧热计算程序的设计
2.1 拐点数据输入法的改进
用雷诺图校正法求物质燃烧后温度的升高值ΔT时[3],先要画2根切线,即点火前与各数据点相吻合的切线L1和燃烧后与各数据点相吻合的切线L2。原先的程序在数据处理时,要求学生在原始数据中找出拐点,再输入到计算程序中,这项工作比较原始,使用起来也不太方便。笔者依计算机可视性强的特点,对该法进行了改进,即先绘出标有点号的曲线图,再将拐点的号码直接填入相应的对话框中即可。该法巧妙地将输入拐点数值改为了点号,其结果是简化了数据处理过程,提高了数据处理速度,起到了所见即所得的效果。例如图3为标有点号的萘燃烧热测定的温差-时间曲线图,在计算ΔT时,图3(A)的36号点输入正确,而图3(B)的25号点输入不正确,因为顶部的切线L2与燃烧后各数据点不吻合;故需更改点号25为36。
图3 萘燃烧温差-时间曲线
绘制点号标注温差-时间曲线图的程序段如下:
DTmax=0
For i=1 To Number'Number为点数,DT(i)为温差变量
If DT(i)>DTmax Then DTmax=DT(i)'DTmax为最大温差值
Next i
tmax=t(Number)'tmax为最大时间,t(i)为时间变量
Line(4000,100)-(15000,5000),,B'设定绘图区域
X1=4000+t(1)/tmax*11000:Y1=5000-DT(1)/DTmax*4900'将数值转为屏幕坐标
PSet(X1,Y1):j=0
For i=1 To Number
j=j+1:If j=10 Then j=0'设定每10个点标一次点号
X1=4000+t(i)/tmax*11000:Y1=5000-DT(i)/DTmax*4900
Line-(X1,Y1):Circle(X1,Y1),20'绘曲线
If j=0 Then PSet(X1-150,Y1+20),&H8000000F:Print i'标点号
Next i
2.2 燃烧热计算的方法
燃烧热计算的关键是找出物质燃烧后温度的升高值ΔT。依雷诺图校正法算ΔT的方案是:依1~9号点拟合直线L1的方程,依36~46号点拟合直线L2的方程,依9号点和36号点时间的中间值算出横轴垂线L3的方程;再依直线L1和L3的方程解出F点,依直线L2和L3的方程解出G点;F、G两点纵坐标的差值就是ΔT。
该仪器采用恒容燃烧热比对测量法测定样品的燃烧热,其计算的基本原理是物质燃烧后所放出的热量Q完全用来升高量热计的温度。如果温度的升高值为ΔT,依热平衡关系有:
式中K相当于量热计的恒容热容,可用已知热值的标准物质标定,通常用苯甲酸。
由于在测定过程中,样品要与点火金属丝一起压片,故有:
由于金属丝的燃烧热=金属丝的热值×金属丝的质量,而金属丝的热值又是已知的,所以只要知道两燃烧过程的ΔT后,就可依式(1)算出K值,依式(2)算出待测样的燃烧热。
3 结果及讨论
①在数据采集过程中,采用自适应坐标绘制温差-时间曲线,使曲线图总具有一定的大小和分辨率,便于使用者了解系统温度变化的情况,正确地决定点火和结束测定的时间。
②对实验数据处理过程中拐点坐标值的输入方法进行了改进,将数据输入改为点号设置,起到了所见即所得的效果,不仅简化了数据处理的步骤,而且还提高了拐点判断的准确性。
③改进后的系统在测定过程中的自动化程度更高,可使实验过程比较简捷。缩短采样间隔时间,在切线拟合的过程中可供选择的点就更多,通过正确地调节可视化点号,可使测得的结果更加准确。
④萘燃烧热测定结果。以苯甲酸为标准物,用比对测量法测定了萘的恒容燃烧热ΔU,依ΔH=ΔU+ΔnRT计算出恒压燃烧热ΔH,再依基尔戈夫方程ΔH(298.15K)=算出在298.15K时的恒压燃烧热。其3次测量和计算的结果见表1。
表1 萘燃烧热测定结果(数据采样间隔为15秒)
⑤从理论上讲,用比对测量法测定样品的燃烧热应该是很准确的,但本法测定的萘的标准燃烧热稍有偏低,导致这一结果的原因可能有3个:一是仪器绝热性能还不够高,虽然用雷诺图校正法对温差进行了校正,但标定和测定两过程校正的效果不一定完全一致,从而造成了因数据处理方法的准确性不够而引起的误差;二是没烧完的点火丝上附着有黑色的金属氧化物,这些氧化物难以除去,从而造成了因称量金属丝不够准确而引起的误差;三是残留在氧弹中的N2会与O2发生反应,生成氮氧化物,放出热量,在学生实验中,一般没有考虑这一热量的影响,从而造成了因弃去了部分化学反应的热效应而引起的误差。从这些引起误差的原因可以看出,要进一步提高测定结果的准确性,还有待于对实验仪器和实验方法的进一步改进。
[1]吴宗仁,徐健健.计算机与应用化学,1998,15(4):242
[2]陈华,丁杰伟.电脑编程技巧与维护,2000(12):25
[3]任健敏,赵三银.大学化学实验.北京:化学工业出版社,2011
[4]傅献彩,沈文霞,姚天扬,等.物理化学.第5版.北京:高等教育出版社,2005