新闻中心

EEPW首页>嵌入式系统>设计应用> 利用Python语言实现实验室自动化

利用Python语言实现实验室自动化

作者: 时间:2017-03-23 来源:电子产品世界 收藏

  理解数据框的强大之处

本文引用地址://m.amcfsurvey.com/article/201703/345661.htm

  为了了解使用和Pandas数据框的强大之处,在第16行和第17行之间增加以下代码。

  第A和B行生成两个新的数据框字段。Vout_id包含输出电压的理想直流设置点,给定实测电流和理想的零电流设置点(1 V)以及载重线。Vout_err是理想电压与实测电压之间的绝对误差。

  第D和E行在数据框中增加了Pass字段。该字段的值是一个字符串,表示是否满足输出电压精度的假设指标±0.1%。在图3中, 您可看到保存的CSV文件在Excel中的情况。神奇的是:数字数据和文本位于相同表格中,甚至根据数据框字段的名称自动生成了表头。

图3. 包含测量结果的CSV文件截屏

  利用Pyplot分析数据以及绘制图表

  利用上一节介绍的代码片段,我们可以确定输出电压是否在其理想值附近的“允差”带内。我们通过本实验还能够获得另一个感兴趣的信息:载重线的准确值,也就是VOUT-vs-IOUT曲线的斜率。如果您不记得如何对采集的数据进行线性拟合,也不必担心:也有一个执行该操作的函数。只需在脚本最后插入以下代码:

  第A行从Scipy的Stats模块中导入一个方法。在第B行中,我们将欲拟合点的X和Y坐标传递给linregress方法。最后,在第C和D行中将结果打印到终端。Linregress以数字形式返回多个结果,斜率保存在索引0,截断点在索引1。可用的其它信息有相干系数和估计值的标准差。

  对于如此小的数据集(20个点),完全可以使用Excel生成曲线图。利用三行代码示例可了解在中如何完成这项工作:只需将其增加到上述脚本的末尾(plot方法的‘ro’参数表示我们希望使用红色圆点标记):

  Pyplot是Python的Matplotlib库的一个模块,包括大量绘制图形的方法。更好的是,这些方法几乎与MATLAB的方法完全相同。图4所示为这三行代码所产生的结果。窗口和图形由Pyplot自动生成,看起来好像“凭空”出现在终端窗口中。

图4. 表示采集数据的图形曲线

  Python是实现实验室配置自动化的上佳之选,简单易用、容易理解,以及具有极高的灵活性和强大功能, 能够省去繁琐的测量时间。并没有消失,仍然是GUI王者。一般而言,我认为更适合需要精细图形界面并且不需要执行复杂循环或数据处理的应用。例如,我仍然使用设计大多数面向客户的应用程序,这些程序一定要漂亮,但很少有多么复杂。但对于其他应用和自动化需求,Python现在是我的首选。

  侧栏:“Python是什么以及如何使用?”

  Python是一种解析式、面向对象、高级编程语言,采用动态语义。自1991年首次发布以来,Python的应用越来越普及,现在被广泛用于各种应用;是主流大专院校和网络课程中最常用的教学编程语言之一。Python成为“第一门”编程语言的原因在于其简单、容易学习的语法和可读性(有人说它“用浅显的英文在编程”), 是通用性和功能性的完美结合。

  然而,不要认为Python“仅仅”是一种很好的教学或学院派编程语言,不适合或很少适合专业领域的应用。相反,Python被许多顶尖的公司大量用于网络应用和数据分析,例如Google、Yahoo和NASA。它是一门对于快速开发极具吸引力的编程语言,可用于实现复杂电子仪器的自动化,使数据采集的效率更高。

  Python的优势不仅限于使用简单。Python脚本可在任何主流操作系统上跨平台运行,只需安装Python解析器即可。Python的功能也极其强大,被广泛用于数据分析和复杂的数学运算。

  为什么选择Python来实现实验室自动化?我实施的大多数测试配置都相当简单:任务中95%的时间是在不同时间点测量一个或多个信号(例如电压、电流或温度),或者利用一组自变量产生另一组值。实现以上要求也只不过是循环操作自变量、采集信号,并最终保存数据供进一步分析。Python简单直观、没有严格的语法限制,并且提供方便、实用的库,很容易实现以上目的。

  此外,Python脚本非常容易修改。如果您随后确定通过两个自变量来采集信号而不是一个自变量,那么需要做的仅仅是将之前设计的循环嵌套到另一个循环之内。可能只需几行新代码即可解决这一问题。得益于Python的高度可读性,您很容易修改其他人编写的脚本(对于LabVIEW应用程序,我往往很害怕这么做)。

  随着复杂度的增加,编程语言具有图形语言无可比拟的优势。Python在数学运算和数据分析方面非常优秀,被数据科学工作者广泛用于从庞大、复杂的数据中析取趋势。许多人习惯依赖MATLAB进行复杂的数据分析。实际上,Python是MATLAB的优秀替代品(并且免费),因为它提供了大量兼容MATLAB的库(如本文末尾的例子所示)。我往往首选Python over Excel进行图形绘制,除非图形真的非常简单并且数据库较小。如果您对使用Python进行数据分析感兴趣,我推荐Wes McKinney (O'Reilly Media)编写的“Python for Data Analysis”(利用Python进行数据分析),或者参加Udacity的免费在线课程““Intro to Data Science”(数据科学入门)。

  如果您已经使用过某种编程语言,那么您对我以上介绍的内容不会存在任何问题,但您可能还不理解Python如何与实验室仪器通信。不用担心,也有一个库负责完成这项工作:PyVISA是一个非常容易使用的封装库,支持Python脚本连接到GPIB、RS232、USB以及以太网接口的仪器。

  LabVIEW仍然是采用用户友好的GUI设计应用程序的最佳选择,过程没有Python这么简单直接,但也不是特别困难。我选择GUI工具往往是PyQT。如果您有兴趣了解这方面的内容,请参考Mark Summerfield (Pearson/Prentice Hall)编写的“Rapid GUI Programming with Python and QT”(利用Python和QT快速GUI编程)。

  如果您希望学习Python,我建议参加大规模开放式网络课程(MOOC),例如Udacity、Coursera或Udemy。入门级的编程课程往往是免费的,由该领域最好的工程师和讲师授课。Python只需极少的配置和浅显的学习,所以您在不到一天时间内就能够写出有用的程序。

  Mac和Linux用户会发现终端中已经可以使用Python,只需使用诸如pip等软件包管理系统安装更多的库即可。对于Windows用户,我推荐安装Python(x,y),该软件包中包含了面向科学的Python版本,提供了您可能需要的所有库。我一般也安装IPython,这是一款命令解析器(shell),允许在Python中执行交互式运算,使得开发新应用程序更简单。

  [侧栏结束]

  作者简介

  作者:Fabrizio Guerrieri,博士,技术团队资深成员,Maxim Integrated

  Fabrizio Guerrieri是Maxim Integrated公司技术团队的资深成员,是一名自成一统的全能型电气工程师,在从IC设计到高级语言编程及产品营销领域都具有专业的知识和丰富的经验。Fabrizio拥有意大利米兰理工大学(Politecnico di Milano)电子工程博士学位。

  --关键词:Python,实验室自动化,Maxim,LabVIEW,图形用户界面,GUI,零下垂稳压器,下垂稳压器,载重线,Chroma 63201,Agilent 34970A


上一页 1 2 下一页

关键词:PythonLabVIEW

评论


相关推荐

技术专区

关闭