1
1. Título de la práctica
REPRESENTACIÓN DE SEÑALES EN MATLAB Y SIMULINK
2. Temas a tratar
▪ Programación en Matlab
▪ Simulink
3. Introducción
MATLAB es una herramienta poderosa para el control y la automatización y, particularmente, para el
procesamiento y análisis de señales. En MATLAB, las señales se pueden representar como vectores o
matrices. Estas señales pueden ser de diversos tipos, como señales continuas, discretas, periódicas o
aleatorias.
Por otro lado, Simulink es una extensión de MATLAB que permite modelar, simular y analizar sistemas
dinámicos en un entorno gráfico basado en bloques. Simulink es especialmente útil para representar
y simular señales en sistemas de control y automatización.
Ventajas del Uso de MATLAB y Simulink para la Representación de Señales
▪ Flexibilidad: MATLAB y Simulink permiten una gran flexibilidad para generar, procesar y
visualizar diferentes tipos de señales.
▪ Interfaz Intuitiva: La interfaz gráfica de Simulink facilita la creación y simulación de modelos
complejos sin necesidad de programar en detalle.
▪ Integración: MATLAB y Simulink están estrechamente integrados, lo que permite una fácil
transición entre el análisis en MATLAB y la simulación en Simulink.
En esta práctica se desarrolla la representación gráfica de las señales más utilizadas en el control y la
automatización usando tanto la programación en Matlab como Simulink contrastando sus
características.
4. Desarrollo de la práctica
4.1. Competencias de la práctica
▪ Representa las señales más utilizadas en el Control y la Automatización empleando la
programación clásica en Matlab
▪ Representa las señales más utilizadas en el Control y la Automatización empleando la
plataforma Simulink
▪ Contrasta ambos tipos de representación
4.2. Resultados del aprendizaje
▪ Conocimiento: Los estudiantes aprenden la programación clásica en Matlab para
representar las señales más importantes utilizadas en el control y la automatización como
son las señales escalón unitario, impulso unitario, rampa unitaria, parábola, exponencial
y seno entre otras
▪ Desempeño: Los estudiantes son capaces de representar las señales más importantes
utilizadas en el control y la automatización utilizando la plataforma Simulink
▪ Producto: Los estudiantes contrastan la representación de señales utilizando la
programación clásica de Matlab y el entorno Simulink estableciendo las ventajas y
desventajas de cada uno.
2
4.3. Tiempo de la sesión
2 horas
4.4. Fundamentación teórica
4.4.1 Programación en Matlab
Para crear un programa en Matlab, hay que usar el Editor y guardarlo en el directorio
correspondiente. Hay varias forma de llevar a cabo la programación dependiendo de la
dificultad requerida:
i. Scripts (archivo de comandos):
Son programas útiles para unir una serie de líneas ejecutables simples y mecánicas.
Consiste en una sucesión de comandos, que se ejecutan en la Ventana de Comandos
de principio a fin. Por lo general no tienen argumentos de entrada ni de salida y
operan con las variables del espacio de trabajo, es decir, recogen variables ya
existentes e interactúan con ellas para producir resultados numéricos o gráficos y
quizás nuevas variables.
Para crear el script, se sigue el mismo procedimiento que cualquier otro lenguaje de
programación, aunque se puede solicitar los datos de entrada en el Editor de esta
manera:
>> variabledeentrada = input(‘Texto que sale en la pantalla’)
después, se escribe los comandos deseados y para acabar, se escribe:
>> disp(‘Texto que sale en la pantalla’); variabledesalida
Para ejecutar el script se teclea el nombre del archivo en la Ventana de Comandos de
Matlab o se incluye dicho nombre en otro fichero *.m. Para facilitar la ejecución,
también se ha incluido un botón en la barra de herramientas
ii. Funciones:
Tenga en cuenta que Matlab dispone de funciones propias, pero en este caso, nos
estamos refiriendo a funciones definidas por el usuario que son programas que
realizan tareas más elaboradas que los scripts y que, a partir de ciertos argumentos
de entrada, realizan una serie de cálculos programados en el Editor, con una serie de
líneas ejecutables y devuelven uno o varios argumentos de salida al llamar la función
desde la Ventana de Comandos. Deben contener una primera línea en la que aparece
la palabra function como se muestra a continuación:
>> function [argout1, argout2, …] = nombrefuncion(argin1, argin2, …)
A continuación, se escriben los pasos a realizar, las operaciones y comentarios de
texto, y al cerrar todos los procesos, se llama a la función desde la Ventana de
Comandos y debe aparecer la solución deseada. Para programar una función, se
pueden utilizar las funciones predeterminadas de Matlab o funciones ya definidas con
anterioridad, como parte de los procesos.
Aunque no es necesario, conviene llamar igual a la función y al archivo guardado en
el directorio que la contiene. En caso de nombres distintos, Matlab da preferencia al
nombre del archivo. En el ejemplo:
% Área del triángulo:
function a = triarea(b,h)
a = 0.5*(b.* h);
end
Si se le dan valores a b y h (argin1, argin2), y se llama a la función desde la Ventana de
Comandos, saldrá el resultado de a (argout1).
3
Las funciones permiten definir funciones análogas a las de Matlab, con su nombre,
argumentos y valores de salida. Como se indicó anteriormente, la primera línea que
no sea comentario debe empezar por la palabra function, seguida por los valores de
salida (entre corchetes [ ] y separados por comas si hay más de uno), el signo igual (=)
y el nombre de la función seguido de los argumentos (entre paréntesis ( ) y separados
por comas):
function [a,b,c] = nombre_función (x,y,z)
En las líneas siguientes se escriben los argumentos de salida a partir de los de entrada.
El nombre de la función y el nombre del archivo deben ser idénticos y no empezar por
cifra sino por letra.
iii. Estructuras de control
Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones
de un programa. Quiere decir, que permite que unas condiciones se lleven a cabo
cuando el programador lo desee, ya sea un número determinado de veces o hasta un
cierto error, etc. Las estructuras de control tienen un único punto de entrada y un
único punto de salida, por lo que están estructuradas. Se pueden clasificar en:
▪ Estructuras de bifurcación: if-else, if-elseif, switch-case
▪ Estructuras repetitivas: For, while
▪ Sentencias Break y Continue
4.4.2 Simulink
Simulink es una extensión gráfica de MATLAB para modelar y simular sistemas. Una de las
principales ventajas de Simulink es la capacidad de modelar un sistema no lineal, algo que
una función de transferencia no puede hacer. Otra ventaja de Simulink es la capacidad de
asumir condiciones iniciales. Cuando se construye una función de transferencia, se supone
que las condiciones iniciales son cero.
En Simulink, los sistemas se dibujan en la pantalla como diagramas de bloques. Hay
muchos elementos de diagramas de bloques disponibles, como funciones de
transferencia, uniones sumadoras, etc., así como dispositivos de entrada y salida virtuales,
como generadores de funciones y osciloscopios. Simulink está integrado con MATLAB y
los datos se pueden transferir fácilmente entre ambos programas. Simulink es compatible
con entornos Unix, Macintosh y Windows
▪ Características
Simulink se inicia desde el símbolo del sistema de MATLAB ingresando el siguiente
comando:
>>simulink
Alternativamente, puede presionar el botón Simulink en la parte derecha de la cinta
HOME como se muestra en la figura 1:
Figura 1: Botón Simulink
Cuando se inicia, Simulink (Matlab 2024b) muestra una sola ventana, titulada Página
de inicio de Simulink, que se puede ver en la figura 2.
4
Figura 2: Pantalla de presentación inicial de Simulink
Una vez que haga clic en Modelo en blanco, aparecerá una nueva ventana como se
muestra en la figura. Esta ventana representa el área de trabajo.
Figura 3: Área de trabajo de Simulink
▪ Elementos básicos
En Simulink, un modelo es una colección de bloques que, en general, representa un
sistema. Además de crear un modelo desde cero, los archivos de modelo guardados
previamente se pueden cargar desde el menú Archivo o desde el símbolo del sistema
de MATLAB
5
Hay dos clases principales de elementos en Simulink: bloques y líneas. Los bloques se
utilizan para generar, modificar, combinar y mostrar señales. Las líneas se utilizan para
transferir señales de un bloque a otro.
‒ Bloques
Existen varias clases generales de bloques dentro de la biblioteca Simulink:
• Fuentes (sources): se utilizan para generar varias señales
• Receptores (sinks): se utilizan para generar o mostrar señales
• Continuos: elementos del sistema de tiempo continuo (funciones de
transferencia, modelos de espacio de estado, controladores PID, etc.)
• Discretos: elementos del sistema lineales de tiempo discreto (funciones de
transferencia discretas, modelos de espacio de estado discretos, etc.)
• Operaciones matemáticas: contiene muchas operaciones matemáticas
comunes (ganancia, suma, producto, valor absoluto, etc.)
• Puertos y subsistemas: contiene bloques útiles para construir un sistema
Los bloques tienen varios terminales de entrada y de salida. Los terminales de
entrada o de salida no utilizados se indican con un pequeño triángulo abierto.
El bloque que se muestra a continuación tiene un terminal de entrada no
utilizado a la izquierda y un terminal de salida no utilizado a la derecha.
Figura 4:: Bloque característico de Simulink
‒ Líneas
Las líneas transmiten señales en la dirección indicada por la flecha. Las líneas
siempre deben transmitir señales desde el terminal de salida de un bloque al
terminal de entrada de otro bloque. Una excepción a esto es que una línea
puede derivarse de otra línea, dividiendo la señal en cada uno de los dos
bloques de destino, como se muestra a continuación.
Figura 5: Bloques conectados por líneas
6
Las líneas nunca pueden inyectar una señal en otra línea; las líneas deben
combinarse mediante el uso de un bloque como una unión sumadora.
Una señal puede ser una señal escalar o una señal vectorial. Para los sistemas
de entrada única, salida única (SISO), generalmente se utilizan señales
escalares. Para los sistemas de entrada múltiple, salida múltiple (MIMO), a
menudo se utilizan señales vectoriales, que consisten en dos o más señales
escalares. Las líneas que se utilizan para transmitir señales escalares y
vectoriales son idénticas. El tipo de señal que transporta una línea está
determinado por los bloques en cada extremo de la línea.
4.5. Recursos
▪ Equipos
Computadoras en red con acceso a Internet y Matlab instalado
4.6. Metodología
▪ Definir las competencias que se pretenden adquirir con la práctica.
▪ Repasar los conocimientos previos que debe tener en claro
▪ Preparar el espacio de trabajo: Asegurarse que el laboratorio esté limpio y organizado, así
como verificar que todos los instrumentos de medición estén funcionando
adecuadamente y/o que el software de simulación se pueda ejecutar sin problemas.
▪ Utilizar equipo de protección si fuese necesario.
▪ Seguir el procedimiento paso a paso y completar los datos que la práctica demande.
▪ Documentar observaciones: Realizar capturas de pantalla, fotos o videos de corta
duración.
▪ Análisis y discusión de los resultados obtenidos relacionándolos con los conceptos
teóricos estudiados.
4.7. Actividades para desarrollar
4.7.1 Señales
En los scripts siguientes, colóquele un nombre apropiado, pruébelos y muestre el resultado.
Añada un comentario para explicar lo que hace cada línea de código
▪ Señal Escalón Unitario
t = -1:0.01:3;
u = t>=0;
plot(t,u,'linewidth',1.5)
title('SEÑAL ESCALÓN UNITARIO');
axis([-1 3 -0.25 1.5])
xlabel('Tiempo (s)');
ylabel('u(t)')
grid on;
▪ Señal Rampa Unitaria
t = 0:0.01:1;
u = t;
plot (t,u,'linewidth',1.5)
title('SEÑAL RAMPA UNITARIA');
axis([-0.05 1 -0.05 1])
7
xlabel('Tiempo (s)');
ylabel('u(t)')
grid on;
▪ Señal Parábola
t=0:0.01:3;
u = t.^2;
plot (t, u, 'linewidth', 1.5)
title('SEÑAL PARÁBOLA');
axis([-0.05 3 -0.05 5])
xlabel('Tiempo (s)');
ylabel('u(t)')
grid on;
▪ Señal Impulso Unitario
t=-2:0.01:2;
impulse=t==0;
plot (t, impulse, "b", "Linewidth",1.5);
title("IMPULSO UNITARIO \delta(t)");
axis([-2.1 2.1 -0.1 1.1]);
xlabel('Frecuencia (Hz)');
ylabel('\delta(t)');
grid on
▪ Señal Exponencial
k=2;
a=2;
t=-1:0.01:3;
y=k*exp(-a.*t);
plot (t, y, 'Linewidth',1.5);
xlabel('Tiempo (s)');
ylabel('Señal exponencial y(t)');
axis([-0.1,3.1 -0.1,3])
title('SEÑAL EXPONENCIAL y(t)');
grid on
‒ Cambie el signo a la variable a y haga las modificaciones al programa para visualizar
el gráfico
▪ Señal Senoidal
Al igual que en los apartados anteriores elabore un script para mostrar la señal seno y
coseno
4.7.2 Simulink
Se representarán las señales de entrada más comunes vistas previamente en Matlab, pero
en este caso usando Simulink
▪ Señal Escalón unitario
‒ Ejecute Simulink y genere un modelo en blanco
‒ Para ubicar los bloques que se necesitan para esta señal, haga clic en Library
Browser como muestra la figura 6
8
Figura 6: Botón de librerías en Simulink
‒ Despliegue la librería Simulink. Como el bloque Escalón Unitario es un elemento
fuente, despliegue la opción Sources como muestra la figura 7:
Figura 7: Despliegue de la librería Simulink
‒ Ubique el bloque Step y arrástrelo al área de trabajo
‒ Para visualizar el funcionamiento del bloque o en general el resultado de cualquier
sistema se usa un bloque Scope que es un sumidero (sinks). Despliegue la librería
Sinks y arrastre el bloque Scope
‒ Finalmente hay que unir ambos bloques a través de una línea arrastrando el cursor
entre los puntos de unión (>). El sistema debe quedar como muestra la figura 8:
Figura 8: Diagrama de bloques de la señal escalón unitario
‒ Puede modificar las propiedades de cualquier bloque haciendo doble clic sobre él.
En este caso, no es necesario por lo que se procederá a ejecutar el modelo para lo
cual haga clic sobre el botón Run ubicado en la cinta SIMULATION
9
Figura 9: Botón de ejecución (Run)
‒ Para ver el resultado, simplemente haga doble clic sobre el bloque Scope y se
presentará una ventana con los resultados.
▪ Señal Rampa Unitaria: Repita el procedimiento anterior
▪ Señal Parábola
‒ Para generar una señal parábola en Simulink se utiliza el bloque Clock (Librería
Sources) para simular el tiempo. A este bloque se le conecta el bloque math
function (librería Math Operations), que incluye varias operaciones matemáticas
clásicas, una de ellas es elevar al cuadrado la señal de entrada. Así, se puede generar
y utilizar una señal parábola para nuestros intereses, tal y como se ve en la figura
10:
Figura 10: Diagrama de bloques de señal parábola
‒ Para la señal parábola es necesario modificar los parámetros del bloque math
function como lo muestra la figura 11:
Figura 11: Parámetros del bloque Math Function
‒ Ejecute y muestre los resultados
▪ Señal impulso Unitario
‒ Para representar esta función se debe tener en cuenta que no existe bloques
directos, por tanto, se debe hacer uso de dos Step y un Add (librería Math
Operations), de tal forma que ayudarán a generar la señal impulso del ancho y de
la amplitud que uno desee, como lo muestra la figura 12.
10
Figura 12: Diagrama de bloques de la señal impulso unitario
‒ Para conseguir una señal impulso de ancho 0.01 segundos y una amplitud unitaria,
es necesario modificar las entradas del bloque Add y los bloques step se configuran
de la siguiente manera:
Figura 13: Parámetros de los bloques Step
‒ Ejecute y muestre los resultados
‒ Si bien no es una función impulso como tal, nos ayuda a representar el concepto de
la función
▪ Señal exponencial
‒ Para la representación de la señal exponencial en Simulink se hace uso de los
siguientes elementos: un bloque clock en la cual se tendrá la variable de tiempo; un
bloque math function en la cual se tendrá la función exponencial; y unos bloques
gain (ganancias), las cuales representarán el valor de a, ya sea positiva o negativa,
y la otra ganancia, que mostrara k. Para la representación de la señal se usa un
scope. El orden de la función se indica en la figura 14.
Figura 14: Diagrama de bloques de la señal exponencial
‒ Haga las configuraciones respectivas y luego ejecute y muestre los resultados.
11
4.7.3 Actividades propuestas
Tomando como referencia el apartado anterior, haga la representación de la señal seno
utilizando Simulink
4.7.4 Cuestionario
i. Elabore un breve resumen de las librerías de Simulink
ii. Muestre un ejemplo de cómo interactúan Matlab y Simulink
5. Resultados y conclusiones
6. Referencias bibliográficas
▪ Julio Tafur Sotelo, Gabriel Vinicio Moreano Sánchez y Ángel Sánchez Oñate. Teoría clásica de
control automático. 2024. Ed. Marcombo. 1ra edición.
▪ Dawn Tilbury & Bill Messner. (20 de febrero de 2025). University of Michigan: Simulink Basic
Tutorial. https://ctms.engin.umich.edu/CTMS/index.php?aux=Basics_Simulink
12
13