周 鵬,郭旭東,宛元生,周家磊,宋 娜
(1.安徽工程大學(xué) 安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000;2.煙臺(tái)三環(huán)門業(yè)有限公司,山東 煙臺(tái) 264000)
LabVIEW在線性電阻電路中的應(yīng)用
周 鵬1,郭旭東1,宛元生1,周家磊1,宋 娜2
(1.安徽工程大學(xué) 安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000;2.煙臺(tái)三環(huán)門業(yè)有限公司,山東 煙臺(tái) 264000)
以線性電阻電路為例,借助于LabVIEW軟件中的“MathScript節(jié)點(diǎn)”和“求解線性方程VI”函數(shù)節(jié)點(diǎn)來實(shí)現(xiàn)電路的設(shè)計(jì)與分析,通過設(shè)置隨時(shí)改變電路中的電阻值、電壓源以及電流源數(shù)值的大小,即時(shí)觀察各個(gè)支路電流的變換情況,有助于更加清晰地理解電路現(xiàn)象,為電路知識(shí)的學(xué)習(xí)開辟一種新的途徑.
線性電阻電路;LabVIEW;MathScript節(jié)點(diǎn);求解線性方程VI
電路在電子、電氣、電力等各種電類技術(shù)領(lǐng)域中的基礎(chǔ)地位是非常重要的,對(duì)于電路知識(shí)的學(xué)習(xí)重點(diǎn)在于學(xué)習(xí)和理解各種電路定理定律的內(nèi)涵,并從各類電路實(shí)驗(yàn)中觀察電路現(xiàn)象,并結(jié)合理論進(jìn)行分析,但是電路中的各種物理量的變化是看不見摸不著的,不容易直接觀察到,給直觀理解電路帶來了一定的困難.而LabVIEW以其交互性好、界面直觀、編程簡(jiǎn)單易懂等優(yōu)勢(shì)給電路知識(shí)的學(xué)習(xí)、實(shí)驗(yàn)和相關(guān)設(shè)計(jì)提供了一個(gè)嶄新的平臺(tái)[1].LabVIEW中提供了多大600多種內(nèi)置函數(shù),各種強(qiáng)大而又靈活的數(shù)學(xué)分析功能為電路仿真和計(jì)算提供了有力的技術(shù)支持.本文以線性電阻電路為例,借助于Lab-VIEW軟件中的“MathScript節(jié)點(diǎn)”和“求解線性方程VI”函數(shù)節(jié)點(diǎn)來實(shí)現(xiàn)該電路的設(shè)計(jì)與分析,實(shí)驗(yàn)證明該設(shè)計(jì)方法簡(jiǎn)單,界面清晰直觀,對(duì)線性電阻電路的分析具有一定的通用性.
電阻電路是以電阻、電流源、電壓源等電路元件構(gòu)成的電路,若電路中的電阻元件的伏安特性是線性的,則稱該電路為線性電阻電路.線性電阻電路是比較簡(jiǎn)單的一種電路,也是分析其它復(fù)雜形式電路的基礎(chǔ).
求解線性電阻電路的數(shù)學(xué)方法一般是通過使用代數(shù)方程或代數(shù)方程組來實(shí)現(xiàn),其電路所遵循的基本定律是基爾霍夫電壓定律(KVL)和基爾霍夫電流定律(KCL),常用的電路分析方法有支路電流法、回路電流法以及節(jié)點(diǎn)電壓法等.對(duì)于此類線性電路電路,利用已有的成熟定律和分析方法,按照一般規(guī)律寫出方程組進(jìn)行求解即可.
而利用LabVIEW軟件來編寫程序來求解的優(yōu)點(diǎn)是,既可以搭建友好的交互界面,更加直觀的理解電路,又可以在運(yùn)行程序時(shí),動(dòng)態(tài)地改變線性電阻電路中的元件參數(shù),實(shí)時(shí)地觀察由于電路參數(shù)的改變所帶來的電路的影響和變化.
LabVIEW是實(shí)驗(yàn)室虛擬儀器工程平臺(tái)(Laboratory Virtual Instrument Engineering Workbench)的簡(jiǎn)稱,是美國(guó)國(guó)家儀器(National Instruments Corp.簡(jiǎn)稱NI公司)推出的一種功能強(qiáng)大的圖形化編程軟件.LabVIEW的獨(dú)到之處在于它使用圖形化編程語言在程序框圖中創(chuàng)建源程序,即用程序框圖代替了傳統(tǒng)的程序代碼,運(yùn)行方便,編程簡(jiǎn)單容易實(shí)現(xiàn),界面直觀易懂[2].
LabVIEW作為自動(dòng)化測(cè)試、測(cè)量領(lǐng)域的專業(yè)軟件,在測(cè)量信號(hào)的時(shí)域分析和處理中,用戶經(jīng)常需要對(duì)信號(hào)進(jìn)行數(shù)學(xué)運(yùn)算和分析,LabVIEW內(nèi)部集成了600多個(gè)分析函數(shù),其中包含了豐富而功能強(qiáng)大的數(shù)學(xué)分析函數(shù)節(jié)點(diǎn),這些函數(shù)節(jié)點(diǎn)涵蓋了初等與特殊函數(shù)、函數(shù)計(jì)算與微積分、線性代數(shù)、概率統(tǒng)計(jì)、曲線擬合、最優(yōu)化等方面的應(yīng)用,為用戶的編程提供了極大的方便.LabVIEW本身所具有的強(qiáng)大的數(shù)學(xué)分析能力可以有力地完成對(duì)數(shù)據(jù)的各種分析和處理.
由于本文將使用LabVIEW軟件中的“Math-Script節(jié)點(diǎn)”和“求解線性方程VI”函數(shù)節(jié)點(diǎn)來實(shí)現(xiàn)該電路的設(shè)計(jì)與分析,因此首先介紹“MathScript節(jié)點(diǎn)”和“求解線性方程VI”函數(shù)節(jié)點(diǎn)的詳細(xì)使用.
2.1 “MathScript節(jié)點(diǎn)”
MathScript節(jié)點(diǎn)是LabVIEW8.0以后版本推出的面向數(shù)學(xué)的文本編程語言,它的文本描述語言為L(zhǎng)abVIEW MathScript,它是用于編寫函數(shù)和腳本的文本編程語言,一種與MATLAB語言語法極為相似的語言,熟悉MATLAB使用方法的用戶可以很方便地利用MathScript節(jié)點(diǎn)編寫出與MATLAB風(fēng)格相似的基于LabVIEW MathScript語法的腳本代碼.新的MathScript節(jié)點(diǎn)包含了600多個(gè)數(shù)學(xué)分析與信號(hào)處理函數(shù),并增加和增強(qiáng)了豐富的圖形功能.利用MathScript節(jié)點(diǎn)在LabVIEW圖形化代碼中嵌入.m文件腳本使用戶能訪問大量的圖形化工具庫(kù),從而進(jìn)行信號(hào)處理、分析和數(shù)學(xué)計(jì)算[3].
MathScript節(jié)點(diǎn)是內(nèi)建于LabVIEW的,可處理大多數(shù)在MATLAB或兼容環(huán)境中創(chuàng)建的文本腳本,因此用戶不需要安裝MATLAB軟件也可以正常運(yùn)行這些代碼,可以使用內(nèi)建的600多個(gè)數(shù)學(xué)分析與信號(hào)處理函數(shù).
注意,不是所有的文本腳本均有MathScript支持.另外在涉及到更具體復(fù)雜的領(lǐng)域,如神經(jīng)網(wǎng)絡(luò)分析、圖形處理、小波變換、復(fù)雜混沌分析等方面,則需要結(jié)合MATLAB來實(shí)現(xiàn)[4].
在LabVIEW中使用MathScript的方法有兩種.一種是使用LabVIEW MathScript窗口,通過Lab-VIEW MathScript窗口,提供了一個(gè)交互式界面,通過它用戶可以像使用MATLAB一樣輸入m文件腳本命令,編譯運(yùn)行M腳本文件,并能立即看到運(yùn)行結(jié)果、觀察變量和命令歷史等.另一種方法是在程序框圖窗口中使用MathScript節(jié)點(diǎn),如圖1所示.該函數(shù)節(jié)點(diǎn)VI由藍(lán)色矩形框表示,利用MathScript節(jié)點(diǎn),用戶可以直接輸入m文件腳本語言或從文本文件中導(dǎo)入.用戶可以在MathScript節(jié)點(diǎn)的邊界定義、命名輸入和輸出,來指定圖形化LabVIEW程序和文本化MathScript節(jié)點(diǎn)之間傳輸?shù)臄?shù)據(jù).本文使用第二種方法完成線性電阻電路的設(shè)計(jì).
圖1 “MathScript節(jié)點(diǎn)”
2.2 “求解線性方程VI”函數(shù)節(jié)點(diǎn)
線性方程組是可以用一個(gè)線性的方程表示的方程組,它的數(shù)學(xué)表達(dá)式是AX=Y,如A為m×n的“輸入矩陣”,Y為“右端項(xiàng)”中的m個(gè)系數(shù),X為方程組“向量解”中n個(gè)元素.“求解線性方程”函數(shù)節(jié)點(diǎn)如圖2所示.
圖2 “求解線性方程”函數(shù)節(jié)點(diǎn)
線性方程組的解具有以下特點(diǎn)[3]:
(1)由實(shí)際問題列出的線性方程組,其方程個(gè)數(shù)不一定等于未知量的個(gè)數(shù),即m≠n.
(2)如果m>n,方程組中方程的個(gè)數(shù)多于未知量個(gè)數(shù),方程組是超定的.滿足AX=Y的解可能不存在,VI可得到最小二乘解X,使得||AX=Y||最小化.
(3)如果m (4)如果m=n時(shí),如A為非奇異矩陣,即沒有任何行或列是其它行或列的線性組合,通過使“輸入矩陣”A分解為上三角矩陣U和下三角矩陣L可求解方程組X,例如:AX=LZ=Y與Z=UX可以作為原有方程組的另一種表示方法.Z也是n個(gè)元素的向量.三角方程組容易通過遞歸方法求解.因此,得到矩陣A的上三角矩陣U和下三角矩陣L后,通過LZ=Y方程組可得到Z,通過UX=Z可得到X. (5)如果m≠n時(shí),A可以分解為正交矩陣Q和上三角矩陣R,使得A=QR,線性方程組可以表示為QRX=Y.然后求解RX=QTY.通過遞歸方法容易求解上三角矩陣得到X[5]. 如圖3所示的電路中,R1,R2,R3為線性電阻,且已知R1=12歐,R2=6歐,R3=3歐.電壓源US=42伏,電流源IS=7安,參考方向如圖中標(biāo)出所示,求解圖3中流過各個(gè)電阻的電流.該電路是一典型的線性電阻電路.通過分析可知,使用支路電流法求解最為簡(jiǎn)單. 圖3 支路電流法分析電路 圖3所示的電路圖中支路數(shù)為4,但恒流源支路的電流已知,則未知電流只有3個(gè),所以可只列3個(gè)方程.當(dāng)不需求a、c和b、d間的電流時(shí),(a、c)、(b、d)可分別看成一個(gè)結(jié)點(diǎn).注意支路中含有恒流源. 對(duì)圖3中所示的結(jié)點(diǎn)a,應(yīng)用KCL列結(jié)點(diǎn)電流方程: 因所選回路不包含恒流源支路,所以,3個(gè)網(wǎng)孔列2個(gè)KVL方程即可.對(duì)圖3中所示的回路①和對(duì)回路②,應(yīng)用KVL列回路電壓方程: 將式(1)和(2)整理成矩陣形式的線性方程組為: 使用LabVIEW設(shè)計(jì)實(shí)現(xiàn)求解電流,具體步驟如下. (1)通過自定義控件的方法實(shí)現(xiàn)電阻元件來搭建電路圖.各個(gè)電阻和電壓源、電流源元件都設(shè)置成數(shù)值型輸入控件,以便參數(shù)可以根據(jù)具體要求進(jìn)行調(diào)整. (2)在前面板上放置其他另外3個(gè)數(shù)值型顯示控件,用來表示所求的三個(gè)電流I1,I2,I3. (3)使用“MathScript節(jié)點(diǎn)”生成線性方程組的系數(shù)矩陣和已知向量,再使用“求解線性方程VI”函數(shù)節(jié)點(diǎn)求出向量解,向量的各個(gè)元素就是所求的三個(gè)電流I1,I2,I3的值. (4)由于該實(shí)例的參數(shù)量是帶有單位的,所以在編程是還要注意有單位數(shù)據(jù)和無單位數(shù)據(jù)之間的轉(zhuǎn)換,否則LabVIEW會(huì)報(bào)錯(cuò).該轉(zhuǎn)換是通過“函數(shù)”選板→“數(shù)值”→“轉(zhuǎn)換”→“單位轉(zhuǎn)換”函數(shù)節(jié)點(diǎn)“”來實(shí)現(xiàn).本實(shí)例設(shè)計(jì)分析中,電壓的單位“伏”表示為“V”,電阻的單位“歐”表示為“Ohm”,電流的單位“安”表示為“A”. 實(shí)現(xiàn)該例程的前面板和程序框圖如圖4所示.在圖4(a)所示的程序前面板中設(shè)置三個(gè)電阻、電壓源以及電流源的值分別為R1=12歐,R2=6歐,R3=3歐電壓源US=42伏,電流源IS=7安,最后求的I1=2安,I2=-3安,I3=6安.也可以在程序運(yùn)行時(shí),通過前面板上的數(shù)值控件隨時(shí)改變電阻值和電壓源以及電流源數(shù)值的大小,即時(shí)觀察到各個(gè)支路電流的變換情況,界面非常直觀,更加清晰地理解電路現(xiàn)象,掌握電路的定律定理知識(shí). 論文以一個(gè)簡(jiǎn)單的線性電阻電路為例,使用LabVIEW軟件中的“MathScript節(jié)點(diǎn)”和“求解線性方程VI”函數(shù)節(jié)點(diǎn)來實(shí)現(xiàn)該電路的支路電流法設(shè)計(jì)與分析,實(shí)驗(yàn)證明該設(shè)計(jì)方法求解簡(jiǎn)單,界面清晰明了,對(duì)線性電阻電路的分析包括回路電流法、節(jié)點(diǎn)電壓法等方法都具有一定的通用性.通過設(shè)置前面板上的數(shù)值控件,就可以隨時(shí)改變與之對(duì)應(yīng)的電阻值、電壓源以及電流源數(shù)值的大小,即時(shí)觀察到各個(gè)支路電流的變換情況,有助于更加清晰地理解電路現(xiàn)象,掌握電路的定律、定理,為電路知識(shí)的學(xué)習(xí)開辟了一種新的途徑,在復(fù)雜電路分析與求解中具有實(shí)際的顯著效果. 〔1〕陳國(guó)順,張桐,郭陽寬,王正林.精通LabVIEW程序設(shè)計(jì)(第2版)[M].北京:電子工業(yè)出版社,2012. 〔2〕周鵬.基于DSP和LabVIEW的虛擬儀器系統(tǒng)研究[D].煙臺(tái)大學(xué),2007. 〔3〕NATIONAL INSTRUMENTS.LabVIEWTM User Manual[R].Autin Texas USA,April 2003 Edition. 〔4〕Mathscript編程指南[EB/OL].www.gsdzone.net/ community,2011. 〔5〕鄭對(duì)元,等.精通LabVIEW虛擬儀器程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012. TP911.72 A 1673-260X(2014)04-0051-03 2012年地方高校國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目基金(201210363130,201210363126,201210363119)3 實(shí)例分析
4 結(jié)論