了解如何使用拉普拉斯變換、Python 和 SymPy 以串聯(lián) RLC 電路為例簡化電路分析的數(shù)學(xué)運(yùn)算。
研究電路可能是一個非?;?。 在不知不覺中,你已經(jīng)深入微分方程了。 對于那些對微積分感到不舒服的人來說,這可能是可怕的。 然而,我經(jīng)常告訴我的EE學(xué)生,成為一名工程師并不是要善于以困難的方式解決難題; 相反,它主要是關(guān)于找到更簡單的方法來解決這些問題。 當(dāng)我教授電路分析課程并需要激勵他們學(xué)習(xí)
拉普拉斯變換。
將隨時間變化的微分方程轉(zhuǎn)換為拉普拉斯空間可確保將這些微分方程的解簡化為代數(shù)練習(xí); 不需要微積分! 然而,有時確定解決方案所涉及的代數(shù)量可能會抵消該方法的好處,使學(xué)生希望他們正在做更高級的數(shù)學(xué)。 然而,一種解決方案是
蟒。 利用Python可以大大減少確定解決方案所需的代數(shù)量。
在本文中,我們將首先通過一個例子,展示拉普拉斯空間是如何發(fā)揮作用的,以及 Python 如何幫助更輕松地完成數(shù)學(xué)。
示例:查找串聯(lián)RLC電路中的電流
在進(jìn)入拉普拉斯空間和Python如何在電路分析中發(fā)揮作用之前,讓我們將示例設(shè)置到拉普拉斯變換進(jìn)入的位置。
首先,考慮電流如何流過 電容器 與該電容器兩端的電壓與時間有關(guān)的導(dǎo)數(shù)成正比。 同樣,兩端的電壓 感應(yīng)器 與流過該電感器的電流與時間有關(guān)的導(dǎo)數(shù)成正比:
這些差分關(guān)系對于描述和分析電路中的電流和電壓行為至關(guān)重要,如圖1所示。
*圖1. RLC電路示例。 *
在RLC電路在圖 1 中,我們看到流過元件的電流都是相等的,因為這些元件都是串聯(lián)的。 此外,在t ≥ 0時,該電路無源元件兩端的電壓等于5 V(直流電源電壓)。 我們可以將這些關(guān)系寫成等式 2 和 3。
等式 2.
等式 3.
將等式1a和1b與等式2和3相結(jié)合,得到等式4,這是一個積分微分方程,描述了流過圖1所示電路的電流的時間行為。
等式 4.
取公式4中關(guān)于時間的兩邊的導(dǎo)數(shù),并重新排列微分項的系數(shù),得到公式5,即描述圖1電路中電流瞬態(tài)行為的微分方程。
等式 5.
讓我們停下來反思一下我們剛剛做了什么。 到目前為止,我們還沒有真正需要做太多的微積分。 基本上,我們已經(jīng)描述了該電路中隨時間推移的電流演變,但我們還沒有解決該電流的功能形式。 如果我們要在時域中進(jìn)行,我們需要確定該電路是過阻尼、欠阻尼還是臨界阻尼。 然后,為我們的解選擇了一個一般形式,我們需要將該一般解及其導(dǎo)數(shù)應(yīng)用邊界條件,以確定解的一般形式的幾個常數(shù)值。
如果我們停留在時域中,這是求解二階電路中電流的最簡單、最直接的方法。 但是,如果我們將方程6轉(zhuǎn)換為拉普拉斯空間,我們可以避免時域的混亂(即大部分實(shí)際微積分)。
***等式 6. ***
現(xiàn)在我們已經(jīng)在示例中達(dá)到了這一點(diǎn),讓我們簡要概述一下拉普拉斯空間。
拉普拉斯空間 - 拉普拉斯變換屬性和對
在這一點(diǎn)上,根據(jù)您的教育背景(或您對大學(xué)課程的褪色記憶),您可能想知道,“什么是拉普拉斯空間? 我將把更完整的描述留給數(shù)學(xué)家,但出于我們的目的,你可以把拉普拉斯空間想象成一個復(fù)雜的頻域。 拉普拉斯空間中的函數(shù)包含有關(guān)隨時間變化的豐富信息,可以使用簡單的代數(shù)來操作這些信息來提取該時間信息。
單側(cè)拉普拉斯變換通常根據(jù)公式6通過積分進(jìn)行。 該方程定義了f(t),F(xiàn)(s)的拉普拉斯變換,作為f(t)和e乘積積分的結(jié)果^-圣^ 從 t = 0- 到無窮大。 此外,根據(jù)公式7進(jìn)行從s空間到時域的逆變換。
等式 7.
你總是可以執(zhí)行這些積分來從 s 空間變換到 t 空間,然后再變換回來,但積分是一種痛苦,逆拉普拉斯變換積分要求我們確保 εε位于該積分的收斂區(qū)域內(nèi); 我們真的應(yīng)該擺脫復(fù)雜的分析技能,以正確執(zhí)行該積分。 幸運(yùn)的是,拉普拉斯變換和逆變換通??梢允褂美绽箍臻g的線性屬性表并通過引用變換對表來執(zhí)行,而根本不需要積分。
圖2a和2b顯示了這些的最小版本,盡管可以通過互聯(lián)網(wǎng)搜索找到更完整的拉普拉斯表。
*圖 2a. 拉普拉斯變換屬性。 *
*圖 2b. 拉普拉斯變換對。 *
現(xiàn)在我們已經(jīng)有了復(fù)習(xí),讓我們回到我們的示例。
求解拉普拉斯空間中的電流
將拉普拉斯變換屬性應(yīng)用于時間相關(guān)方程 6 的每個項,可得出 s 空間方程 8。 重要的是要注意,我在這里假設(shè)t = 0之前的電流是0A,并且已經(jīng)有一段時間了。
等式 8.
考慮到這一點(diǎn),我們可以輕松地以代數(shù)方式操縱方程式 9 來找到 I(s)。 然后,確定 i(t) 就像逆變換 I(s) 一樣簡單。 這種簡單性是我們在拉普拉斯空間中進(jìn)行電路分析的原因; 這是解決難題的一種非??焖俚姆椒ā?/p>
從這里開始,事情可能會變得有點(diǎn)混亂。 的確,我們可以通過反轉(zhuǎn)用于使用圖 2 中的表從時域轉(zhuǎn)換到 s 空間的過程來執(zhí)行逆變換。 但是,我們需要代數(shù)操作 I(s)
的表達(dá)式,直到它符合圖 2b
中變換對表中的一個或許多函數(shù)的總和。 如果手工完成,這個過程可能涉及如此繁瑣的代數(shù),以至于它完全否定了在拉普拉斯空間中求解電路而不是求解時域微分方程的好處。
使用 Python 和 SymPy 執(zhí)行逆拉普拉斯變換
在我們的示例中,我們已經(jīng)手動完成了所有實(shí)際電路工作。 是時候拿出 Python 的計算能力了 SymPy 為我們做逆變換。
首先,我們需要打開一個 Python 環(huán)境。 我使用 谷歌合作實(shí)驗室
為了解決這些問題,因為它是基于Web的,我需要的所有庫都可用,并且它會在命令旁邊呈現(xiàn)任何可視輸出。 該程序類似于 木星筆記本,但它是由谷歌維護(hù)的。
第 1 步,我們將導(dǎo)入 SymPy 庫并定義我們的符號 — s 和 t:
from sympy import *
s,t = symbols(‘s,t’)
考慮等式 9,我們可以用符號 's' 來定義 I(s):
i = 5/(3*(s**2 + 20000*s + 33333333))
最后,我們將I(s)逆變換到時域,并使用以下命令將結(jié)果打印到筆記本上:
inverse_laplace_transform(i, s, t).simplify()
然后生成公式 10:
請注意,Heaviside 階躍函數(shù)在此表達(dá)式中表示為 θ(t)。 等式 10 不是我們想要的形式,因為 SymPy 試圖保持分?jǐn)?shù)表示而不是四舍五入無理數(shù)。 但是,只需在紙上稍作操作,我們可以將 i(t) 重寫為等式 11:
等式 11.
其中 u(t) 表示階躍函數(shù)。
完成所有這些操作后,我們就完成了。 使用這個例子,這就是如何在 Python 和 SymPy 庫的幫助下,使用 Laplace
空間在二階電路中求解未知的、隨時間變化的量。
Python 還能如何幫助電路分析?
雖然本文的范圍僅限于使用 Python 在分析二階電路時執(zhí)行逆拉普拉斯變換,但 Python 中的 SymPy
庫可用于幫助解決許多類型的電路分析問題。 每當(dāng)涉及代數(shù)時,您都可以使用Python來減輕乏味。 我認(rèn)為,最好的方法是應(yīng)用所有必要的電路原理(基爾霍夫定律,
歐姆定律等)用手。 然后,當(dāng)您將問題簡化為紙上的方程或方程組時,使用 Python
完成該過程。 拉普拉斯空間中的電路分析是一個充分展示這種方法優(yōu)勢的舞臺。 通過使用計算機(jī)執(zhí)行逆變換,我們可以大大減少獲得解決方案所需的手動代數(shù)操作量,并保留拉普拉斯空間的美麗和好處。
-
電路分析
+關(guān)注
關(guān)注
62文章
518瀏覽量
98818 -
拉普拉斯
+關(guān)注
關(guān)注
0文章
35瀏覽量
9658
發(fā)布評論請先 登錄
相關(guān)推薦
評論