Transformada Z
Teoria
Introdução
E aí, tudo joia? Já ouviu falar de transformada Z?
“Ah, é aquele desenho onde o Goku tem que reunir as esferas do dragão para salvar o mundo, né?”
Não, você está confundindo com Dragon Ball Z!
A transformada Z é usada para analisar sinais de tempo discreto, como os gerados por radares, por exemplo. Ela é muito utilizada em no projeto de filtros e sistemas de controle digitais.
De certa forma, podemos dizer que a transformada Z é, para sinais em tempo discreto, o mesmo que a transformada de Laplace é para sinais contínuos. A transformada Z converte sinais que estão no domínio de tempo discreto para o domínio de uma variável complexa .
Assim como usamos a transformada de Laplace para resolver equações diferenciais, transformando-as em equações algébricas, usamos a transformada Z para transformar equações de diferenças em equações algébricas, muito mais fáceis de resolver.
“Tá, mas o que são equações de diferenças?”
Uma equação de diferenças é uma equação em tempo discreto que relaciona a saída atual às entradas e saídas anteriores. Podemos usar equações de diferenças para modelar uma coisa bem comum no nosso dia a dia: o rendimento da poupança, que é calculado usando juros compostos. Juros compostos podem ser representados pela equação de diferenças:
Essa equação modela uma aplicação corrigida a juros compostos com taxa por um período de tempo , que pode ser em dias ou meses, por exemplo. Na poupança, o rendimento é mensal, logo, seria a quantidade de meses.
Sabendo que a aplicação inicial é , após um mês , você terá na poupança:
Já no segundo mês que você deixar seu dinheirinho rendendo na poupança, sem fazer saque algum, você terá:
E assim por diante.
A solução de uma equação de diferenças seria encontrar uma expressão de de forma que eu possa calcular a saída atual sem ter que ficar calculando a saída para cada valor de . Por exemplo, se eu quiser saber quanto eu terei na minha poupança daqui meses, eu preciso encontrar uma equação de de forma que basta eu dizer que para encontrar o montante final.
Nesta aula, aprenderemos a usar função do MATLAB para encontrar a transformada Z de uma função no tempo discreto e a usar a função para encontrar a inversa da transformada Z de uma função , em função do número complexo . Ao final, veremos como solucionar uma equação de diferenças usando e .
Então, pegue a sua nuvem voadora e venha aprender mais essas funções do MATLAB com a gente!
Transformada Z de uma função f(n)
A função do MATLAB tem a estrutura:
Ela retorna a transformada Z da função , armazenando-a na variável .
Digamos que você tenha a função e queira encontrar a sua transformada Z usando o MATLAB. Em um script novo, defina que é uma variável simbólica e crie a função :
Vamos aplicar em :
Vamos rodar o programa e pedir para o MATLAB mostrar o resultado no Commad Window:
Temos que a transformada Z de é:
Repare que não precisamos informar que a função de entrada era em função da variável independente , nem que queríamos que saída fosse em função de . É que, por padrão, quando usamos , o MATLAB considera que depende de uma variável e que a variável da transformada é . Você pode alterar isso adicionando mais entradas à função :
Com este comando, dizemos que a função tem como variável independente o que pusermos no lugar de . A transformada gerada pelo MATLAB será em função do que pusermos no lugar de .
Por exemplo, digamos que você queira encontrar a transformada Z da função:
Sendo que é a variável independente de .
Além disso, você quer que a transformada Z de seja em função de . Por isso, você terá que usar a função no MATLAB como no print abaixo:
Na primeira linha, criamos as variáveis simbólicas , e .
Na segunda linha, criamos a função .
Na terceira linha, usamos para encontrar a transformada Z de . Perceba que no lugar de , coloquei ; e que no lugar de , coloquei . Isto quer dizer que a saída será em função de .
Rodando o programa, temos:
Inversa da transformada Z de uma função F(z)
Digamos que agora você tem uma função no domínio da frequência e quer encontrá-la no domínio do tempo discreto . Você pode usar a função do MATLAB , que calcula a inversa da transformada Z de uma função. Ela tem o formato:
Ela retorna a inversa da transformada Z da função , armazenando-a na variável .
Bora ver um exemplo. Temos a seguinte função no domínio de :
E queremos encontrá-la no domínio do tempo discreto usando o MATLAB. Para isso, digite em um novo script as linhas de código:
Na primeira linha, definimos a variável simbólica .
Na segunda linha, entramos com a função .
Na terceira linha, aplicamos para encontrar a inversa da transformada Z de .
Rodando o programa, temos como resultado:
Temos que a inversa da transformada Z de é . Reparou que é o mesmo exemplo da seção anterior? =)
Assim como na função , por padrão, em , o MATLAB considera que depende de uma variável independente e que a variável da transformada é . Você também pode alterar isso adicionando mais entradas à função :
Com este comando, dizemos que a função tem como variável independente o que pusermos no lugar de . A inversa da transformada Z gerada pelo MATLAB será em função do que pusermos no lugar de .
Resolvendo equações de diferenças usando transformada Z
Vimos como usar em funções e como usar em funções . Agora vamos ver como usamos a transformada Z para resolver equações de diferenças. Lembram daquela equação de diferenças do começo da aula, dos juros compostos? Essa aqui:
Vamos encontrar uma solução para usando as funções e . Primeiramente, vamos entrar com a equação de diferenças em um novo script do MATLAB:
Na primeira linha, definimos as variáveis simbólicas e (indicamos que é em função de ).
Na segunda linha, dizemos ao MATLAB para assumir (função ) que a variável simbólica é maior ou igual a zero e que ela é um número inteiro (pois falaremos apenas em “um mês”, “dois meses”, etc, e não consideraremos “um mês e meio”, por exemplo), usando o comando .
Na terceira linha, dizemos ao MATLAB para assumir (função ) que a variável simbólica é maior que zero e que ela é um número real (pois trata-se da taxa de juros, que pode ser um número “quebrado”), usando o comando .
Na quarta linha, entramos com a equação de diferenças na variável , mas dando uma reformuladinha nela, jogando todos os termos para a esquerda e dizendo que ela é igual a .
Vamos aplicar em para transformar a equação de diferenças em uma equação algébrica, armazenada em :
Vamos ver como ficou? Rode o programa e peça ao MATLAB para imprimir no Command Window a variável :
Perceba que o MATLAB usa em alguns elementos de , que tem exatamente a mesma estrutura da função . Essa expressão representa a transformada Z de e pode ser substituída por . Logo, o resultado seria assim:
Esse ficou meio comprido, né? Podemos substituir por , representado , usando o comando :
Primeiramente, devemos criar mais duas variáveis simbolicas: e . Em seguida, usamos a função para pedir ao MATLAB que substitua em a expressão por . O resultado da substituição é armazenado em , ficando no lugar aquela expressão comprida que vimos.
Após a substituição, fica assim:
Bem mais compacto, né?
Para encontrar , precisamos encontrar para daí aplicar nela a inversa da tranformada Z. Em , a variável representa e podemos usar a função do MATLAB para encontrá-la. Adicione em seu código:
Com este comando, a função resolve a equação para a variável e armazena a solução em . Na prática, isolamos na equação com este comando e passa a representar . Rodando o programa, temos que é igual a:
Isto quer dizer que:
Para encontrar , aplicamos a inversa da transformada Z em , isto é, usamos em :
O resultado é armazenado em . Na prática, , logo, quando rodarmos o programa, encontraremos .
Na segunda linha, usamos o comando do MATLAB para deixar a expressão que obteremos de mais bonitinha e compacta. O resultado de simplify é armazenado em , substituindo o valor anterior de .
Rodando o programa, temos:
Logo, para encontrarmos quanto teremos na poupança em um determinado mês, sabendo o valor inicial da aplicação, basta substituir na equação abaixo pelo número de meses que o dinheiro ficou rendendo na poupança:
Ufa! Vimos bastante coisa nessa aula! Bora praticar para fixar bem o conteúdo =)
Transformada Z de uma função f(n)
Inversa da transformada Z de uma função F(z)
Resolvendo equações de diferenças usando transformada Z
Exercícios Resolvidos
Exercício Resolvido #1
“Elaboração Própria”
Usando o MATLAB, calcule a transformada Z de .
Passo 1
O exercício pede para encontrarmos a transformada Z da função usando o MATLAB. Logo, usaremos a função neste exercício.
Como o enunciado não especificou nada, consideraremos que a variável independente de é e que a transformada Z da função será em função de , que é o padrão adotado pelo MATLAB. Em outras palavras, a transformada Z de será representada por .
Passo 2
Antes de partirmos para o MATLAB, vamos relembrar como é a função A função do MATLAB tem a estrutura:
Ela retorna a transformada Z da função , armazenando-a na variável . Como não tem mais nenhuma entrada em além de , o MATLAB assumirá que a variável independente de é e fará que a transformada Z seja em função de .
Em um novo script do MATLAB, entre com a função :
Na primeira, definimos duas variáveis simbólicas: e .
Na segunda linha, entramos com a função , que é armazenada na variável .
Passo 3
Após ter entrado com , vamos usar para encontrar a transformada Z de :
A transformada Z de é armazenada na variável .
Rode o programa para ver como fica :
Resposta
A transformada Z de é:
Exercício Resolvido #2
“Elaboração Própria”
Usando o MATLAB, calcule a transformada Z de um degrau unitário .
Passo 1
O exercício pede para encontrarmos a transformada Z, usando o MATLAB, de uma função muito utilizada na área de controle: a função degrau unitário no tempo discreto.
Para criarmos a função degrau unitário no MATLAB, usaremos a função . Se essa for a primeira vez que você vê essa função, não se preocupe, vamos ver direitinho como ela funciona. Ao final, usaremos a função para encontrar a transformada de .
Como o enunciado não especificou nada, consideraremos que a variável independente de é e que a transformada Z dela será em função de , que é o padrão adotado pelo MATLAB. Em outras palavras, a transformada Z de será representada por .
Passo 2
Para criarmos o degrau unitário no MATLAB, usaremos a função , que tem a estrutura:
Ela cria um degrau unitário e o armazena em : quando , . Se , . Finalmente, para , .
Em um script novo, digite as três linhas de código:
Na primeira linha, criamos a variável simbólica .
Na segunda linha, assumimos que , para que o degrau unitário , definido logo abaixo, seja igual a .
Na terceira linha, usamos a função para criar o degrau unitário, que é armazenado em . Como assumimos que , se você rodar o programa e pedir pra ver , você verá que:
Passo 3
Após criar o degrau unitário, podemos achar sua transformada Z usando o comando , que tem a estrutura:
Ele retorna a transformada Z da função , armazenando-a na variável . Como não tem mais nenhuma entrada em além de , o MATLAB assumirá que a variável independente de é e fará que a transformada Z seja em função de .
Adicione ao seu script o comando:
Ele vai calcular a transformada Z de e vai armazenar o resultado em .
Vamos ver a carinha de ? Rode o programa e você terá:
Resposta
A transformada Z de é:
Exercício Resolvido #3
“Elaboração Própria”
Usando o MATLAB, calcule a inversa da transformada Z de
Passo 1
O exercício pede para encontrarmos a inversa da transformada Z usando o MATLAB. Logo, usaremos a função neste exercício.
Como o enunciado não especificou nada, consideraremos que a variável independente de é e que a sua inversa será em função de , que é o padrão adotado pelo MATLAB. Em outras palavras, a inversa da transformada Z será representada por.
Passo 2
Antes de partirmos para o MATLAB, vamos relembrar como é a função A função do MATLAB tem a estrutura:
Ela retorna a inversa da transformada Z de , armazenando-a na variável . Como não tem mais nenhuma entrada em além de , o MATLAB assumirá que a variável independente de é e fará que a inversa da transformada Z seja em função de .
Em um novo script do MATLAB, entre com a função dada no enunciado:
Na primeira linha, criamos duas variáveis simbólicas: e .
Na segunda linha, dizemos ao MATLAB para assumir que é diferente de (isso simplifica a resposta no final).
Na terceira linha, entramos com a função dada pelo enunciado, armazenando-a na variável .
Passo 3
Após ter entrado com , vamos usar para encontrar a inversa da transformada Z de :
A inversa da transformada Z de é armazenada na variável .
Rode o programa para ver qual é a cara de :
Nossa, que coisa feia! Adicione em seu programa o comando , para dar uma enxugada nesse :
Com esta linha de código, o MATLAB vai simplicar e armazenar a resposta em , substituindo a expressão anterior.
Ao executar o programa novamente, temos:
Resposta
A inversa da transformada Z de é
Exercício Resolvido #4
“Elaboração Própria”
Supondo que um casal de coelhos precisa de um ano para amadurecer e gerar filhotes e que eles geram um casal de filhotes a cada ano, a população de coelhos no ano é descrita pela equação das diferenças:
Encontre para determinar qual será a população de coelhos em anos. Considere e .
Passo 1
O exercício pede para encontrarmos a solução de uma equação de diferenças, que representa a população de coelhos no ano . Para encontrarmos , usaremos a transformada Z. Primeiramente, aplicaremos a função do MATLAB na equação das diferenças para encontrarmos a transformade Z de . Como o enunciado não especificou nada, consideraremos que a variável independente das transformadas Z é , que é o padrão do MATLAB. Logo, a transformada Z de será .
Após encontrarmos , vamos aplicar para encontrar a inversa da transformada Z, isto é, , que é a solução da equação das diferenças. Conhecendo , calcularemos a população de coelhos daqui a anos fazendo .
Passo 2
Vamos começar entrando com a equação de diferenças no MATLAB. Em um script novo, digite as linhas de código:
Na primeira linha, definimos a variável simbólica (indicamos que é em função de ).
Na segunda linha, dizemos ao MATLAB para assumir (função ) que a variável simbólica é maior ou igual a zero e que ela é um número inteiro (pois falaremos apenas em “um ano”, “dois anos”, etc, e não consideraremos “um ano e meio”, por exemplo), usando o comando .
Na terceira linha, entramos com a equação de diferenças na variável , mas dando uma reformuladinha nela, jogando todos os termos para a esquerda e dizendo que ela é igual a .
Passo 3
Com a equação de diferenças no MATLAB, podemos usar a função para calcular a transformada Z dela. Lembrando que tem como estrutura:
Ela retorna a transformada Z da função , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a transformada Z seja em função de .
Acrescente em seu programa o comando abaixo para calcular a transformada Z de :
O resultado é armazenado em .
Vamos ver como ficou ? Rodando o programa que fizemos até agora, temos:
Percebe que tem um termo aí que aparece umas três vezes? tem exatamente a mesma estrutura da função e representa a transformada Z de , podendo ser substituído por . No caso, chamaremos só de .
Adicione os comandos abaixo em seu programa para fazer a substituição:
Primeiramente, devemos criar mais duas variáveis simbolicas: e . Em seguida, usamos a função para pedir ao MATLAB que substitua em a expressão por . O resultado da substituição é armazenado em , ficando no lugar daquela expressão comprida que vimos.
Após a substituição, fica assim:
Bem mais bonitinha, né? E tem mais coisa pra substituir aí. O enunciado disse para considerarmos e . Para fazer as substituições, adicione ao seu programa a linha de código:
Com este comando, substituímos por e por em e armazenamos a nova expressão em , no lugar daquele mostrado no print acima. Executando o programa, podemos ver como está agora:
Passo 4
Para encontrar , precisamos encontrar para daí aplicar nela , para termos a inversa da tranformada Z. Em , a variável representa e podemos usar a função do MATLAB para encontrá-la. Adicione em seu código:
Com este comando, a função resolve a equação para a variável e armazena a solução em , atualizando seu valor. Na prática, isolamos na equação com este comando e passa a representar a expressão algébrica de . Rodando o programa, temos que é igual a:
Quer dizer que:
Para encontrarmos , devemos aplicar a inversa da transformada Z em , isto é, usar a função do MATLAB em . A função tem a estrutura:
Ela retorna a inversa da transformada Z de , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a inversa da transformada Z seja em função de .
Para encontrar , entre o comando:
Com este comando, o MATLAB calcula a inversa da transformada Z de e armazena o resultado em , atualizando seu valor. é a solução da equação de diferenças e representa a população de coelhos em função de anos.
Rodando o programa, temos que é igual a:
Que expressão comprida, né? Tive que deixar a fonte bem pequenininha pra caber na página.
Passo 5
Queremos encontrar a população de coelhos em anos. Para isto, substituiremos por em , usando o comando:
O resultado é armazenado na variável , representando .
Se rodarmos o programa, teremos uma expressão gigantesca que não nos dará diretamente a população de coelhos em anos:
Isso acontece pois é uma variável simbólica. Para encontrarmos a população, devemos resolver cada uma das operações matemáticas de , usando o comando :
Este comando aplica a função em e armazena o resultado em , substituindo a expressão anterior pelo resultado das operações matemáticas. Ao rodar programa, temos:
é um número complexo, mas note que a parte imaginária é bem pequenininha, na ordem de . Logo, podemos desprezar a parte imaginária e dizer que a população de coelhos daqui a anos é .
Resposta
Daqui a anos, a população de coelhos será de .
Exercício Resolvido #5
“Elaboração Própria”
Obtenha a resposta ao degrau unitário para o sistema descrito pela equação de diferenças de segunda ordem:
Considere as condições iniciais iguais a .
Passo 1
O exercício pede para encontrarmos a resposta do degrau unitário para um sistema descrito por uma equação de diferenças de segunda ordem. A solução da equação de diferenças representa a resposta ao degrau unitário, logo, temos que achar uma expressão para .
Faremos isso usando a transformada Z, por isso, primeiramente, aplicaremos a função do MATLAB na equação de diferenças para encontrarmos a transformada de , que indicarems por .
Temos que é em função de e, como o enunciado não especificou nada, consideraremos que a variável independente das transformadas Z é , que é o padrão do MATLAB. Logo, a transformada Z de será .
Após encontrarmos , vamos aplicar para encontrar a inversa da transformada, isto é, , que é a solução da equação de diferenças e a resposta ao degrau unitário.
Passo 2
Vamos começar entrando com a equação de diferenças no MATLAB. Em um script novo, digite as linhas de código:
Na primeira linha, definimos as variáveis simbólicas e (indicamos que é em função de ).
Na segunda linha, assumimos que , para que o degrau unitário , definido logo abaixo, seja igual a .
Na terceira linha, usamos a função para criar o degrau unitário, que é armazenado em . A função tem a estrutura:
Ela cria um degrau unitário e o armazena em : quando , . Se , . Finalmente, para , . Como dissemos que , temos .
Na quarta linha, entramos com a equação de diferenças na variável , mas dando uma reformuladinha nela, jogando todos os termos para a esquerda e dizendo que ela é igual a .
Passo 3
Com a equação de diferenças no MATLAB, podemos usar a função para calcular a transformada Z dela. Lembrando que tem como estrutura:
Ela retorna a transformada Z da função , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a transformada Z seja em função de .
Acrescente em seu programa o comando abaixo para calcular a transformada Z de :
O resultado é armazenado em . Para ver como ficou , rode o programa que fizemos até agora:
Ficou uma expressão bem comprida, mas dá pra perceber que tem um termo aí que aparece umas três vezes. tem exatamente a mesma estrutura da função e representa a transformada Z de , podendo ser substituído por . No caso, chamaremos só de .
Adicione os comandos abaixo em seu programa para fazer a substituição:
Primeiramente, criamos mais duas variáveis simbolicas: e . Em seguida, usamos a função para pedir ao MATLAB que substitua em a expressão por . O resultado da substituição é armazenado em , ficando no lugar daquela expressão comprida que vimos.
Após a substituição, fica assim:
E tem mais coisa pra substituir aí. O enunciado disse para considerarmos as condições iniciais nulas, isto é, . Para fazer as substituições, adicione ao seu programa a linha de código:
Com este comando, substituímos por e por em e armazenamos a nova expressão em , no lugar daquele mostrado no print acima. Executando o programa, podemos ver como está agora:
Passo 4
Para encontrar , precisamos encontrar para daí aplicar nela , para termos a inversa da tranformada Z. Em , a variável representa e podemos usar a função do MATLAB para encontrá-la. Adicione em seu código:
Com este comando, a função resolve a equação para a variável e armazena a solução em , atualizando seu valor. Na prática, isolamos na equação com este comando e passa a representar a expressão algébrica de . Rodando o programa, temos que é igual a:
Quer dizer que:
Para encontrarmos , devemos aplicar a inversa da transformada Z em , isto é, usar a função do MATLAB em . A função tem a estrutura:
Ela retorna a inversa da transformada Z de , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a inversa da transformada Z seja em função de .
Para encontrar , entre o comando:
Com este comando, o MATLAB calcula a inversa da transformada Z de e armazena o resultado em , atualizando seu valor. é a solução da equação de diferenças e, rodando o programa, é igual a:
Resposta
A resposta ao degrau unitário é:
Exercício Resolvido #6
“Elaboração Própria”
Encontre a função de transferência e a resposta ao degrau unitário do sistema cuja equação das diferenças é dada por
Onde e são a saída e a entrada do sistema, respectivamente.
Passo 1
Uma função de transferência é a razão entre a saída e a entrada de um sistema. No tempo discreto, ela é obtida aplicando a transformada Z em uma equação das diferenças, considerando as condições iniciais nulas, e dividindo a saída pela entrada. Logo, será:
Onde é a tranformada Z de e , de .
Para resolver o exercício, primeiramente aplicaremos a função do MATLAB na equação de diferenças para encontrarmos a transformada de e , que indicaremos por e , respectivamente. Em seguida, manipularemos a equação para obtermos , que será a função de transferência .
Para obter a resposta ao degrau unitário do sistema, calcula-se produto entre e a transformada Z do degrau do unitário. Em seguida, usamos a função para calcular sua transformada inversa, que será a solução do exercício.
Passo 2
Vamos rearranjar a equação, jogando todos os termos para a esquerda:
No MATLAB, vamos aplicar a função em cada termo da equação individualmente, pois dessa forma conseguiremos fazer a manipulação algébrica. Lembrando que tem a sintaxe:
Ela retorna a transformada Z da função , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a transformada Z seja em função de .
A transformada Z dos termos da equação das diferenças será identificada assim:
Onde indica a transformada Z. Logo:
Considerando tudo isso, em um novo script, digite as linhas de código:
Na primeira linha, definimos as variáveis simbólicas , e (indicamos que e são em função de ).
Na segunda linha, assumimos que , para que o degrau unitário , que será usado mais pra frente, seja igual a .
Na terceira, quarta e quinta linha, a transformada Z de cada um dos termos da equação das diferenças rearranjada é calculada, sendo armazenada em , e .
Na sexta linha, montamos a transformada Z da equação das diferenças usando , e , fazendo-a igual a . A transformada da equação é armazenada na variável .
Vamos ver como ficou a equação após a aplicação da transformada Z? Execute o programa e imprima no Command Window:
Passo 3
Podemos simplificar : note que tem termos que tem exatamente a mesma estrutura da função e que representam transformadas que podem ser substituídas por uma única letra, indicando que é a transformada de uma função de . representa a transformada Z de , podendo ser substituído por . No caso, chamaremos só de .
Já representa a transformada Z de , podendo ser substituído por . Como fizemos para , chamaremos só de .
Adicione os comandos abaixo em seu programa para fazer a substituição:
Primeiramente, criamos mais três variáveis simbolicas: , e . Em seguida, usamos a função para pedir ao MATLAB que substitua em a expressão por . Logo abaixo, fazemos a mesma coisa para . O resultado da substituição é armazenado em , ficando no lugar da expressão antiga.
E tem mais coisa que podemos substituir em . Precisamos encontrar a função de transferência do sistema, que é determinada considerando as condições iniciais nulas. Logo, . Para fazer a substiuição, adicione ao seu programa a linha de código:
Com este comando, substituímos por em e armazenamos a nova expressão em , atualizando a equação. Executando o programa, podemos ver como está agora:
Bem mais bonitinho =)
Passo 4
Para calcular , precisamos dividir por . Em , a variável representa e podemos usar a função do MATLAB para isolá-la na equação. Adicione em seu código:
Com este comando, a função resolve a equação para a variável e armazena a solução em , atualizando seu valor. Na prática, isolamos na equação com este comando e passa a representar a expressão algébrica de . Rodando o programa, temos que é igual a:
Para definir , basta dividir por :
E temos que a função de transferência é igual a:
Passo 5
Com , podemos calcular a resposta ao degrau unitário do sistema, que é dada pelo produto entre e a transformada Z do degrau do unitário. Para criar o degrau unitário, usaremos a função , que tem a estrutura:
Ela cria um degrau unitário e o armazena em : quando , . Se , . Finalmente, para , . Como dissemos que , temos .
Após criar o degrau com , aplicamos nele para obter sua transformada Z.
Digite em seu programa os comandos:
Na primeira linha, criamos o degrau unitário e o armazenamos em . Em seguida, calculamos sua transformada Z e a registramos em .
Para encontrar a resposta ao degrau, inclua no seu programa o comando:
é o produto entre e e representa a transformada Z da resposta ao degrau unitário.
Passo 6
Para finalizar, vamos calcular a transformada inversa de para encontrar , a resposta do sistema ao degrau unitário no domínio de tempo discreto.
Para encontrarmos , vamos usar a função do MATLAB em . A função tem a estrutura:
Ela retorna a inversa da transformada Z de , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a inversa da transformada Z seja em função de .
Para encontrar , entre o comando:
Com este comando, o MATLAB calcula a inversa da transformada Z de e armazena o resultado em . Rodando o programa, é igual a:
Resposta
A função de transferência é igual a:
A resposta ao degrau unitário do sistema é:
Exercício Resolvido #7
“Adaptado de UNAL – Signal and Systems I (2016506) – Faculty of Engineering – Department of Electrical and Electronics Engineering. Tutorial 10 – Z-Transform, exercício 3”
Dado que , onde é um degrau unitário, encontre a transformada Z de:
Passo 1
O exercício pede para encontrarmos a transformada Z de , sabendo que , sendo um degrau unitário.
Para isto, criaremos alguns degraus com a função e aplicaremos a função do MATLAB na equação de diferenças para encontrarmos a transformada de , que indicaremos por .
Passo 2
Sabemos que e na equação de temos e . Logo, estes elementos podem ser substituídos por:
Por isso, vamos começar criando algumas funções degrau representando , e , para aplicarmos em seguida na equação de . Para criar as funções degraus, usaremos o comando , que tem a estrutura:
Ela cria um degrau unitário e o armazena em : quando , . Se , . Finalmente, para , .
Em um novo script, digite as seguintes linhas de código:
Na primeira linha, definimos as variáveis simbólicas e (indicamos que é em função de ).
Na segunda linha, assumimos que , para que o degrau unitário seja igual a quando pertinente.
Na terceira linha, usamos a função para criar o primeiro degrau unitário, que é armazenado em . Ele representa e será igual a , pois assumimos que .
Na quarta linha, criamos mais um degrau unitário usando , para representar . Ele é armazenado em e também é igual a , pois .
Na quinta linha, criamos o terceiro degrau unitário usando , representando . Ele é armazenado em , e não terá um valor definido como os outros acima, pois ele pode ser igual a , ou , dependendo do valor de .
Passo 3
Após criar , e , entre com a equação de , sem substituir por enquanto:
A equação que define é armazenada na variável . Vamos ver como ficou? Execute o programa e imprima no Command Window:
Repare que o e não estão mais ali, por serem iguais a . O foi substituído por , por não ter um valor definido.
Vamos agora fazer as substituições de por , de por e de por , usando o comando :
Com o comando acima, eu peço ao MATLAB para substituir, em , por , por e por . O resultado da substituição é armazenado em , ficando no lugar da expressão que vimos no print mais acima.
Ah, e repare que eu usei o para quebrar a linha de comando no MATLAB. É um jeito de a linha caber na sua tela sem ter que usar uma barra de rolagem horizontal para ver o código todo.
Vamos ver a nova cara de :
Passo 4
Após fazer as substituições, vamos finalmente calcular a transformada Z de . Para isto, usaremos a função , que tem a sintaxe:
Ela retorna a transformada Z da função , armazenando-a na variável . Quando não tem mais nenhuma entrada em além de , o MATLAB assume que a variável independente de é e fará que a transformada Z seja em função de .
Inclua no seu programa os comandos:
O primeiro comando calcula a transformada Z de e a armazena na variável .
O segundo comando simplifica a expressão de , pondo em evidência alguns termos e cortando o que dá cortar. Desta forma, o resultado fica mais enxuto.
Execute o programa e veja a transformada Z de imprimindo no Command Window:
Resposta
Exercício Resolvido #8
“Adaptado de UNAL – Signal and Systems I (2016506) – Faculty of Engineering – Department of Electrical and Electronics Engineering. Tutorial 10 – Z-Transform, exercício 7”
Um sistema LIT de tempo discreto é descrito por
- Obtenha a função de transferência do sistema, tendo como saída e como entrada;
- Obtenha a resposta do sistema a um degrau unitário.
Passo 1
Uma função de transferência é a razão entre a saída e a entrada de um sistema. No tempo discreto, ela é obtida aplicando a transformada Z em uma equação das diferenças, considerando as condições iniciais nulas, e dividindo a saída pela entrada. Logo, a função de transferência será:
Onde é a tranformada Z de e , de .
Para resolver a letra a o exercício, primeiramente aplicaremos a função do MATLAB na equação de diferenças para encontrarmos a transformada de e , que indicaremos por e , respectivamente. Em seguida, manipularemos a equação para obtermos , que será a função de transferência .
Para resolver a letra b do exercício, calcula-se produto entre e a transformada Z do degrau do unitário, que é criado usando a função . Em seguida, usamos a função para calcular sua transformada inversa e encontrar a resposta ao degrau.
Passo 2
Para resolver a letra a, vamos rearranjar a equação, jogando todos os termos para a esquerda:
No MATLAB, vamos aplicar a função em cada termo da equação individualmente, pois dessa forma conseguiremos fazer a manipulação algébrica que nos dará a função de transferência. Lembrando que tem a sintaxe:
Ela retorna a transformada Z da função , armazenando-a na variável .
A transformada Z dos termos da equação das diferenças será identificada da seguinte maneira:
Onde indica a transformada Z. Logo:
Considerando tudo isso, em um novo script, digite as linhas de código:
Na primeira linha, definimos as variáveis simbólicas , e (indicamos que e são em função de ).
Na segunda linha, assumimos que , para que o degrau unitário , que será usado para resolver a letra b, seja igual a .
Na terceira, quarta, quinta, sexta e sétima linha, a transformada Z de cada um dos termos da equação das diferenças rearranjada é calculada, sendo armazenada em , , , e .
Após definir os termos da equação, construa a transformada Z dela a partir de , , , e , com o comando:
Desta forma, a transformada da equação é armazenada na variável .
Vamos ver como ficou a equação após a aplicação da transformada Z, executando o programa e imprimindo no Command Window:
Passo 3
Nossa, tá enorme, nem dá pra ler. Mas podemos deixar mais enxuto: ele tem termos que têm exatamente a mesma estrutura da função e que representam transformadas que podem ser substituídas por uma única letra, indicando que é a transformada de uma função de . representa a transformada Z de , podendo ser substituído por . No caso, chamaremos só de .
Já representa a transformada Z de , podendo ser substituído por . Como fizemos para , chamaremos só de .
Adicione os comandos abaixo em seu programa para fazer a substituição:
Primeiramente, criamos mais três variáveis simbolicas: , e . Em seguida, usamos a função para pedir ao MATLAB que substitua em a expressão por . Logo abaixo, fazemos a mesma coisa para . O resultado da substituição é armazenado em , ficando no lugar da expressão antiga:
Nossa, bem melhor. E tem mais coisa que podemos substituir em . Precisamos encontrar a função de transferência do sistema, que é determinada considerando as condições iniciais nulas. Logo, . Para fazer a substiuição, adicione ao seu programa a linha de código:
Com este comando, substituímos e por em e armazenamos a nova expressão em , atualizando a equação. Executando o programa, podemos ver como está agora:
Bem mais agradável de se olhar!
Passo 4
Para calcular , precisamos dividir por . Em , a variável representa e podemos usar a função do MATLAB para isolá-la na equação. Adicione em seu código:
Com este comando, a função resolve a equação para a variável e armazena a solução em , atualizando seu valor. Na prática, isolamos na equação com este comando e passa a representar a expressão algébrica de . Rodando o programa, temos que é igual a:
Para definir , divida por , já aplicando a função para eliminar o do numerador de :
E temos que a função de transferência é igual a:
Está aí a resposta da letra a ;)
Passo 5
Com , podemos resolver a letra b do exercício e calcular a resposta ao degrau unitário do sistema, que é dada pelo produto entre e a transformada Z do degrau do unitário. Para criar o degrau unitário, usaremos a função , que tem a estrutura:
Ela cria um degrau unitário e o armazena em : quando , . Se , . Finalmente, para , . Como dissemos que , temos .
Após criar o degrau com , aplicamos nele para obter sua transformada Z. Por isso, digite em seu programa os comandos:
Na primeira linha, criamos o degrau unitário e o armazenamos em . Em seguida, calculamos sua transformada Z e a registramos em .
Para encontrar a resposta ao degrau, inclua no seu programa o comando:
é o produto entre e e representa a transformada Z da resposta ao degrau unitário:
Passo 6
Para finalizar, vamos calcular a transformada inversa de para encontrar , a resposta do sistema ao degrau unitário no domínio de tempo discreto.
Para encontrarmos , vamos aplicar a função do MATLAB em . A função tem a estrutura:
Ela retorna a inversa da transformada Z de , armazenando-a na variável .
Para encontrar , digite os comandos:
Com o primeiro comando, o MATLAB calcula a inversa da transformada Z de e armazena o resultado em . O segundo comndo simplifica , para deixá-lo mais enxuto.
Rodando o programa, é igual a:
Resposta
- A função de transferência é:
- A resposta ao degrau unitário é: