Matlab: Symbolic Math Toolbox,
Control System Toolbox
Dr. Luis Sánchez
Symbolic Math Toolbox
Permite:
• Calculus – integration, differentiation, Taylor series
expansion, …
• Linear Algebra – inverses, determinants, eigenvalues, …
• Simplification – algebraic and trigonometric expressions
• Equation Solutions – algebraic and differential equations
• Transforms – Fourier, Laplace, Z transforms and inverse
transforms, …
Symbolic
Use sym to create a symbolic number, and double
to convert to a normal number.
>> sqrt(2)
ans = 1.4142
>> var = sqrt(sym(2))
var = 2^(1/2)
>> double(var)
ans = 1.4142
>> sym(2)/sym(5) + sym(1)/sym(3)
ans = 11/15
Symbolic variables
Use syms to define symbolic variables. (Or use sym to create
an abbreviated symbol name.)
>> syms m n b c x
>> th = sym('theta')
>> sin(th)
ans = sin(theta)
>> sin(th)^2 + cos(th)^2
ans = cos(theta)^2 + sin(theta)^2
>> y = m*x + b
y = b + m*x
Expresiones simbólicas
The subs function substitutes values or expressions for
variables in a symbolic expression.
>> clear
>> syms m x b
>> y = m*x + b → y = b + m*x
>> subs(y,x,3) → ans = b + 3*m
>> subs(y, [m b], [2 3]) → ans = 2*x + 3
>> subs(y, [b m x], [3 2 4])→ ans = 11
The symbolic expression itself is unchanged.
>> y → y = b + m*x
Diferenciación
Use diff to do symbolic differentiation.
>> clear
>> syms m x b th n y
>> y = m*x + b;
>> diff(y, x) → ans = m
>> diff(y, b) → ans = 1
>> p = sin(th)^n → p = sin(th)^n
>> diff(p, th) → ans = n*cos(th)*sin(th)^(n
- 1)
Integración
Indefinite integrals
>> int(y, x) → ans = (m*x^2)/2 +
b*x
>> int(y, b) → ans = (b + m*x)^2/2
>> int(1/(1+x^2)) → ans = atan(x)
Definite integrals
>> int(y,x,2,5) → ans = 3*b +
(21*m)/2
>> int(1/(1+x^2),x,0,1) → ans = pi/4
>> clear
>> syms m b x >> y = m*x + b;
Graficando expresiones simbólicas
The ezplot function will plot symbolic expressions.
>> clear; syms x y
>> ezplot( 1 / (5 + 4*cos(x)) );
>> hold on; axis equal
>> g = x^2 + y^2 - 3;
>> ezplot(g);
Solución de Ecuaciones
diferenciales con Matlab: dsolve
2
2
n
n
y
dy
dt
d y
dt
d y
dt
• y
• Dy
• D2y
• Dny
• >> y = dsolve('Dy + 2*y = 12*sin(4*t)',
'y(0)=10')
• y =
• -12/5*cos(4*t)+6/5*sin(4*t)+62/5*exp(-2*t)
• >> ezplot(y, [0 8])
• >> axis([0 8 -3 10])
2 12sin 4
dy
y t
dt
  (0) 10y 
Ejemplo. Resolver la ED usando
Matlab
• >> y = dsolve('D2y + 3*Dy + 2*y = 24',
'y(0)=10', 'Dy(0)=0')
• y =
• 12+2*exp(-2*t)-4*exp(-t)
• >> ezplot(y, [0 6])
2
2
3 2 24
d y dy
y
dt dt
  
(0) 10y  '(0) 0y 
Ejemplo. Resolver la ED usando
Matlab
La trasformada de Laplace
simbólica con Matlab
Establezca s y t como variables
simbólicas.
>> syms t s
• La trasformada de laplace de una
función f(t) se obtiene como:
>> F = laplace(f)
• Algunas simplificaciones utiles son:
>> pretty(F)
>> simplify(F)
•Establish t and s as symbolic variables.
>> syms t s
•The Laplace function F is then formed and
the inverse Laplace transform command is:
>> f = ilaplace(F)
La trasformada inversa de Laplace
simbólica con Matlab
2 2
( ) 3 sin5 4 cos5t t
v t e t e t 
 
>> syms t s
>> v = 3*exp(-2*t)*sin(5*t)
+ 4*exp(-2*t)*cos(5*t)
v =
3*exp(-2*t)*sin(5*t)+4*exp(-2*t)*cos(5*t)
Ejemplo. Determine la trasformada
de Laplace de v(t) usando Matlab
Ejemplo. Continuación…
>> V = laplace(v)
V =15/((s+2)^2+25)+4*(s+2)/((s+2)^2+25)
>> V=simplify(V)
V = (23+4*s)/(s^2+4*s+29)
>> syms t s
>> F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5))
F =
(100*s+300)/(s+1)/(s+2)/(s^2+2*s+5)
2
100( 3)
( )
( 1)( 2)( 2 5)
s
F s
s s s s


   
Ejemplo. Determine la trasformada Inversa
de Laplace de F(s) usando Matlab
>> f = ilaplace(F)
f = 50*exp(-t)-20*exp(-2*t)-30*exp(-t)*cos(2*t)-
10*exp(-t)*sin(2*t)
>> pretty(f)
50 exp(-t) - 20 exp(-2 t) - 30 exp(-t) cos(2 t) -
10 exp(-t) sin(2 t)
Ejemplo. Continuación…
2
10 48
( )
2 ( 2)( 16)
Y s
s s s
 
  
>> syms t s
>> Y = 10/(s+2) + 48/((s+2)*(s^2+16))
Y =10/(s+2)+48/(s+2)/(s^2+16)
Ejemplo. Determine la trasformada
Inversa de Laplace de F(s) usando
Matlab
>> y = ilaplace(Y)
y = 62/5*exp(-2*t)-
12/5*cos(16^(1/2)*t)+3/10*16^(1/2)*sin(16^(1/
2)*t)
>> y=simplify(y)
y = 62/5*exp(-2*t)-12/5*cos(4*t)+6/5*sin(4*t)
Ejemplo. Continuación…
Diversos comandos de Matlab para aplicarlos
en diferentes campos de la transformada de
Laplace
El comando roots determina las raíces de polinomios de
grado n
Ejemplo
El comando poly obtiene el polinomio de las raíces dadas
El comando conv lleva a cabo el producto de 2 funciones
representadas en el dominio s
El comando printsys representa como función racional en s a la relación
de polinomios numerador/denominador
El comando pzmap efectúa la representación gráfica de polos y ceros
en el plano s de una función racional previamente definida.
El comando residue descompone en fracciones parciales a
G(s).
Conversión de fracciones parciales a función racional
Ejemplo
Teoremas de valor inicial y final
Ejemplo
Ejemplo
Funciones de Trasferencia en Matlab
Funciones de Trasferencia en Matlab
Ejemplos
Escribir en Matlab las siguientes funciones de trasferencia:
Conversión de una función de trasferencia a
formato ganancia-polo-cero y viceversa
Ejemplo
Dada la función de trasferencia G(s), expresarla en formato
ganancia-polo-cero.
Generating a Step Response in MATLAB
>>M = 1; % units of kg
>>K = 10; % units of N/m
>>B = 2; % units of N-s/m
>>num = 1;
>>den = [M B K];
>>sys = tf(num,den)
>>step(sys);
Specifying the time scale
>>t=0:0.1:10;
>>step(sys,t);

Clase 03-matlab

  • 1.
    Matlab: Symbolic MathToolbox, Control System Toolbox Dr. Luis Sánchez
  • 2.
    Symbolic Math Toolbox Permite: •Calculus – integration, differentiation, Taylor series expansion, … • Linear Algebra – inverses, determinants, eigenvalues, … • Simplification – algebraic and trigonometric expressions • Equation Solutions – algebraic and differential equations • Transforms – Fourier, Laplace, Z transforms and inverse transforms, …
  • 3.
    Symbolic Use sym tocreate a symbolic number, and double to convert to a normal number. >> sqrt(2) ans = 1.4142 >> var = sqrt(sym(2)) var = 2^(1/2) >> double(var) ans = 1.4142 >> sym(2)/sym(5) + sym(1)/sym(3) ans = 11/15
  • 4.
    Symbolic variables Use symsto define symbolic variables. (Or use sym to create an abbreviated symbol name.) >> syms m n b c x >> th = sym('theta') >> sin(th) ans = sin(theta) >> sin(th)^2 + cos(th)^2 ans = cos(theta)^2 + sin(theta)^2 >> y = m*x + b y = b + m*x
  • 5.
    Expresiones simbólicas The subsfunction substitutes values or expressions for variables in a symbolic expression. >> clear >> syms m x b >> y = m*x + b → y = b + m*x >> subs(y,x,3) → ans = b + 3*m >> subs(y, [m b], [2 3]) → ans = 2*x + 3 >> subs(y, [b m x], [3 2 4])→ ans = 11 The symbolic expression itself is unchanged. >> y → y = b + m*x
  • 6.
    Diferenciación Use diff todo symbolic differentiation. >> clear >> syms m x b th n y >> y = m*x + b; >> diff(y, x) → ans = m >> diff(y, b) → ans = 1 >> p = sin(th)^n → p = sin(th)^n >> diff(p, th) → ans = n*cos(th)*sin(th)^(n - 1)
  • 7.
    Integración Indefinite integrals >> int(y,x) → ans = (m*x^2)/2 + b*x >> int(y, b) → ans = (b + m*x)^2/2 >> int(1/(1+x^2)) → ans = atan(x) Definite integrals >> int(y,x,2,5) → ans = 3*b + (21*m)/2 >> int(1/(1+x^2),x,0,1) → ans = pi/4 >> clear >> syms m b x >> y = m*x + b;
  • 8.
    Graficando expresiones simbólicas Theezplot function will plot symbolic expressions. >> clear; syms x y >> ezplot( 1 / (5 + 4*cos(x)) ); >> hold on; axis equal >> g = x^2 + y^2 - 3; >> ezplot(g);
  • 9.
    Solución de Ecuaciones diferencialescon Matlab: dsolve 2 2 n n y dy dt d y dt d y dt • y • Dy • D2y • Dny
  • 10.
    • >> y= dsolve('Dy + 2*y = 12*sin(4*t)', 'y(0)=10') • y = • -12/5*cos(4*t)+6/5*sin(4*t)+62/5*exp(-2*t) • >> ezplot(y, [0 8]) • >> axis([0 8 -3 10]) 2 12sin 4 dy y t dt   (0) 10y  Ejemplo. Resolver la ED usando Matlab
  • 11.
    • >> y= dsolve('D2y + 3*Dy + 2*y = 24', 'y(0)=10', 'Dy(0)=0') • y = • 12+2*exp(-2*t)-4*exp(-t) • >> ezplot(y, [0 6]) 2 2 3 2 24 d y dy y dt dt    (0) 10y  '(0) 0y  Ejemplo. Resolver la ED usando Matlab
  • 12.
    La trasformada deLaplace simbólica con Matlab Establezca s y t como variables simbólicas. >> syms t s • La trasformada de laplace de una función f(t) se obtiene como: >> F = laplace(f) • Algunas simplificaciones utiles son: >> pretty(F) >> simplify(F)
  • 13.
    •Establish t ands as symbolic variables. >> syms t s •The Laplace function F is then formed and the inverse Laplace transform command is: >> f = ilaplace(F) La trasformada inversa de Laplace simbólica con Matlab
  • 14.
    2 2 ( )3 sin5 4 cos5t t v t e t e t    >> syms t s >> v = 3*exp(-2*t)*sin(5*t) + 4*exp(-2*t)*cos(5*t) v = 3*exp(-2*t)*sin(5*t)+4*exp(-2*t)*cos(5*t) Ejemplo. Determine la trasformada de Laplace de v(t) usando Matlab
  • 15.
    Ejemplo. Continuación… >> V= laplace(v) V =15/((s+2)^2+25)+4*(s+2)/((s+2)^2+25) >> V=simplify(V) V = (23+4*s)/(s^2+4*s+29)
  • 16.
    >> syms ts >> F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5)) F = (100*s+300)/(s+1)/(s+2)/(s^2+2*s+5) 2 100( 3) ( ) ( 1)( 2)( 2 5) s F s s s s s       Ejemplo. Determine la trasformada Inversa de Laplace de F(s) usando Matlab
  • 17.
    >> f =ilaplace(F) f = 50*exp(-t)-20*exp(-2*t)-30*exp(-t)*cos(2*t)- 10*exp(-t)*sin(2*t) >> pretty(f) 50 exp(-t) - 20 exp(-2 t) - 30 exp(-t) cos(2 t) - 10 exp(-t) sin(2 t) Ejemplo. Continuación…
  • 18.
    2 10 48 ( ) 2( 2)( 16) Y s s s s      >> syms t s >> Y = 10/(s+2) + 48/((s+2)*(s^2+16)) Y =10/(s+2)+48/(s+2)/(s^2+16) Ejemplo. Determine la trasformada Inversa de Laplace de F(s) usando Matlab
  • 19.
    >> y =ilaplace(Y) y = 62/5*exp(-2*t)- 12/5*cos(16^(1/2)*t)+3/10*16^(1/2)*sin(16^(1/ 2)*t) >> y=simplify(y) y = 62/5*exp(-2*t)-12/5*cos(4*t)+6/5*sin(4*t) Ejemplo. Continuación…
  • 20.
    Diversos comandos deMatlab para aplicarlos en diferentes campos de la transformada de Laplace El comando roots determina las raíces de polinomios de grado n
  • 21.
  • 22.
    El comando polyobtiene el polinomio de las raíces dadas El comando conv lleva a cabo el producto de 2 funciones representadas en el dominio s
  • 23.
    El comando printsysrepresenta como función racional en s a la relación de polinomios numerador/denominador El comando pzmap efectúa la representación gráfica de polos y ceros en el plano s de una función racional previamente definida.
  • 24.
    El comando residuedescompone en fracciones parciales a G(s).
  • 25.
    Conversión de fraccionesparciales a función racional
  • 26.
  • 27.
    Teoremas de valorinicial y final
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Ejemplos Escribir en Matlablas siguientes funciones de trasferencia:
  • 33.
    Conversión de unafunción de trasferencia a formato ganancia-polo-cero y viceversa
  • 34.
    Ejemplo Dada la funciónde trasferencia G(s), expresarla en formato ganancia-polo-cero.
  • 35.
    Generating a StepResponse in MATLAB >>M = 1; % units of kg >>K = 10; % units of N/m >>B = 2; % units of N-s/m >>num = 1; >>den = [M B K]; >>sys = tf(num,den) >>step(sys); Specifying the time scale >>t=0:0.1:10; >>step(sys,t);