Math ClubMath Club
v1 · padrão canônico

Transformada de Laplace — Teoria Avançada

Região de convergência, análise de polos no plano-s, inversão por resíduos, convolução, estabilidade de sistemas lineares e função de transferência.

Used in: engenharia

Choose your door

Real scenarios with market data and step-by-step calculations

Transformada de Laplace em Sistemas de Controle

Projeto de Controlador PID

O controlador PID tem função de transferência:

C(s)=Kp+Kis+Kds=Kds2+Kps+KisC(s) = K_p + \frac{K_i}{s} + K_d s = \frac{K_d s^2 + K_p s + K_i}{s}

O polo em s=0s = 0 do integrador elimina erro em regime permanente para referências constantes.

Malha fechada: com planta P(s)P(s), a função de transferência em malha fechada é:

T(s)=C(s)P(s)1+C(s)P(s)T(s) = \frac{C(s)P(s)}{1 + C(s)P(s)}

e o sistema é estável se todos os polos de T(s)T(s) têm Re<0\text{Re} < 0.

Código Python — Inversão por Frações Parciais

import numpy as np
from scipy import signal

# Fração racional: H(s) = (s + 3) / (s^2 + 3s + 2) = (s+3)/((s+1)(s+2))
num = [1, 3]
den = [1, 3, 2]

# Decomposição em frações parciais via scipy
r, p, k = signal.residue(num, den)
print("Resíduos:", r)   # coeficientes A_k
print("Polos:", p)       # s_k
print("Termo direto:", k) # = 0 (grau num < grau den)

# h(t) = sum_k r_k * exp(p_k * t)  (para t > 0)
t = np.linspace(0, 5, 500)
h = sum(rk * np.exp(pk * t) for rk, pk in zip(r, p))

# Verificar com scipy.signal.impulse
sys = signal.lti(num, den)
t_imp, h_imp = signal.impulse(sys, T=t)
print(f"Erro máximo: {np.max(np.abs(h.real - h_imp)):.2e}")

Análise de Estabilidade por Routh

def routh_hurwitz(coeffs):
    """Tabela de Routh-Hurwitz. coeffs = [a_n, a_{n-1}, ..., a_0]."""
    n = len(coeffs)
    table = np.zeros((n, (n + 1) // 2))
    table[0, :len(coeffs[0::2])] = coeffs[0::2]
    table[1, :len(coeffs[1::2])] = coeffs[1::2]
    for i in range(2, n):
        for j in range(table.shape[1] - 1):
            num = table[i-1,0]*table[i-2,j+1] - table[i-2,0]*table[i-1,j+1]
            table[i, j] = num / table[i-1, 0] if table[i-1,0] != 0 else 0
    return table

# Exemplo: s^3 + 2s^2 + 4s + 3
poly = [1, 2, 4, 3]
R = routh_hurwitz(poly)
print("Tabela de Routh:\n", R)
print("Primeira coluna:", R[:, 0])
print("Estável?", all(R[:, 0] > 0))

Referência: Oppenheim & Willsky, Signals and Systems, 2ª ed., §9; Kreyszig, Advanced Engineering Mathematics, Cap. 6.

To continue

Referências Bibliográficas

  • Kreyszig, E. Advanced Engineering Mathematics, 10ª ed. Wiley, 2011. Caps. 6–7 (transformada de Laplace e aplicações a EDOs e sistemas).
  • Oppenheim, A.V.; Willsky, A.S. Signals and Systems, 2ª ed. Prentice Hall, 1997. Cap. 9 (transformada de Laplace, ROC, análise de sistemas). Referência principal para sinais.
  • Churchill, R.V.; Brown, J.W. Complex Variables and Applications, 8ª ed. McGraw-Hill, 2009. §§70–77 (inversão por resíduos).
  • Stakgold, I.; Holst, M. Green's Functions and Boundary Value Problems, 3ª ed. Wiley, 2011. §3 (transformada de Laplace e equações integrais).
  • Widder, D.V. The Laplace Transform. Princeton Univ. Press, 1946. (Tratamento clássico rigoroso da ROC e inversão.)
  • Ogata, K. Modern Control Engineering, 5ª ed. Prentice Hall, 2010. §§5–6 (funções de transferência, estabilidade, projeto de controladores).

Updated on 2026-05-28 · Author(s): Clube da Matemática

Found an error? Open an issue on GitHub or submit a PR — open source forever.