JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Heaviside 階梯函數與把力打開

真實的輸入會被開開關關:在 t = 2 翻轉的電壓、在 t = 5 卸下的負載。Heaviside 階梯函數就是那個乾淨的「開關」,而僅憑一條平移定理,就能讓拉普拉斯變換處理任何在中途打開、關閉或跳變的輸入。

中途才打開的輸入

你帶著一台能用的機器走進本節。給定一個初值問題,你用 L{y'} = sY - y(0) 把它變換,解出代數中的 Y(s),再用變換表跑主算法回家。到目前為止,右邊的每個強迫函數都是一條對所有時間都成立的整齊公式——一個常數、一個 e^(a t)、一個正弦。但真正讓拉普拉斯變換值回票價的輸入,卻是那些粗糙的:在 t = 2 被撥動的開關、接上又拔掉的電池、忽然放到樑上的一個穩定重物。

這類輸入是分段描述的:某個時刻之前為零,之後才有東西。我們稱之為分段強迫函數,而那套對付非齊次方程的猜測比對舊配方,遇到它們便卡住了,因為右邊不是單一公式。誠實的第一反應,是在每段區間上分別解方程,再費勁地把各段解黏合起來,讓 y 與 y' 在每個切換瞬間都對齊。這行得通,但既繁瑣又易錯。拉普拉斯方法提供了更乾淨的東西:一種把整個開關式輸入寫成單一運算式、一次跑完機器的辦法。

最乾淨的一個開關

整個把戲倚靠一個基本函數。Heaviside 階梯函數,記作 u(t) 或有時記作 H(t),在 t < 0 時為 0、在 t >= 0 時為 1。想像一個電燈開關:先關後開,撥動發生在 t = 0。要把撥動移到較晚的時刻 a,你只需平移自變數:Heaviside 階梯函數 u(t - a) 在 t 抵達 a 之前為 0,之後跳到 1 並維持不變。這一個物件就是你的「開關」,而你只要選定 a,便能把它放在時間軸上的任何位置。

現在來做乘法。若 g(t) 是某個訊號,而你希望它只從時刻 a 起出現,就寫 u(t - a) * g(t):在 a 之前階梯為 0,把乘積抹掉;在 a 之後階梯為 1,讓 g 原封不動地通過。乘上一個階梯,正是把一個力打開這個動作本身。把兩個階梯相減,你便切出一扇窗——u(t - a) - u(t - b) 只在 a 與 b 之間為 1,這是一個在 a 打開、又在 b 關閉的輸入。有了這些積木,任何你能用言語描述的開關式輸入,現在都能寫成一條公式。

u(t)        = 0 for t < 0,   1 for t >= 0       (the on-switch at 0)
u(t - a)    = 0 for t < a,   1 for t >= a       (on-switch at time a)

u(t - a) g(t)            ->  g switched ON at t = a
u(t - a) - u(t - b)      ->  a window: ON at a, OFF at b   (a < b)

L{ u(t - a) } = e^(-a s) / s          (a >= 0)
階梯函數、它的時間平移、由它組裝開關式輸入的兩種方式,以及一個延遲階梯的變換——留意延遲所產生的 e^(-a s) 因子。

t 中的延遲化為 s 中的因子

接下來這條法則讓上述一切開花結果,它也是本篇的核心。設你已知 g(t) 的變換是 G(s)。那麼同一個訊號被延遲、並在時刻 a 打開——也就是 u(t - a) * g(t - a)——它的變換是什麼?答案就是第二平移定理:L{ u(t - a) g(t - a) } = e^(-a s) * G(s)。在時域中延遲 a,到了 s 域裡,不過就是乘上 e^(-a s) 而已。把訊號往後挪一段時間,代價恰好是一個指數因子——不必新的積分,也不必新的表中條目。

值得體會 e^(-a s) 為何出現,因為這絕非巧合。變換是把 e^(-s t) 對你的訊號從 0 起積分。一個直到 a 才出聲、然後才運行的訊號,在積分底下,就是原訊號把時鐘往前推了 a。做變數代換把時鐘重新對齊,會從積分裡直接提出一個常數 e^(-s a),留下原本的 G(s)。延遲與那個指數,是同一個平移的兩張臉;一旦看清這點,這條法則便不再是要死背的東西,而成了你隨時能自行重新推導的結果。

把一個開關式問題帶去又帶回

現在各部分扣合在一起。要解一個帶分段輸入的 ODE,你先用 Heaviside 階梯把右邊寫成一條乾淨的公式,把整條方程變換,再像先前那樣解出 Y(s)。唯一的新特徵,是 Y(s) 現在帶著一個或數個 e^(-a s) 因子隨行——那是各個切換時刻在代數上留下的指紋。你做 s 域的代數時暫且不理那些因子,把每個 e^(-a s) * (某式) 看作一份延遲的副本,留到最後再處理。

  1. 用 Heaviside 階梯把分段輸入改寫成一條公式,例如一個在 a 與 b 之間開啟的力,化為 [u(t - a) - u(t - b)] 乘上其強度。
  2. 把整條 ODE 變換;每個延遲項貢獻一個 e^(-a s) 因子乘上一個尋常的變換。
  3. 用代數解出 Y(s),讓那些 e^(-a s) 因子原封不動地隨行。
  4. 用變換表反變換每一塊;凡是前面坐著 e^(-a s) 之處,反變換便冠上一個 u(t - a),而其中每個 t 都平移為 (t - a)。

最後那一步,正是把第二平移定理反過來讀,而答案就在那裡重新組裝成各段。解直接以開關式呈現——一個基礎響應,加上一個恰在每個 a 處打開的延遲修正項——無需手動黏合區間,也無需親手對齊 y 與 y'。在逐區間做法裡讓你費盡心力的連續性,這裡自動內建,因為一切都是穿過同一條線性流水線帶過來的。你可以拿結果對照變換表、也對照常識做抽查:在第一個切換時刻之前,所有延遲項皆為零,所以早期的解應當與未開關的問題相符。

它的用武之地,以及一個誠實的提醒

這並非紙上練習。它最乾淨的用武之地是開關電路:在 t = 0 把電池接上一個 RLC 迴路、在 t = 5 拔掉,那麼驅動電壓恰好就是一個開窗的階梯。同一幅圖景也描述著恆溫器把熱忽開忽關、馬達被一個方波脈衝所命令,或是一個結構先加載後卸載。在每種情形裡,你研究的都是一個輸入—輸出系統,其輸入是一串開關,而階梯函數正是寫下那輸入的天然字母表。