Manipulació simbòlica amb Matlab: Transformada de Laplace

Una utilització del Matlab diferent de la usual (numèrica) és la manipulació simbòlica, que consisteix en fer que el Matlab tracti les equacions i les variables de forma analítica, com ho faríem a ma. El Matlab ens permet calcular la transformada de Laplace d'una funció de forma simbòlica (com una funció).

Contents

Manipulació simbòlica amb Matlab

Per utilitzar les variables sense que hagin de prendre un valor numèric, hem de dir-li al Matlab explícitament, es pot fer:

t=sym('t');
a=sym('a');
f = exp(-a*t) %les funcions que tenen variables simbòliques ho son també
 
f =
 
exp(-a*t)
 

Com a funció, la podem derivar

derf = diff(f,t) %indiquem respecte a quina variable derivem
segderf = diff(f,t,2) %indiquem que derivem dues vegades
 
derf =
 
-a*exp(-a*t)
 
 
segderf =
 
a^2*exp(-a*t)
 

També podem calcular la seva primitiva

intf=int(f)
 
intf =
 
-exp(-a*t)/a
 

Podem avaluar numèricament donant valors a les variables

subs(f,[a t],[1 0]) %es substitueix respectivament a=1, t=0
%
% Si volem tenir només una variable, podem fer a=ctant i
fa = subs(f,a,2) %ara és una funció d'una única variable
fplot(fa,[-3,3]) %dibuixa la funció en l'interval especificat
 
ans =
 
1
 
 
fa =
 
exp(-2*t)
 

Transformada de Laplace (TL)

El Matlab ja te implementat el càlcul simbòlic de la transformada de Laplace d'una funció. La variable per defecte és la s.

F=laplace(f) %calculem la TL de la funció f anterior
% qualsevol altra funció es defineix de forma anàloga (ha de ser simbòlica)
g=sin(a*t);
G=laplace(g)
pretty(G) %mostrem les fraccions de la TL de forma més 'maca'.....
% fent la transformada inversa recuperem la funció original
ilaplace(G) %és la funció g
 
F =
 
1/(a + s)
 
 
G =
 
a/(a^2 + s^2)
 
   a
-------
 2    2
a  + s

 
ans =
 
sin(a*t)
 

Funcions especials: La funció Delta de Dirac i la funció Heaviside

Dintre de les funcions especials per calcular les transformades de Laplace hi ha dues de molt importants:

$$\delta(x) = 0, \quad si \quad x \neq 0, \quad i \quad \delta(x) = \infty \quad si \quad  x=0$

$$h(x)=0 \quad  si \quad  x < a \quad i \quad  h(x)=1 \quad si \quad x \geq a$

delta=dirac(t);
h=heaviside(t);
fplot(h)
diff(h) %la derivada és la delta de dirac
 
ans =
 
dirac(t)
 

Calculem les seves transformades de Laplace

lapHeaviside=laplace(h)
lapdDirac=laplace(dirac(t-3))
 
lapHeaviside =
 
1/s
 
 
lapdDirac =
 
exp(-3*s)
 

Solució d'EDO amb valors de frontera

Com aplicació de la transformada de Laplace, veiem com s'aplica a resoldre equacions deiferencials ordinàries Exemple:

$$y'' + 2y' + y = \sin(2t), \quad amb \quad y=y(t), \quad i \quad y(0)= -2, \quad y'(0)= 3$

syms t s y Y; %definim les variables simbóliques
% y serà la funció solució que busquem
% t és la variable independent de manera que y = y(t)
% Y és la seva Tranformada de Laplace (TL)
% s és també una variable independent de manera que Y = Y(s)

%la idea és aplicar la TL
f=sin(2*t);
F=laplace(f,t,s);
Y1=s*Y+2; %transformada de Laplace de la derivada y', amb y(0)=-2
Y2=s*Y1-3; %transformada de Laplace de la derivada segona y'', amb y'(0)=3
Y = solve(Y2 + 2*Y1 + Y - F, Y) %calulem la transformada de tota l'equació
 
Y =
 
-(2*s - 2/(s^2 + 4) + 1)/(s^2 + 2*s + 1)
 
y = ilaplace(Y,s,t) %la solució és la antitransformada
 
y =
 
(7*t*exp(-t))/5 - (46*exp(-t))/25 - (3*sin(2*t))/25 - (4*cos(2*t))/25
 

comprovem que satisfà l'equació diferencial

diff(y,2)+2*diff(y,1)+y - sin(2*t)
fplot(y,[-1,0]) %dibuixem la funció solució
 
ans =
 
0
 

Exercici: Amortidor de la roda d'un cotxe

Considerem el sistema format per l'amortidor d'un cotxe, que essencialment es pot modelar per una part elàtica (molla) i un amortidor (veieu figura). Es tracta d'una EDO de segon ordre on a partir de les forces exercides, es calculen els desplaçaments de la carrosseria.

L'equació diferencial que simula aquest sistema és:

$$m \frac{d^2x}{dt^2} + b \frac{dx}{dt} + k x = f$

on m és la massa del vehicle, b el coeficient d'amorteiment i k el coeficient d'elasticitat de la molla i f és la força externa.

A partir dels valors: m = 1163, b = 1000, k = 10000 i amb x(0)=0, x'(0)=20

Calculeu els desplaçaments de l'amortidor si hi simulem una força externa associada a un sot que simulem amb la funció

sot=0.1; (profunditat del sot)

f=sot*(-1+heaviside(t))-sot*(1+heaviside(t+1))+2*sot (esglaó quadrat)

Sol:

(c)Numerical Factory