Inverse Laplace-Transformation mit MATLAB

Ammar Ali 29 November 2021
Inverse Laplace-Transformation mit MATLAB

In diesem Tutorial wird erläutert, wie Sie die inverse Laplace-Transformation mithilfe der Funktion ilaplace() in MATLAB finden.

Ermittlung der inversen Laplace-Transformation mit der Funktion ilaplace() in MATLAB

Wir verwenden die inverse Laplace-Transformation, um die Laplace-Domänenfunktion in eine Zeitbereichsfunktion umzuwandeln. In Matlab können wir die Funktion ilaplace() verwenden, um eine Laplace-Domänenfunktion in eine Zeitdomänenfunktion umzuwandeln. Die Funktion ilaplace() schließt drei Eingabevariablen aus. Die erste Variable ist obligatorisch, die die Laplace-Domänenfunktion ist, die zweite Variable ist optional, die die unabhängige Variable der Laplace-Domäne ist. Matlab verwendet standardmäßig die Variable s als unabhängige Variable und die dritte Variable ist die Transformationsvariable des Zeitbereichs. Matlab verwendet standardmäßig die Variable t als Transformationsvariable. Lassen Sie uns zum Beispiel die inverse Laplace-Transformation einer Funktion mit der Funktion ilaplace() in Matlab finden. Siehe den Code unten.

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

Ausgabe:

Output =
 
t

Im obigen Code haben wir, wie Sie sehen können, die Funktion nur der Funktion ilaplace() zur Verfügung gestellt. Wenn Sie jedoch die Transformationsvariable ändern möchten, müssen Sie diese Variable als zweites Argument an die Funktion ilaplace() übergeben. Lassen Sie uns zum Beispiel die Transformationsvariable t durch x ersetzen. Siehe den Code unten.

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

Ausgabe:

Output =
 
x

Im obigen Code wird, wie Sie sehen können, die Transformationsvariable t in x geändert. Betrachten Sie nun ein weiteres Beispiel, bei dem wir sowohl die unabhängige Variable als auch die Transformationsvariable ändern. Siehe den Code unten.

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

Ausgabe:

Output =
 
exp(a*t)

Im obigen Code haben wir die Funktion nur der Funktion ilaplace() zur Verfügung gestellt, sodass sie die Standardwerte für die unabhängige Variable und die Transformationsvariable verwendet. Ändern wir nun diese beiden Variablen und verwenden stattdessen a als unabhängige Variable und x als Transformationsvariable. Siehe den Code unten.

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

Ausgabe:

Output =
 
-exp(s*x)

Im obigen Code wurden, wie Sie sehen können, die Ausgabe und die Variablen in der Ausgabe geändert. Wenn wir also die unabhängige Variable ändern, ändert sich das Ergebnis. Wir können auch die inverse Laplace-Transformation einer Matrix oder eines Arrays mit der Funktion ilaplace() ermitteln. Wir können die unabhängige Variable und die Transformationsvariable als Matrix der gleichen Dimension wie die Laplace-Domänenfunktionsmatrix definieren. Die Funktion ilaplace() verhält sich elementweise, wenn die Argumente der Matrix keine Skalare sind. Lassen Sie uns zum Beispiel die inverse Laplace-Transformation einer Matrix finden. Siehe den Code unten.

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)

Ausgabe:

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

Die Ausgabe der Matrix erfolgt ebenfalls in einer Matrix der gleichen Dimension. Angenommen, wir wollen die inverse Laplace-Transformation eines Polynoms finden und nicht die ganze Gleichung in Matlab schreiben. In diesem Fall können wir nur die Polynomkoeffizienten von Zähler und Nenner schreiben. Und dann können wir mit der Funktion poly2sym() die Polynomkoeffizienten in ein symbolisches Polynom umwandeln. Die Funktion poly2sym() schließt zwei Eingabeargumente aus, das erste Argument ist der Polynomkoeffizientenvektor und das zweite Argument ist das Symbol, das wir dem Polynomausdruck hinzufügen möchten. Lassen Sie uns zum Beispiel die inverse Laplace-Transformation eines polynomischen Ausdrucks finden. Siehe den Code unten.

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)

Ausgabe:

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

Der Fun ist der polynomische Ausdruck in der obigen Ausgabe, und die Variable Output ist ihre inverse Laplace-Transformation. Wie Sie sehen, enthält die Variable Output Potenzen und Divisionen, die nicht aufgelöst werden. Um ein vereinfachtes numerisches Ergebnis zu erhalten, können wir die Funktion vpa() verwenden, um das Ergebnis in eine numerische Form umzuwandeln. In diesem Beispiel wird das numerische Ergebnis in der Variablen NumericOutput gespeichert.

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