<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用Python語言實現(xiàn)實驗室自動化

          利用Python語言實現(xiàn)實驗室自動化

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

            理解數(shù)據(jù)框的強大之處

          本文引用地址:http://www.ex-cimer.com/article/201703/345661.htm

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

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

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

          圖3. 包含測量結(jié)果的CSV文件截屏

            利用Pyplot分析數(shù)據(jù)以及繪制圖表

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

            第A行從Scipy的Stats模塊中導(dǎo)入一個方法。在第B行中,我們將欲擬合點的X和Y坐標傳遞給linregress方法。最后,在第C和D行中將結(jié)果打印到終端。Linregress以數(shù)字形式返回多個結(jié)果,斜率保存在索引0,截斷點在索引1??捎玫钠渌畔⒂邢喔上禂?shù)和估計值的標準差。

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

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

          圖4. 表示采集數(shù)據(jù)的圖形曲線

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

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

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

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

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

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

            此外,Python腳本非常容易修改。如果您隨后確定通過兩個自變量來采集信號而不是一個自變量,那么需要做的僅僅是將之前設(shè)計的循環(huán)嵌套到另一個循環(huán)之內(nèi)。可能只需幾行新代碼即可解決這一問題。得益于Python的高度可讀性,您很容易修改其他人編寫的腳本(對于LabVIEW應(yīng)用程序,我往往很害怕這么做)。

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

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

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

            如果您希望學(xué)習(xí)Python,我建議參加大規(guī)模開放式網(wǎng)絡(luò)課程(MOOC),例如Udacity、Coursera或Udemy。入門級的編程課程往往是免費的,由該領(lǐng)域最好的工程師和講師授課。Python只需極少的配置和淺顯的學(xué)習(xí),所以您在不到一天時間內(nèi)就能夠?qū)懗鲇杏玫某绦颉?/p>

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

            [側(cè)欄結(jié)束]

            作者簡介

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

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

            --關(guān)鍵詞:Python,實驗室自動化,Maxim,LabVIEW,圖形用戶界面,GUI,零下垂穩(wěn)壓器,下垂穩(wěn)壓器,載重線,Chroma 63201,Agilent 34970A


          上一頁 1 2 下一頁

          關(guān)鍵詞: Python LabVIEW

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();