Transformée de Laplace inverse à l'aide de MATLAB

Ammar Ali 29 novembre 2021
Transformée de Laplace inverse à l'aide de MATLAB

Ce tutoriel expliquera comment trouver la transformée de Laplace inverse à l’aide de la fonction ilaplace() dans MATLAB.

Trouver la transformation de Laplace inverse à l’aide de la fonction ilaplace() dans MATLAB

Nous utilisons la transformée de Laplace inverse pour convertir la fonction du domaine de Laplace en une fonction du domaine temporel. Dans Matlab, nous pouvons utiliser la fonction ilaplace() pour convertir une fonction de domaine de Laplace en une fonction de domaine temporel. La fonction ilaplace() excepte trois variables d’entrée. La première variable est obligatoire, qui est la fonction du domaine de Laplace, la deuxième variable est facultative, qui est la variable indépendante du domaine de Laplace. Par défaut, Matlab utilisera la variable s comme variable indépendante, et la troisième variable est la variable de transformation du domaine temporel. Par défaut, Matlab utilisera la variable t comme variable de transformation. Par exemple, trouvons la transformée de Laplace inverse d’une fonction en utilisant la fonction ilaplace() dans Matlab. Voir le code ci-dessous.

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

Production:

Output =
 
t

Dans le code ci-dessus, comme vous pouvez le voir, nous n’avons fourni la fonction qu’à la fonction ilaplace(). Mais si vous voulez changer la variable de transformation, vous devez passer cette variable comme second argument à la fonction ilaplace(). Par exemple, remplaçons la variable de transformation t par x. Voir le code ci-dessous.

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

Production:

Output =
 
x

Dans le code ci-dessus, comme vous pouvez le voir, la variable de transformation t est changée en x. Considérons maintenant un autre exemple où nous allons changer la variable indépendante ainsi que la variable de transformation. Voir le code ci-dessous.

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

Production:

Output =
 
exp(a*t)

Dans le code ci-dessus, nous n’avons fourni la fonction qu’à la fonction ilaplace(), elle utilisera donc les valeurs par défaut pour la variable indépendante et la variable de transformation. Modifions maintenant ces deux variables, et à la place, nous utiliserons a comme variable indépendante et x comme variable de transformation. Voir le code ci-dessous.

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

Production:

Output =
 
-exp(s*x)

Dans le code ci-dessus, comme vous pouvez le voir, la sortie et les variables de la sortie ont été modifiées. Donc, si nous modifions la variable indépendante, le résultat changera. On peut aussi trouver la transformée de Laplace inverse d’une matrice ou d’un tableau à l’aide de la fonction ilaplace(). Nous pouvons définir la variable indépendante et de transformation comme une matrice de même dimension que la matrice de fonction du domaine de Laplace. La fonction ilaplace() agira élément par élément si les arguments de la matrice sont non scalaires. Par exemple, trouvons la transformée de Laplace inverse d’une matrice. Voir le code ci-dessous.

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)

Production:

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

La sortie de la matrice viendra également dans une matrice de la même dimension. Supposons que nous voulions trouver la transformée de Laplace inverse d’un polynôme et que nous ne voulions pas écrire toute l’équation dans Matlab. Dans ce cas, nous pouvons écrire les coefficients polynomiaux du numérateur et du dénominateur seulement. Et puis, à l’aide de la fonction poly2sym(), on peut convertir les coefficients polynomiaux en un polynôme symbolique. La fonction poly2sym() excepte deux arguments d’entrée, le premier argument est le vecteur de coefficient polynomial et le deuxième argument est le symbole que nous voulons ajouter à l’expression polynomiale. Par exemple, trouvons la transformée de Laplace inverse d’une expression polynomiale. Voir le code ci-dessous.

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)

Production:

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))

Le Fun est l’expression polynomiale dans la sortie ci-dessus, et la variable Output est sa transformée de Laplace inverse. Comme vous pouvez le voir, la variable Output contient des puissances et des divisions, qui ne sont pas résolues. Pour obtenir un résultat numérique simplifié, nous pouvons utiliser la fonction vpa() pour convertir le résultat sous une forme numérique. Dans cet exemple, le résultat numérique est stocké dans la variable NumericOutput.

Auteur: 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