<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用Python語(yǔ)言實(shí)現實(shí)驗室自動(dòng)化

利用Python語(yǔ)言實(shí)現實(shí)驗室自動(dòng)化

作者: 時(shí)間:2017-03-23 來(lái)源:電子產(chǎn)品世界 收藏

  理解數據框的強大之處

本文引用地址:http://dyxdggzs.com/article/201703/345661.htm

  為了了解使用和Pandas數據框的強大之處,在第16行和第17行之間增加以下代碼。

  第A(yíng)和B行生成兩個(gè)新的數據框字段。Vout_id包含輸出電壓的理想直流設置點(diǎn),給定實(shí)測電流和理想的零電流設置點(diǎn)(1 V)以及載重線(xiàn)。Vout_err是理想電壓與實(shí)測電壓之間的絕對誤差。

  第D和E行在數據框中增加了Pass字段。該字段的值是一個(gè)字符串,表示是否滿(mǎn)足輸出電壓精度的假設指標±0.1%。在圖3中, 您可看到保存的CSV文件在Excel中的情況。神奇的是:數字數據和文本位于相同表格中,甚至根據數據框字段的名稱(chēng)自動(dòng)生成了表頭。

圖3. 包含測量結果的CSV文件截屏

  利用Pyplot分析數據以及繪制圖表

  利用上一節介紹的代碼片段,我們可以確定輸出電壓是否在其理想值附近的“允差”帶內。我們通過(guò)本實(shí)驗還能夠獲得另一個(gè)感興趣的信息:載重線(xiàn)的準確值,也就是VOUT-vs-IOUT曲線(xiàn)的斜率。如果您不記得如何對采集的數據進(jìn)行線(xiàn)性擬合,也不必擔心:也有一個(gè)執行該操作的函數。只需在腳本最后插入以下代碼:

  第A(yíng)行從Scipy的Stats模塊中導入一個(gè)方法。在第B行中,我們將欲擬合點(diǎn)的X和Y坐標傳遞給linregress方法。最后,在第C和D行中將結果打印到終端。Linregress以數字形式返回多個(gè)結果,斜率保存在索引0,截斷點(diǎn)在索引1??捎玫钠渌畔⒂邢喔上禂岛凸烙嬛档臉藴什?。

  對于如此小的數據集(20個(gè)點(diǎn)),完全可以使用Excel生成曲線(xiàn)圖。利用三行代碼示例可了解在中如何完成這項工作:只需將其增加到上述腳本的末尾(plot方法的‘ro’參數表示我們希望使用紅色圓點(diǎn)標記):

  Pyplot是Python的Matplotlib庫的一個(gè)模塊,包括大量繪制圖形的方法。更好的是,這些方法幾乎與MATLAB的方法完全相同。圖4所示為這三行代碼所產(chǎn)生的結果。窗口和圖形由Pyplot自動(dòng)生成,看起來(lái)好像“憑空”出現在終端窗口中。

圖4. 表示采集數據的圖形曲線(xiàn)

  Python是實(shí)現實(shí)驗室配置自動(dòng)化的上佳之選,簡(jiǎn)單易用、容易理解,以及具有極高的靈活性和強大功能, 能夠省去繁瑣的測量時(shí)間。并沒(méi)有消失,仍然是GUI王者。一般而言,我認為更適合需要精細圖形界面并且不需要執行復雜循環(huán)或數據處理的應用。例如,我仍然使用設計大多數面向客戶(hù)的應用程序,這些程序一定要漂亮,但很少有多么復雜。但對于其他應用和自動(dòng)化需求,Python現在是我的首選。

  側欄:“Python是什么以及如何使用?”

  Python是一種解析式、面向對象、高級編程語(yǔ)言,采用動(dòng)態(tài)語(yǔ)義。自1991年首次發(fā)布以來(lái),Python的應用越來(lái)越普及,現在被廣泛用于各種應用;是主流大專(zhuān)院校和網(wǎng)絡(luò )課程中最常用的教學(xué)編程語(yǔ)言之一。Python成為“第一門(mén)”編程語(yǔ)言的原因在于其簡(jiǎn)單、容易學(xué)習的語(yǔ)法和可讀性(有人說(shuō)它“用淺顯的英文在編程”), 是通用性和功能性的完美結合。

  然而,不要認為Python“僅僅”是一種很好的教學(xué)或學(xué)院派編程語(yǔ)言,不適合或很少適合專(zhuān)業(yè)領(lǐng)域的應用。相反,Python被許多頂尖的公司大量用于網(wǎng)絡(luò )應用和數據分析,例如Google、Yahoo和NASA。它是一門(mén)對于快速開(kāi)發(fā)極具吸引力的編程語(yǔ)言,可用于實(shí)現復雜電子儀器的自動(dòng)化,使數據采集的效率更高。

  Python的優(yōu)勢不僅限于使用簡(jiǎn)單。Python腳本可在任何主流操作系統上跨平臺運行,只需安裝Python解析器即可。Python的功能也極其強大,被廣泛用于數據分析和復雜的數學(xué)運算。

  為什么選擇Python來(lái)實(shí)現實(shí)驗室自動(dòng)化?我實(shí)施的大多數測試配置都相當簡(jiǎn)單:任務(wù)中95%的時(shí)間是在不同時(shí)間點(diǎn)測量一個(gè)或多個(gè)信號(例如電壓、電流或溫度),或者利用一組自變量產(chǎn)生另一組值。實(shí)現以上要求也只不過(guò)是循環(huán)操作自變量、采集信號,并最終保存數據供進(jìn)一步分析。Python簡(jiǎn)單直觀(guān)、沒(méi)有嚴格的語(yǔ)法限制,并且提供方便、實(shí)用的庫,很容易實(shí)現以上目的。

  此外,Python腳本非常容易修改。如果您隨后確定通過(guò)兩個(gè)自變量來(lái)采集信號而不是一個(gè)自變量,那么需要做的僅僅是將之前設計的循環(huán)嵌套到另一個(gè)循環(huán)之內??赡苤恍鑾仔行麓a即可解決這一問(wèn)題。得益于Python的高度可讀性,您很容易修改其他人編寫(xiě)的腳本(對于LabVIEW應用程序,我往往很害怕這么做)。

  隨著(zhù)復雜度的增加,編程語(yǔ)言具有圖形語(yǔ)言無(wú)可比擬的優(yōu)勢。Python在數學(xué)運算和數據分析方面非常優(yōu)秀,被數據科學(xué)工作者廣泛用于從龐大、復雜的數據中析取趨勢。許多人習慣依賴(lài)MATLAB進(jìn)行復雜的數據分析。實(shí)際上,Python是MATLAB的優(yōu)秀替代品(并且免費),因為它提供了大量兼容MATLAB的庫(如本文末尾的例子所示)。我往往首選Python over Excel進(jìn)行圖形繪制,除非圖形真的非常簡(jiǎn)單并且數據庫較小。如果您對使用Python進(jìn)行數據分析感興趣,我推薦Wes McKinney (O'Reilly Media)編寫(xiě)的“Python for Data Analysis”(利用Python進(jìn)行數據分析),或者參加Udacity的免費在線(xiàn)課程““Intro to Data Science”(數據科學(xué)入門(mén))。

  如果您已經(jīng)使用過(guò)某種編程語(yǔ)言,那么您對我以上介紹的內容不會(huì )存在任何問(wèn)題,但您可能還不理解Python如何與實(shí)驗室儀器通信。不用擔心,也有一個(gè)庫負責完成這項工作:PyVISA是一個(gè)非常容易使用的封裝庫,支持Python腳本連接到GPIB、RS232、USB以及以太網(wǎng)接口的儀器。

  LabVIEW仍然是采用用戶(hù)友好的GUI設計應用程序的最佳選擇,過(guò)程沒(méi)有Python這么簡(jiǎn)單直接,但也不是特別困難。我選擇GUI工具往往是PyQT。如果您有興趣了解這方面的內容,請參考Mark Summerfield (Pearson/Prentice Hall)編寫(xiě)的“Rapid GUI Programming with Python and QT”(利用Python和QT快速GUI編程)。

  如果您希望學(xué)習Python,我建議參加大規模開(kāi)放式網(wǎng)絡(luò )課程(MOOC),例如Udacity、Coursera或Udemy。入門(mén)級的編程課程往往是免費的,由該領(lǐng)域最好的工程師和講師授課。Python只需極少的配置和淺顯的學(xué)習,所以您在不到一天時(shí)間內就能夠寫(xiě)出有用的程序。

  Mac和Linux用戶(hù)會(huì )發(fā)現終端中已經(jīng)可以使用Python,只需使用諸如pip等軟件包管理系統安裝更多的庫即可。對于Windows用戶(hù),我推薦安裝Python(x,y),該軟件包中包含了面向科學(xué)的Python版本,提供了您可能需要的所有庫。我一般也安裝IPython,這是一款命令解析器(shell),允許在Python中執行交互式運算,使得開(kāi)發(fā)新應用程序更簡(jiǎn)單。

  [側欄結束]

  作者簡(jiǎn)介

  作者:Fabrizio Guerrieri,博士,技術(shù)團隊資深成員,Maxim Integrated

  Fabrizio Guerrieri是Maxim Integrated公司技術(shù)團隊的資深成員,是一名自成一統的全能型電氣工程師,在從IC設計到高級語(yǔ)言編程及產(chǎn)品營(yíng)銷(xiāo)領(lǐng)域都具有專(zhuān)業(yè)的知識和豐富的經(jīng)驗。Fabrizio擁有意大利米蘭理工大學(xué)(Politecnico di Milano)電子工程博士學(xué)位。

  --關(guān)鍵詞:Python,實(shí)驗室自動(dòng)化,Maxim,LabVIEW,圖形用戶(hù)界面,GUI,零下垂穩壓器,下垂穩壓器,載重線(xiàn),Chroma 63201,Agilent 34970A


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Python LabVIEW

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>