Um sistema em tempo discreto com entrada u e saída y é representado pela equação de diferenças abaixo. Considere condições iniciais nulas.
y[k]=\frac{1}{3} y[k-1]-0,4 y[k-2]+u[k-2]
a) Determine a função de transferência G(z)=\frac{Y(z)}{U(z)}.
b) Calcule os polos da função de transferência G(z). Em seguida, verifique se o sistema é estável.
c) Supondo que a entrada é um sinal do tipo degrau unitário, calcule o valor estacionário da saída.
d) Utilizando uma ferramenta computacional, simule a resposta do sistema para uma entrada degrau unitário. Compare com o resultado obtido no item anterior.

Passo 1

O enunciado dá a equação de diferenças do sistema (condições iniciais nulas) e pede quatro coisas. Vou listar claramente o que foi dado e o que é pedido.
Dados do enunciado:
  • A equação de diferenças é
y[k]=\frac{1}{3}y[k-1]-0,4\,y[k-2]+u[k-2],
com condições iniciais nulas (isto é, y[-1]=y[-2]=\dots=0 antes do início).
O que o enunciado pergunta:
a) Determinar a função de transferência G(z)=\dfrac{Y(z)}{U(z)}.
b) Calcular os polos de G(z) e verificar se o sistema é estável.
c) Supondo entrada degrau unitário, calcular o valor estacionário (limite quando k\to\infty) da saída.
d) Simular a resposta ao degrau usando uma ferramenta computacional e comparar com o resultado do item (c).

Passo 2

A primeira tarefa é obter a função de transferência G(z). Vou explicar o método passo a passo e o porquê de cada passo — lembrando que a transformada Z converte deslocamentos no tempo em fatores de z^{-1}, desde que as condições iniciais sejam nulas.
Breve aula rápida sobre transformada Z (do jeito simples):
  • Se x[k] tem transformada X(z), então x[k-n] (deslocamento por n passos para a direita) corresponde a z^{-n}X(z) quando as condições iniciais são nulas.
  • Aplicando a transformada Z na equação de diferenças com condições iniciais nulas, cada termo y[k-m] vira z^{-m}Y(z) e cada u[k-m] vira z^{-m}U(z).
  • Depois isolamos Y(z)/U(z) para obter G(z).
Agora aplico a transformada Z à equação dada:
Y(z)=\frac{1}{3}z^{-1}Y(z)-0,4\,z^{-2}Y(z)+z^{-2}U(z).
Agrupando os termos em Y(z) no lado esquerdo:
\bigl(1-\tfrac{1}{3}z^{-1}+0,4\,z^{-2}\bigr)Y(z)=z^{-2}U(z).
Portanto a função de transferência é
G(z)=\frac{Y(z)}{U(z)}=\frac{z^{-2}}{1-\tfrac{1}{3}z^{-1}+0,4\,z^{-2}}.
É comum multiplicar numerador e denominador por z^{2} para obter polinômios em z:
G(z)=\frac{1}{z^{2}-\tfrac{1}{3}z+0,4}.
(As duas formas acima são equivalentes; a forma em z^{-1} é útil para implementação em diferença, a forma em z é útil para encontrar polos.)

Passo 3

Agora vamos achar os polos: polos são as raízes do denominador de G(z), isto é, das soluções de
z^{2}-\tfrac{1}{3}z+0,4=0.
Isso é uma equação quadrática. Vou resolver com a fórmula da raiz quadrada (fórmula de Bhaskara). Para uma equação az^{2}+bz+c=0 as raízes são
z=\frac{-b\pm\sqrt{b^{2}-4ac}}{2a}.
Aqui a=1, b=-\tfrac{1}{3}, c=0,4. Então o discriminante é
\Delta=b^{2}-4ac=\left(-\tfrac{1}{3}\right)^{2}-4\cdot1\cdot0,4=\tfrac{1}{9}-1,6=\tfrac{1}{9}-\tfrac{8}{5}=\!-\tfrac{67}{45}.
Como \Delta<0, as raízes serão complexas conjugadas. Aplicando a fórmula:
z=\frac{\tfrac{1}{3}\pm\mathrm{j}\sqrt{\tfrac{67}{45}}}{2}=\frac{1}{6}\pm \mathrm{j}\,\frac{1}{2}\sqrt{\tfrac{67}{45}}.
Vamos dar os valores aproximados para entender a posição no plano z:
  • Parte real: \Re(z)=\dfrac{1}{6}\approx 0,1666667.
  • Parte imaginária: \Im(z)=\pm\dfrac{1}{2}\sqrt{\dfrac{67}{45}}\approx\pm 0,61006.
    O módulo (distância ao centro) de cada polo é
|z|=\sqrt{\left(\tfrac{1}{6}\right)^{2}+\left(\tfrac{1}{2}\sqrt{\tfrac{67}{45}}\right)^{2}}\approx 0,6324.
Critério de estabilidade (explicação didática): para um sistema linear e causal em tempo discreto, ele é BIBO-estável se, e somente se, todos os polos da função de transferência estiverem estritamente dentro do círculo unitário do plano z (isto é, |z_{pole}|<1). Aqui os polos têm módulo aproximadamente 0,6324<1, logo o sistema é estável.

Passo 4

Item (c): valor estacionário da saída quando a entrada é um degrau unitário. Vou explicar a ferramenta usada: Teorema do valor final na forma discreta.
Teorema do valor final discreto (intuição e fórmula):
  • Se Y(z) é a transformada Z de y[k] e todos os polos relevantes de (1-z^{-1})Y(z) estão dentro do círculo unitário (condição de convergência válida), então
\lim_{k\to\infty} y[k]=\lim_{z\to 1}(1-z^{-1})Y(z).
No caso de entrada degrau unitário u[k]=1 para k\ge0, a transformada é
U(z)=\frac{z}{z-1}.
Como Y(z)=G(z)U(z), temos
\lim_{k\to\infty} y[k]=\lim_{z\to 1}(1-z^{-1})G(z)\frac{z}{z-1}.
Note que (1-z^{-1})\frac{z}{z-1}=1 (faça a álgebra: 1-z^{-1}=(z-1)/z e multiplicando por z/(z-1) dá 1). Portanto, sempre que o teorema do valor final for aplicável (aqui é, porque o sistema é estável e não há polo em z=1), o valor final é simplesmente
\lim_{k\to\infty} y[k]=G(1).
Agora calcule G(1). Usando a forma em z^{-1}:
G(1)=\frac{1}{1-\tfrac{1}{3}+0,4}=\frac{1}{1-\tfrac{1}{3}+\tfrac{2}{5}}.
Fazendo em frações:
1-\tfrac{1}{3}+\tfrac{2}{5}=\frac{15-5+6}{15}=\frac{16}{15},
logo
\lim_{k\to\infty} y[k]=G(1)=\frac{1}{16/15}=\frac{15}{16}=0,9375.
Portanto o valor estacionário esperado para a saída frente a um degrau unitário é \dfrac{15}{16} (aproximadamente 0,9375).

Passo 5

Item (d): simulação computacional e comparação. Vou fornecer um exemplo de como simular (em Python e em MATLAB/Octave), explicar o que o código faz e apresentar resultados numéricos e uma pequena tabela de iterações calculadas à mão/por simulação para ver a convergência ao valor estacionário.
Código Python (usando numpy para iteração direta — simples e fácil de entender):
import numpy as np

N = 40
u = np.ones(N)         # degrau unitário para k=0..N-1
y = np.zeros(N)
# condição inicial: y[0]=y[1]=0 (já zerado)
for k in range(N):
    if k >= 2:
        y[k] = (1/3)*y[k-1] - 0.4*y[k-2] + u[k-2]
    else:
        y[k] = 0.0      # conforme condições iniciais nulas e definição da equação

print("k   y[k]")
for k in range(N):
    print(f"{k:2d} {y[k]:.6f}")
print("y[39] = ", y[39])
Código equivalente em MATLAB/Octave (usando recursão direta):
N = 40;
u = ones(1,N);
y = zeros(1,N);
for k = 1:N
    if k > 2
        y(k) = (1/3)*y(k-1) - 0.4*y(k-2) + u(k-2);
    else
        y(k) = 0;
    end
end
y
Esses códigos implementam diretamente a equação de diferenças com condições iniciais nulas. A saída numérica (valores aproximados) obtida pela recursão é, para os primeiros termos:
  • y[0]=0
  • y[1]=0
  • y[2]=1
  • y[3]=\tfrac{4}{3}\approx 1{,}333333
  • y[4]\approx 1{,}044444
  • y[5]\approx 0{,}814815
  • y[6]\approx 0{,}853827
  • y[7]\approx 0{,}958683
  • y[8]\approx 0{,}978030
  • y[9]\approx 0{,}942537
  • y[10]\approx 0{,}922967
  • … e assim por diante, os valores oscilam e convergem para cerca de 0{,}9375.
Se rodar o código até k=39 (ou k=100), verá que y[k] se aproxima de 0{,}9375. Por exemplo, executando a recursão numericamente (com precisão dupla), valores típicos depois de algumas dezenas de passos ficam muito próximos de 0{,}9375 (por exemplo y[39]\approx 0{,}9375 com erro numérico pequeno), confirmando o valor obtido analyticamen te em (c).
Conclusão da comparação: a simulação numérica converge para o valor estacionário calculado analiticamente \dfrac{15}{16}, portanto há concordância entre teoria e simulação.

Resposta

a) G(z)=\dfrac{z^{-2}}{1-\tfrac{1}{3}z^{-1}+0,4\,z^{-2}}=\dfrac{1}{z^{2}-\tfrac{1}{3}z+0,4}.
b) Os polos são \displaystyle z=\frac{1}{6}\pm\mathrm{j}\,\frac{1}{2}\sqrt{\tfrac{67}{45}}\approx 0{,}1666667\pm\mathrm{j}\,0{,}61006. Como |z|\approx 0{,}6324<1, o sistema é estável.
c) Valor estacionário para entrada degrau unitário: \displaystyle \lim_{k\to\infty}y[k]=G(1)=\frac{15}{16}=0{,}9375.
d) Simulação numérica (recorrência) mostra que y[k] converge para 0{,}9375 (ex.: após algumas dezenas de passos y[k]\approx0{,}9375), em concordância com o item (c).

Exercícios relacionados