Departamento de Ingeniería Electrónica y Automática
Área de Ingeniería de Sistemas y Automática
Control Automático y
Electrónica Programada
Tutorial : Familiarización con Matlab-Simulink
1. Matlab
Matlab es la abreviatura de Matrix Laboratory (laboratorio de matrices). Creado en 1984 por The Math‐
Works, es un sotware de de cálculo muy usado en universidades, centros de investigación y por ingenieros.
En los últimos años ha incluido muchas más capacidades, como la de programar directamente procesadores
digitales de señal, crear código, etc.
Matlab dispone de una gran cantidad de funciones implementadas directamente en el paquete básico
del programa. Además de estas funciones, existen diferentes Toolboxes que implementan nuevas funciones
especí icas para diferentes aplicaciones. Ejemplos de Toolboxes de Matlab son la Control System Toolbox para
el diseño de controladores y la System Identi ication Toolbox para la identi icación de sistemas. En la web
www.mathworks.es/products/ se puede encontrar una lista de las toolboxes disponibles distribuidas por
MathWorks; además de estas, existen otras de libre distribución creadas por distintos autores, disponibles
en diferentes webs.
Todas las funciones de Matlab tienen disponble una ayuda que está accesible simplemente con los co‐
mandos doc o help.
1.1. Representación de funciones
Matlab permite generar grá icas de cualquier función. Para ello, se debe de inir el rango de valores de la
variable independiente para los que se quiere representar la función y de inir y evaluar la función en estos
puntos. El siguiente código muestra cómo plotear la función seno en el intervalo [0, 6π].
x = [0: 0.1: 6*pi];
y = sin(x);
plot(x,y)
grid on
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 2 4 6 8 10 12 14 16 18 20
Figura 1: Grá ica mostrando la función f (x) = sin(x)
1
La primera línea de ine que el rango de la variable independiente sea entre 0 y 6π, con los puntos de inidos
con una separación de 0,01 unidades. La segunda línea genera el seno en la variable y. La tercera línea genera
la grá ica, mientras que la última línea muestra la cuadrícula.
Este enfoque se puede utilizar para representar la salida de un sistema dinámico, simplemente de iniendo
la función de salida. El siguiente código muestra la respuesta de un sistema de primer orden ante una entrada
en escalón.
t = [0: 0.1: 10];
y = 2*(1 - exp(-t./2));
plot(t, y)
grid on
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
Figura 2: Grá ica mostrando la respuesta de un sistema de primer orden ante una entrada en escalón.
1.2. Simulación de la respuesta de sistemas dinámicos
Matlab dispone de funciones especí icas para él cálculo y visualización de la respuesta de sistemas linea‐
les. La función step muestra la respuesta de un sistema dinámico ante una entrada en escalón unitario. Para
utilizarla hay que de inir un modelo del sistema dinámico; en este caso, vamos a utilizar un modelo de función
de transferencia utilizando la función tf (Puede consultar los detalles de utilización de la función tf con el
2
comando doc tf). El siguiente código genera y muestra la respuesta a escalón del sistema G(s) = 0,5s+1 .
G = tf([2], [0.5, 1]);
step(G)
grid on
El comando zpk nos permite de inir una función de transferencia a partir de la ubicación de sus polos
y ceros. El siguiente ejemplo muestra dos sistemas con el mismo denominador y distinto numerador para
comparar el efecto del cero en la respuesta del sistema.
G1 = zpk([], [-3 -6], 18);
G2 = zpk([-3.5], [-3 -6], 18/3.5);
step(G1, G2);
grid on
2
Figura 3: Grá ica mostrando la respuesta de un sistema de primer orden ante una entrada en escalón utili‐
zando el comando step .
Figura 4: Grá ica mostrando la respuesta de dos sistemas con el mismo denominador y distinto numerador.
2. Simulink
Simulink es un paquete de software para modelar, simular y analizar los sistemas dinámicos. Soporta
sistemas lineales y no lineales, modelados en tiempo continuo, muestreados o un híbrido de los dos. Para
modelar, Simulink proporciona una interfaz de usuario grá ica (GUI) para construir los modelos como dia‐
gramas de bloques, utilizando operaciones con el ratón del tipo pulsar y arrastrar, dando la opción de crear
y personalizar los bloques. Las características principales de este entorno serían:
Se trata de un entorno grá ico.
El sistema se representa como una interconexión de bloques elementales.
Cada bloque lleva asociado un modelo matemático que representa su relación entrada/salida.
2.1. Bloques
A continuación se indican los principales bloques que se usarán en esta práctica y la categoría a la que
pertenecen.
3
Figura 5: Simulink Library Browser
2.1.1. Sources: funciones de entrada
Step: escalón.
Ramp: rampa.
Sine wave: senoidal.
Pulse generador: tren de pulsos.
From workspace: lectura de datos desde Matlab.
2.1.2. Sinks
Salidas o dispositivos de visualización/almacenamiento de variables del sistema.
Scope: osciloscopio.
Display: indicador numérico.
To workspace: envío datos a Matlab.
2.1.3. Continuous
Representan sistemas continuos por su relación entrada‐salida.
Derivative: bloque derivador: la salida es derivada de la entrada.
Integrator: bloque integrador: la salida es la integral de la entrada.
Transfer Fcn: función de transferencia en s expresada como cociente de polinomios.
Zero Pole: función de transferencia en s expresada en forma factorizada.
4
Figura 6: Modelo de simulación de un sistema de primer orden.
2.1.4. Discrete
Representan sistemas discretos por su relación entrada‐salida
Discrete Transfer Fcn: función de transferencia en z expresada como cociente de polinomios.
Discrete Filter: función de transferencia en z‐1 expresada como cociente de polinomios.
Discrete Zero Pole: función de transferencia en z expresada en forma factorizada.
Unit delay: retraso de un periodo.
Zero Order Hold: retenedor de orden cero.
First Order Hold: retenedor de orden uno.
2.1.5. Math operators
Operaciones matemáticas sobre señales.
Sum: sumador de señales.
Gain: ganancia o multiplicación de una señal por una constante.
2.1.6. Signal Routing
Permite realizar conexiones especiales entre señales.
Mux: multiplexor: agrupa distintas señales en un vector o bus.
2.2. Creación de un modelo
El procedimiento de trabajo para la creación de un modelo será seleccionar los bloques adecuados de
entre los presentes en estas categorías, colocarlos sobre la ventana de diseño y establecer las conexiones
correspondientes entre ellos.
La Figura 6 muestra un modelo sencillo para la simulación de un sistema de primer orden.
2.3. Parámetros de simulación
Es importante elegir bien los parámetros de la simulación para que las grá icas que se obtienen tengan el
nivel de calidad adecuado. Dentro de Simulink, en el menú ”Simulación‐>Parámetros de simulación”, podemos
cambiar los parámetros de simulación del sistema (Fig. 7). Los más importantes son:
Tiempo de inicio/ in de simulación.
Solver: es la función de integración que se utiliza. Puede ser de paso ijo o paso variable.
Máx. paso de simulación: el tamaño máximo de paso de simulación que se utiliza.
5
Figura 7: Ventana de con iguración de parámetros de simulación
Relative tolerance y Absolute tolerance: parámetros para ajustar el tamaño de paso en solvers de paso
variable. Se recomienda poner valores en torno a 10−5 para que las grá icas salgan con buena resolu‐
ción.