了解在直流和穩態交流電路分析中使用 Python 和 SymPy 如何幫助加快和簡化網格電流和相量電流等計算。
基本電路是線性系統,確定電路中的電流或電壓值需要使用線性代數。我發現當我“求解”一個電路(即確定流過電路中所有元件的電流值)時,電路定律的應用早在確定感興趣的數量之前就已經完成。在短短幾分鐘內,我們就可以確定一個描述簡單電路行為的方程組。然而,手動操作這組代數方程以找到我們正在尋找的量可能需要相當長的時間。
許多學生和教育工作者經常求助于MATLAB來尋求線性系統的幫助,但Python和SymPy包也可以輕松免費地用于分析直流和穩態交流電路。讓我們通過一些示例來說明這一點,從 DC 分析開始。
DC 分析示例 - 使用 Python 求解網格電流
圖 1 中的電路在現實生活中可能不存在,它沒有任何實際用途。
圖 1. 直流電路示例電路原理圖。
然而,在典型的電路分析教科書中,使用這種帶有直流電源的全電阻電路作為在大型電路環境中練習應用基爾霍夫定律和歐姆定律的一種手段。
作為說明,我認為如果您將這些不視為可能是真實的電路,而是將其視為具有特定知識基礎和技能組合的人的難題來解決……這會有所幫助……為了好玩!
除此之外,我已經在該電路上繪制了網狀電流I 1和 I 2,我們可以使用網狀電流分析技術來設計以下等式 1a 和 1b:
有了這個方程組,我們就有效地完成了電路理論的應用。將這些方程一起處理以求解網格電流 I 1和 I 2的值的剩余任務是純代數的。讓我們將這個方程組轉換為矩陣,并使用 Python 為我們研究代數,而不是手動這樣做。我們的矩陣將由每個網格電流的電阻系數和方程右側的電壓組成,如圖 2 所示。
圖 2. 描述圖 1 電路的 I、R 和 V 關系的矩陣方程。
接下來,我們轉向 Python。我使用Google Colaboratory 進行此類計算,因為它可以通過網絡訪問,并且我需要的所有庫都可用。但是,如果您的 Python 環境包含 SymPy 庫,您可以使用您喜歡的任何環境。
為了在 Python 中求解我們的方程組,讓我們首先導入 SymPy 庫,然后定義我們的矩陣,最后使用以下命令計算其簡化的行梯形,以確定兩個網格電流的值:
from sympy import *
dcEquations = Matrix([[3000, 1500, 9],[1500, 1650, 6]])
dcEquations.rref()
這會產生以下輸出:
(Matrix([
[1, 0, 13/6000],
[0, 1, 1/600]]), (0, 1))
這些代碼片段告訴我們,I 1的值為 13/6000 A 或 2.17 mA,而 I 2的值為 1/600 A 或 1.67 mA。
使用 Python 的穩態交流分析示例
我們用于分析圖 1 中的直流電阻電路的方法也可以用于分析穩態交流電路,并且 在紙上設計一個實際上可以服務于實際目的的交流電路并不需要花費太多精力。圖 3 顯示了一個帶有兩個無功負載(電感器)的電路,每個負載都可以代表一個用于空調單元、污水泵、冰箱壓縮機或其他家用電器設備的電機。
圖 3. 具有兩個無功負載的穩態交流電路示例。
圖 3 中的電路稱為“穩態”交流電路,因為它的電源具有固定頻率和恒定幅度。從這里開始,我們需要將電路中的電感轉換為阻抗(以歐姆為單位),以便我們可以使用網格電流方法來分析其穩態行為。因此,我們根據公式 2 計算電路中電感器的阻抗,使用源的驅動頻率為 ω (120π rad/s)。
在圖 4 中,我們用每個無源元件的阻抗和相量網格電流 I 1和 I 2重新繪制了電路。
圖 4. 將電感轉換為阻抗后的圖 3 的交流電路。
就像我們對圖 1 中的電路所做的那樣,我們可以使用基爾霍夫電壓定律和歐姆定律推導出與圖 4 中電路中的元件和網格電流相關的方程組。方程 3a 和 3b 構成了該系統。
同樣,用于求解圖 4 電路中網格電流的其余過程是純代數。該方程組的矩陣形式如圖 5 所示。
圖 5. 等式 3a 和 3b 的矩陣表示圖 4 的穩態交流電路。
Python 中的以下命令將為圖 4 中電路中的網格電流值求解該方程組。請注意,我們可以在矩陣定義中使用“j”而無需任何特殊努力,因為“j”在 SymPy 中定義為復空間中的虛單位。
from sympy import *
acEquations = Matrix([[2+3.77j,-(2+3.77j), 120],[2+3.77j, -(5+6.41j), 0]])
acEquations.rref()
這會產生以下輸出:
(Matrix([
[1, 0, 35.7203044893402 - 44.6772284258869*I],
[0, 1, 22.5428313796213 - 19.8376916140667*I]]), (0, 1))
這告訴我們相量電流 I 1和 I 2分別為 (35.72 – j44.68)A 和 (22.54 – j19.84)A。請注意 Python 如何將虛數單位表示為“I”而不是“j”。為了將這些轉換為時間相關函數,我們應用了一點三角函數來找到它們各自的幅度和相位。I 1的幅度和相位通過等式 4a 和 4b 求得:
類似地,根據等式 5a 和 5b 求出I 2的幅度和相位:
最后,給定這些幅度和相位,我們確定 I 1和 I 2的函數形式:
Python 和 SymPy 對直流和穩態交流分析的好處
請注意,穩態交流分析確實需要預先從電感(和/或電容)轉換為復阻抗以及之后從相量形式轉換為時間相關形式的額外步驟。然而,使用 Python 應用這種矩陣技術在求解交流電路時比直流電路為我們節省了更多的計算時間,因為 Python 甚至可以為我們處理復雜的代數,輕松處理增加的虛數維度。
對于直流和穩態交流電路分析,可以輕松使用 Python 和 SymPy 庫來減少確定所需值所需的工作量。雖然這些示例中分析的電路相對簡單,但該技術可以擴展到具有更多網格的更復雜電路。以這種方式使用 Python 不僅可以減少解決電路問題所花費的時間,而且還可以幫助學生在練習新學習的網絡分析技術時在心理上區分電路理論和純代數。
-
DC
+關注
關注
9文章
3647瀏覽量
679641 -
交流電路
+關注
關注
0文章
184瀏覽量
28836 -
python
+關注
關注
56文章
4792瀏覽量
84628
發布評論請先 登錄
相關推薦
評論