Crear un modelo simple
Puede utilizar Simulink® para modelar un sistema y luego simular su comportamiento dinámico. Las técnicas básicas utilizadas para crear un modelo simple en este tutorial son las mismas que se utilizan para modelos más complejos. Este ejemplo simula el movimiento simplificado de un automóvil. Un automóvil se desplaza cuando se acciona el acelerador. Cuando se suelta el acelerador, el automóvil disminuye la velocidad y finalmente se detiene.
Un bloque de Simulink es un elemento de modelo que define una relación matemática entre su entrada y su salida. Para crear este modelo simple, necesita cuatro bloques de Simulink.
Nombre del bloque | Finalidad del bloque | Finalidad del modelo |
---|---|---|
Pulse Generator | Generar una señal de entrada para el modelo | Representar el acelerador |
Gain | Multiplicar la señal de entrada por un valor constante | Calcular cómo accionar el acelerador influye en la aceleración del automóvil |
Integrator, Second-Order | Integrar la señal de entrada dos veces | Obtener la posición a partir de la aceleración |
Outport | Designar una señal como salida del modelo | Designar la posición como salida del modelo |
Al simular este modelo, se integra un impulso breve dos veces para obtener una rampa. Los resultados se muestran en la ventana Scope. El impulso de entrada representa el accionar del acelerador: 1 cuando se acciona y 0 cuando no. La rampa de salida es la distancia ascendente a partir del punto de partida.
Abrir un modelo nuevo
Utilice el editor de Simulink para construir modelos.
Inicie MATLAB®. En la barra de herramientas de MATLAB, haga clic en el botón Simulink
.
Haga clic en la plantilla Blank Model.
Se abre el editor de Simulink.
En la pestaña Simulation, seleccione Save > Save as. En el cuadro de texto File name, introduzca un nombre para el modelo. Por ejemplo,
simple_model
. Haga clic en Save. El modelo se guarda con la extensión de archivo.slx
.
Abrir Simulink Library Browser
Simulink proporciona un conjunto de bibliotecas de bloques, organizadas por funcionalidad en Library Browser. Las siguientes bibliotecas son comunes para la mayoría de los flujos de trabajo:
Continuous: bloques para sistemas con estados continuos
Discrete: bloques para sistemas con estados discretos
Math Operations: bloques que implementan ecuaciones algebraicas y lógicas
Sinks: bloques que almacenan y muestran las señales que se conectan a ellos
Sources: bloques que generan los valores de señal que impulsan el modelo
En la pestaña Simulation, haga clic en el botón Library Browser
.
Ubique Library Browser por encima del resto de ventanas del escritorio. En la barra de herramientas de Simulink Library Browser, seleccione el botón Stay on top
.
Para examinar las bibliotecas de bloques, seleccione una categoría y, a continuación, un área funcional en el panel izquierdo. Para buscar en todas las bibliotecas de bloques disponibles, introduzca un término de búsqueda.
Por ejemplo, busque el bloque Pulse Generator. En la casilla de búsqueda de la barra de herramientas del navegador, introduzca pulse
y, a continuación, pulse Enter. Simulink busca en las bibliotecas los bloques que tienen pulse
en su nombre o descripción y después muestra los bloques.
Obtenga información detallada sobre un bloque. Haga clic con el botón secundario en el bloque Pulse Generator y, a continuación, seleccione Help for the Pulse Generator block. Se abrirá la página de ayuda de referencia para el bloque.
Los bloques suelen tener varios parámetros. Puede acceder a todos los parámetros de un bloque haciendo doble clic en este.
Añadir bloques a un modelo
Para empezar a construir el modelo, examine la biblioteca y añada los bloques.
Desde la biblioteca
Sources
, arrastre el bloque Pulse Generator al editor de Simulink. Aparece una copia del bloque Pulse Generator en su modelo con un cuadro de texto para el valor del parámetro Amplitude. Introduzca1
.Los valores de los parámetros se mantienen a lo largo de la simulación.
Añada los siguientes bloques a su modelo utilizando el mismo método.
Bloque Biblioteca Parámetro Gain Simulink/Math Operations
Ganancia:
2
Integrator, Second-Order Simulink/Continuous
Condición inicial:
0
Outport Simulink/Sinks
Número de puerto:
1
Añada un segundo bloque Outport copiando el existente y pegándolo en otro punto utilizando accesos directos del teclado.
Ahora el modelo tiene los bloques necesarios.
Organice los bloques haciendo clic y arrastrando cada uno. Para cambiar el tamaño de un bloque, arrastre una esquina.
Conectar bloques
Conecte los bloques creando líneas entre puertos de salida y puertos de entrada.
Haga clic en el puerto de salida a la derecha del bloque Pulse Generator.
El puerto de salida y todos los puertos de entrada aptos para una conexión se indican con una comilla angular de apertura azul
.
Apunte a
para ver el indicador de conexión.
Haga clic en el indicador. Simulink conecta los bloques con una línea y una flecha que indican la dirección del flujo de señales.
Conecte el puerto de salida de Gain block al puerto de entrada en el bloque Integrator, Second-Order.
Conecte las dos salidas del bloque Integrator, Second-Order a los dos bloques Outport.
Guarde su modelo. En la pestaña Simulation, haga clic en Save.
Añadir visor de señales
Para ver los resultados de la simulación, conecte la primera salida a un bloque Signal Viewer.
Haga clic en la señal. En la pestaña Simulation, en Prepare, haga clic en Add Viewer. Seleccione Scope. Aparece un icono de visor en la señal y se abre una ventana scope.
Puede abrir un scope en cualquier momento haciendo doble clic en el icono.
Ejecutar la simulación
Luego de definir los parámetros de configuración, podrá simular el modelo.
En la pestaña Simulation, establezca el tiempo de detención de la simulación cambiando el valor en la barra de herramientas.
El tiempo de detención predeterminado de
10.0
es adecuado para este modelo. Este valor de tiempo no tiene unidad. La unidad de tiempo en Simulink depende de cómo se construyan las ecuaciones. Este ejemplo simula el movimiento simplificado de un automóvil durante 10 segundos. Otros modelos pueden representar las unidades de tiempo en milisegundos o en años.Para ejecutar la simulación, haga clic en el botón Run
.
La simulación se ejecuta y genera la salida en el visor.
Ajustar el modelo
Este ejemplo toma un modelo existente, moving_car.slx
, y modela un sensor de proximidad basado en este modelo de movimiento. En esta situación, un sensor digital mide la distancia entre el automóvil y un obstáculo a 10 m (30 pies) de distancia. El modelo produce la medición del sensor y la posición del automóvil, teniendo en cuenta las siguientes condiciones:
El automóvil frena cuando alcanza el obstáculo.
En el mundo físico, un sensor mide la distancia de forma imprecisa, lo que genera errores numéricos aleatorios.
Un sensor digital funciona a intervalos de tiempo fijos.
Cambiar los parámetros de un bloque
Para empezar, abra el modelo moving_car
. En la línea de comandos de MATLAB, introduzca:
open_system('moving_car.slx')
Primero debe modelar la parada cuando la posición del automóvil alcanza 10
. El bloque Integrator, Second-Order tiene un parámetro para ese fin.
Haga doble clic en el bloque Integrator, Second-Order. Aparece el cuadro de diálogo Block Parameters.
Seleccione Limit x e introduzca
10
para Upper limit x. El color de fondo del parámetro cambia para indicar una modificación que no se aplica al modelo. Haga clic en OK para aplicar los cambios y cierre el cuadro de diálogo.
Añadir nuevos bloques y conexiones
Añada un sensor que mida la distancia desde el obstáculo.
Modifique el modelo. Amplíe la ventana del modelo para incluir los nuevos bloques si es necesario.
Encuentre la distancia real. Para encontrar la distancia entre la posición del obstáculo y la del vehículo, añada el bloque Subtract de la biblioteca
Math Operations
. Añada también el bloque Constant de la bibliotecaSources
para establecer el valor constante de10
para la posición del obstáculo.Modele la medición imperfecta que es habitual en un sensor real. Genere ruido utilizando el bloque Band-Limited White Noise de la biblioteca
Sources
. Establezca el parámetro Noise power en0.001
. Añada el ruido a la medición utilizando un bloque Add de la bibliotecaMath Operations
.Modele un sensor digital que se dispare cada 0,1 segundos. En Simulink, el muestreo de una señal a cada intervalo dado requiere un muestreo y retención. Añada el bloque Zero-Order Hold de la biblioteca
Discrete
. Después de añadir el bloque al modelo, cambie el parámetro Sample Time a0.1
.Añada otro bloque Outport para conectar a la salida del sensor. Conserve el valor predeterminado del parámetro Port number.
Conecte los nuevos bloques. La salida del bloque Integrator, Second-Order ya está conectada a otro puerto. Para crear una rama en esa señal, haga clic con el botón izquierdo en la señal para resaltar los puertos que se pueden conectar y, a continuación, haga clic en el puerto que corresponda.
Anotar señales
Añada nombres de señales al modelo.
Haga doble clic en la señal y agréguele un nombre.
Para finalizar, haga clic fuera del cuadro de texto.
Repita estos pasos para añadir los nombres como se muestra.
Comparar varias señales
Compare la señal actual distance
con la señal measured distance
.
Cree y conecte un bloque Scope Viewer a la señal
actual distance
. Haga clic con el botón secundario en la señal y seleccione Create & Connect Viewer > Simulink > Scope. El nombre de la señal aparece en el título del visor.Añada la señal
measured distance
al mismo visor. Haga clic con el botón secundario en la señal y seleccione Connect to Viewer > Scope1. Asegúrese de que se está conectando al visor que creó en el paso anterior.Ejecute el modelo. El visor muestra las dos señales,
actual distance
en amarillo ymeasured distance
en azul.Haga zoom en la gráfica para observar el efecto del ruido y el muestreo. Haga clic en el botón Zoom
. Haga clic con el botón izquierdo y arrastre una ventana por la región que desea ver más de cerca.
Puede hacer zoom varias veces para observar los detalles.
Desde la gráfica, observe cómo la medición puede desviarse del valor real en hasta 0,3 m. Esta información resulta útil al diseñar funcionalidades de seguridad, por ejemplo, una advertencia de colisión.
Consulte también
Bloques
- Pulse Generator | Gain | Second-Order Integrator | Add | Constant | Zero-Order Hold | Band-Limited White Noise