Funções de Transferência

Ver Todos os Exercícios

Teoria

Introdução

E aí, pequeno gafanhoto? Se você já passou por alguma disciplina de Controle, com certeza viu o que era uma função de transferência. Relembrando rapidamente, uma função de transferência é uma forma de representar a dinâmica de um sistema linear e invariante no tempo. Ela é a relação entre a transformada de Laplace do sinal de saída pela transformada de Laplace do sinal de entrada, com todas as condições iniciais nulas.

Para ilustrar essa definição, considere o diagrama de blocos abaixo:

Nele, a transformada de Lapalce do sinal de entrada é representada por X ( s ) , já a transformada do sinal de saída é representado por Y ( s ) . H ( s ) representa a função de transferência, dada por:

H s = Y ( s ) X ( s )

Funções de transferência são utilizadas na criação de controladores de sistemas como servomotores, suspensões ativas, circuitos elétricos, entre outros. Caso queira dar mais uma refrescada na memória, o Responde Aí tem um conteúdo completinho sobre Sistemas de Controle ;)

O MATLAB possui algumas funções para criar funções de transferência e modelar sinais de entrada. Na aula de hoje, você terá o prazer de conhecer algumas delas.

Criando uma função de transferência no MATLAB

No MATLAB, usamos a função t f para criar funções de transferência de tempo contínuo ou discreto no domínio da frequência (representado pela variável s da transformada de Laplace, para tempo contínuo). Nesta aula, veremos apenas funções de transferência de tempo contínuo, que podem ser criadas no MATLAB usando t f com a sintaxe:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, um contendo os coeficientes do numerador da função de transferência e outro contendo os coeficientes do denominador. t f retorna um objeto representando a função de transferência.

Vamos ver como a função t f funciona com um exemplo. Digamos que você queira entrar, no MATLAB, a função de transferência:

H s = 2 s + 1 4 s 2 + 2 s + 1

Em um novo script, crie dois vetores, um contendo os coeficientes do numerador e outro contendo os coeficientes do denominador:

Em seguida, entre com a função t f :

Utilizamos como entrada os vetores n u m e r a d o r e d e n o m i n a d o r e a função t f   vai nos retornar a função de transferência, armazenando-a na variável s i s t e m a .

Para ver a cara da função de transferência, rode o programa e imprima no Command Window a variável s i s t e m a :

Bem legal, né? O MATLAB já imprime ela bonitinha pra gente e indica que s i s t e m a representa uma função de transferência de tempo contínuo. Repare que, por padrão, o MATLAB adota a letra s na transformada de Laplace.

Função de transferência e sinais de entrada

Podemos ver a resposta de um sistema, tendo criado no MATLAB sua função de transferência usando o comando t f , considerando alguns sinais de entrada. Nesta aula, veremos três sinais de entrada diferentes: degrau unitário, impulso e entrada arbitrária.

Para ver a resposta ao degrau unitário, utilize o comando s t e p :

s t e p ( s i s t e m a )

Onde s i s t e m a é a função de transferência criada usando o comando t f . A função s t e p com a sintaxe acima plota o gráfico da resposta ao degrau unitário.

Para vermos como o s t e p funciona, vamos usar o script da seção anterior, com a função de transferência H s = 2 s + 1 4 s 2 + 2 s + 1 e que, por enquanto, tem as seguintes linhas de código:

Adicione ao script o comando:

Rode o programa e você verá este lindo gráfico:

Caso você queira um degrau de amplitude A em vez de 1 , você pode multiplicar a entrada de s t e p por A :

s t e p ( A * s i s t e m a )

Digamos que, no nosso exemplo, você queira usar um degrau de amplitude A = 2 em vez de um degrau unitário. Para ver a resposta do sistema, adicione no script a linha de código:

Rodando o programa, você terá um gráfico muito parecido com o de cima, mudando apenas a amplitude do sinal:

O comando s t e p também pode ter a seguinte sintaxe:

y = s t e p ( s i s t e m a , t )

Neste formato, s t e p tem uma segunda entrada, um vetor t representando o intervalo de tempo em que quero calcular a resposta ao degrau unitário. Repare que o MATLAB deu a resposta para um intervalo de 20   s , pode acontecer de eu querer ver a resposta em um intervalo de tempo específico.

Além disso, neste formato, a função s t e p me retorna um vetor contendo a resposta ao degrau para cada elemento de t . Esse recurso pode ser útil caso você tenha que trabalhar com a resposta depois. Quando usamos essa sintaxe, o gráfico não é gerado automaticamente. Para vermos o gráfico da resposta ao degrau, devemos usar o comando p l o t ( t , y ) .

Para o nosso exemplo, digamos que eu queira ver a resposta ao degrau unitário por 30   s em vez de 20   s . Para isto, eu utilizo as três linhas de código:

Na primeira linha, um vetor t é criado: ele vai de 0 a 30   s , com um passo de 0,1   s .

Na segunda linha, é usado comando s t e p com a sintaxe y = s t e p ( s i s t e m a , t ) .

Na terceira linha, usamos o comando p l o t   pra gerar o gráfico.

Ao rodarmos o programa, temos:

Note que esse gráfico é igualzinho ao gráfico gerado usando apenas s t e p ( s i s t e m a ) , ele apenas vai até 30   s em vez de 20   s .

O comando para ver a resposta ao impulso tem a sintaxe igualzinha ao s t e p . A resposta ao impulso é calculada usando o comando i m p u l s e :

i m p u l s e ( s i s t e m a )

Novamente, s i s t e m a é a função de transferência criada usando o comando t f e, usando a sintaxe acima, plota-se automaticamente o gráfico da resposta ao impulso.

Para o nosso exemplo, adicione o comando:

Rodando o programa, você terá o seguinte gráfico:

Assim como s t e p , o comando i m p u l s e também pode ter a sintaxe y = i m p u l s e ( s i s t e m a , t ) , com as mesmas utilidades.

Finalmente, para uma entrada arbitrária, temos o comando:

l s i m ( s i s t e m a , u , t )

Onde s i s t e m a é a função de transferência criada com t f ; u é um vetor representando a entrada arbitrária para cada elemento do vetor t , que representa o tempo. O comando l s i m , com a sintaxe acima, gera o gráfico da resposta à entrada u quando rodamos o programa.

Digamos que, para nosso exemplo, queremos ver qual é a resposta para a entrada u ( t ) em função do tempo t :

u t = 2 e - 0,5 t

No script do MATLAB onde criamos a função de transferência H s = 2 s + 1 4 s 2 + 2 s + 1 (armazenada na variável s i s t e m a ), adicione os comandos:

Na primeira linha, criamos o vetor t : ele vai de 0 a   20 , com um passo de 0,1   s .

Na segunda linha, calculamos u ( t ) para cada elemento de t e armazenamos o resultado no vetor u .

Na terceira linha, usamos o comando o l s i m .

Rodando o programa, temos um gráfico bem legal:

A curva vermelha é a entrada u e a curva azul, a resposta do sistema a u .

Assim como s t e p e i m p u l s e , l s i m pode ser usada no formato y = l s i m ( s i s t e m a , u ,   t ) , para armazenar a resposta do sistema no vetor y . Mas, assim como os outros, com essa sintaxe, não temos o gráfico diretamente, temos que usar a função p l o t em seguida.

Vimos bastante coisa, né? Bora praticar para fixar bem esse conteúdo ;D

Função de transferência e sinais de entrada

Exercícios Resolvidos

Exercício Resolvido #1

Crie no MATLAB a função de transferência:

G s = s + 2 s 2 + s + 10

Passo 1

O exercício pede para entrarmos no MATLAB com a função de transferência dada o enunciado. Para isto, usaremos a função t f do MATLAB.

Como a função de transferência é em função de s e o enunciado não especifica mais nada, isso quer dizer que ela foi obtida por meio da transformada de Laplace a partir de funções no domínio de tempo contínuo.

Passo 2

Antes de começar o código, vamos relembrar a sintaxe da função t f :

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

Para G ( s ) , o polinômio do numerador é s + 2 . Já o polinômio do denominador é s 2 + s + 10 .

Abra um script novo no MATLAB e crie dois vetores, um contendo os coeficientes de s + 2 e outro contendo os coeficientes de s 2 + s + 10 , indo do elemento com maior expoente ao de menor expoente:

O vetor n u m contém os coeficientes do numerador e o vetor d e n , do denominador.

Passo 3

Em seguida, utilize a função t f para criar a função de transferência G ( s ) no MATLAB:

A função de transferência é armazenada na variável s i s , isto é, s i s é igual a G ( s ) .

Ao executar o programa, você terá implementado G ( s ) no MATLAB. Você pode vê-la pedindo ao MATLAB para imprimir s i s no Command Window.

Resposta

Exercício Resolvido #2

Um circuito RLC série tem a seguinte função de transferência:

G s = V c ( s ) V ( s ) = 1 L C s 2 + R L s + 1 L C

Defina a função de transferência no MATLAB para os seguintes parâmetros: R = 6   Ω , C = 0,04   F e L = 1   H .

Passo 1

O exercício pede para definirmos no MATLAB a função de transferência de um circuito RLC. Para isto, entraremos com os parâmetros do circuito ( R , L e C ) e em seguida usaremos a função t f do MATLAB.

Como a função de transferência é em função de s e o enunciado não especifica mais nada, isso quer dizer que ela foi obtida por meio da transformada de Laplace a partir de funções no domínio de tempo contínuo.

Passo 2

Primeiramente, vamos entrar com parâmetros do circuito RLC dados pelo enunciado. Em um novo script do MATLAB, digite:

Agora devemos criar as entradas da função t f para definirmos no MATLAB G ( s ) . Vamos relembrar a sintaxe da função t f :

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

Para G ( s ) , o polinômio do numerador é 1 / L C . Já o polinômio do denominador é s 2 + R L s + 1 L C .

No nosso script, vamos criar duas variáveis representando os coeficientes dos polinômios. Como o polinômio do numerador tem somente um elemento correspondendo a 1 L C ∙ s 0 = 1 L C ∙ 1 = 1 / L C , a variável representando seus coeficientes pode ser um número real. Chamaremos essa variável de n u m e ela é igual a 1 / L C .

A outra variável é um vetor chamado d e n , contendo os coeficientes de s 2 + R L s + 1 L C , indo do elemento com maior expoente ( s 2 ) ao de menor expoente ( 1 / L C , pois ele multiplica s 0 = 1 ):

Passo 3

Em seguida, utilize a função t f para criar a função de transferência do circuito RLC no MATLAB:

A função de transferência é armazenada na variável G , isto é, G é igual a G ( s ) .

Ao executar o programa, você terá definido G ( s ) no MATLAB. Você pode vê-la pedindo ao MATLAB para imprimir G no Command Window.

Resposta

Exercício Resolvido #3

Seja

F s = 8 ( s + 1 ) ( s + 3 ) s + 2 s + 4 s + 6 2

Plote a resposta ao degrau de amplitude 2 de F ( s ) .

Passo 1

O exercício pede para gerarmos o gráfico da resposta ao degrau de amplitude 2 para uma função de transferência F ( s ) . Para isto, usaremos a função t f para criarmos F ( s ) no MATLAB e, em seguida, usaremos a função s t e p , que plota a resposta ao degrau de uma função de transferência.

Como F ( s ) é em função de s e o enunciado não especifica mais nada, isso quer dizer que ela foi obtida por meio da transformada de Laplace a partir de funções no domínio de tempo contínuo.

Passo 2

Vamos relembrar a sintaxe da função t f :

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

Precisamos criar os vetores com os coeficientes dos polinômios, mas repare que o numerador e o denominador de F ( s ) estão fatorizados. Logo, precisamos expandi-los (isto é, multiplicar os termos) para termos uns polinômios bem bonitos para pegar os coeficientes.

Vamos fazer isso no MATLAB mesmo. Em um script, digite as linhas de código:

Na primeira linha, criamos uma variável simbólica s .

Na segunda linha, entramos com o numerador de F ( s ) , armazenando-o na variável n u m _ o r i g i n a l .

Na terceira linha, usamos o comando e x p a n d do MATLAB em n u m _ o r i g i n a l . Este comando multiplicará os termos de n u m _ o r i g i n a l e gerará o polinômio que precisamos, armazenando-o em n u m _ p o l .

Rodando o programa, temos:

Adicione ao seu script as duas linhas de código abaixo, para fazer exatamente a mesma coisa com o denominador de F ( s ) :

Na primeira linha, entramos com denominado de F ( s ) , armazenando-o em d e n _ o r i g i n a l . Em seguida, usamos e x p a n d em d e n _ o r i g i n a l para gerar o polinômio do denominador, armazenando-o em d e n _ p o l .

Rodando o programa, temos os polinômios do numerador e do denominador de F ( s ) :

Passo 3

Agora que conhecemos os polinômios do numerador e do denominador de F ( s ) , podemos criar os vetores que servirão de entrada para f t .

O polinômio do numerador é 8 s 2 + 32 s + 24 . Já o polinômio do denominador é s 4 + 18 s 3 + 116 s 2 + 312 s + 288 .

No nosso script, vamos criar dois vetores contendo os coeficientes dos polinômios. O primeiro vetor conterá os coeficientes do polinômio do numerador e será chamado de n u m . O segundo vetor se chamará d e n e terá os coeficientes do polinômio do denominador.

Ambos os vetores vão do elemento com maior expoente ( s 2 para o numerador e s 4 para o denominador) ao de menor expoente ( 24 para o numerador e 288 para o denominador, pois multiplicam s 0 = 1 ):

Em seguida, utilize a função t f para criar a função de transferência F ( s ) no MATLAB:

A função de transferência é armazenada na variável F , isto é, F é igual a F ( s ) .

Vamos ver a carinha dela? Rode o programa e você terá:

Passo 4

Agora que já entramos com F ( s ) no MATLAB, vamos ver qual é a resposta de F ( s ) a um degrau de amplitude 2 . Para isto, usaremos a função s t e p , que tem a sintaxe:

s t e p ( f u n ç ã o   d e   t r a n s f e r ê n c i a )

A função s t e p com a sintaxe acima plota o gráfico da resposta ao degrau unitário de f u n ç ã o   d e   t r a n s f e r ê n c i a , que é uma função de transferência criada usando o comando t f .

Se quiséssemos a resposta ao degrau unitário, bastaria incluir o comando s t e p ( F ) em nosso código. Contudo, queremos ver a resposta para um degrau de amplitude 2 . Por isso, devemos multiplicar F por 2 ao utilizarmos s t e p . Isto quer dizer que você deve adicionar no script o seguinte comando:

Ao rodar o programa, você terá o gráfico da resposta de F ( s ) a um degrau de amplitude 2 .

Resposta

Exercício Resolvido #4

Seja

X s = s + 1 s 2 + 2 s + 5

Plote a resposta de F ( s ) à entrada r ( t ) = e - 0.7 t .

Passo 1

O exercício pede para gerarmos o gráfico da resposta à entrada de uma função exponencial para uma função de transferência X ( s ) . Para isto, usaremos a função t f para criarmos X ( s ) no MATLAB e, em seguida, usaremos a função l s i m , que plota a resposta a uma entrada arbitrária de uma função de transferência.

Como X ( s ) é em função de s e o enunciado não especifica mais nada, isso quer dizer que ela foi obtida por meio da transformada de Laplace a partir de funções no domínio de tempo contínuo.

Passo 2

Primeiramente, vamos rever a sintaxe da função t f :

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

O polinômio do numerador de X ( s ) é s + 1 . Já o polinômio do denominador é s 2 + 2 s + 5 .

Em um novo script, vamos criar dois vetores contendo os coeficientes dos polinômios. O primeiro vetor conterá os coeficientes do polinômio do numerador e será chamado de n u m . O segundo vetor se chamará d e n e terá os coeficientes do polinômio do denominador.

Ambos os vetores vão do elemento com maior expoente ( s para o numerador e s 2 para o denominador) ao de menor expoente ( 1 para o numerador e 5 para o denominador, pois multiplicam s 0 = 1 ):

Tendo criado os vetores de entrada de t f , podemos incluir o comando abaixo para criar a função de transferência X ( s ) :

A função de transferência é armazenada na variável X , isto é, X é igual a X ( s ) . Podemos conferir isso rodando o programa e pedindo ao MATLAB para imprimir X no Command Window:

Passo 3

Agora que já entramos com X ( s ) no MATLAB, vamos ver qual é a resposta de X ( s ) à entrada r ( t ) = e - 0.7 t . Para isto, usaremos a função l s i m , que tem a sintaxe:

l s i m ( f u n ç ã o   d e   t r a n s f e r ê n c i a , r , t )

Onde f u n ç ã o   d e   t r a n s f e r ê n c i a é uma função de transferência criada com t f ; r é um vetor representando uma entrada arbitrária (pode ser qualquer expressão em função do tempo) para cada elemento do vetor t , que representa o tempo. O comando l s i m , com a sintaxe acima, gera o gráfico da resposta à entrada r quando rodamos o programa.

No exercício, queremos ver qual é a resposta para a entrada r ( t ) em função do tempo t :

r t = e - 0,7 t

No nosso script, adicione os comandos:

Na primeira linha, criamos o vetor t : ele vai de 0 a   20 , com um passo de 0,01   s .

Na segunda linha, calculamos r ( t ) para cada elemento de t e armazenamos o resultado no vetor r .

Na terceira linha, usamos o comando o l s i m para a função de transferência X criada no passo anterior.

Ao executar o programa, você terá o gráfico da resposta de X ( s ) a r ( t ) .

Resposta

A entrada r ( t ) = e - 0.7 t é representada pela curva vermelha.

A resposta de X ( s ) a r ( t ) é representada pela curva azul.

Exercício Resolvido #5

Plotar a resposta ao impulso de

G s = 3 e - 2 s 10 s + 1

Passo 1

O exercício pede para gerarmos o gráfico da resposta ao impulso de G ( s ) . Para isto, usaremos a função t f do MATLAB para criarmos a função de transferência G ( s ) e, em seguida, usaremos a função i m p u l s e para ver sua resposta ao impulso.

Contudo, você deve ter reparado que G ( s ) tem um formato um pouco diferente do que estamos acostumados: existe um exponencial no numerador. Um exponencial no numerador de uma função de transferência representa matematicamente um atraso entre o sinal de entrada e o de saída. É uma forma de modelar matematicamente atrasos em sistemas de controle reais. Por exemplo, em um reator químico ou em aeronaves, pode haver uma demora de alguns segundos do sinal de saída, devido a atuadores ou sensores.

Normalmente, funções de transferência que modelam atrasos no sinal tem o seguinte formato:

G s = H ( s )   e - τ s

Onde H ( s ) seria uma função de transferência no formato que estamos acostumados (polinômios no numerador e no denominador) e e - τ s modela um atraso de τ segundos entre o sinal de entrada e o sinal de saída.

No exercício, temos τ = 2 segundos e

H s = 3 10 s + 1

Veremos que, para incluirmos e - τ s em uma função de transferência usando o f t do MATLAB, basta adicionarmos mais uma entrada em f t indicando o tempo de atraso τ .

Passo 2

Para entendermos bem como funciona esse conceito de tempo de atraso entre os sinais de entrada e de saída, vamos primeiro trabalhar somente com H ( s ) e ver sua resposta ao impulso.

Usaremos a função f t para criarmos H ( s ) no MATLAB, que tem a sintaxe:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

O polinômio do numerador de H ( s ) é 3 . Já o polinômio do denominador é 10 s + 1 .

No nosso script, vamos criar duas variáveis representando os coeficientes dos polinômios. Como o polinômio do numerador tem somente um elemento correspondendo a 3 ∙ s 0 = 3 ∙ 1 = 3 , a variável representando seus coeficientes pode ser um número real. Chamaremos essa variável de n u m e ela é igual a 3 .

A outra variável é um vetor chamado d e n , contendo os coeficientes de 10 s + 1 , indo do elemento com maior expoente ( s ) ao de menor expoente ( 1 , pois ele multiplica s 0 = 1 ):

Tendo criado as entradas de t f , podemos incluir o comando abaixo para criar a função de transferência H ( s ) :

A função de transferência é armazenada na variável H , isto é, H é igual a H ( s ) . Podemos conferir isso rodando o programa e pedindo ao MATLAB para imprimir X no Command Window:

Passo 3

Após criarmos H ( s ) , vamos ver sua resposta ao impulso, sem o atraso de 2 segundos, isto é, desconsiderando o componente e - 2 s . A resposta ao impulso de uma função de transferência é calculada usando o comando i m p u l s e :

i m p u l s e ( s i s t e m a )

Onde s i s t e m a é a função de transferência criada usando o comando t f . Usando a sintaxe acima, plota-se automaticamente o gráfico da resposta ao impulso de s i s t e m a .

Inclua em seu script os comandos:

Na primeira linha, dizemos que o gráfico que será gerado por i m p u l s e ( H ) será a primeira figura. Incluimos esse comando para que os gráficos sem e com atraso sejam gerados em janelas diferentes e possamos compará-los.

Na segunda linha, usamos a função i m p u l s e para vermos a resposta ao impulso de H ( s ) .

Vamos rodar o programa para vermos a resposta ao impulso sem o atraso de 2 segundos:

Perceba que a curva azul já começa no instante 0 , que é o instante quando ocorre o impulso.

Passo 4

Agora vamos incluir no sistema o atraso de 2 s entre a entrada e a saída, isto é, vamos criar a função de transferência G ( s ) . Lembrando que um atraso entre o sinal de entrada e de saida pode ser modelado assim:

G s = H ( s )   e - τ s

Para modelar um atraso de tempo em uma função de transferência, devemos incluir mais uma entrada na função t f , que terá o seguinte formato:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r ,   ' I n p u t D e l a y ' , τ )

Os vetores n u m e r a d o r e d e n o m i n a d o r contêm os coeficientes dos polinômios do numerador e do denominador de H ( s ) .

Além dos vetores com os coeficientes dos polinômios do numerador e do denominador de H ( s ) , existe uma terceira entrada: ' I n p u t D e l a y ' , τ . Essa terceira entrada indica que há um atraso de τ segundos entre o sinal de entrada e o de saída.

Para o exercício, como já criamos n u m e d e n com os coeficientes de H ( s ) no passo 2, para criarmos G ( s ) , vamos só adicionar ao nosso script o comando:

Com este comando, criamos a função de transferência G ( s ) do enunciado e a armazenamos em G . Ao incluirmos ‘ I n p u t D e l a y ’ , 2 como entrada, indicamos que τ = 2 em G ( s ) .

Se você rodar o programa que tem até agora e pedir para ver G , você verá que G é exatamente a função de transferência do enunciado:

Passo 5

Após criar G ( s ) , vamos ver sua resposta ao impulso. Para isto, adicione em seu script os comandos:

Na primeira linha, dizemos que o gráfico que será gerado por i m p u l s e ( G ) será a segunda figura. Na segunda linha, usamos a função i m p u l s e para vermos a resposta ao impulso de G ( s ) .

Ao executarmos nosso programa, teremos dois gráficos gerados. Você pode colocá-los lado a lado para compará-los:

À esquerda, temos a Figure 1, que tem a resposta ao impulso de H ( s ) , isto é, sem o atraso de 2 s.

À direita, temos a Figure 2, que tem a resposta ao impulso de G ( s ) , isto é, com o atraso de 2 s. Perceba que há uma diferença de em torno de 2 segundos entre as curvas azuis da esquerda e da direita. Isso ocorre devido ao exponencial de G ( s ) , que representa esse tempo de atraso.

Resposta

Exercício Resolvido #6

A função de transferência do sistema mecânico mostrado abaixo quando submetido a uma excitação x b ( t ) da base é:

G s = x m ( s ) x b ( s ) = 2 ξ ω n s + ω n 2 s 2 + 2 ξ ω n s + ω n 2

Considerando ξ = 0,1 e ω n = 4   r a d / s , encontre a resposta do sistema a uma excitação x b t = 2 s i n s i n   ( - 0,5 t )   , para 0 ≤ t ≤ 20 .

Passo 1

O exercício pede para gerarmos o gráfico da resposta de um sistema massa-mola-amortecedor com uma base cuja excitação é dada por uma função trigonométrica. Para isto, usaremos a função t f para criarmos G ( s ) no MATLAB e, em seguida, usaremos a função l s i m , que plota a resposta a uma entrada arbitrária de uma função de transferência.

Passo 2

Em um novo script, digite os parâmetros ξ = 0,1 e ω n = 4   r a d / s do sistema:

Tendo definido x i e o m e g a , podemos entrar com G ( s ) no MATLAB, por meio da função t f , que tem como sintaxe:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

O polinômio do numerador de G ( s ) é 2 ξ ω n s + ω n 2 . Já o polinômio do denominador é s 2 + 2 ξ ω n s + ω n 2 .

Vamos criar dois vetores contendo os coeficientes dos polinômios. O primeiro vetor conterá os coeficientes do polinômio do numerador e será chamado de n u m . O segundo vetor se chamará d e n e terá os coeficientes do polinômio do denominador. Ambos os vetores vão do elemento com maior expoente ao de menor expoente:

Com os vetores de entrada de t f , inclua o comando abaixo para criar G ( s ) :

A função de transferência é armazenada na variável G . Confira se você digitou tudo certinho rodando o programa e pedindo ao MATLAB para imprimir G no Command Window:

Passo 3

Tendo definido G ( s ) no MATLAB, vamos ver qual é a resposta x m ( t ) do sistema à excitação x b t = 2 s i n s i n   ( - 0,5 t )   . Para isto, usaremos a função l s i m , que tem a sintaxe:

l s i m ( f u n c a o _ t r a n s f e r e n c i a , r , t )

Onde f u n c a o _ t r a n s f e r e n c i a é uma função de transferência criada com t f ; r é um vetor representando uma entrada arbitrária (pode ser qualquer expressão em função do tempo) para cada elemento do vetor t , que representa o tempo. O comando l s i m , com a sintaxe acima, gera o gráfico da resposta de f u n c a o _ t r a n s f e r e n c i a à entrada r .

No exercício, queremos ver qual é a resposta do sistema para a entrada x b ( t ) em função do tempo t , para 0 ≤ t ≤ 20 :

x b t = 2 s i n s i n   ( - 0,5 t )  

No nosso script, adicione os comandos:

Na primeira linha, criamos o vetor t : ele vai de 0 a   20 , com um passo de 0,01   s .

Na segunda linha, calculamos x b ( t ) para cada elemento de t e armazenamos o resultado no vetor x _ b .

Na terceira linha, usamos o comando o l s i m para a função de transferência G criada no passo anterior. Desta forma, teremos a resposta de G para a entrada x _ b .

Ao executar o programa, teremos o gráfico da resposta do sistema massa-mola-amortecedor x m ( t ) à excitação x b ( t ) .

Resposta

A excitação x b t = 2 s i n s i n   ( - 0,5 t )   é representada pela curva vermelha.

A resposta x m ( t ) é representada pela curva azul.

Exercício Resolvido #7

Considere os sistemas de primeira a quarta ordem dados por:

G 1 = 1 s + 1

G 2 = 100 s 2 + 10 s + 100

G 3 = G 1 G 2

G 4 = 19,8 s + 20 s + 20 G 3

Plote em um mesmo gráfico as respostas ao degrau unitário de G 1 , G 2 , G 3 e G 4 e compare-as.

Passo 1

O exercício pede para plotarmos em um mesmo gráfico as resposta ao degrau unitário das funções de transferência G 1 , G 2 , G 3 e G 4 . Para isto, usaremos a função t f para criarmos as funções de transferência no MATLAB e, em seguida, usaremos a função s t e p , que plota a resposta ao degrau de uma função de transferência, para cada uma.

Passo 2

Primeiramente devemos criar G 1 , G 2 , G 3 e G 4 no MATLAB, usando a função t f , que tem como sintaxe:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). Ambos os vetores vão do elemento com maior expoente ao de menor expoente.

t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

Vamos começar com G 1 , cujo numerador é 1 . Já o denominador é o polinômio s + 1 . Em um novo script, vamos criar duas variáveis contendo os coeficientes dos polinômios de G 1 . A primeira variável representará os coeficientes do polinômio do numerador e será chamada de n u m _ G 1 . A segunda variável será um vetor chamado d e n _ G 1 e terá os coeficientes do polinômio do denominador. Após criar as duas variáveis de entrada de t f , digite o comando G 1 = t f ( n u m _ G 1 ,   d e n _ G 1 ) :

Desta forma, a função de transferência G 1 é criada e armazenada na variável G 1 . Podemos ver como G 1 ficou, rodando o programa e imprimindo-o no Command Window:

Faça o mesmo procedimento para G 2 :

A variável n u m _ G 2 contém o numerador de G 2 e o vetor d e n _ G 2 contém os coeficientes do polinômio do denominador de G 2 . A função de transferência G 2 é criada usando t f e é armazenada na variável G 2 . Vamos ver como ficou G 2 :

Passo 3

Para criar G 3 , adicione em seu script o comando:

Execute o programa e veja como ficou G 3 :

Para definir G 4 , vamos criar uma “função de transferência auxiliar”, chamada de H :

H = 19,8 s + 20 s + 20

Temos então que G 4 = H G 3 .

Vamos criar os vetores com os coeficientes dos polinômios do numerador e do denominador de H . Vamos chamá-los de n u m _ H e d e n _ H . Logo em seguida, vamos criar H usando a função t f :

Para calcular G 4 , adicione o comando:

Desta forma, G 4   tem essa cara:

Passo 4

Para plotar a resposta ao degrau unitário de G 1 , G 2 , G 3 e G 4 , usaremos o comando s t e p , que tem a sintaxe:

s t e p ( f u n c a o _ t r a n s f e r e n c i a )

A função s t e p plota o gráfico da resposta ao degrau unitário de f u n c a o _ t r a n s f e r e n c i a , que é uma função de transferência criada usando o comando t f .

Para termos a resposta ao degrau unitário de G 1 , G 2 , G 3 e G 4 , devemos incluir no nosso script os comandos s t e p ( G 1 ) , s t e p ( G 2 ) e assim por diante. Contudo, o enunciado pediu que plotássemos tudo no mesmo gráfico. Para fazermos isto, devemos incluir o comando h o l d   o n após o primeiro comando s t e p que digitarmos:

O comando h o l d   o n faz com que a curva que acabou de ser plotada não seja substituída pela próxima a ser plotada, de forma que elas apareçam juntas no gráfico.

O comando l e g e n d ( ' G _ 1 ' , ' G _ 2 ' , ' G _ 3 ' , ' G _ 4 ' ) serve para criar a legenda do gráfico, para sabermos qual é a resposta de cada função de transferência.

Execute o programa e você terá o gráfico com as respostas de G 1 , G 2 , G 3 e G 4 ao degrau unitário.

Resposta

A curva azul é a resposta de G 1 ao degrau unitário.

A curva vermelha é a resposta de G 2 .

A curva amarela é a resposta de G 3 .

A curva roxa é a resposta de G 4 .

As respostas de G 1 e G 3 são similares, enquanto as respostas de G 2 e G 4 são parecidas.

Exercício Resolvido #8

Uma suspensão automotiva é tipicamente passiva, sendo composta de molas e amortecedores. Para melhorar a suspensão de carros, sistemas de suspensão ativa têm sido propostos. Na figura abaixo, temos um modelo simplificado de uma suspensão automotiva ativa, no qual r ( t ) representa a entrada da superfície da estrada e y ( t ) é a posição vertical do compartimento dos passageiros.

Assuma que a massa do pneu é desprezível e que a velocidade é usada no controle da suspensão ativa. A função de transferência de velocidade da estrada r ( t ) à posição y ( t ) é:

G s = c + b s + k m s 2 + c + b s + k

Considere m = 5000   k g , k = 8 ∙ 10 5   N / m e b = 12000   N s / m . Plote a resposta ao degrau unitário do sistema com e sem controle ativo em um mesmo gráfico. Para considerar o controle ativo, use c = 1,14 ∙ 10 5 . Já para modelar o sistema sem o controle ativo, adote c = 0 .

Passo 1

O exercício nos dá a função de transferência G ( s ) e pede para encontrarmos sua resposta ao degrau unitário considerando dois valores diferentes de c , plotando as respostas em um mesmo gráfico.

Para isto, a função t f para criar G s e o comando s t e p para plotar o gráfico com a resposta ao degrau ficarão dentro de um laço f o r , que atualizará G ( s ) e o gráfico para cada valor de c .

Passo 2

O primeiro passo é digitar em um script novo os dados m = 5000   k g , k = 8 ∙ 10 5   N / m , b = 12000   N s / m e c = 1,14 ∙ 10 5 :

Note que chamei o valor de c para o modelo com suspensão ativa de c _ a t i v o .

Em seguida, crie um vetor c com dois elementos: os valores 0 e c _ a t i v o . Este vetor vai nos auxiliar a montar G ( s ) dentro do laço f o r :

Inicie um laço f o r , com variável de controle i , que vai de 0 a 1 :

Passo 3

Vamos entrar com G ( s ) dentro do laço f o r , escrevendo dentro dele o comando t f , que tem como sintaxe:

s i s t e m a = t f ( n u m e r a d o r , d e n o m i n a d o r )

A função t f tem como entrada dois vetores, o primeiro contendo os coeficientes do polinômio do numerador da função de transferência (representado por n u m e r a d o r ) e outro contendo os coeficientes do polinômio do denominador (representado por d e n o m i n a d o r ). t f retorna um objeto representando a função de transferência, que será armazenada em s i s t e m a .

Vamos criar dois vetores, dentro do laço f o r , contendo os coeficientes dos polinômios do numerador e do denominador de G ( s ) . O polinômio do numerador é c + b s + k e seus coeficientes serão armazenados em um vetor chamado n u m . Já o polinômio do denominador é m s 2 + c + b s + k e seus coeficientes serão armazenados em um vetor chamado d e n . Desta forma, o laço f o r tem essa cara por enquanto:

Logo abaixo dos vetores, já podemos incluir o comando G = t f ( n u m , d e n ) , para criar a variável G , que contém G ( s ) .

Note que em vez de eu usar simplesmente c , usei c ( i ) , indicando que na iteração i vou usar o elemento na posição i do vetor c . Logo, na primeira iteração, c 1 = 0 e estará sendo modelada a suspensão sem controle ativo. Na segunda iteração, c 2 = c _ a t i v o = 1,14 ∙ 10 5 , sendo modelada, portanto, a suspensão com controle ativo.

Em outras palavras, com o laço de repetição f o r , os vetores n u m e d e n serão atualizados a cada iteração com valores c ( i ) diferentes, gerando, portanto, uma função de transferência G diferente a cada iteração.

Passo 4

Para gerar o gráfico com as respostas ao degrau unitário da suspensão com e sem controle ativo, utilize dentro do laço f o r o comando s t e p , que tem a sintaxe:

s t e p ( f u n c a o _ t r a n s f e r e n c i a )

A função s t e p plota o gráfico da resposta ao degrau unitário de f u n c a o _ t r a n s f e r e n c i a , que é uma função de transferência criada usando o comando t f .

Logo, acrescente o comando s t e p ( G ) dentro do laço f o r :

Abaixo de s t e p ( G ) , inclua o comando h o l d   o n . Este comando serve para que o gráfico com a resposta ao degrau seja atualizado a cada iteração, mas sem que as curvas da iteração anterior desapareçam.

Pra finalizar, coloque logo abaixo do laço f o r o comando:

Ele fará com que o gráfico com as respostas ao degrau tenham uma legenda, indicando qual curva representa o resultado para a suspensão sem controle ativo e com controle ativo. As legendas dentro de l e g e n d devem estar na ordem com que os diagramas foram criados.

Execute o programa e você terá o gráfico pedido pelo enunciado.

Resposta

A resposta do sistema sem controle ativo é representada pela curva azul. Já a resposta do sistema com controle ativo é dada pela curva vermelha.