当前位置: 查字典论文网 >> 一种新型智能差示扫描量热仪(DSC30)的上位机系统软件设计与实现

一种新型智能差示扫描量热仪(DSC30)的上位机系统软件设计与实现

格式:DOC 上传日期:2023-08-06 22:14:41
一种新型智能差示扫描量热仪(DSC30)的上位机系统软件设计与实现
时间:2023-08-06 22:14:41     小编:

摘 要:介绍了一种新型智能差示扫描量热仪上位机系统软件,阐述了软件设计总体框架、主要模块功能、主要数据结构以及专业热分析算法实现。软件作为DSC30智能差示扫描量热仪的重要组成部分,将简洁的操作界面与丰富的数据处理功能有机结合,为用户提供了新一代热分析仪器分析软件,受到市场认可。

关键词:DSC30差示扫描量热仪;热分析仪器;上位机系统;软件设计

DOIDOI:10.11907/rjdk.151412

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2015)007-0145-04

0 引言

热分析方法是利用热学原理对物质的物理性能或成分进行分析的总称[1]。热分析常用方法[2]有:差示扫描量热法(DSC)、差热分析(DTA)、热重法(TG)、热机械分析(TMA)等,其中差示扫描量热法(DSC)是目前热分析应用最为广泛的一种分析法。

差示扫描量热仪 (DSC)是在程序控制下,使样品和参比物以相同的速率升温或降温,测量输入到样品、参比物的热量差与温度关系的仪器[3],主要用来测定物质相转变温度及 转变热焓,观察材料结晶、熔融、液晶相转变、固化、玻璃化等过程。本文将着重介绍一种新型的智能差示扫描量热仪(DSC30)的上位机系统软件设计。

1 DSC30差示扫描量热仪总体结构

DSC30差示扫描量热仪系统组成:加热炉、温度测量(炉温、样品温度、样品与参比物温差)、温度控制、气氛控制、升降控制系统和数据分析处理系统软件等。DSC30整体控制结构采用上、下位机结构,如图1所示。

系统中上位机负责实验过程控制、数据处理、DSC曲线描绘、DSC曲线专业化算法分析、实验数据保存、输出等,上下位机之间采用USB接口进行通信。

2 系统软件设计

2.1 DSC30上位机系统软件整体构架及功能

DSC30上位机系统软件整体架构和功能模块如图2所示。系统软件分为数据采集和数据处理两大部分。其中数据采集部分负责上、下位机之间的通信、数据的实时采集、数据的实时校正、曲线滤波以及对气氛、制冷、升降部件的交互控制等工作;数据处理部分则主要负责对采集数据的分析处理以及文件管理、数据图形化、专业算法分析、计算结果存储及多种格式输出打印等功能。上位机系统软件与下位机采用专门制定的通讯协议,通过USB口进行通讯。

图1 DSC30整体控制结构

2.2 模块分析

DSC30系统软件功能模块包括:系统参数设置模块、数据读取和分发模块、文件载入模块、数据处理模块、热分析专用算法计算模块、曲线绘制模块、用户界面模块以及通讯模块等。

2.2.1 系统参数设置模块

系统参数设置模块,除完成用户一次实验所需的系统参数设置,还对用户所输入参数的合法性进行检验。系统为每次实验设定过程,会有两个选项:①使用一个可用的预编译模板;②自定义试验过程。

图2 系统软件整体架构和模块组成

2.2.2 数据读取和分发模块

数据读取和分发模块处于上下位机的接口处,设置该模块主要是考虑屏蔽上下位机之间数据通讯的复杂性,为其它模块提供一个透明接口,使其不必关心通信细节。该模块由一个函数实现,主要完成以下功能:当检测到有数据到达时能够及时响应,读取采样数据,避免发生数据丢失情况;如果收到与下位机的通信协议中没有规定的数据,能够作出相应的处理,以保证系统的正常运行;根据制定的上下位机数据通讯协议,将读取的数据转换成标准数据格式,把数据组合成与其它模块兼容的数据结构类型;如果读取数据为采样数据,交给处理模块进行统一管理;如果该数据为下位机系统数据(命令,或者应答),则交给“用户界面”模块进行相应处理。数据读取和分发模块也称之为“数据管理”模块,工作流程见图3。

2.2.3 文件载入模块 文件载入模块主要得到用户读取的文件名和路径,按照特定数据结构和格式对读入数据进行合法性判断,对非法数据进行警示处理,将合法数据传递至数据管理模块。该模块文件流程如图3所示。

2.2.4 数据处理模块

数据处理模块主要根据用户设定的参数对原始数据进行处理,具体如下:调用函数从数据管理模块取得相关参数和数据,进行数据格式转化,再根据相关参数值对转化数据进行处理,将经过处理的数据放入到数据管理模块的数据流中,同时计算需要图形化数据所对应的X、Y坐标值,将坐标值作为参数传递给曲线绘制模块。数据处理主要是进行数字滤波和实时基线与温度的校正。数字滤波的方法很多,本系统采用三级滤波方法。

(1)中间值平均滤波。对每个数据采集周期中接收到的N个数据进行排序,去掉最大和最小的1/3,取中间剩下数据的平均值作为一个采样点,这样既可滤去脉冲干扰,又可滤去小的随机干扰。

图3 数据处理流程

(2)在线动态滤波。在中间值平均滤波基础上,对最新接收到的N个采样点进行动态滤波修正,即用数据平滑的方法动态修正。

(3)消峰处理。对周期性的干扰信号进行消峰处理,判断出噪声波动的高峰和低谷,按正弦波形进行补偿。

在实时采样过程中,除对数据进行滤波外,还需要对系统存在的固有偏差进行校正,包括采样基线的扣除、测温温度偏差的修正。数据处理模块流程如图5所示。

图4 文件载入模块流程

2.2.5 热分析专用算法计算模块

该模块打包成一个计算包,通过入口参数,按照用户需求调用算法函数,将计算结果输出至曲线绘制模块,便于数据结果分析及输出。计算包含:含焓值计算、熔点计算、结晶温度计算、氧化诱导期计算等。

2.2.6 曲线绘制模块 曲线绘制模块功能:调用函数接收“数据管理”模块中的数据,根据用户设定的参数,显示相应曲线,比如“温度-时间”曲线、“DSC-时间”曲线、“DSC-温度”曲线;改变曲线显示类型;设置曲线的XY坐标范围;曲线放大、缩小、局部放大;多曲线显示;显示计算结果图谱;提供接口供界面模块调用。曲线绘制流程见图6。

图5 数据处理流程

图6 曲线绘制流程

2.2.7 用户界面模块

用户界面模块通过接收用户的鼠标和键盘消息,调用相应模块函数进行响应处理。如:调用参数设置模块,提示用户进行升温程序设置和实验参数设置;调用命令发送模块向下位机发送用户指令;调用数据处理模块进行数据滤波及专业算法计算;调用曲线绘制模块按照用户的设置显示采样曲线;用户界面中每个功能键都对应相应的响应函数。

2.2.8 通信模块

上下位机通信采用USB串口通讯协议实现,DSC30主机设为服务器,实验用PC机设为客户端。Windows系统提供了通信支持及管理功能,为每个通信设备开辟了用户定义的输入输出缓冲区(即读/写缓冲区),数据进出通信口均由系统后台完成。DSC30系统软件通讯模块的功能是:在通讯两端设置合理的缓冲区,按照约定的通讯协议,完成输入输出缓冲区读写操作,并做好应对通讯异常的纠错处理。根据数据传输的可靠性、高效性原则,DSC30上下位机通讯协议制订了如下格式:

标志(2B)+长度(1B) + 命令(1B)+ 数据(长度个字节)+ 校验(2B)

//标志为DSC30M上下位机通信数据包标志

//长度为数据长度

//校验是对长度、命令、数据的校验,CRC校验

//每个通信包必须包含命令

3 DSC30系统软件实现

3.1 软件关键数据结构

DSC30系统软件主要的数据结构包括:

(1)升温阶段数据结构sSmpleTemp。包含一个升温阶段参数,由实验者在开始实验之前进行参数设置。

struct sSmpleTemp

{ int nUpPhaseType ; // 升温阶段的类型

int nStartTmpr ; //起始温度

int nEndTmpr ; //结束温度

int nUpRate ; // 升温速率

double fHdMinutes ; //持续时间

int nDtNum ;// 该阶段的数据};

(2)实验信息数据结构sSmplInfo。记录实验的基本信息,由实验者在开始实验前或保存文件时输入。

struct sSmplInfo

{ int nIsBaselined ; //基线扣除标志

char strBslnFilePath[STRING_LENGTH] ;//文件路径

char strBslnFileName[STRING_LENGTH] ;//文件名

char strOprtr[STRING_LENGTH] ; // 实验者名

char strObjNm[STRING_LENGTH] ; // 实验样品名

double fInitWeight ; // 样品重量

char strAirName[STRING_LENGTH] ; // 实验气氛名

double fAirRate ; // 实验气体流量

int nYear ; // 实验时间

int nMonth ;

int nDay ;

int nHour ;

double fDTAScale ; // DTA量程

}

(3)常规计算点信息数据结构 sPrcssPoint。用户在进行常规处理计算时,程序根据鼠标在屏幕上某一点对应的时刻t,获得该时刻对应的采样数据值,保存到该类型的数据结构中。

struct sPrcssPnt

{ double m_f_fTime ; // 点对应的时间

double m_f_fTempr ; //点对应温度

double m_f_fDTA ; // 点对应的温度差

double m_f_fDSC ; // 点对应DSC值

};

struct sDsplyScle

{ double m_f_fStartTime ; // 时间起始值

double m_f_fEndTime ; // 时间结束值

double m_f_fStartTempr; // 温度起始值

double m_f_fEndTempr; // 温度结束值

double m_f_fStartDSC; // DSC起始值

double m_f_fEndDSC; // DSC结束值

sDsplyScle *next ; // 上一个历史坐标信息

}

(4)绘制曲线的坐标信息sDsplyScle。代表坐标范围,实验操进行放大、缩小、

平移等曲线操作,保存历史坐标信息以便恢复。

3.2 热分析专业算法

在DSC30系统软件中,非常重要的一个功能就是对采集数据按照专业需求进行专业化计算处理,其中主要的计算包括热焓及转化温度、氧化诱导期计算、S曲线等。

3.2.1 热焓及转化温度计算 DSC30为热流型(Heat Flux)DSC,这种DSC是根据热流方程,将T(温差)换算成Q(热量差)作为信号的输出仪器。转变焓H可以通过下式计算[4]:

Δ H = Km∫teof teo dQdtdt

(1)

(1)中,m是试样质量,t代表时间,下角标eo和eof分别表示峰的外推始点和终点,外推始点也称为转化温度,转化温度可以是熔融温度、结晶温度等;∫teof teodQdtdt可以在软件绘制的图谱中直接由出峰的峰面积计算得出。K是仪器校正系数,k=ΔHrefΔHmean,由标准样品的热焓标定获得计算图谱如图7所示。

图7 热焓及转化温度计算

3.2.2 氧化诱导期计算

氧化诱导时间[5](OIT)是测定试样在恒温(200℃,温度波动不大于0.1℃)纯氧气条件下开始发生自动催化氧化反应的时间,OIT是评价材料在成型加工、储存、焊接和使用中耐热降解能力的指标。DSC仪器在测试氧化诱导期时,一般先在仪器气路中通入纯氮气,将样品池升温至200℃、恒温,稳定后进行气路切换,通入氧气,软件将气体切换时间记录下来,当曲线明显转折,发生分解反应一段时间后,通过计算放热曲线和基线作切线的交点对应时间与切换氧气时间点的差值,计算出氧化诱导期,计算图谱见图8。

图8 氧化诱导期计算

3.2.3 S曲线

在计算热焓,也即对出峰进行峰面积计算时,由于样品自身特性或在某些实验条件下样品的反应过程使峰形发生改变,导致很多情况下外推起始温度和外推结束温度两点相连基线理想的状况不多,如图9所示。很多情况下外推始点和外推终点不在统一水平线上,DSC30软件对这种基线进行Sigmoid函数处理,简称S曲线处理。

图9 基本Sigmoid图形

Sigmoid函数是神经网络中使用最广泛的一种激励函数[6],是非常良好的阈值函数,连续、光滑、严格单调,其基本公式为: f(x)=1/(1+e-x)。因为基本公式y的变化区间局限在[0,1],所以根据DSC实际应用的需要,对公式进行修正,将y的变化区间修正为[A1,A2],图9和图10分别为基本Sigmoid图形和修正后的图形。

图10 修正Sigmoid图形

修正后的公式变为:y=A1-A2[]1+e(x-x0)/dx+A2,运用此公式,在DSC30软件处理后的计算图谱如图11所示,非常好地解决了峰形不对称问题。

图11 S曲线法计算热焓及转变温度

4 结语

DSC30系统软件采用VB6及VC6的嵌套编程实现,可正常运行于WinXP pro.、Win2000 pro.及Win7 32Bit操作系统,作为DSC30仪器的重要组成部分,DSC30系统软件成功走入市场,获得了客户认可。

参考文献:

[1] 胡中权,高锦宏,徐小力.智能化差示扫描量热仪系统研究[J].电子技术,2008( 4):19-22.

[2] 刘振海.分析化学手册:热分析[M].北京:化学工业出版社,1999.

[3] 邹豪杰,陈卫兵,谭传武,等.差示扫描量热仪中的一种功率补偿方法[J].仪表技术与传感器,2009

(9):254-258.

[4] 国际标准化组织.ISO 11357-3-2011塑料――差示扫描量热法(DSC) 第3部分:熔融和结晶温度及热焓的测定[S].2011.

[5] 国际标准化组织.ISO 11357-6:2008塑 料- 差 示 扫 描 量 热 法(DSC)第 6部分:氧化诱导时间 (等温 OIT) 和氧化诱导温度 (动态 OIT)的测定 [S].2008.

[6] 张智明,张仁杰.神经网络激活函数及其导数的FPG A实现[J].现代电子技术,2008,18(281):139-142.

全文阅读已结束,如果需要下载本文请点击

下载此文档

相关推荐 更多