了解如何使用拉普拉斯變換、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ù)成正比:
等式 1a.
等式 1b.
這些差分關(guān)系對(duì)于描述和分析電路中的電流和電壓行為至關(guān)重要,如圖1所示。
圖1. RLC電路示例。
在 RLC電路 在圖 1 中,我們看到流過(guò)元件的電流都是相等的,因?yàn)檫@些元件都是串聯(lián)的。 此外,在t ≥ 0時(shí),該電路無(wú)源元件兩端的電壓等于5V(直流電源電壓)。 我們可以將這些關(guān)系寫(xiě)成等式 2 和 3。
iL=iC=iRiL=iC=iR等式 2.
將等式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í)際微積分)。
L{f(t)}=F(s)=∫∞0?f(t)e?stdtL{f(t)}=F(s)=∫0?∞f(t)e?stdt等式 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í)域的逆變換。
L?1{F(s)}=f(t)=12πj∫ε+j∞ε?j∞F(s)estdsL?1{F(s)}=f(t)=12πj∫ε?j∞ε+j∞F(s)estds等式7.
你總是可以執(zhí)行這些積分從 s 空間變換到 t 空間,然后再變換回來(lái),但積分是一種痛苦,逆拉普拉斯變換積分要求我們確保 ??
的值位于該積分的收斂區(qū)域內(nèi); 我們真的應(yīng)該撣去我們復(fù)雜的分析技能,以正確執(zhí)行這個(gè)積分。 幸運(yùn)的是,拉普拉斯變換和逆變換通??梢允褂美绽箍臻g的線性屬性表和引用變換對(duì)表來(lái)執(zhí)行,而無(wú)需完全積分。
圖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以找到I(s)。 然后,確定 i(t) 就像逆變換 I(s)一樣簡(jiǎn)單。 這種簡(jiǎn)單性是我們?cè)诶绽箍臻g中進(jìn)行電路分析的原因; 這是解決難題的一種非??焖俚姆椒ā?/p>
等式9.
從這里開(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:
等式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)注
172文章
5914瀏覽量
172254 -
電流
+關(guān)注
關(guān)注
40文章
6860瀏覽量
132197 -
拉普拉斯
+關(guān)注
關(guān)注
0文章
35瀏覽量
9659 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84690
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論