Universidad Tecnológica de Santiago (UTESA)
Taller de Controles de Sistemas Automáticos
Guía de la Práctica No. 04
Matemática Simbólica
Nombre: Matrícula:
Docente: José M. Solís Clave de la Asignatura: _IEL – 905 – 003 _ Ciclo: 01 – 2025 _
Fecha de inicio: / / Fecha de término: / / Duración: 90 minutos
1. Objetivo
• Utilizar la matemática simbólica para obtener las funciones de
transferencias
• Aplicar la matemática simbólica para resolver ecuaciones simultáneas
• Utilizar el concepto de polinomio en operaciones básicas de matemáticas.
Matemática simbólica
Matlab permite la realización de cálculos de manera simbólica si previamente se definen
símbolos las variables y funciones con las que se va a operar. Todos los comandos se
encuentran en la toolbox de matemática simbólica, incorporando un nuevo tipo de dato
en Matlab: el objeto simbólico (sym object). Las variables se han de definir como símbolos
mediante syms. Las funciones se definen directamente con el comando sym.
Con variables y funciones simbólicas se puede realizar todo tipo de cálculo: diferencial,
integral y matricial; también es posible la resolución de ecuaciones simbólicas y
diferenciales, y la obtención de distintas transformadas como Laplace o transformada Z.
2. Equipos
Equipo Característica Cantidad
PC Instalado con programa MATLAB 1 por estudiante
3. Indicaciones
• Los estudiantes trabajan individualmente.
• Cada estudiante presentará un informe de la práctica de laboratorio en la
próxima sesión.
1. Creación de variables y funciones
Con el comando sym se pueden crear expresiones y funciones simbólicas; éstas deben ir entre
comillas simples, del mismo modo que el tipo de dato carácter.
>> 𝑓1 = 𝑠𝑦𝑚 (′3/5′) % f1 es una variable simbólica
𝑓1 =
3/5
>> 𝑓2 = 𝑠𝑦𝑚 (′1/5′) % f2 es una variable simbólica
𝑓2 =
1/5
>> y=sym('a*x^2+b*x+c') % y es una función simbólica
y=
a*x^2 + b*x + c
Con el comando syms se pueden definir variables individualmente y constantes que fan a
formar parte de futuras funciones simbólicas.
>> syms a t % a y t son variables simbólicas
>> y1s=a*t^2
y1s = % y1s se convierte en una función simbólica
a*t^2
2. Operaciones con funciones simbólicas
Con cualquier resultado simbólico se puede operar y obtener el correspondiente valor
numérico. En el caso de las variables anteriores 𝑓1 𝑦 𝑓2, el valor numérico de la suma de
ambas se puede obtener mediante el comando double.
>> suma_f=f1+f2
suma_f =
4/5
>> double(suma_f)
ans =
0.8000
3. Operaciones entre variables simbólicas
>> syms s
>> G1s=1/(s+1);
>> G2s=2*s/(s^2+s+1);
Suma
>> G12s=G1s+G2s
G12s =
1/(s + 1) + (2*s)/(s^2 + s + 1)
𝟏 𝟐∗𝒔
𝑮𝟏𝟐𝒔 = +
(𝒔 + 𝟏) (𝒔𝟐 + 𝒔 + 𝟏)
Cuando Matlab devuelve un resultado de difícil interpretación en una sola línea, como en el
ejemplo anterior, resulta útil ejecutar el comando pretty:
>> pretty(G12s)
1 2s
----- + ----------
s+1 2s +s+1
se pueden obtener dos variables simbo´licas que contengan las ecuaciones del
numerador y denominador de la funcion anterior, mediante el comando numden.
>> [n,d]=numden(G12s)
n=
3*s^2 + 3*s + 1
d=
(s + 1)*(s^2 + s + 1)
También es posible resolver funciones simbólicas con el comando solve.
>> ceros=solve(n) % calcula las raíces del numerador
ceros =
(3^(1/2)*i)/6 - 1/2
- (3^(1/2)*i)/6 - 1/2
>> polos=solve(d) % calcula las raíces del denominador
polos =
-1
(3^(1/2)*i)/2 - 1/2
- (3^(1/2)*i)/2 - 1/2
>> solve(y) % Solución de la función simbólica y
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
Y obtener el resultado numérico de aquellas expresiones simbólicas que lo permiten
mediante el comando double.
>> ceros=double(ceros)
ceros =
-0.5000 + 0.2887i
-0.5000 - 0.2887i
>> polos=double(polos)
polos =
-1.0000
-0.5000 + 0.8660i
-0.5000 - 0.8660i
La representación gráfica de funciones simbólicas en Matlab se puede realizar con el
comando ezplot. El rango de variación que toma la variable de la función es −2𝜋, 2𝜋,
no obstante puede especificarse otro rango dentro del comando.
>> syms t
>> y2s=5*t^2
y2s =
5*t^2
>> ezplot(y2s,[0,6])
4. La conversión de un polinomio simbólico a numérico se puede realizar con el
comando sym2poly
>> [n,d]=numden(G12s) % n y d son variables simbólicas
n=
3*s^2 + 3*s + 1 % Numerador de G12s simbólico
d=
(s + 1)*(s^2 + s + 1) % Denominador de G12s simbólico
>> num_1=sym2poly(n) % Conversión numerador de G12s
num_1 =
3 3 1 % Numerador con coeficientes numéricos
>> den_1=sym2poly(d) % Conversión denominador de G12s
den_1 =
1 2 2 1 % denominador con coeficientes numéricos
5. polos=roots(den_1)
polos =
-1.0000
-0.5000 + 0.8660i
-0.5000 - 0.8660i
6. Obtención de polinomio a través de las raíces. El comando poly obtiene el
polinomio de las raíces dadas.
𝑟 = 𝑠3 + 10𝑠2 + 15𝑠 + 20
𝑟 = [1; −2; −3]
𝑝 = 𝑝𝑜𝑙𝑦(𝑟)
[1 6 11 6]
7. Obtención de polinomio a través de las raíces. El comando conv lleva a cabo el
producto de funciones representadas en el dominio s.
𝑛 = (𝑠2 + 8𝑠 + 2)(𝑠 + 3)
𝑝 = [1 8 2]
𝑞 = [1 3]
𝑛 = 𝑐𝑜𝑛𝑣(𝑝, 𝑞)
= [1 11 26 6]
8. Representación de polinomios como función racional. El comando printsys
representa como función racional en s a la relación de polinomios numerador/
denominador
𝑛(𝑠) = 𝑠2 + 3𝑠 + 2
𝑑(𝑠) = 𝑠3 + 3𝑠2 + 4𝑠 + 12
𝑛 = [1 3 2]
𝑑 = [1 3 4 12]
𝑝𝑟𝑖𝑛𝑡𝑠𝑦𝑠(𝑛, 𝑑)
𝑠2 + 3𝑠 + 2
=
𝑠3 + 3𝑠2 + 4𝑠 + 12
9. Representación de polos y ceros en el plano s. 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.
𝑛(𝑠) = 𝑠2 − 4𝑠 + 20
𝑑(𝑠) = (𝑠2 + 2𝑠 + 10)(𝑠 + 5)
𝑛 = [1 −4 20]
𝑑 = 𝑐𝑜𝑛𝑣([1 2 10], [1 5])
𝑝𝑧𝑚𝑎𝑝(𝑛, 𝑑)
Actividades a realizar:
1. Operación con variables simbólicas
Dadas las funciones de transferencia
1
𝐺1 =
𝑠2 + 9𝑠 + 20
𝑠+2
𝐺2 =
𝑠3 + 15𝑠2+ 71𝑠 + 105
Obtener:
a) Suma de G1 y G2
b) Producto de G1 y G2
c) solve(G1)
d) solve(G2)
2. Utilizar el comando pzmap para graficar los polos y ceros en el plano s de las
expresiones siguientes:
𝑠+4
a) 𝐺(𝑠) =
𝑠3+6𝑠2+17𝑠+13
10(𝑠+2)
b) 𝐺(𝑠) =
𝑠2(𝑠+1)(𝑠+10)
10(𝑠+2)
c) 𝐺(𝑠) =
𝑠(𝑠2+2𝑠+2)
10𝑠(𝑠+1)
d) 𝐺(𝑠) = (𝑠+2)(𝑠2+3𝑠+2)
3. Realice la conversión de los polinomios siguientes a polinomios numéricos
utilizando el comando sym2poly
𝟏𝟎(𝒔+𝟐)
a) 𝑮(𝒔) =
𝒔(𝒔𝟐+𝟐𝒔+𝟐)
𝟏𝟎𝒔(𝒔+𝟏)
b) 𝑮(𝒔) = (𝒔+𝟐)(𝒔𝟐+𝟑𝒔+𝟐)
4. Dado los polinomios
𝑛𝑢𝑚 = [1 0 −20.6];
𝑑𝑒𝑛 = [1 19.6 151.2];
Obtenga:
4.1 𝒄 = 𝒄𝒐𝒏𝒗(𝒂, 𝒃)
4.2 N1=poly2sym(num,'s')
4.3 D1=poly2sym(den,'s')
4.4 G=N1/D1