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