LabVIEW与MATLAB混合编程在气味实验中应用的研究论文_吕旭东

摘 要随着消费者对车辆在使用舒适度上需求的逐步提高,减少汽车部件及内饰产品以为,提高车内空气质量越来越成位汽车设计方面关注的要点因素。汽车内饰气味是一种直观的感官反馈,气味强烈甚至令人厌恶,会直接打消消费目标用户的消费欲望,而且车内气味也影响着用户心情和驾驶安全,甚至让客户怀疑车内有毒有害气体是否超标,气味成为客户是否购买该款汽车的因素之一。

当VOC浓度超过一定程度时,人们会觉察到散发的气味并且感到不适。如果VOC浓度长期超标,可能会导致各种人体慢性病。对于汽车生产商来说,当今检测汽车零部件散发的VOC是否超标最普遍的做法是通过嗅觉工程师来给出评分。这种方法存在被测试对象为气味评价人员,而职业气味评价人员往往不是产品的最终用户,其测试结果不能完全代替用户的感受主观打分,评价值存在模糊性和不确定性,各个第三方测试中心的测试结果一致性不好,评价结果较为混乱。

本论文主要阐述了使用实时分析设备测量和人工打分结合的办法开发出VOC气味识别的算法,并结合LabVIEW和MATLAB软件实现实时,快速的气味识别检测。

详细介绍了LabVIEW和MATLAB软件在混合编程方面的应用,介绍了几种常见的混合编程方法,具体研究了通过LabVIEW调用MATLAB机器学习算法的一种新方法,针对汽车内饰件气味评级的实验实现了通过LabVIEW进行实时测量和实时计算,通过图形化的界面对数据进行呈现。

研究背景

随着消费者对车辆在使用舒适度上需求的逐步提高,减少汽车部件及内饰产品以为,提高车内空气质量越来越成位汽车设计方面关注的要点因素。汽车内的气味是一种人类直观的生理反应,主观性很强,刺激性的气味会直接影响人的心理感受,影响消费者的消费情绪,导致消费者打消购买的念头,某些严重的刺激性气味甚至会影响到消费者的身心健康,导致消费者出现生理疾病,甚至让客户怀疑车内有毒有害气体是否超标,气味成为客户是否购买该款汽车的因素之一。

VOC气体的物理性质中,常标明有明显异味,如芳烃类、卤烃类和酯类物质。此外,长期吸入VOC气体也会对身体产生不良影响。因此,优化车内空气环境,减少 VOC气体浓度,是汽车生产中十分重要的关注点。

当VOC浓度超过一定程度时,人们会觉察到散发的气味并且感到不适。如果VOC浓度长期超标,可能会导致各种人体慢性病。对于汽车生产商来说,当今检测汽车零部件散发的VOC是否超标最普遍的做法是通过嗅觉工程师来给出评分。

对汽车内饰气味测试的研究主要运用人工主观评价,存在如下的的问题:

1)被测试对象为专业的气味识别评价人员,而他们往往不是这些产品的直接用户,他们的主管感受不能代表大部分的消费者群里,因此,他们得出的测试结果也不能很准确的作为零部件散发气味的准确描述。

2)打分主观性强,评价值界定不明确,很多界定的语言都是描述性文字,不严谨,也不科学。测试结果的一致性很差,往往两次相同测试样品的的评价结果相差甚远。

基于以上存在的问题,各个主机厂都准备开始建立通过分析仪器,即“电子鼻”对车内空气的成分直接进行测量,通过对整车及车内相关零部件/材料的VOC全谱分析,结合气味主、客观评价,形成整车/零部件/材料气味等级和来源的快速分析识别模型。

经过实验室验证,车内异味的主要来源为挥发性有机物(VOC)。因此,为了改善车内异味,需要对这些VOC气体进行研究从而获得如下成果:

1)VOC气体如何影响着车内异味评分

2)哪些VOC气体需要优先被减少

这些研究对汽车内饰零部件生产起到重要的指导意义。

将零件样本散发出来的气体通过质谱仪,从而得到样本气体中气体的质谱图,通过质谱图来计算出该零件的VOC评分等级,并且量化出该零件在各个分子量上的VOC气体对评分的影响大小

通过Mablab强大的运算能力,结合LabVIEW图形化展示,可将整个气味评价过程实时化,减少人工评测带来的时间长,数据主观性性强的缺点。

相关研究的进一步说明

为了获得以上两个研究成果,需要对大量实验数据进行分析,并结合测量仪器检测原理以及气味与嗅觉的关系等物理背景建立预测模型,之后通过此算法实现机器实时进行检测并输出结果

算法过程通过MATLAB进行实现,实现的算法分为训练和预测两种模式,训练模式可对已有的实验数据进行分析,得出用于预测的数学函数,预测模式可以使用此数学函数对测量数据进行分析,得出各项指标

实时分析展示过程通过LabVIEW实现,最终以图表和曲线的形式展示车内可挥发性有机物的散发过程及评分

LabVIEW与MATLAB混合实现

Mablab强大的运算能力,但在实时分析和图形呈现方面有欠缺,这种欠缺可以通过LabVIEW的使用进行弥补,可以通过LabVIEW调用MATLAB实现的算法,实现数学计算,用LabVIEW内置的图形控件进行图形展示,用户通过图表可以很直观的知道每个指标代表的含义以及对实验需要进行的调整。

1

离子分子反应质谱仪原理

AirSense质谱仪是一种基于软电离技术的离子分子反应质谱仪。

离子源、八级杆系统、四级杆和甬道倍增器是AirSense质谱仪的主要组成部件。在AirSense质谱仪中,样品气体分子的电离是通过与带电源离子发生离子分子反应来实现的。通过Hg+,Xe+,Kr+三种离子源与样品气体分子反应可以避免分子的碎片化。八级杆系统是发生离子分子反应的反应室。四级杆质量分析器则用于筛选不同质量数的分子离子。甬道倍增器则用于对不同的组分进行定性定量分析。

实验设计

嗅觉工程师只能通过对气味的整体感受来给出评分,若想获得具体的优化方案,还需要知道气味的具体构成成分,找出对气味评分有较大负面影响的成分并减少其浓度,这是当前较为合理可行的优化思路。将样本零件散发的气体通过Air Sense质谱仪,获得样本气体的质谱图。通过构建模型分析质谱图信号与对应气味评分之间的关系,量化每个分子量上信号对气味评分的影响,挑选出影响较大的分子量并分析其对应的气体成分,这些气体成分即可作为今后优化方向的指导

气味评价模型的建立需要前期收集大量实际车内气味散发数据及实验员主观评级打分,为此需要进行数据收集实验

实验的目的是确定对气味评价有贡献的具体物质,并实现对原材料及零部件的溯源,可以初步建立原材料中所含的对气味有贡献的物质成分,零部件中使用的具体材料影响的车内气味。

最终实现,提供物质列表及各个物质的浓度限值或者提供几组或几类物质的组合及其浓度综合或者比例限值,以帮助供应商对应车内气味进行产品改进。

LabVIEW与MATLAB一些常用的混合编程的方法

MATLAB多用在工程领域和数学计算,LabVIEW常用在自动化控制领域,算法开发的工程往往对于用户实际需求不是很了解,但是对于算法的设计非常专业,而熟练使用LabVIEW软件的工程往往不是很清楚复杂的算法实现方法,但是对于用户的实际使用需求却很清楚,这样就不免产生出两种软件结合用以实现更强大功能的想法,这样既可以实现强大的运算仿真能力,又能拥有简单明了得界面[1].

目前常见得混合编程得方法包括动态链接库方法,动态数据交换技术和MATLAB脚本方法,以及使用LabVIEW的MATLAB数据插件

动态链接库方法

动态链接库是微软共享库概念的一种实现。这些库通常的扩展名是DLL,OCX或者是DRV。DLL的文件格式与Windows EXE文件的格式相同,即32位和64位Windows的可移植可执行文件(PE),以及16位Windows的新可执行文件(NE)。与EXE一样,DLL可以任意组合包含代码,数据和资源。

在LabVIEW中调用DLL,您首先需要确定库的种类是C/C++ DLL还是Microsoft .NET程序集。 .NET DLL也被称作.NET程序集,在.NET程序编写中被广泛地使用。 .NET DLL使用公共语言运行库(Common Language Runtime,CLR)和.NET框架(.NET Framework)对DLL中的功能函数进行组织和管理。

动态数据交换技术(DDE)

在计算中,动态数据交换(DDE)是用于Microsoft Windows或OS / 2的早期版本中的进程间通信的技术。 DDE允许程序处理其他程序提供的对象(例如,嵌入式Microsoft Excel电子表格中的单元格),并响应影响这些对象的用户操作。在内部,DDE是根据Windows的消息传递体系结构实现的,这使其容易受到格式错误的第三方程序的攻击。 DDE被对象链接和嵌入(OLE)取代,目前仅在Windows系统中维护DDE是为了向后兼容。

此方法需要用户在电脑上同时安装MATLAB软件,而且软件也得实时运行,使用不方便而且费用昂贵,缺乏独立性,且DDE是一种古老的消息协议,在主流的硬件设备也早已不再支持。多输入输出情况出现无法执行的情况。

MATLAB脚本方法

MATLAB脚本节点是LabVIEW中的一个用于与MATLAB结合的功能方法,调用MATLAB软件执行脚本,执行脚本必须有MATLAB软件的许可证,因为脚本节点是调用MATLAB软件去执行这些脚本语言,LabVIEW使用ActiveX技术实现MATLAB脚本语言的执行,因此这个方法只能在Windows平台上实现。

此方法同样需要安装MATLAB,而且进行的计算极为简单,支持的数据类型也极为有限,在进行复杂运算时,运算速度慢,导致软件经常崩溃,在多输入输出情况下,脚本复杂,不利于编写

MATLAB数据插件方法

MATLAB数据插件支持读取/导入和写入/导出MATLAB创建的数据文件到LabVIEW中,这个数据插件支持32位和64位的操作系统,但是此数据插件仅能导出级别为4和5的MATLAB文件,使用受到一定限制。

MATLAB与.NET技术

.NET Framework是一个针对常见程序需求提供了大量预编码解决方案的组件。您可以从 MATLAB 中创建 .NET 类的实例并与 .NET 应用程序交互。MATLAB 仅在 Windows平台上支持 .NET Framework。

创建了.NET类后,就可以在Labview对.NET进行实例化,使用其中的属性和方法,但是因为在Matlab中使用的数据格式为Matlab特有的MWArray类型,这种类型在Labview中无法直接使用,所以需要通过MWArray.dll文件进行数据的传入,这个文件一般位于[Matlab安装位置]\Matlab版本号\toolbox\dotnetbuilder\bin\win64\v4.0文件夹中,注意到Matlab 2017b对应的MWArray.dll是2.17.1.0版本的。

MATLAB中创建一个.NET Assembly

先以一个简单的MATLAB程序为例来创建.NET Assembly,此函数给定一个输入,会输出一个特定的矩阵,把这个函数打包成.net组件,在APP标签上点击Library Compiler,弹出编译的对话框,选择NET Assembly,第一步需要将需要编译的m文件添加进来,点击加号后选择编写好的m文件,当然也可以选择添加多个m文件。编译好的.Net文件被没有安装Matlab的电脑调用时,需要使用Matlab的运行库,这里可以通过Runtime downloaded from webRuntime和Runtime included in package两个选项来选择通过什么方式安装Matlab的运行库,之后需要填写一些.Net文件信息,最后点击右上角的Package即可开始进行编译。当编译结束后,生成了三个文件,分别是

?for_redistribution?— 包含Net文件和Matlab运行库

?for_testing?— 用于测试的文件

?for_redistribution_files_only?— 只包含Net文件

?PackagingLog.txt?— 打包记录文件

这样生成的.NET Assembly就可以从LabVIEW中进行调用了

但是在调用.Net有一些功能限制,包括

1)不能使用set静态方法

2)MATLAB中.NET类的子类无法使用

3)创建.NET数组需要制定最小边界

软件开发

软件具备两个功能,训练和预测,训练阶段需要制定质谱图数据及使用的质量数范围,训练计算得出的回归系数,在预测阶段,需要调用此回归系数进行预测功能的实现。输出的结果以图表的形式进行体现。

之前生成得.Net文件夹里面有两个.Net文件,分别是odorrating.dll和odorratingNative.dll,通过文件夹里面的readme文件可以知道他们之间的区别,主要在于对MWArray文件的调用

* odorrating.dll

-使用MWArray API生成的.net组件

* odorratingNative.dll

-使用原生API生成的.net组件

这里使用odorrating.dll文件,通过LabVIEW调用.Net文件的方法也很简单,在Block Diagram下面通过Connectivity ? .NET ? Constructor Node

弹出选择.Net Constructor选项框,选择之前生成的.Net文件,构造器选择Class1(),点击OK

这样就已经成功将.Net文件加载到LabVIEW中,接下来通过它的方法和属性来实现这个函数的功能

.Net文件得加载可以理解为对一个类的实例化,实例化之后就可以使用这个类得属性和方法,它的方法就是Matlab里面得函数,在这节点得new reference连接端右键选择它得方法,可以看到这个节点有几个可以使用得方法

列出的输入输出参数,需要将每个对应的输入按照正确的格式给定数值

输入变量基本都是MWArray的类型,这个类型是Matlab特有得数据类型,为了可以正确使用这个数据类型,需要使用第四章说过得MWArray得类文件,调用方法与之前一样,调用后,选择如下图所示得构造器

每个对应的输入端,需要给定一个行列符合要求的矩阵

图1 连接常量

通过ToString得方法只是得到了一串字符串,对于后续结果得使用不是很方便,接下来通过ToArray得方法得到数组得结果

要想得到正确得数组,首先需要知道数组得行列数分别是多少,这里可以通过Dimensions得属性得到,还可以通过NumberofDimensions得到数组得维度

通过for循环一次取出矩阵中的数据

最后使用一个While循环实现实时更改输入获取最终得输出,通过Dimensions得数值来作为For循环得循环次数,调用图表控件实现图表的绘制

后续改进

通过LabView与MATLAB混合编程,实现了MATLAB高级算法在LabView中的调用,可以控制分析仪实时进行检测,气味评分实时显示,并且可以进行实时图形化展示,使整个实验过程更加直观,快速。

目前欠缺的问题是,数据无法实时在数据库进行存储,无法查看历史数据趋势和历史数据表,之后的研究中需要在历史数据的存储和查看方面进行程序的优化。实现在查询过程中可以手动调取某次记录,增加手动计算功能,可以根据外部给定的浓度值,计算评分,还可以根据设定VOC贡献权重给出相应的气味调整策略。

在模型的训练过程中需要大量的实验数据,后续的软件中加入了控制分析仪循环检测的功能,可以实现在无人干预的情况下实时记录实验数据,大大提高工作效率。

论文作者:吕旭东

论文发表刊物:《当代电力文化》2019年22期

论文发表时间:2020/4/23

标签:;  ;  ;  ;  ;  ;  ;  ;  

LabVIEW与MATLAB混合编程在气味实验中应用的研究论文_吕旭东
下载Doc文档

猜你喜欢