新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用Python語言實現實驗室自動化

        利用Python語言實現實驗室自動化

        作者: 時間:2017-03-23 來源:電子產品世界 收藏

          理解數據框的強大之處

        本文引用地址:http://www.104case.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 下一頁

        關鍵詞: Python LabVIEW

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 手游| 静海县| 青州市| 永胜县| 无极县| 德格县| 竹北市| 威海市| 都匀市| 嘉义市| 手游| 米脂县| 甘谷县| 渝北区| 汝州市| 永春县| 乐清市| 策勒县| 神农架林区| 开远市| 松阳县| 石家庄市| 东丽区| 延津县| 时尚| 嘉祥县| 连云港市| 永春县| 黎平县| 辽宁省| 恩施市| 灵武市| 常熟市| 新邵县| 长武县| 海晏县| 神池县| 蒙城县| 仙桃市| 东平县| 嫩江县|