Exercícios Resolvidos de Transformada de Laplace

Ver Teoria

Enunciado

A equação diferencial que modela um certo sistema de controle de posição de uma ferramenta de corte de metal é

d 3 x d t 3 + 6 + K D d 2 x d t 2 + 11 + K P d x d t + 6 + K I x = K D d 2 x d d t 2 + K P d x d d t + K I x d

Onde a posição real da ferramenta é x , a posição desejada é x d ( t ) , e K P , K I e K D são constantes chamadas “ganhos”. Use o método da transformada de Laplace para encontrar a resposta ao degrau unitário (isto é, x d ( t ) é uma função degrau unitário). Use condições iniciais nulas. Compare a resposta para três casos:

  1. K P = 30 ,   K I = K D = 0
  2. K P = 27 ,   K I = 17,18 , K D = 0
  3. K P = 36 ,   K I = 38,1 , K D = 8,52

Passo 1

O exercício pede para encontrarmos a resposta de x ( t ) a x d ( t ) igual a um degrau unitário, usando a transformada de Laplace. Em outras palavras, precisamos encontrar a solução x ( t ) da equação diferencial de terceira ordem dada pelo enunciado. Primeiramente, aplicaremos a função l a p l a c e do MATLAB na equação diferencial para encontrarmos a transformada de x ( t ) . A transformada de Laplace de x ( t ) será indicada por X ( s ) .

Após encontrarmos X ( s ) , vamos aplicar i l a p l a c e para encontrar a inversa da transformada, isto é, x ( t ) , que é a solução da equação diferencial.

Vamos fazer esse procedimento primeiro considerando K P , K I e K D simbólicos, substituindo-os pelos valores dados pelo enunciado somente no final. Para compararmos a resposta nos três casos, substituiremos em x ( t ) os valores de K P , K I e K D e veremos como ficará a expressão simbólica para cada caso.

Passo 2

Comece entrando com a equação diferencial no MATLAB, termo a termo. Em um script novo, digite as linhas de código:

Na primeira linha, são criadas as variáveis simbólicas K p , K i , K d e x ( t ) , sendo indicado que x é em função de t .

Na segunda linha, calculamos a derivada d x d t usando a função d i f f ( x , t ) do MATLAB. Como estamos trabalhando com variáveis simbólicas, d i f f ( x , t ) apenas representa a derivada de x em relação a t e é armazenado em D x .

Na terceira linha, calculamos a derivada d 2 x d t 2 , pedindo ao MATLAB para calcular a derivada de D x em relação a t ( d i f f ( D x , t ) ). A segunda derivada de x é registrada em D 2 x .

Na quarta linha, calculamos a derivada d 3 x d t 3 , pedindo ao MATLAB para calcular a derivada de D 2 x em relação a t ( d i f f ( D 2 x , t ) ). A terceira derivada de x é registrada em D 3 x .

Na quinta linha, criamos um degrau unitário x _ d em função de t usando a função h e a v i s i d e ( t ) , representando a posição desejada da ferramenta.

Na sexta linha, definimos a primeira derivada do degrau unitário d x d d t usando d i f f ( x _ d , t ) . A derivada é armazenada em D x _ d .

Finalmenten na sétima linha, é definida a segunda derivada d 2 x d d t 2 , aplicando d i f f em D x _ d e derivando-o em relação a t ( d i f f ( D x _ d , t ) ). d 2 x d d t 2 é registrada em D 2 x _ d .

Tendo definido os termos da equação, vamos criá-la e armazená-la na variável e q , jogando todos os termos para a esquerda da igualdade e fazendo com que e q   =   0 :

Note que usei o recurso dos três pontos (...) para “quebrar” a linha de código, de forma que conseguimos ver e q inteira sem ter que usar uma barra de rolagem.

Passo 3

Tendo entrado a equação diferencial no MATLAB, vamos usar a função l a p l a c e para calcular a transformada de Laplace dela. Lembrando que l a p l a c e tem a sintaxe:

F = l a p l a c e ( f )

Ela retorna a transformada de Laplace da função f , armazenando-a na variável F .

Acrescente em seu programa o comando abaixo para calcular a transformada de Laplace de e q :

A transformada de e q é armazenada em E . Para ver como E ficou, execute o programa que fizemos até agora e imprima E no Command Window:

E ficou tão grande que quebrei ele em três prints, mas já vamos dar uma boa enxugada nele. Note que aparecem uns termos l a p l a c e ( x ( t ) , t , s ) em E , e eles têm exatamente a mesma estrutura da função l a p l a c e . Essa expressão representa a transformada de Laplace de x ( t ) e pode ser substituída por X ( s ) . No caso, chamaremos X ( s ) só de X .

Para fazer a substituição, implemente as linhas de código:

Primeiramente, criamos mais duas variáveis simbólicas: s e X . Em seguida, usamos a função s u b s para pedir ao MATLAB que substitua em E a expressão l a p l a c e ( x ( t ) , t , s ) por X . O resultado da substituição é armazenado em E , atualizando a expressão anterior. Após a susbtituição, E fica assim:

Novamente, tive que quebrar E em mais de um print, porque ainda tá enorme. Vamos fazer mais uma substituiçãozinha: o enunciado disse que as condições iniciais são nulas, isto é, x 0 = d x d t ( 0 ) = d 2 x d t 2 ( 0 ) = 0 . Na expressão acima, identificamos de cara quem é x ( 0 ) . Já d x d t ( 0 ) e d 2 x d t 2 ( 0 ) não são tão evidentes: elas são representadas por D ( x ) ( 0 ) e D ( D x ) ( 0 ) , respectivamente.

Para fazer as substituições das condições iniciais, adicione ao seu programa a linha de código:

Com este comando, substituímos em E x ( 0 ) , D ( x ) ( 0 ) e D ( D x ) ( 0 ) por 0 e armazenamos a nova expressão em E , no lugar da antiga. Note as aspas simples em ' D ( x ) ( 0 ) ' e ' D ( D x ) ( 0 ) ' , elas indicam que os múltiplos parênteses pertencem a uma expressão só, isto é, compõem uma variável simbólica. Se você tentar rodar o programa sem elas, o MATLAB acusará erro de sintaxe.

Vamos ver a nova cara de E :

Ficou bem mais bonitinho =)

Passo 4

Com o E mais enxuto, podemos encontrar x ( t ) . Para isto, precisamos encontrar X ( s ) para daí aplicar nele i l a p l a c e , para termos a inversa da tranformada de Laplace. Em E , a variável X representa X ( s ) e podemos usar a função s o l v e do MATLAB para encontrá-la. Adicione em seu código:

Com este comando, a função s o l v e resolve a equação E para a variável X e armazena a solução em X , atualizando seu valor. Na prática, isolamos X na equação e X passa a representar a expressão algébrica de X ( s ) . Rodando o programa, temos que X é igual a:

Para encontrarmos x ( t ) , devemos aplicar a inversa da transformada de Laplace em X ( s ) , isto é, usar a função i l a p l a c e do MATLAB em X . A função i l a p l a c e tem a estrutura:

f = i l a p l a c e ( F )

Ela retorna a inversa da transformada de Laplace de F , armazenando-a na variável f .

Logo, em seu código, adicione o comando:

Com este comando, o MATLAB calcula a inversa da transformada de Laplace de X e armazena o resultado em x , atualizando seu valor. x é a solução da equação diferencial, representando a resposta do sistema ao degrau unitário.

Se você rodar o programa para ver x , você vai ver que ele ficou uma expressão bem longa, com algumas comandos esquisitos (tipo r 3   i n   R o o t O f ). Vamos fazer a substituição dos ganhos K P , K I e K D para plotar curvas de x , facilitando a comparação das respostas ao degrau.

Passo 5

As opções de substituição são:

  1. K P = 30 ,   K I = K D = 0
  2. K P = 27 ,   K I = 17,18 , K D = 0
  3. K P = 36 ,   K I = 38,1 , K D = 8,52

Para implementá-las no nosso programa, usaremos a função s u b s e substituiremos as variáveis K p , K i e K d de x pelos ganhos apresentados acima:

Na primeira linha, substituímos em x as variáveis K p , K i e K d pelos ganhos da letra a e armazenamos o resultado em x _ a .

Nas linhas seguintes, fazemos a mesma coisa para os ganhos das letras b e c , registrando a substituição nas variáveis x _ b e x _ c , respectivamente.

Para plotar as curvas de x _ a , x _ b e x _ c , criamos um vetor t e m p o , indo de 0 a 50 . A ideia é substituir a variável simbólica t das expressões de x _ a , x _ b e x _ c por cada elemento de t e m p o e calcular o valor numérico de x _ a , x _ b e x _ c . Para isto, usaremos o comando s u b s para fazer a substituição de t pelo vetor t e m p o e usaremos a função d o u b l e para converter o resultado de simbólico para valores numéricos:

Por exemplo, na segunda linha acima, a variável simbólica t é substituída por cada elemento do vetor t e m p o em x _ a . O resultado dessa substituição é convertido de simbólico para numérico usando d o u b l e . O resultado da conversão é o vetor x _ a _ p l o t , que contém os valores de x _ a para cada elemento de tempo. O mesmo é feito para x _ b e x _ c .

Para gerar as curvas das respostas ao degrau, digite os dois comandos:

A função p l o t gerará o gráfico com as curvas de x _ a _ p l o t em relação a t e m p o , x _ b _ p l o t em relação a t e m p o e x _ c _ p l o t em relação a t e m p o .

O comando l e g e n d cria a legenda do gráfico, indicando que o primeiro par de vetores de p l o t representa a curva da resposta ao degrau com os ganhos de a, o segundo par, com os ganhos de b e o último par, com os ganhos de c.

Ao executar o programa, você terá as curvas de x ( t ) para cada uma das três alternativas de ganhos.

Resposta