Transformada inversa de Laplace usando MATLAB

Ammar Ali 13 janeiro 2022
Transformada inversa de Laplace usando MATLAB

Este tutorial irá discutir como encontrar a transformação inversa de Laplace usando a função ilaplace() no MATLAB.

Encontre a transformação Laplace inversa usando a função ilaplace() no MATLAB

Usamos a transformada de Laplace inversa para converter a função de domínio de Laplace em uma função de domínio de tempo. No Matlab, podemos usar a função ilaplace() para converter uma função de domínio de Laplace em uma função de domínio de tempo. A função ilaplace() exclui três variáveis ​​de entrada. A primeira variável é obrigatória, que é a função de domínio de Laplace, a segunda variável é opcional, que é a variável independente do domínio de Laplace. Por padrão, o Matlab usará a variável s como a variável independente, e a terceira variável é a variável de transformação do domínio do tempo. Por padrão, o Matlab usará a variável t como a variável de transformação. Por exemplo, vamos encontrar a transformada de Laplace inversa de uma função usando a função ilaplace() no Matlab. Veja o código abaixo.

syms s
fun = 1/s^2;
Output = ilaplace(fun)

Resultado:

Output =
 
t

No código acima, como você pode ver, fornecemos a função apenas para a função ilaplace(). Mas se você quiser mudar a variável de transformação, você precisa passar essa variável como um segundo argumento para a função ilaplace(). Por exemplo, vamos substituir a variável de transformação t por x. Veja o código abaixo.

syms s
fun = 1/s^2;
Output = ilaplace(fun,x)

Resultado:

Output =
 
x

No código acima, como você pode ver, a variável de transformação t é alterada para x. Agora considere outro exemplo em que alteraremos a variável independente, bem como a variável de transformação. Veja o código abaixo.

syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun)

Resultado:

Output =
 
exp(a*t)

No código acima, fornecemos a função apenas para a função ilaplace(), portanto, ela usará os valores padrão para a variável independente e a variável de transformação. Agora, vamos alterar essas duas variáveis ​​e, em vez disso, usaremos a como uma variável independente ex como uma variável de transformação. Veja o código abaixo.

syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun,a,x)

Resultado:

Output =
 
-exp(s*x)

No código acima, como você pode ver, a saída e as variáveis ​​na saída foram alteradas. Portanto, se mudarmos a variável independente, o resultado mudará. Também podemos encontrar a transformada de Laplace inversa de um array ou array usando a função ilaplace(). Podemos definir a variável independente e de transformação como um array da mesma dimensão que a matriz da função de domínio de Laplace. A função ilaplace() atuará elemento a elemento se os argumentos do array forem não escalares. Por exemplo, vamos encontrar a transformada de Laplace inversa de um array. Veja o código abaixo.

syms a b c d w x y z
Matrix = [1/x 1; sin(y) i*z];
var = [w x; y z];
tVars = [a b; c d];
Output = ilaplace(Matrix,var,tVars)

Resultado:

Output =
 
[             dirac(a)/x,       dirac(b)]
[ ilaplace(sin(y), y, c), dirac(1, d)*1i]

A saída do array também virá em um array da mesma dimensão. Suponha que queremos encontrar a transformada de Laplace inversa de um polinômio e não queremos escrever a equação inteira no Matlab. Nesse caso, podemos escrever os coeficientes polinomiais do numerador e denominador apenas. E então, usando a função poly2sym(), podemos converter os coeficientes polinomiais em um polinômio simbólico. A função poly2sym() exclui dois argumentos de entrada, o primeiro argumento é o vetor de coeficientes polinomiais e o segundo argumento é o símbolo que queremos adicionar à expressão polinomial. Por exemplo, vamos encontrar a transformada de Laplace inversa de uma expressão polinomial. Veja o código abaixo.

syms s t;
numerator=[1 1];
denominator=[1 3 5];
numS=poly2sym(numerator,s);
denS=poly2sym(denominator,s);           
Fun=numS./denS

Output = ilaplace(Fun,s,t)
NumericOutput = vpa(Output)

Resultado:

Fun =
 
(s + 1)/(s^2 + 3*s + 5)
 
 
Output =
 
exp(-(3*t)/2)*(cos((11^(1/2)*t)/2) - (11^(1/2)*sin((11^(1/2)*t)/2))/11)
 
 
NumericOutput =
 
exp(-1.5*t)*(cos(1.6583123951776999245574663683353*t) - 0.30151134457776362264681206697006*sin(1.6583123951776999245574663683353*t))

O Fun é a expressão polinomial na saída acima, e a variável Output é sua transformação de Laplace inversa. Como você pode ver, a variável Output contém potências e divisões, que não são resolvidas. Para obter um resultado numérico simplificado, podemos usar a função vpa() para converter o resultado em um formato numérico. Neste exemplo, o resultado numérico é armazenado na variável NumericOutput.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook