亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        科學(xué)計(jì)算軟件Octave在電路分析中的應(yīng)用

        2020-10-26 08:55:36王子瑋余景原許國泰
        無線互聯(lián)科技 2020年14期
        關(guān)鍵詞:符號(hào)定義功能

        王子瑋,余景原,許國泰

        (上海市信息網(wǎng)絡(luò)有限公司,上海 200081)

        0 引言

        Matlab作為最常用的科學(xué)計(jì)算語言軟件之一,被廣泛應(yīng)用于控制系統(tǒng)設(shè)計(jì)與分析、圖像處理、信號(hào)處理與通訊、金融建模和分析、電路設(shè)計(jì)與分析等眾多工程領(lǐng)域[1-5]。但眾所周知,Matlab是商業(yè)收費(fèi)軟件,雖然對(duì)學(xué)校有較大優(yōu)惠,但對(duì)于科研單位,特別是企業(yè)用戶,需要收取昂貴的使用授權(quán)費(fèi),給企業(yè)科研單位造成了沉重的經(jīng)濟(jì)成本負(fù)擔(dān)。文章將介紹一個(gè)可替代Matlab的免費(fèi)開源軟件GNU Octave[6-8]。該軟件擁有幾乎與Matlab相當(dāng)?shù)膹?qiáng)大科學(xué)計(jì)算能力以及繪圖功能,并已在美國、歐洲等知名大學(xué)和科研機(jī)構(gòu)被廣泛應(yīng)用[8],特別是最近,該語言在斯坦福大學(xué)的AI課程中被推薦使用,這使該語言受到了更廣泛的關(guān)注。文章將重點(diǎn)介紹該軟件在電路分析仿真中的應(yīng)用。

        由于迄今為止Octave在國內(nèi)應(yīng)用較少,中文資料缺乏,為了便于讀者了解,文章首先對(duì)包括Octave的歷史發(fā)展在內(nèi)的基本情況做概括性的說明,并通過與大家熟悉的Matlab比較來說明該軟件的特點(diǎn)。其次通過具體的電路分析實(shí)例,介紹該軟件符號(hào)強(qiáng)大、數(shù)值計(jì)算和繪圖等功能。另外,由于該軟件需要自行下載安裝,為了提供方便,將在下文中給出GNU Octave(+symbolic package)Window版的具體安裝步驟。

        1 Octave概述

        Octave是一種采用高級(jí)編程語言的科學(xué)計(jì)算軟件,主要用于解決線性和非線性的數(shù)值計(jì)算問題。Octave的語法與Matlab的語法非常接近,可以很容易地將Matlab程序移植到Octave。Octave為GNU項(xiàng)目下的開源免費(fèi)軟件,在GNU通用公共許可證條款所規(guī)定的條件下可以自由地復(fù)制、流通與使用,作為Matlab的主要替代品之一,擁有和Matlab相似的功能。Octave可在大部分的類Unix操作系統(tǒng)中運(yùn)行,亦可在Microsoft Windows,Mac OS X,BSD操作系統(tǒng)中運(yùn)行。

        Octave的開發(fā)始于1988年,最初目的是被用作一本名為《化學(xué)反應(yīng)器設(shè)計(jì)》的大學(xué)本科課程教材的輔助軟件。該軟件的系統(tǒng)性開發(fā)則是由John W. Eaton在1992年接手后才開始的。第一個(gè)alpha測(cè)試版于1993年1月4日發(fā)布,1.0穩(wěn)定版則是在1994年2月17日發(fā)布。當(dāng)前的最新版本是5.2.0版,發(fā)布于2020年1月31日。該軟件的名字Octave則源于開發(fā)者John W. Eaton的指導(dǎo)教授、特別擅長復(fù)雜問題快速估算的元俄勒岡州立大學(xué)(Oregon State University)化工系教授奧克塔夫·列文斯比爾(Octave Levenspiel)之名。

        Octave是使用C++語言及其標(biāo)準(zhǔn)模板庫編寫的軟件,從編程語言的分類屬性來講,屬于解釋性(直譯式)及面向過程的結(jié)構(gòu)化編程語言,支持許多C語言風(fēng)格的標(biāo)準(zhǔn)函數(shù)功能,同時(shí)可以使用UNIX系統(tǒng)調(diào)用以進(jìn)行擴(kuò)充增進(jìn)功能,但不支持以引用的方式傳遞參數(shù)。在3.2以后的版本中,增加了對(duì)數(shù)據(jù)建構(gòu)的支持以及面向?qū)ο缶幊痰墓δ?,但通常仍把它?dāng)作面向過程的程序設(shè)計(jì)語言來看待。Octave 4.0以后的版本,由于使用基于OpenGL的圖形處理引擎,所實(shí)現(xiàn)的繪圖功能可與Matlab媲美。新版本也開始支持基于OpenMP的單主機(jī)多核/多CPU并行計(jì)算,并且,4.0.0以后的版本除了提供傳統(tǒng)的命令行交互方式操作界面,也提供基于QT編寫的圖形用戶交互界面(Graphical User Interface,GUI),適合于習(xí)慣Windows界面的用戶。

        Octave的核心由一組內(nèi)置的(built-in)矩陣運(yùn)算語言(如四則運(yùn)算)和可加載函數(shù)(Loadable Function)組成(例如求矩陣逆inv),其余能在核心語言之上實(shí)現(xiàn)且性能開銷不會(huì)顯著增加的函數(shù)調(diào)用則一般以O(shè)ctave腳本的形式存在(例如求解方程組的fsolve函數(shù))。Octave解釋器會(huì)自動(dòng)處理各種不同類型的調(diào)用。它的語法基本上與Matlab一致,嚴(yán)謹(jǐn)編寫的代碼應(yīng)可同時(shí)在Matlab及Octave上運(yùn)行。但若調(diào)用了Matlab工具包,則一般不能直接在Octave上運(yùn)行,因?yàn)镺ctave附帶的工具包與Matlab并不兼容。表1給出了Octave和Matlab的主要性能比較,從中可以看出, Octave能實(shí)現(xiàn)Matlab的大部分基本功能,雖然在速度、外延工具包支持等方面還有一些差距,但Octave的最大優(yōu)勢(shì)就是完全免費(fèi),可以自由復(fù)制安裝,因此該軟件作為Matlab的低成本替代軟件之一,為學(xué)校、企業(yè)和研究單位提供了一個(gè)高性價(jià)比的數(shù)學(xué)計(jì)算工具,具有良好的應(yīng)用前景。

        表1 Octave與Matlab的主要新能比較

        2 Octave在電路分析仿真中的應(yīng)用

        文章給出兩個(gè)具體的電路分析仿真實(shí)例,第一個(gè)例子重點(diǎn)介紹Octave的符號(hào)計(jì)算功能,第二個(gè)例子則重點(diǎn)展示符號(hào)計(jì)算與數(shù)值計(jì)算的混合使用以及繪圖功能。為了方便讀者理解,首先寫出傳統(tǒng)的解析過程,再給出Octave的計(jì)算程序。

        2.1 穩(wěn)態(tài)電路分析問題

        (1)

        (2)

        其中

        (3)

        根據(jù)歐姆定律,可以求出各阻抗中的電流。

        (4)

        I-5=0

        (5)

        上述的計(jì)算過程若用Octave的符號(hào)計(jì)算功能來實(shí)現(xiàn)則很簡(jiǎn)單。以下給出計(jì)算程序并做出必要說明。

        圖1 惠斯通電橋電路

        % Octave以及symbolic模塊的安裝過程參見附錄

        pkg load symbolic %調(diào)用符號(hào)運(yùn)算模塊

        syms Z0 Z1 Z2 Z3 Z4 Z5; %定義阻抗變量

        UZ=[ 1/Z0+1/Z1+1/Z2-1/Z1-1/Z2;

        -1/Z11/Z1+1/Z3+1/Z5-1/Z5;

        -1/Z2-1/Z5 1/Z2+1/Z5+1/Z4] %定義阻抗矩陣

        syms E EaEb Ed; %定義電源及各節(jié)點(diǎn)電壓

        Es=[E/Z0; 0; 0] %定義電源電壓矩陣

        Eu=simplify(UZ^(-1)*Es) %求解方程(1),并簡(jiǎn)化結(jié)果

        Ea=Eu(1) %把求得結(jié)果賦值給Ea

        Eb=Eu(2) %把求得結(jié)果賦值給Eb

        Ed=Eu(3) %把求得結(jié)果賦值給Ec

        syms I1 I2 I3 I4 I5; %定義電流變量

        I0=simplify((E-Ea)/Z0) %計(jì)算式(4)

        I1=simplify((Ea-Eb)/Z1) %計(jì)算式(4)

        I2=simplify((Ea-Ed)/Z2) %計(jì)算式(4)

        I3=simplify(Eb/Z3) %計(jì)算式(4)

        I4=simplify(Ed/Z4) %計(jì)算式(4)

        I5=simplify((Eb-Ed)/Z2) %計(jì)算式(4)

        solve(I5==0, Z1) %求解方程(5)獲得電橋平衡條件

        2.2 動(dòng)態(tài)電路問題

        圖2給出一個(gè)帶開關(guān)的串聯(lián)RL電路,電路中接入交流正弦電壓源e(t)=Emsint。求解把處于打開狀態(tài)的開關(guān)閉合后的動(dòng)態(tài)電流i(t),并在=1 000 rad/s,R=100,Em=10 V,L=1 H條件下求出電流隨時(shí)間變化的曲線[9]。

        根據(jù)基爾霍夫電壓定律和歐姆定律可獲得開關(guān)關(guān)閉狀態(tài)下的電路方程(6)。

        (6)

        對(duì)方程(6)的兩邊進(jìn)行拉普拉斯變換可得到

        (7)

        其中

        (8)

        圖2 正弦交流RL動(dòng)態(tài)電路

        整理(7)可求得以下I(s):

        (9)

        對(duì)(9)進(jìn)行拉普拉斯反變換,可獲得所要求取得的時(shí)域動(dòng)態(tài)電流i(t)。這里由于篇幅原因,省略拉普拉斯反變換的具體計(jì)算過程,僅給出結(jié)果。

        (10)

        以下是Octave的符號(hào)計(jì)算程序以及必要說明,可以看出Octave的程序非常短小。

        pkg load symbolic %加載符號(hào)運(yùn)算模塊

        syms s t Is R w Em L positive %定義變量為正

        Eq1=R*Is+s*L*Is-w*Em/(s^2+w^2); %電路方程(7)

        Iss=solve(Eq1, Is) %求解電流I(s) (方程(9))

        it=ilaplace(Iss, s, t) %拉普拉斯反變換求i(t)(方程(10))

        進(jìn)一步使用Octave的數(shù)值計(jì)算功能求取問題中給出條件下的電流隨時(shí)間的變化曲線,Octave的程序如下。利用Octave的作圖功能所做的圖形在圖3中給出。

        itt=function_handle(it) %把符號(hào)公式轉(zhuǎn)換成標(biāo)準(zhǔn)函數(shù)

        tt=0:0.0001:0.05; %產(chǎn)生0到0.05s的離散時(shí)間序列

        y=itt(10,1,100, tt, 1000); % 代入Em,L,R,的值

        plot(tt,y) %繪制電流的時(shí)間變化曲線

        axis([0 0.0501 -0.0201 0.0201]); %x,y軸的范圍設(shè)定

        title(′RL circuit′); %添加圖像標(biāo)題

        xlabel(′time(s)′); %添加x軸標(biāo)題

        ylabel(′i(t)(A)′); %添加y軸標(biāo)題

        set(gca, "fontsize", 20) %設(shè)置字體大小

        圖3 Octave求得并給出的圖2中RL電路中的動(dòng)態(tài)電流

        3 GNU Octave(+symbolic package)Window版的安裝步驟(Octave-5.2.0_1-w64+ symbolic 2.8.0)

        GNU Octave支持包括GNU/Linux,macOS,BSD,Windows在內(nèi)的多種操作系統(tǒng),由于論文長度的限制,在此僅介紹Octave在Windows操作系統(tǒng)中的安裝過程。

        (1)GNU Octave需要Java SE Runtime Environment環(huán)境,對(duì)于未安裝的用戶可從以下網(wǎng)頁鏈接下載。

        (2)從GNU Octave主頁下載Octave的最新版安裝程序,并安裝(當(dāng)前的最新版為Octave-5.2.0_1)。

        (3)安裝符號(hào)運(yùn)算模塊「Symbolic package」。

        3.1 方法一(推薦)

        (1)下載symbolic-win-py-bundle-2.8.0.tar.gz至工作目錄。

        (2)啟動(dòng)Octave,確認(rèn)當(dāng)前目錄為工作目錄,然后在界面中輸入以下內(nèi)容:

        pkg install symbolic-win-py-bundle-2.8.0.tar.gz

        pkg load symbolic %調(diào)用模塊。

        (3)syms a %定義a為符號(hào)變量。

        (4)若未出現(xiàn)錯(cuò)誤提示,表明符號(hào)運(yùn)算模塊安裝成功。

        3.2 方法二(若方法一出現(xiàn)無法使用問題,請(qǐng)使用方法二)

        (1)從Python的主頁下載最新版本(python-3.8.1)并安裝。

        (2)下載Anaconda3-2019.10-Windows-x86_64并安裝。

        (3)啟動(dòng)Octave,確認(rèn)當(dāng)前目錄為工作目錄,然后在界面中輸入以下內(nèi)容:

        pkg install symbolic-win-py-bundle-2.8.0.tar.gz

        pkg install-forge symbolic

        setenv PYTHON/a·naconda3/bin/python/

        pkg load symbolic %調(diào)用模塊。

        (4)syms a %定義a為符號(hào)變量。

        (5)若未出現(xiàn)錯(cuò)誤提示,表明符號(hào)運(yùn)算模塊安裝成功。

        4 結(jié)語

        文章介紹了一個(gè)與Matlab具有相似功能的免費(fèi)開源科學(xué)計(jì)算軟件Octave。通過其在電路分析中的應(yīng)用實(shí)例展示了Octave的強(qiáng)大符號(hào)運(yùn)算、數(shù)值運(yùn)算以及繪圖功能,也證明了其可被作為電路分析的有效輔助工具。Octave程序代碼短小高效,可以大大提高解析電路問題的效率,特別是因?yàn)槠鋼碛忻赓M(fèi)、可自由復(fù)制的優(yōu)點(diǎn),在重視知識(shí)產(chǎn)權(quán)和成本的今天特別適合在學(xué)校、科研機(jī)構(gòu)以及企業(yè)中推廣應(yīng)用。

        猜你喜歡
        符號(hào)定義功能
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        學(xué)符號(hào),比多少
        幼兒園(2021年6期)2021-07-28 07:42:14
        “+”“-”符號(hào)的由來
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        變符號(hào)
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        圖的有效符號(hào)邊控制數(shù)
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
        修辭學(xué)的重大定義
        精品国内日本一区二区| 国产目拍亚洲精品一区二区| 国产精品专区一区二区av免费看| 日本二区三区视频免费观看| 亚洲国产av一区二区三区天堂| 精品福利一区二区三区蜜桃| 亚洲国产精品ⅴa在线观看| 国产一区二区三区四区五区vm| 成年奭片免费观看视频天天看| 视频精品熟女一区二区三区| 99久久精品人妻少妇一| 少妇扒开毛茸茸的b自慰| 麻豆国产人妻欲求不满| 国产精品一区二区AV不卡| 精品中文字幕在线不卡| 67194熟妇人妻欧美日韩| 久久99国产乱子伦精品免费| 亚洲国产一区二区三区,| 三区中文字幕在线观看| 欧美中日韩免费观看网站| 夜夜春精品视频| 国产精品亚洲精品专区| 久久精品99国产精品日本| 青青久在线视频免费观看| 亚洲AV成人无码久久精品在 | 天堂√中文在线bt| 国产极品喷水视频| 高清不卡av一区二区| 亚洲国产精品无码久久98| 精品人无码一区二区三区| 粗一硬一长一进一爽一a视频| 日本乱码一区二区三区在线观看| 性无码一区二区三区在线观看 | 国产三级黄色片子看曰逼大片| 粉色蜜桃视频完整版免费观看在线 | 亚洲专区一区二区三区四区五区| 丝袜美腿国产一区精品| 久久国内精品自在自线图片| 国产日韩精品一区二区在线观看播放| 日本一区二区日韩在线| 无码av天天av天天爽|