Guia de Matlab
Guia de Matlab
Guia de Matlab
Guía 3 1
Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Sistemas de Control Automático (SCO101).
Lugar de ejecución: Instrumentación y Control (Edificio 3,
2a planta)
Competencia
• Desarrolla soluciones con base en la tecnología electrónica y mediante el uso tanto de dispositivos
programables como discretos y el diseño electrónico (Ing. Biomédica).
• Crea soluciones a problemas de instrumentación y control de sistemas de producción industrial (Ing.
Automatización).
• Soluciona problemas en ingeniería que implican la integración de diferentes ramas del conocimiento, como
mecánica, eléctrica electrónica e informática industrial, tanto en el área de planeación de plantas industriales
como en el de diseño de equipo mecatrónico (Ing. Mecatrónica).
Subcompetencia
Indicadores de logro
• Crea funciones de transferencia a partir de sus expresiones polinómicas o de sus polos y ceros.
• Determina los parámetros de un sistema de segundo orden.
• Genera gráficos de la respuesta de un sistema en el dominio del tiempo cuando se le aplican señales escalón
unitario y señal impulso.
• Utiliza los comandos “series” y “feedback” para la reducción de diagramas de bloques.
• Utiliza la función de MATLAB mason.m para simplificar un gráfico de flujo de señales.
• Utiliza las herramientas de MATLAB para determinar la transformada y anti transformada de Laplace.
• Utiliza la herramienta SIMULINK para obtener parámetros útiles del comportamiento de un sistema de
control.
Materiales y equipo
Introducción Teórica
En años recientes, el análisis y diseño de sistemas de control han sido afectados dramáticamente por la
proliferación del uso de las computadoras, especialmente de las computadoras personales. Estas se han
hecho tan poderosas y avanzadas que pueden resolver problemas de sistemas de control con facilidad.
Uno de los programas útiles en el campo del control automático es MATLAB, algunas de sus características
más notables son:
La biblioteca matemática de MATLAB facilita los análisis matemáticos. Además, el usuario puede crear
rutinas matemáticas adicionales con mucha mayor facilidad que en otros lenguajes de programación, gracias
a la continuidad entre las variables reales y complejas. Entre las numerosas funciones matemáticas, los
solucionadores de álgebra lineal desempeñan un papel crucial; de hecho, todo el sistema MATLAB se basa
en estos solucionadores.
El análisis visual de los problemas matemáticos ayuda a comprender las matemáticas y a hacerlas más
asequibles. Aunque esta ventaja es bien conocida, la presentación de resultados calculados con gráficos de
computadora solía requerir un esfuerzo adicional considerable. Con MATLAB, en cambio, bastan unos
cuantos comandos para producir presentaciones gráficas del material matemático. Es posible crear objetos
gráficos científicos e incluso artísticos en la pantalla mediante expresiones matemáticas.
SIMULINK
Procedimiento
A continuación, se presenta un tutorial con diferentes comandos y herramientas de MATLAB utilizados para el
análisis y diseño de sistemas de control automático, desarrolle los ejemplos para poder resolver los ejercicios que
se presentan en el análisis de resultados.
Abra el programa MATLAB, espere que este cargue e indique que está listo (Ready).
La sintaxis es:
sys = tf(num, den)
Se desea crear la siguiente función de transferencia de un sistema SISO (una entrada y una salida) en MATLAB:
(3.4 ∗ 𝑆) + 1.5
𝐺1(𝑠) =
𝑆 2 + (1.6 ∗ 𝑆) + 0.8
Hay varias posibles sintaxis para crear G1:
>> G1=tf([0,3.4,1.5],[1,1.6,0.8])
Se obtendrá:
Transfer function:
3.4 s + 1.5
-----------------
s^2 1.6 s + 0.8
Transfer function:
3.4 s + 1.5
-----------------
s^2 + 1.6 s + 0.8
4 Sistemas de Control Automático. Guía 3
s=tf('s'); G3 = (3.4*s+1.5)/(s^2+1.6*s+0.8)
Y se obtendrá lo mismo:
Transfer function:
3.4 s + 1.5
-----------------
s^2 + 1.6 s + 0.8
Cuando se trabaja con funciones de transferencia una de las cosas más útiles que se puede averiguar es la ubicación
de sus polos y ceros, eso se puede hacer de la siguiente manera.
Se obtendrá:
z =
-0.4412
p =
-0.8000 + 0.4000i
-0.8000 - 0.4000i
k =
3.4000
Note que los polos son complejos conjugados, lo que implica que el sistema es sub amortiguado y tendrá sobre
impulso.
Estos datos describen la función de transferencia basándose en tres parámetros, los polos los ceros y una constante
de valor k de la forma:
>> clear
>> clc
Esto le permite eliminar las variables previamente creadas y luego limpiar la ventana de trabajo, ahora digitará los
parámetros:
>> z = [-0.4412];
Sistemas de Control automático. Guía 3 5
El resultado es:
3.4 (s + 0.4412)
----------------------
(s^2 + 1.6s + 0.8)
El resultado será:
num =
0 3.4000 1.5001
den =
Se han generado dos arreglos que se pueden combinar para obtener la función de transferencia original G1.
>> G5 = tf(num,den)
Resultado:
3.4 s + 1.5
-----------------
s^2 + 1.6 s + 0.8
EJERCICIOS:
• Determine el valor de los polos, los ceros de G(s), además encuentre el valor de la constante “k”.
25
𝑀(𝑠) =
(𝑆 + 2 + 𝑗4.96 )(𝑆 + 2 − 𝑗4.96)
25 25
𝑀(𝑠) = = 2
(𝑆 + 2 + 𝑗4.96 )(𝑆 + 2 − 𝑗4.96) 𝑆 + 4𝑆 + 26
Los parámetros que definen a una función de transferencia de 2° orden son la frecuencia de oscilación no amortiguada
Wn (rad/seg) y el factor de amortiguamiento (damping), si ya se ha declarado una función se puede usar un comando
para que determine estos factores:
damp(sys)
Si se ejecuta este comendo con la función G5 que se declaró previamente se obtienen los siguientes resultados:
>> damp(G5)
>> damp(G)
Sistemas de Control automático. Guía 3 7
Existen varios comandos que permiten graficar datos interesantes, si ya se ha definido un sistema “sys” se puede
usar:
pzmap(sys)
Que grafica los polos y ceros del sistema y además si se ubica el puntero sobre los polos indica el valor del coeficiente
de amortiguamiento, el sobre impulso y de Wn.
También existen comandos para aplicar señales específicas a una función de transferencia:
Usando el comando adecuado grafique el “mapa de polos y ceros” (verá que se despliega una segunda ventana) y
determine el coeficiente de amortiguamiento, el sobre impulso y de Wn.
Aplique una señal impulso usando la sintaxis descrita anteriormente, la imagen se despliega en la segunda ventana.
Aplique una señal escalón unitario usando la sintaxis descrita anteriormente, la imagen se despliega en la segunda
ventana. Los parámetros más importantes son: tp = 0.69 seg, ts = 2.0 seg y Mp = 25% y además si el escalón aplicado
es unitario su valor de estado estable es 1.0, por lo que no tienen error de estado estable.
Para verificar los datos anteriores haga clic en la gráfica para leer los datos puntuales y compárelos con las
predicciones teóricas.
8 Sistemas de Control Automático. Guía 3
En los sistemas de control automático es frecuente el uso de diagramas de bloques para su representación, como se
muestra a continuación en la Figura 3.1.
Suponga que G2 representa la planta del sistema, G1 el controlador y H1 la retroalimentación. Este diagrama se
puede reducir utilizando una relación bien conocida de este campo, por ejemplo:
𝐺 = 𝐺1 ∗ 𝐺2
𝐶(𝑠) 𝐺
𝑀(𝑠) = =
𝑅(𝑠) 1 + 𝐺𝐻
>> G1=tf(0.8,0.5);
>> G2=tf(1,[1 2]);
>> G =series(G1,G2)
G =
0.8
---------
0.5 s + 1
Para cerrar el lazo se necesita declarara H1, por facilidad del ejemplo se declara como unitaria.
>> H = 1;
M =
0.8
-----------
0.5 s + 1.8
Sistemas de Control automático. Guía 3 9
0.8 1.6
𝑀(𝑠) = =
(0.5 ∗ 𝑆) + 1.8 𝑆 + 3.6
QUINTA PARTE: Simplificación de Gráficos de Flujo de Señales (GFS) usando la regla de Mason.
Para realizar esta sección deberá revisar el tutorial que está en el anexo de la guía para informarse de la manera de
debe proceder con la función de MATLAB (archivo “M”) llamada “mason.n”, después de revisarla continua en esta
sección y resuelve (simplifica) el diagrama de bloques que se muestra en la Figura 3.2.
Primero debe asegurarse que en la carpeta Documentos/Matlab se encuentra el archivo “mason.m”, sino es así
notifique al docente de laboratorio
Ahora debe crear el archivo de texto que define la configuración de la red, al que se le dará el nombre de “red1.udb”
(para esto use el bloc de notas) y escriba lo siguiente:
1 1 2 1
2 2 3 G1
3 3 2 -H1
4 5 2 -H3
5 3 6 G5
6 3 4 G2
7 4 5 G3
8 5 4 -H2
9 5 6 G4
10 6 6 -H4
11 6 7 1
En el momento de salvar el archivo en la carpeta Documentos/Matlab. En el parámetro “Tipo” la opción por defecto
es “Documento de texto (*.txt), pero debe cambiarla por la opción “Todos los archivos”. El nombre que debe colocar
es “red1.udb”
10 Sistemas de Control Automático. Guía 3
Hay otras maneras de crear el archivo “red1.udb” utilizando el editor de Scipt” de MATLAB. Para ello, en la pestaña
“Home”, de clic en “New” y luego seleccione “Script”, el editor se abre. Copie los datos de la red, ya sea separándolos
con un espacio o tabulación.
Luego se salva el archivo en la carpeta Documentos/Matlab. En este caso es necesario que ponga las comillas, de lo
contrario el archivo se guardará como red1.udb.m (archivo M de MATLAB).
>> [y7,y1]=mason('red1.udb',1,7)
A partir de este punto se ejecuta la función y en la ventana de comandos aparece una gran cantidad de información
como la que se muestra a continuación:
-- Network Info --
Net File : red1.udb
Start Node : 1
Stop Node : 7
- Order 1 Loops -
L11 : 2 3
L12 : 2 6 7 4
L13 : 7 8
L14 : 10
- Order 2 Loops -
L21 : 2 3 7 8
L22 : 2 3 10
L23 : 2 6 7 4 10
L24 : 7 8 10
- Order 3 Loops -
L31 : 2 3 7 8 10
y7 =
1*G1*G5*1*(1-(G3*-H2)+0-0)+1*G1*G2*G3*G4*1*(1-0+0-0)
Sistemas de Control automático. Guía 3 11
y1 =
1-(G1*-H1+G1*G2*G3*-H3+G3*-H2+-H4)+(G1*-H1*G3*-H2+G1*-H1*-H4+G1*G2*G3*-H3*-
H4+G3*-H2*-H4)-(G1*-H1*G3*-H2*-H4)
Ya se tienen los datos de y7 e y1, ahora hay que ensamblar la función con los siguientes comandos:
>> syms G1 G2 G3 G4 G5 H1 H2 H3 H4
>> y7=sym(y7);
>> y1=sym(y1);
>> R=y7/y1
R =
Para que la función de transferencia se observe de una manera más familiar se utiliza el siguiente comando
>> pretty(R)
El resultado es:
G1 G5 (G3 H2 + 1) + G1 G2 G3 G4
-----------------------------------------------------------------------------------------------------------------
H4 + G1 H1 + G3 H2 + G1 H1 H4 + G3 H2 H4 + G1 G2 G3 H3 + G1 G3 H1 H2 + G1 G2 G3 H3 H4 + G1 G3 H1 H2 H4 + 1
La caja de herramientas de matemática simbólica de MATLAB posee la función laplace e ilaplace para transformar
una función en el tiempo al dominio de la frecuencia compleja y viceversa.
Ejemplo: Encontrar la respuesta en el tiempo de la siguiente función de transferencia cuando a la entrada se presenta
una señal rampa unitaria.
5s 3 + 35s 2 + 73s + 47
G (s) = 4
s + 9s 3 + 29s 2 + 41s + 20
Solución:
>> syms s t
>> G=(5*s^3+35*s^2+73*s+47)/(s^4+9*s^3+29*s^2+41*s+20);
>> g=ilaplace(G*1/s^2);
>> pretty(g)
467 47
- --- + 1/48 exp(-4 t) + 2/3 exp(-t) + -- t
12 Sistemas de Control Automático. Guía 3
400 20
>> ezplot(g,[0,15])
Ejemplo:
Solución:
>> syms a t s
>> g=t*sin(a*t)+exp(-a*t);
>> G=laplace(g);
>> pretty(G)
s a 1
2 ---------- + -----
2 2 2 s + a
(s + a )
Se abrirá la ventana del buscador de librerías de Simulink que se muestra en la Figura 3.3.
Cree el sistema que se muestra en la Figura 3.4, arrastrando los elementos que se muestran en el buscador de librerías
a la ventana del modelo. En la Tabla 3.1 se encuentran las librerías donde están los elementos del sistema, para unir
los elementos haga clic en los conectores que tienen los elementos, arrastre el cursor hasta el otro elemento a conectar
y luego suelte.
Nota: En el sistema de la Figura 3.4, el módulo “Transfer Fcn” representa un controlador proporcional con una
ganancia de 0.5, el módulo “Transfer Fcn1” representa el modelo matemático de un horno, el módulo “Transfer
Fcn2” representa al transductor con una relación de 0.1V/°C, “Step” representa el valor de referencia en voltios
aplicado con una función escalón y “Step1” representa una perturbación; finalmente los “Scopes” son
instrumentos para visualizar la respuesta del sistema, “Scope” muestra el resultado en grados y “Scope1” en
voltios.
Tabla 3.1
Librerías donde se encuentran los elementos del circuito de la Figura 3.4.
Configure los parámetros de los elementos como se indica a continuación (lo que está en paréntesis no se coloca solo
es para referencia del usuario):
Transfer Fcn:
“Step”: • Numerator coefficients: [0.5]
• Step Time: 0 • Denominator coefficients: [1]
• Initial Value: 0 Transfer Fcn1:
• Final Value: 8.0 (voltios) • Numerator coefficients: [154.4]
“Step1”: • Denominator coefficients: [49 14 1]
• Step Time: 300 (segundos) Transfer Fcn2:
• Initial Value: 60 (grados) • Numerator coefficients: [0.1]
• Final Value: 50 (grados) • Denominator coefficients: [1]
14 Sistemas de Control Automático. Guía 3
Simule el sistema, para ello de clic en el botón “Run” , luego haga doble clic en los elementos “Scope”. Para ver
mejor las gráficas presione el botón de auto escala que tiene la siguiente forma , si ha hecho todo correctamente
deberá ver en “Scope” la gráfica que se muestra en la Figura 3.6.
Análisis de Resultados
10(𝑠+2)
2. Encuentre la anti transformada de Laplace de la siguiente función: 𝐺(𝑠) =
𝑠(𝑠 2 +2𝑠+2)
2.6
3. Encuentre la respuesta del siguiente sistema 𝐺(𝑠) = ante una entrada escalón unitario en el
3𝑠 2 +0.8𝑠+1.2
intervalo de 0 a 80 segundos.
4. Para el sistema realimentado que aparece en la siguiente figura, muestre que Y(s)/U(s) es:
𝐶(𝑠)
5. Encuentre 𝑇(𝑠) = para el sistema representado por el gráfico de flujo siguiente:
𝑅(𝑠)
Bibliografía
• Ogata, K., (2010), Ingeniería de Control Moderna, Madrid, España: Pearson Educación, S.A.
• Nakamura, S., (1998). Análisis Numérico y Visualización Gráfica con Matlab, México, México: Prentice
Hall.
Hoja de cotejo: 3
1
EVALUACIÓN
TOTAL 100
Sistemas de Control automático. Guía 3 17
ANEXO.
Uso de la función de Matlab mason.m (archivo m).
Explicación:
Este programa resuelve las gráficas de flujo de señales para generar una ecuación simbólica equivalente que relaciona
el nodo de salida y el nodo de entrada. Por ejemplo:
Hay cuatro nodos 1,2,3 y 4 y hay cinco coeficientes S11, S21, S12, S22 y R2. Si colocamos el nodo 1 como el nodo de
entrada independiente y escogemos el nodo 3 como un nodo dependiente obtenemos la siguiente simplificación:
𝑏 𝑅2
= 𝑠11 + 𝑠21 ∗ ( ) ∗ 𝑠12
𝑎 1−𝑆22 ∗𝑅2
Si colocamos al nodo 1 como el nodo de entrada independiente y el nodo 2 como el nodo de salida dependiente
obtenemos:
𝑏 𝑆21
=
𝑎 1 − 𝑆22 ∗ 𝑅2
Especificando la red.
Se usa un archivo descriptor para especificar la topología del diagrama de flujo, que puede ser creado en cualquier
editor de texto. A cada nodo se le asigna un número y cada rama se define como un número coeficiente. Cada rama
se define como una línea en el archivo, descrito como sigue:
Los números de los coeficientes deben estar en orden. Por ejemplo, para describir el siguiente diagrama (donde el
número del coeficiente está entre paréntesis):
18 Sistemas de Control Automático. Guía 3
El archivo creado sería como el siguiente (donde los espacios en blanco son tabulaciones, pero cualquier espacio en
blanco es aceptable):
1 1 2 s21
2 4 2 s22
3 4 3 s12
4 1 3 s11
5 2 4 R2
Nota: Es importante que las líneas en el archivo de red estén ordenadas de modo que los números de los coeficientes
se incrementen a partir de 1. No use 0 como número de coeficiente o nodo. El nombre del coeficiente puede ser
cualquier expresión simbólica válida. Si la expresión tiene múltiples términos, ellos deben encerrase entre paréntesis.
Por ejemplo: (-D*z^(-1)) ó (1+B)
Usando el programa
El archivo creado debe guardarse con cualquier nombre y extensión en la misma carpeta donde se tenga el archivo
mason.m y luego llamarse desde la consola de MATLAB especificando nombre del archivo con todo y extensión,
número del nodo de inicio y número del nodo final como se muestra en el siguiente ejemplo.