Está en la página 1de 7

GUIA PARA EL USO DE MATLAB PARTE 3

Symbolic Math Toolbox



Las rutinas de matemtica simblica de MatLab son utilizadas para poder escribir
ecuaciones con variables genricas sin necesidad de crear vectores.
Algunas ventajas del Symbolic Math Toolbox para el diseo y anlisis de sistemas:

Las funciones y ecuaciones se pueden ingresar de manera simblica, pudindose
utilizar tanto caracteres alfabticos como numricos. Por ejemplo puede ingresar
B = x^2+3*x+7, en lugar de B= [1 3 7]. Tambin puede ingresar B=a*x^2+b*x+c.
Se pueden manipular algebraicamente y simplificar expresiones simblicas.
Las transformadas de Laplace y Z se pueden ingresar y determinar sus inversas
en forma simblica.
Las funciones se puede imprimir con una mejor presentacin para mejor claridad
en la Command Window y entonces imprimirse en papel.


1. Definicin de objetos simblicos:

El inicio de cualquier clculo simblico requiere definir los objetos simblicos, por ejemplo,
la variable de la transformada de Laplace (s) o la variable de tiempo (t).
Se utiliza el comando:
syms s t, siendo s y t la variables simblicas.
Solamente en necesario definir los objetos que entran al programa, las variables
producidas por el programa no necesitan definirse. De este modo, si se est
determinando transformadas inversas de Laplace, solamente se necesita definir s puesto
que t resulta del clculo.

2. Imprimir con mejor presentacin:

Se utiliza el comando pretty(F), siendo F la funcin que se quiere imprimir en bonito.

Ejemplo 1:

syms s; %declaro variable simblica
F=2/[(s+1)*(s+2)^2] %funcin de transferencia
pretty(F) %imprimo en bonito
f=ilaplace(F) %transformada inversa
pretty(f)

Vista en Command Window:

Sin pretty:


F =

2/((s + 1)*(s + 2)^2)


Con pretty:

2
----------------
2
(s + 1) (s + 2)


3. Cambios en la apariencia de los resultados desplegados:

collect(F,s): Rene los trminos con coeficientes comunes de F, si coloco s le
aclaro que variable quiero que rena.
expand(F): Expande los productos de factores.
factor(F): Factores de F.
simple(F): Determina la forma ms sencilla de F con el menor nmero de
trminos.
simplify(F): Simplifica F.
vpa(expression, places): Quiere decir precisin aritmtica variable, este
comando convierte trminos simblicos fraccionarios en trminos decimales con
un nmero especfico de lugares despus de la coma.

Ejemplo 2:

syms t;
f=2*exp(-t)-2*t*exp(-2*t)-2*exp(-2*t);%defino la funcin en el tiempo
'Funcin en el tiempo' %desplego etiqueta
pretty(f)
F=laplace(f);%calculo su transformada, tener en cuenta que Matlab da F(s)
%fracciones parciales
'Transformada'
pretty(F) %imprimir en bonito las fracciones paciales
F=simplify(F); %Combino las fracciones parciales
'Con simplify'
pretty(F)

Vista en Command Window:

Funcin en el tiempo


2 2 2 t
------ - -------- - --------
exp(t) exp(2 t) exp(2 t)


Transformada


2 2 2
----- - ----- - --------
s + 1 s + 2 2
(s + 2)
Con simplify


2
----------------
2
(s + 1) (s + 2)

Ejemplo 3:

syms t;
f=3/16-3/16*exp(-t)*[cos(2*t)+(1/2)*sin(2*t)];
F=laplace(f);
'Transformada'
pretty(F)
F=vpa(F,3);
'Precisin aritmtica variable con pretty'
pretty(F);

Vista en Command Window:

Transformada


3 3 (s + 1) 3
---- - ----------------- - -----------------
16 s 2 2
16 ((s + 1) + 4) 16 ((s + 1) + 4)

Precisin aritmtica variable con pretty


0.188 0.188 0.188 (s + 1.0)
----- - ---------------- - ----------------
s 2 2
(s + 1.0) + 4.0 (s + 1.0) + 4.0


Ejemplo 4:

syms x y z;

a=collect(((log(x)+2*x)*(x+2)))
b=collect((2*x+y)*(x^3+5*y+3),y)
d=expand((z+3)*(z+6)*(z-4))
e=x^3+x^2+3*x+x*y+x*z;
f=factor(e)
g=sin(x)^2+cos(x)^2;
h=simple(g)




Vista de Command Window

a =
2*x^2 + (log(x) + 4)*x + 2*log(x)

b =
5*y^2 + (x^3 + 10*x + 3)*y + 2*x*(x^3 + 3)

d =
z^3 + 5*z^2 - 18*z - 72

f =
x*(x^2 + x + y + z + 3)

h =
1

4. Funciones transferencia con la regla de Cramer:
La regla de Cramer da la solucin de un sistema de ecuaciones lineales con el mismo
nmero de incgnitas que de ecuaciones, el determinante de la matriz de los coeficientes
debe ser distinto de cero.
Un sistema de ecuaciones lineales tiene la forma Ax=B, siendo A la matriz formada por
los coeficientes de las incgnitas, x es el vector de las incgnitas y B es un vector que
contiene las entradas.

X
k
= det(A
k
)/det(A), siendo A
k
la matriz formada al reemplazar la k-sima columna de la
matriz A con elvector de entrada B

Ejemplo 5:

Dado el siguiente circuito obtener la funcin de transferencia (I2/V) aplicando regla de
Cramer.



Solucin:

Obtenemos el sistema de ecuaciones:
(R1+Ls) I1 - Ls I2 = Vi
-Ls I1 + (Ls+R2+1/Cs) I2 = 0





En MatLab:

syms Vi R1 L R2 C s;

A2=[(R1+L*s) Vi;-L*s 0];
A=[(R1+L*s) -L*s; -L*s (L*s+R2+(1/(C*s)))];
I2=det(A2)/det(A)

G=I2/Vi;
G=collect(G,s)
pretty(G)

Vista en Command Window

I2 =
(C*L*Vi*s^2)/(R1 + L*s + C*L*R1*s^2 + C*L*R2*s^2 + C*R1*R2*s)


G =
((C*L)*s^2)/((C*L*R1 + C*L*R2)*s^2 + (L + C*R1*R2)*s + R1)


2
(C L) s
-------------------------------------------
2
(C L R1 + C L R2) s + (L + C R1 R2) s + R1





1 ). 2 1 ( . ) 1 2 (
.
) (
2
2
R s L C R R s CL R R
s LC
s G

5. Ingreso de funciones de transferencia complicadas:



Cuando se tiene funciones de transferencia complicadas, se puede hacer distributiva en
tres pasos.

Ejemplo 6:

En MatLab:
syms s;
G=(54*(s+27)*(s^3+52*s^2+37*s+73))...
/(s*(s^4+872*s^3+437*s^2+89*s+65)*(s^2+79*s+36));
[numg,deng]=numden(G);
numg=sym2poly(numg);
deng=sym2poly(deng);
'Funcin transferencia reordenada'
Gtf=tf(numg,deng)
'Funcin de transferencia en forma de ceros y polos'
Gzpk=zpk(Gtf)

Vista en Command Window

Funcin transferencia reordenada

Transfer function:

54 s^4 + 4266 s^3 + 77814 s^2 + 57888 s + 106434
---------------------------------------------------------------------
s^7 + 951 s^6 + 69361 s^5 + 66004 s^4 + 22828 s^3 + 8339 s^2 + 2340 s

Funcin de transferencia en forma de ceros y polos

Zero/pole/gain:

54 (s+51.31) (s+27) (s^2 + 0.6934s + 1.423)
--------------------------------------------------------------------
s (s+871.5) (s+78.54) (s+0.558) (s+0.4584) (s^2 - 0.05668s + 0.1337)

6. Graficacin:

Se pueden hacer grficas bidimensionales con objetos simblicos, se utiliza la instruccin
ezplot(f, [xmin xmax]), si no se colocan los valores [xmin xmax], MatLab grafica
automticamente entre -2*pi y 2*pi.

Ejemplo7:

En MatLab:
syms x;hold on;
ezplot(abs(x), [-3 3]);
ezplot(x^2, [-3 3])
figure
subplot(2,1,1)
ezplot(cos(x))
subplot(2,1,2)
ezplot(x^3)

También podría gustarte