Exercícios Resolvidos de EDOs no SIMULINK

Ver Teoria

Enunciado

Essa atividade consiste em resolver a equação diferencial que representa a dinâmica de um sistema massa-mola-amortecedor não linear. Um sistema massa mola-amortecedor não linear é representado pelas seguinte equação diferencial:

x ' ' t + 2 x ' 2 t + 3 ln ⁡ x ( t ) = u ( t )

Onde x é a posição da massa e u é a força aplicada na massa.

Simule o sistema para a condição inicial x 0 = 0 ,   1   m e x ’ 0 = 0   m / s e para a força u ( t ) variando na forma de um degrau de amplitude igual a 50   N , no intervalo de tempo entre 0 e 10 segundos. Apresente os gráficos da posição, velocidade e força.

Passo 1

Neste exercício, resolveremos uma equação diferencial de 2ª ordem não-linear usando o SIMULINK. Apesar de a equação ser não-linear, a dica de isolar a derivada de maior ordem ainda está valendo:

x ' ' t = u t - 2 x ' 2 t - 3 ln ⁡ x ( t )

Desta forma, identificamos onde colocaremos os dois blocos “Integrator” que precisamos para encontrar x ( t ) (usaremos um bloco “Integrator” para integrar x ' ' ( t ) e obter x ' ( t ) ; e outro “Integrator” que receberá o x ' ( t ) , o integrará e nos dará x ( t ) ) e por onde começamos a construir o diagrama de blocos.

O enunciado pede para plotarmos os gráficos da posição, da velocidade e da força, ou seja, os gráficos de x ( t ) , x ' ( t ) e u ( t ) , respectivamente. Para gerarmos os gráficos pedidos pelo enunciado, usaremos três blocos “Scope”, uma para cada gráfico.

Passo 2

Vamos começar o diagrama pelo lado direito da equação: u t - 2 x ' 2 t - 3 ln ⁡ x ( t ) , mais especificamente por u ( t ) . u ( t ) é um degrau de amplitude 50 , por isso, em um modelo novo, insira um bloco “Step” e altere sua propriedade “Final value” para 50 .

Em seguida, insira um bloco “Add” e troque sua propriedade “List of signs” de + + por + - - , para que “Add” tenha três entradas, uma com sinal + as outras duas com sinal - . Conecte o “Step” à entrada positiva de “Add”:

As outras duas entradas de “Add” receberão 2 x ' 2 t e 3 ln ⁡ x ( t ) , portanto, a saída de “Add” será igual a u t - 2 x ' 2 t - 3 ln ⁡ x ( t ) , que é igual a x ' ' ( t ) . Logo, a saída de “Add” será x ' ' ( t ) e é nele que devemos conectar um bloco “Integrator”.

Passo 3

Insira um bloco “Integrator” no modelo e conecte sua entrada à saída de “Add”:

Este bloco “Integrator” integrará x ' ' ( t ) e nos dará x ' ( t ) . Como x ’ 0 = 0 , não precisamos alterar a propriedade “Initial condition” de “Integrator”, pois por padrão ela já é igual a 0 .

Para obter x ( t ) , insira outro bloco “Integrator” e conecte sua entrada à saída do primeiro bloco “Integrator”. Em outras palavras, o segundo bloco “Integrator” receberá x ' ( t ) , o integrará e fornecerá x ( t ) . Como x 0 = 0,1 , mude a propriedade “Initial condition” do “Integrator” que calculará x ( t ) (destacado abaixo) para esse valor:

Para gerar o gráfico de x ( t ) , insira um bloco “Scope” e conecte-o ao “Integrator” que calcula a posição x ( t ) :

Passo 4

Precisamos terminar de modelar o lado direito da equação: u t - 2 x ' 2 t - 3 ln ⁡ x ( t ) . Vamos começar por 2 x ' 2 t . Para calcular x ' 2 t , insira um bloco “Product” e faça com que suas duas entradas recebam x ’ ( t ) , conectando cada entrada à flecha entre os dois blocos “Integrator” (que corresponde ao sinal de x ’ ( t ) ):

Em seguida, insira um bloco “Gain”, faça com que seu ganho seja igual a 2 e conecte sua entrada à saída de “Product”. Conecte a saída de “Gain” com uma das entradas negativas de “Add”. Dessa forma, já temos u t - 2 x ' 2 t :

Passo 5

Vamos modelar o termo 3 ln ⁡ x ( t ) . Para calcular ln ⁡ x ( t ) , usaremos o bloco Math Function, da biblioteca “Math Operations”:

Este bloco aplica uma função matemática em sua entrada e retorna o resultado. Ele inclui funções como exponenciação, módulo e, o que interessa pra gente, logaritmo. Para calcular ln ⁡ x ( t ) , conecte a entrada do bloco “Math Function” à flecha entre “Integrator1” e “Scope” (que representa o sinal de x ( t ) ) e altere a propriedade “Function” do bloco “Math Function” para l o g :

No SIMULINK, assim como no MATLAB, o logaritmo natural, isto é, o l n , é representado por l o g . Quando queremos calcular o logaritmo na base 10 de algum número, usamos l o g 10 (repare que tem essa opção também no prâmetro “Function”).

Quando você fizer a alteração, note que o bloco “Math Funtion” muda de cara, passando a ter um l n dentro dele.

Para terminar o termo 3 ln ⁡ x ( t ) , insira outro bloco “Gain” e faça com que seu ganho seja igual a 3 . Em seguida, conecte a entrada de “Gain” com ganho 3 à saída de “Math Function” e sua saída, à entrada negativa restante de “Add”:

Pronto! A equação diferencial está modelada!

Passo 6

No diagrama atual, conseguimos apenas gerar o gráfico de x ( t ) . Para plotar x ’ ( t ) e u ( t ) , insira mais dois blocos “Scope” e conecte um ao sinal de u ( t ) e outro ao sinal de x ’ ( t ) :

O enunciado pediu para simularmos o sistema de 0 a 10   s , que já é o tempo de simulação padrão do SIMULINK. Por isso, não precisamos alterá-lo e já podemos executar o programa para vermos os gráficos de u ( t ) , x ’ ( t ) e x ( t ) .

Resposta

Gráfico da posição x ( t )

Gráfico da velocidade x ’ ( t )

Gráfico da força u ( t )