Diseñar un sistema en Simulink
El paradigma del diseño basado en modelos se centra en modelos de componentes y sistemas físicos como base para las actividades de diseño, pruebas e implementación. Este tutorial incorpora un componente diseñado a un modelo de sistema existente.
Abrir un modelo de sistema
El modelo es un robot plano que puede moverse o rotar con ayuda de dos ruedas, de forma similar a un robot aspirador. Abra el modelo entrando en la línea de comandos de MATLAB®:
open_system('system_model.slx')
Este tutorial analiza este sistema y añade funcionalidad.
Identificar componentes diseñados y objetivos de diseño
La especificación del objetivo de diseño es un primer paso fundamental para la tarea de diseño. Incluso en un sistema simple, puede haber varios objetivos de diseño e incluso objetivos contrapuestos. Considere los siguientes objetivos para el modelo de ejemplo:
Diseñar un controlador que cambie la entrada de fuerza para que las ruedas giren a una velocidad que desee.
Diseñar entradas que hagan que el dispositivo se desplace siguiendo una ruta predeterminada.
Diseñar un sensor y un controlador para que el dispositivo siga una línea.
Diseñar un algoritmo de planificación para que el dispositivo alcance un punto determinado utilizando la ruta más corta posible al tiempo que evade obstáculos.
Diseñar un sensor y un algoritmo para que el dispositivo se mueva dentro de un área concreta al tiempo que evade obstáculos.
Este tutorial diseña un sistema de alerta. Determine los parámetros para un sensor que mide la distancia desde un obstáculo. Un sensor perfecto mide la distancia a un obstáculo de forma precisa. Un sistema de alerta muestrea esas mediciones a intervalos fijos para que la salida esté siempre dentro de un rango de 0,05 m con respecto a la medición. El sistema genera una alerta a tiempo para que el robot se detenga antes de chocar contra el obstáculo.
Analizar el comportamiento del sistema utilizando una simulación
El diseño del nuevo componente requiere el análisis del movimiento lineal del robot para determinar:
Qué distancia puede cubrir el robot a la máxima velocidad cuando se interrumpe la alimentación a las ruedas
La velocidad máxima del robot
Ejecute el modelo con una entrada de fuerza que inicie el movimiento, espere hasta que el robot alcance una velocidad constante y, a continuación, establezca la fuerza de entrada en cero:
En el modelo, haga doble clic en el subsistema Inputs.
Elimine la entrada de paso existente y añada un bloque Pulse Generator.
Establezca parámetros para el bloque Pulse Generator:
Amplitud:
1
Periodo:
20
Ancho de pulso:
15
Estos parámetros están diseñados para garantizar que se alcance la máxima velocidad. Puede cambiar los parámetros para ver su efecto.
Ejecute el modelo durante 20 segundos.
El primer scope muestra que la velocidad empieza a descender rápidamente cuando se interrumpe la alimentación en la unidad de tiempo 3
. Después, la velocidad se acerca asintóticamente a cero, pero no lo llega a alcanzar. Se trata de una limitación del modelado; la dinámica a velocidades lentas sin fuerza externa requiere una representación más compleja. No obstante, para este objetivo es posible hacer aproximaciones. Haga zoom en la señal de posición.
En la unidad de tiempo 3
, la posición del robot se encuentra en aproximadamente 0,55 m. Cuando la simulación finaliza, la posición es inferior a 0,71 m. Se puede decir que el robot se desplaza menos de 0,16 m después de que se interrumpa la alimentación.
Para averiguar la máxima velocidad:
Haga zoom en la región estable de la salida de velocidad en los segundos del 1 al 3.
Salga del modo de zoom haciendo clic otra vez en el botón Zoom. Haga clic en el botón Cursor Measurements
.
Establezca el segundo cursor en la región en la que la curva de velocidad es plana.
La columna Value en el panel Cursor Measurements indica que la velocidad máxima del robot es 0,183 m/s. Si desea calcular el tiempo que lleva al robot desplazarse 0,05 m, divida 0,05 m entre 0,183 m/s. El resultado es 0,27 segundos.
Diseñar componentes y verificar el diseño
El diseño del sensor consta de estos componentes:
Medición de la distancia entre el robot y el obstáculo: este ejemplo asume que la medición es perfecta.
Intervalo de tiempo al que el sistema de alerta mide la distancia: para mantener el error de medición por debajo de 0,05 m, este intervalo de muestreo debe ser inferior a 0,27 segundos. Utilice 0,25 segundos.
Distancia a la que el sensor genera una alerta: el análisis muestra que la reducción de velocidad debe comenzar a 0,16 m del obstáculo. La distancia real de la alerta también debe tener en cuenta el error de las mediciones discretas, es decir, 0,05 m.
Añadir un componente diseñado
Construya el sensor:
Cree un subsistema con los puertos como se muestra.
Construya el subsistema de medición de la distancia. En el bloque del modelo Sensor, utilice Subtract, Math Function con la función
magnitude^2
y los bloques Sum y Sqrt como se muestra. Observe cómo se reordenan los puertos de entrada.Modele el muestreo. Añada un bloque Zero-Order Hold de la biblioteca Discrete al subsistema y establezca el parámetro Sample time en
0.25
.Modele la lógica de la alerta. Añada un bloque Compare to Constant de la biblioteca Logic and Bit Operations y establezca los siguientes parámetros:
Operator:
<=
Constant Value:
0.21
Output data type:
boolean
Este bloque lógico establece la salida en
1
cuando la entrada es menor que o igual a0.21
.Termine de conectar los bloques.
Verificar el diseño
Pruebe el diseño con un obstáculo ubicado en X = 0.65, Y = 0 utilizando los bloques Constant como entradas para el subsistema del modelo Sensor. Esta prueba verifica la funcionalidad del diseño en la dirección X. Puede crear varias pruebas similares para distintas rutas. Este modelo solo genera una alerta. No controla el robot.
Establezca la ubicación del obstáculo. Añada dos bloques Constant de la biblioteca Sources y establezca los valores constantes en
0.65
y0
. Conecte las salidas de posición del robot a la entradas del sensor.Añada un scope a la salida Alert.
Ejecute el modelo.
Observe cómo el estado de la alerta se convierte en 1
una vez que la posición pasa a estar en un rango de 0,21 m con respecto a la ubicación del obstáculo y se cumple el requisito de diseño para este componente.
En sistemas del mundo real con componentes complejos y requisitos formales, la línea de productos de Simulink® incluye herramientas adicionales para ajustar y automatizar el proceso de diseño. Requirements Toolbox™ proporciona herramientas para definir requisitos formalmente y vincularlos a los componentes del modelo. Simulink Control Design™ puede facilitar el diseño si desea crear un controlador para este robot. Los productos de Simulink Verification and Validation™ establecen un marco formal para probar componentes y sistemas.