Jupyter Notebook desenvolvido por Gustavo S.S.
As funções de singularidade (também conhecidas como funções de comutação) são muito úteis na análise de circuitos, pois servem como boas aproximações aos sinais de comutação que surgem em circuitos com operações de comutação, e também por serem úteis na descrição compacta e elegante de alguns fenômenos em circuitos, especialmente a resposta a um degrau de circuitos RC ou RL a serem discutidos nas seções seguintes. Por definição,
Funções de singularidade são funções que são descontínuas ou então que apresentam derivadas descontínuas.
As três funções de singularidade mais usadas na análise de circuitos são: degrau unitário, impulso unitário e rampa unitária.
A função degrau unitário u(t) é 0 para valores negativos de t e 1 para valores positivos de t.
\begin{align} {\Large u(t) = \begin{cases} 0, & t < 0 \\ 1, & t > 0 \end{cases}} \end{align}Usamos a função degrau para representar uma mudança abrupta na tensão ou corrente, como as mudanças que ocorrem em circuitos de sistemas de controle e computadores digitais. Por exemplo, a tensão:
\begin{align} {\Large v(t) = \begin{cases} 0, & t < t_0 \\ 1, & t > t_0 \end{cases}} \end{align}pode ser expressa em termos da função degrau unitário como
\begin{align} {\Large v(t) = V_0u(t-t_0)} \end{align}Se fizermos t0 = 0, então v(t) é simplesmente a tensão degrau V0u(t). Uma fonte de tensão V0u(t) é mostrada na Figura 7.25a, e seu circuito equivalente é ilustrado na Figura 7.25b.
A derivada da função degrau unitário u(t) é a função impulso unitário d(t), que é escrita como segue:
\begin{align} {\Large \delta(t) = \frac{d}{dt}u(t) = \begin{cases} 0, & t < 0 \\ Indefinido, & t = 0 \\0, & t > 0 \end{cases}} \end{align}A função impulso unitário d(t) é zero em qualquer ponto, exceto em t = 0, onde ela é indefinida.
O impulso unitário pode ser considerado um choque elétrico aplicado ou resultante e ser visualizado como um pulso de área unitária de curtíssima duração, sendo expresso matematicamente como:
\begin{align} \int_{0^-}^{0^+} \delta(t)dt = 1 \end{align}A área unitária é conhecida como a intensidade da função impulso, e quando essa função tiver uma intensidade diferente da unidade, a área do impulso será igual à sua intensidade. Por exemplo, a função impulso 10d(t) possui uma área igual a 10.
Assim:
\begin{align} {\Large \int_{a}^{b} f(t)δ(t - t_0)dt = f(t_0)} \end{align}Integrando a função degrau unitário u(t), obtemos a função rampa unitária r(t); escrevemos:
\begin{align} {\Large r(t) = \int_{-∞}^{t} u(x)dx = tu(t)} \end{align}ou:
\begin{align} {\Large r(t) = \begin{cases} 0, & t \le 0 \\t, & t \ge 0 \end{cases}} \end{align}A função rampa unitária é zero para valores negativos de t e apresenta uma inclinação unitária para valores positivos de t.
Deve-se ter em mente que as três funções de singularidade (impulso, degrau e rampa) estão relacionadas por diferenciação como segue:
\begin{align} {\Large \delta(t) = \frac{du(t)}{dt}} \\{\Large u(t) = \frac{dr(t)}{dt}} \end{align}As funções de porta são usadas juntamente com chaves para permitir ou bloquear a passagem de outro sinal.
Exemplo 7.6
Expresse o pulso de tensão da Figura 7.31 em termos do degrau unitário. Calcule sua derivada e esboce-a.
In [64]:
print("Exemplo 7.6")
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
t = symbols('t')
u1 = 10*Heaviside(t-2) #funcao degrau unitario, tambem chamada de funcao Heaviside
u2 = -10*Heaviside(t-5)
l = list()
m = list()
n = list()
for i in range(10):
l.append(u1.subs(t,i))
m.append(u2.subs(t,i))
print(l)
print(m)
x1 = [-10,2,2,10]
y1 = [0,0,1,1]
x2 = [-10,5,5,10]
y2 = [0,0,-1,-1]
x3 = [-10,2,2,5,5,10]
y3 = [0,0,1,1,0,0]
x4 = [-10,2,2,5,5,10]
y4 = [0,0,10,0,-10,0]
print(x3)
print(y3)
plt.figure(1)
plt.subplot(311)
plt.step(x1,y1)
plt.figure(2)
plt.subplot(312)
plt.step(x2,y2)
plt.figure(3)
plt.subplot(313)
plt.step(x3,y3)
plt.figure(4)
plt.subplot(313)
plt.step(x4,y4)
plt.show()
#Resposta
#10[u(t-2) u(t-5)]
#10[delta(t-2) delta(t-5)]
Problema Prático 7.6
Expresse o pulso de corrente da Figura 7.33 em termos de degrau unitário. Determine sua integral e esboce-a.
In [90]:
print("Problema Prático 7.6")
u1 = 10*Heaviside(t)
u2 = -20*Heaviside(t-2)
l,m,n = list(), list(), list()
for i in np.linspace(-10,10,20):
l.append(u1.subs(t,i))
m.append(u2.subs(t,i))
print(l)
print(m)
n = np.add(l,m)
n = n.reshape((1,20))
n = n[0]
print(n)
o = np.linspace(-10,10,20)
print(o)
plt.step(o,n)
plt.show()
x = np.linspace(0,4,20)
o = list()
for i in range(len(x)):
if(x[i] < 2):
o.append(10*x[i])
elif(x[i] == 2):
o.append(20)
else:
o.append(20 - 10*(x[i] - 2))
plt.plot(x,o)
plt.show()
#Resposta
#10[u(t) – 2u(t – 2) + u(t – 4)] A,
#10[r(t) – 2r(t – 2) + r(t – 4)] A·s
Exemplo 7.7
Expresse a função dente de serra mostrada na Figura 7.35 em termos de funções de singularidade.
In [96]:
print("Exemplo 7.7")
#Resposta
#5*r(t)*u(-t+2)
x = np.linspace(0,5,10)
y = 5*x
u = Heaviside(-t+2)
r = list()
for i in x:
r.append(u.subs(t,i))
print(x)
print(y)
print(r)
r = r*y
plt.plot(x,r)
plt.show()
Problema Prático 7.7
Consulte a Figura 7.39. Expresse i(t) em termos de funções de singularidade.
In [119]:
print("Problema Prático 7.7")
def ret(t,start=-10,end=10,points=21):
x = np.linspace(start,end,points)
l = x > t
l = l*x
return l
def heaviside(t, start=-10,end=10,points=21):
x = np.linspace(start,end,points)
l = x > t
l = 1*l
return l
y = -(2*heaviside(0) - 2*ret(0) + 4*ret(2) - 2*ret(3))
print(y)
x = np.linspace(-10,10,21)
plt.plot(x,y)
plt.show()
#Resposta
#2u(t) - 2r(t) + 4r(t-2) - 2r(t-3) A.
Exemplo 7.8
Dado o sinal:
\begin{align} {\Large g(t) = \begin{cases} 3, & t < 0 \\-2, & 0 < t < 1 \\2t - 4, & t >1 \end{cases}} \end{align}expresse g(t) em termos de funções degrau e de rampa.
In [120]:
print("Exemplo 7.8")
#3 - 3*u(t)
#-2*u(t) + 2*u(t - 1)
#2*r(t - 1) - 4*u(t - 1)
#3 - 5u(t) - 2u(t - 1) + 2r(t - 1)
Problema Prático 7.8
Se:
\begin{align} {\Large h(t) = \begin{cases} 0, & t < 0 \\-4, & 0 < t < 2 \\3t - 8, & 2 < t < 6 \\0, & t > 6 \end{cases}} \end{align}expresse h(t) em termos de funções de singularidade.
In [ ]:
print("Problema Prático 7.8")
#-4u(t) + 4u(t-2)
#3r(t-2) - 8*u(t-2) + 8*u(t-6)
Exemplo 7.9
Calcule as seguintes integrais envolvendo a função impulso.
\begin{align} {\Large \int_{0}^{10} (t^2 + 4t - 2)\delta(t-2)dt} \\ {\Large \int_{-\infty}^{\infty} [\delta(t - 1)e^{-t} cos(t) + \delta(t + 1)e^{-t}sen(t)]dt} \end{align}
In [139]:
print("Exemplo 7.9")
u = (t**2 + 4*t - 2)*DiracDelta(t - 2)
y = integrate(u,(t,0,10))
print("Primeira integral:", y)
u = DiracDelta(t-1)*exp(-t)*cos(t) + DiracDelta(t+1)*exp(-t)*sin(t)
y = integrate(u,(t,-oo,oo))
print("Segunda integral:", y)
Problema Prático 7.9
Calcule as seguintes integrais:
\begin{align} {\Large \int_{-\infty}^{\infty} (t^3 + 5t^2 + 10) \delta(t + 3)dt} \\ {\Large \int_{0}^{10} \delta(t - \pi)cos(3t)dt} \end{align}
In [143]:
print("Problema Prático 7.9")
u = (t**3 + 5*t**2 + 10)*DiracDelta(t+3)
y = integrate(u,(t,-oo,oo))
print("Primeira Integral:",y)
u = DiracDelta(t-pi)*cos(3*t)
y = integrate(u,(t,0,10))
print("Segunda Integral:",y)