999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

科學計算軟件Octave在電路分析中的應用

2020-10-26 08:55:36王子瑋余景原許國泰
無線互聯科技 2020年14期
關鍵詞:符號定義功能

王子瑋,余景原,許國泰

(上海市信息網絡有限公司,上海 200081)

0 引言

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

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

1 Octave概述

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

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

Octave是使用C++語言及其標準模板庫編寫的軟件,從編程語言的分類屬性來講,屬于解釋性(直譯式)及面向過程的結構化編程語言,支持許多C語言風格的標準函數功能,同時可以使用UNIX系統調用以進行擴充增進功能,但不支持以引用的方式傳遞參數。在3.2以后的版本中,增加了對數據建構的支持以及面向對象編程的功能,但通常仍把它當作面向過程的程序設計語言來看待。Octave 4.0以后的版本,由于使用基于OpenGL的圖形處理引擎,所實現的繪圖功能可與Matlab媲美。新版本也開始支持基于OpenMP的單主機多核/多CPU并行計算,并且,4.0.0以后的版本除了提供傳統的命令行交互方式操作界面,也提供基于QT編寫的圖形用戶交互界面(Graphical User Interface,GUI),適合于習慣Windows界面的用戶。

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

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

2 Octave在電路分析仿真中的應用

文章給出兩個具體的電路分析仿真實例,第一個例子重點介紹Octave的符號計算功能,第二個例子則重點展示符號計算與數值計算的混合使用以及繪圖功能。為了方便讀者理解,首先寫出傳統的解析過程,再給出Octave的計算程序。

2.1 穩態電路分析問題

(1)

(2)

其中

(3)

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

(4)

I-5=0

(5)

上述的計算過程若用Octave的符號計算功能來實現則很簡單。以下給出計算程序并做出必要說明。

圖1 惠斯通電橋電路

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

pkg load symbolic %調用符號運算模塊

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; %定義電源及各節點電壓

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 動態電路問題

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

根據基爾霍夫電壓定律和歐姆定律可獲得開關關閉狀態下的電路方程(6)。

(6)

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

(7)

其中

(8)

圖2 正弦交流RL動態電路

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

(9)

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

(10)

以下是Octave的符號計算程序以及必要說明,可以看出Octave的程序非常短小。

pkg load symbolic %加載符號運算模塊

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))

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

itt=function_handle(it) %把符號公式轉換成標準函數

tt=0:0.0001:0.05; %產生0到0.05s的離散時間序列

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

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

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

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

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

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

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

圖3 Octave求得并給出的圖2中RL電路中的動態電流

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

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

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

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

(3)安裝符號運算模塊「Symbolic package」。

3.1 方法一(推薦)

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

(2)啟動Octave,確認當前目錄為工作目錄,然后在界面中輸入以下內容:

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

pkg load symbolic %調用模塊。

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

(4)若未出現錯誤提示,表明符號運算模塊安裝成功。

3.2 方法二(若方法一出現無法使用問題,請使用方法二)

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

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

(3)啟動Octave,確認當前目錄為工作目錄,然后在界面中輸入以下內容:

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

pkg install-forge symbolic

setenv PYTHON/a·naconda3/bin/python/

pkg load symbolic %調用模塊。

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

(5)若未出現錯誤提示,表明符號運算模塊安裝成功。

4 結語

文章介紹了一個與Matlab具有相似功能的免費開源科學計算軟件Octave。通過其在電路分析中的應用實例展示了Octave的強大符號運算、數值運算以及繪圖功能,也證明了其可被作為電路分析的有效輔助工具。Octave程序代碼短小高效,可以大大提高解析電路問題的效率,特別是因為其擁有免費、可自由復制的優點,在重視知識產權和成本的今天特別適合在學校、科研機構以及企業中推廣應用。

猜你喜歡
符號定義功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
關于非首都功能疏解的幾點思考
變符號
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
圖的有效符號邊控制數
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 国产97视频在线| 中文字幕无码av专区久久| 91免费精品国偷自产在线在线| 亚洲精品福利视频| 激情午夜婷婷| 青青操国产| 日本免费一级视频| 日本精品视频| 乱码国产乱码精品精在线播放| 久久国产精品夜色| 亚洲天堂网2014| 国产成人AV大片大片在线播放 | 久久香蕉国产线| 在线国产你懂的| 欧美高清视频一区二区三区| 欧美亚洲欧美| 欧美全免费aaaaaa特黄在线| 丰满少妇αⅴ无码区| 国产精品成人一区二区| 一本久道久综合久久鬼色| 久久这里只精品热免费99| 青青极品在线| 日韩少妇激情一区二区| 狠狠亚洲五月天| 77777亚洲午夜久久多人| 日韩无码真实干出血视频| 免费三A级毛片视频| 久久黄色一级视频| 国产视频一区二区在线观看| 久久久91人妻无码精品蜜桃HD | 特级欧美视频aaaaaa| 人妻丰满熟妇av五码区| 亚洲精品天堂自在久久77| 在线观看欧美国产| 日韩精品久久无码中文字幕色欲| 日韩经典精品无码一区二区| 午夜啪啪福利| 在线观看国产精品日本不卡网| 精品三级在线| 精品剧情v国产在线观看| 日韩欧美高清视频| 青青青国产在线播放| 91久久性奴调教国产免费| 午夜a级毛片| 色视频久久| 国产又黄又硬又粗| 三上悠亚在线精品二区| 日韩色图在线观看| 狼友av永久网站免费观看| 国产jizzjizz视频| 亚洲天堂区| 国产尤物在线播放| 国产区91| 99re免费视频| 婷婷综合缴情亚洲五月伊| 亚洲欧美日韩精品专区| 国产精品播放| 午夜福利无码一区二区| 国内精品久久久久久久久久影视| 中文字幕av一区二区三区欲色| 又污又黄又无遮挡网站| 在线一级毛片| 亚洲高清在线天堂精品| 国产一区二区三区视频| 久久黄色毛片| 亚洲国产系列| 亚洲精品视频免费| 国产女人在线观看| 国产日韩久久久久无码精品| 国产91透明丝袜美腿在线| 国产欧美日韩一区二区视频在线| 亚洲精品无码抽插日韩| 国产成人久久综合777777麻豆 | 成人国产精品视频频| 在线免费无码视频| 香蕉久人久人青草青草| 在线视频精品一区| 一区二区三区国产| 午夜爽爽视频| 国产日本一线在线观看免费| 91探花在线观看国产最新| 国产 在线视频无码|