Volver a la portadaTecnología e Informática · Grado 9.° · Cambiar asignatura
Empezar gratis
Noveno 9° · Tecnología e Informática
Pensamiento computacional y robótica · Sistemas de control

Simulación y verificación de sistemas de control

Te conviene dominar: Algoritmos y pensamiento computacional (grado séptimo de Básica Secundaria)

El equipo de Valentina armó un sistema de riego para la huerta del colegio. Lo conectaron directo, sin probar, y la electroválvula se trabó abierta: la huerta amaneció encharcada y se quemó un componente. ¿Cómo pudieron haberlo evitado sin gastar una sola pieza? Probando antes en una simulación y con un plan de pruebas. Al final de la página volvemos a su caso.

Por qué simular antes de montar

Un prototipo físico cuesta plata, tarda en armarse y se puede dañar al primer error. Un modelo en la pantalla del computador (o de la tableta del colegio) no. En clase se usan simuladores como Tinkercad Circuits o MakeCode.

Un mismo programa de control se ejecuta en un simulador, con un robot y un obstáculo virtuales, y en el prototipo real, con un robot y un obstáculo físicos. programa de control (idéntico en ambos) simulador (sin riesgo) prototipo real

Un caso típico: el LED sin resistencia

Algunos simuladores dejan conectar un LED directo a un pin de la placa y lo muestran encendido sin ningún aviso. En el mundo real se quema. La ley de Ohm explica por qué y permite calcular la resistencia que lo protege.

Sin resistencia, solo queda el cable (en la simulación, un modelo ideal que permite una corriente enorme, como $115\ \text{mA}$). Eso es mucho más que los $20\ \text{mA}$ del LED y que los $40\ \text{mA}$ que soporta el pin: en la realidad se dañarían ambos.

Practica★☆☆Sin empezar
Explica qué es un simulador de circuitos o de robótica y da dos ventajas de probar en él antes de hacer el montaje real.

Explica qué es un simulador de circuitos o de robótica y da dos ventajas de probar en él antes de hacer el montaje real.

Resolver
Practica★☆☆Sin empezar
Explica la diferencia entre simular un circuito en el computador y montarlo en una protoboard real: qué se gana y qué se pierde con cada método.

Explica la diferencia entre simular un circuito en el computador y montarlo en una protoboard real: qué se gana y qué se pierde con cada método.

Resolver
Practica★☆☆Sin empezar
Algunos simuladores permiten «acelerar el tiempo». Explica qué ventaja tiene eso para probar el comportamiento de un termostato durante un día completo.

Algunos simuladores permiten «acelerar el tiempo». Explica qué ventaja tiene eso para probar el comportamiento de un termostato durante un día completo.

Resolver
Practica★★☆Sin empezar
En el simulador tu programa funciona perfectamente, pero en el montaje real el motor no gira. Da tres causas posibles que un simulador no detecta y explica cómo…

En el simulador tu programa funciona perfectamente, pero en el montaje real el motor no gira. Da tres causas posibles que un simulador no detecta y explica cómo comprobarías cada una en la mesa de trabajo.

Resolver
Practica★★☆Sin empezar
En la simulación, el LED parpadea con ritmo perfecto, pero en el montaje real parpadea de forma irregular. Da dos causas eléctricas que el simulador idealiza (tolerancia…

En la simulación, el LED parpadea con ritmo perfecto, pero en el montaje real parpadea de forma irregular. Da dos causas eléctricas que el simulador idealiza (tolerancia de las resistencias, contactos flojos de la protoboard) y cómo acotar cada una.

Resolver

Diseño de casos de prueba

Verificar un programa no es «probarlo un poco a ver si funciona». Es comparar, caso por caso y con un plan escrito, lo que hace el sistema con lo que debería hacer.

Una compuerta lógica es el ejemplo más sencillo: con dos entradas hay solo cuatro combinaciones, y probarlas todas agota las posibilidades.

Umbral con histéresis

Cuando la lectura de un sensor fluctúa justo alrededor del umbral, una regla simple hace que el actuador se prenda y apague sin parar. Imagina una persiana con la regla «si luz ≥ 800 lx, bajar; si no, subir», y lecturas como 805, 795, 812, 798: el motor recibiría una orden en cada cambio, con desgaste y gasto de energía.

Al probarla, tus casos deben incluir lecturas que oscilan dentro de la zona entre los dos umbrales y comprobar que el actuador no cambia.

Practica★☆☆Sin empezar
Escribe dos casos de prueba para un programa que hace sonar una alarma cuando se abre una puerta: qué entrada se simula y qué salida se espera en cada caso.

Escribe dos casos de prueba para un programa que hace sonar una alarma cuando se abre una puerta: qué entrada se simula y qué salida se espera en cada caso.

Resolver
Practica★★☆Sin empezar
Un programa debe encender un ventilador cuando la temperatura supere los $26\ ^\circ\text{C}$. Define tres casos de prueba (dato de entrada y resultado esperado) para…

Un programa debe encender un ventilador cuando la temperatura supere los $26\ ^\circ\text{C}$. Define tres casos de prueba (dato de entrada y resultado esperado) para verificarlo, incluyendo el valor límite de $26\ ^\circ\text{C}$, y justifica por qué ese último caso es importante.

Resolver
Practica★★☆Sin empezar
Explica qué es un «caso límite» al verificar un programa y por qué son tan importantes. Pon un ejemplo con un programa que decide si una nota es aprobatoria a partir de…

Explica qué es un «caso límite» al verificar un programa y por qué son tan importantes. Pon un ejemplo con un programa que decide si una nota es aprobatoria a partir de 5.

Resolver
Practica★★☆Sin empezar
Un programa cuenta las personas que entran en una sala (sensor A) y las que salen (sensor B). Diseña tres casos de prueba pensados para cazar errores típicos: dos…

Un programa cuenta las personas que entran en una sala (sensor A) y las que salen (sensor B). Diseña tres casos de prueba pensados para cazar errores típicos: dos personas juntas, una que entra y sale seguida y un sensor que dispara dos veces por el rebote del contacto.

Resolver
Practica★★☆Sin empezar
Explica qué es una «prueba de estrés» de un sistema de control y propón una para el programa de un parqueadero: qué condiciones extremas simularías y qué comportamiento…

Explica qué es una «prueba de estrés» de un sistema de control y propón una para el programa de un parqueadero: qué condiciones extremas simularías y qué comportamiento correcto esperas.

Resolver
Practica★★☆Sin empezar
Un equipo verifica su programa solo en el «camino feliz», es decir, cuando todo sale bien. Explica qué son los casos de error y escribe dos para un cajero automático de…

Un equipo verifica su programa solo en el «camino feliz», es decir, cuando todo sale bien. Explica qué son los casos de error y escribe dos para un cajero automático de juguete (tarjeta no válida, saldo insuficiente).

Resolver
Practica★★☆Sin empezar
Diseña una tabla de verificación para un semáforo peatonal: estados (rojo, verde, ámbar intermitente), entradas (botón presionado, tiempo transcurrido) y la salida…

Diseña una tabla de verificación para un semáforo peatonal: estados (rojo, verde, ámbar intermitente), entradas (botón presionado, tiempo transcurrido) y la salida esperada en cada transición entre estados.

Resolver
Practica★★★Sin empezar
Un robot móvil utiliza un sensor de ultrasonido frontal (rango útil: 2,0 cm a 400,0 cm) y debe detenerse y girar si detecta un obstáculo a menos de 20,0 cm. Diseña una…

Un robot móvil utiliza un sensor de ultrasonido frontal (rango útil: 2,0 cm a 400,0 cm) y debe detenerse y girar si detecta un obstáculo a menos de 20,0 cm. Diseña una matriz de pruebas para verificar el código en el simulador antes de transferirlo al robot real. Tu plan debe contener al menos 4 casos de prueba distintos que incluyan valores frontera y anomalías de lectura. Para cada caso debes indicar: valor numérico simulado de entrada, comportamiento esperado de los motores y justificación técnica de por qué es imprescindible comprobar ese caso concreto.

Resolver
Practica★★★Sin empezar
Un invernadero cuenta con dos zonas de riego independientes (Zona A: semillero delicado; Zona B: cultivo general) gestionadas por un microcontrolador que recibe datos de…

Un invernadero cuenta con dos zonas de riego independientes (Zona A: semillero delicado; Zona B: cultivo general) gestionadas por un microcontrolador que recibe datos de dos sensores de humedad del suelo, un sensor digital de lluvia y un sensor de caudal en la tubería general. Diseña un plan de verificación para simular el sistema antes de su puesta en marcha. Debes definir 5 casos de prueba exhaustivos que incluyan situaciones de conflicto de prioridades y fallos de suministro. Para cada caso detalla: entradas simuladas exactas, estado previsto de las electroválvulas y de las alarmas, y qué daño material o agronómico previene esa prueba.

Resolver

Leer un diagrama de flujo y detectar fallos

Para encontrar un fallo conviene leer el programa como lo hace el computador, siguiendo el diagrama de flujo con valores concretos.

También hay fallos que solo aparecen cuando el simulador modela el tiempo. Un riego que lee la humedad, abre la válvula 10 segundos y vuelve a leer puede repetirse sin parar si el agua tarda minutos en filtrarse hasta el sensor: el programa «no ve» el efecto de su propia acción. Por eso conviene simular con el retardo real del entorno.

Practica★☆☆Sin empezar
El diagrama de flujo de la figura controla una luz automática que depende de un sensor (LDR), pero falta el contenido de un bloque. Indica qué debería hacer ese bloque y…

El diagrama de flujo de la figura controla una luz automática que depende de un sensor (LDR), pero falta el contenido de un bloque. Indica qué debería hacer ese bloque y describe qué hace el sistema cuando la lectura del sensor es 150 y cuando es 800.

Inicio Leer LDR ¿LDR < 200? sí ? no Apagar LED
Resolver
Practica★☆☆Sin empezar
¿Qué es un «fallo» o bug en un programa de control? Pon dos ejemplos sencillos (una condición escrita al revés, un umbral mal puesto) y el efecto que tendría cada uno.

¿Qué es un «fallo» o bug en un programa de control? Pon dos ejemplos sencillos (una condición escrita al revés, un umbral mal puesto) y el efecto que tendría cada uno.

Resolver
Practica★★★Sin empezar
En la simulación de un sistema de riego para una huerta escolar, has programado este bucle de control: REPETIR SIEMPRE: humedad = leer_sensor() SI humedad < 30 %…

En la simulación de un sistema de riego para una huerta escolar, has programado este bucle de control:

REPETIR SIEMPRE:

humedad = leer_sensor()

SI humedad < 30 % ENTONCES:

activar_electroválvula()

esperar(10 segundos)

desactivar_electroválvula()

FIN REPETIR

Al ejecutarlo en un simulador que modela la absorción física del agua con un retardo de infiltración de 2 minutos, la electroválvula se abre y cierra sin parar durante decenas de ciclos seguidos, encharcando el terreno.

  1. a) Justifica por qué el programa genera este comportamiento en la simulación a pesar de incluir una instrucción explícita de desactivación.
  2. b) Rediseña el algoritmo (en pseudocódigo o diagrama de flujo) para solucionar el problema sin suprimir la lectura del sensor ni cambiar la electroválvula.
Resolver
Practica★★★Sin empezar
El sensor de luz de una persiana automática registra estos valores en un tramo de 6 minutos durante una tarde con nubes y claros: t = 0 min: 780 lx t = 1 min: 805 lx t =…

El sensor de luz de una persiana automática registra estos valores en un tramo de 6 minutos durante una tarde con nubes y claros:

  • t = 0 min: 780 lx

  • t = 1 min: 805 lx

  • t = 2 min: 795 lx

  • t = 3 min: 812 lx

  • t = 4 min: 798 lx

  • t = 5 min: 815 lx

  • t = 6 min: 820 lx

El sistema tiene programada la regla simple: «Si luz ≥ 800 lx, bajar persiana; si luz < 800 lx, subir persiana».

  1. a) Determina cuántas órdenes de movimiento recibe el motor en ese intervalo y justifica qué consecuencias mecánicas y energéticas tiene este funcionamiento.
  2. b) Diseña una solución basada en doble umbral (histéresis) definiendo valores numéricos concretos para la orden de bajada y de subida, y demuestra paso a paso cómo responde tu solución frente a la misma serie de datos.
Resolver

Verificar y validar: dos preguntas distintas

Verificar y validar son parte del desarrollo incremental: se prueba durante el desarrollo, se compara con los criterios que se fijaron al inicio y se ajusta lo necesario.

Esquema con tres bloques: la necesidad real se contrasta con el diseño o especificación mediante la validación, y el diseño se contrasta con el código mediante la verificación. necesidad real diseño / especificación ¿validar? ¿verificar? código ¿el diseño resuelve el problema real?
Practica★☆☆Sin empezar
Explica con tus palabras qué significa verificar un programa y en qué se diferencia de «probarlo un poco a ver si funciona».

Explica con tus palabras qué significa verificar un programa y en qué se diferencia de «probarlo un poco a ver si funciona».

Resolver
Practica★★★Sin empezar
Un equipo simula un robot seguidor de línea negra: en pantalla el algoritmo reacciona en 0,02 s, los motores responden de forma instantánea y el robot completa el…

Un equipo simula un robot seguidor de línea negra: en pantalla el algoritmo reacciona en 0,02 s, los motores responden de forma instantánea y el robot completa el circuito a 1,2 m/s sin ningún fallo. Sin embargo, al cargar el mismo programa en el robot real con los mismos sensores, este oscila bruscamente de lado a lado y acaba perdiendo la línea en la primera curva.

  1. a) Identifica y justifica tres factores del mundo físico que el simulador ha omitido o idealizado y que explican esta discrepancia.
  2. b) Propón dos modificaciones técnicas (una en los parámetros del software de control y otra en el montaje físico) para compensar esos efectos reales sin sustituir los sensores.
Resolver
Practica★★★Sin empezar
Un equipo programa un robot transportador para una bodega. Al ejecutar el plan de pruebas en el simulador, el robot esquiva el 100 % de los obstáculos y frena ante…

Un equipo programa un robot transportador para una bodega. Al ejecutar el plan de pruebas en el simulador, el robot esquiva el 100 % de los obstáculos y frena ante cualquier persona, pero el algoritmo siempre resuelve las esquivas realizando la maniobra en reversa, recorriendo los pasillos en sentido contrario al flujo de trabajo de la bodega. El profesor afirma: «El software está perfectamente verificado, pero el sistema no está validado».

  1. a) Justifica técnicamente la afirmación del profesor aplicando las definiciones operativas de verificación y validación a este caso concreto.
  2. b) Reformula el pliego de requisitos técnicos del robot para garantizar que una futura verificación asegure también su correcta validación en el entorno de trabajo.
Resolver

Depuración sistemática

En un simulador puedes depurar ejecutando el programa paso a paso y observando el valor de las variables en cada instrucción.

Diagrama de flujo de la depuración: tras fallar una prueba, aislar la parte defectuosa, corregir el error y repetir todos los casos de prueba anteriores. falla la prueba aislar la parte corregir repetir TODOS los casos de prueba anteriores
Practica★☆☆Sin empezar
Explica qué significa depurar un programa y nombra una técnica sencilla para hacerlo en un simulador (ejecutar paso a paso, observar el valor de las variables).

Explica qué significa depurar un programa y nombra una técnica sencilla para hacerlo en un simulador (ejecutar paso a paso, observar el valor de las variables).

Resolver
Practica★★★Sin empezar
Un robot rastreador se detiene de forma errática tras funcionar correctamente durante unos cinco minutos. Para diagnosticar el fallo, se activa el registro por puerto…

Un robot rastreador se detiene de forma errática tras funcionar correctamente durante unos cinco minutos. Para diagnosticar el fallo, se activa el registro por puerto serial (log) y se extraen estas líneas clave antes de la parada:

  • t = 295,0 s | Distancia: 35,0 cm | Temp_driver: 50,0 °C | Vbatería: 7,4 V | Estado: AVANZAR

  • t = 298,5 s | Distancia: 34,0 cm | Temp_driver: 78,0 °C | Vbatería: 7,2 V | Estado: AVANZAR

  • t = 300,0 s | Distancia: 35,0 cm | Temp_driver: 92,0 °C | Vbatería: 6,1 V | Estado: PARADA_EMERGENCIA

  1. a) Interpreta los datos del registro para determinar la causa física del fallo, rebatiendo el informe inicial del equipo que afirmaba que el fallo se debía a un defecto del sensor de ultrasonido.
  2. b) Diseña qué variables adicionales o condiciones de alerta temprana deberías incluir en el registro y en el código de control para manejar este problema de forma progresiva sin llegar a la desconexión abrupta.
Resolver

Vuelve al principio: el equipo de Valentina habría escrito casos normales, límite y de error para su riego (humedad justo en el umbral, sensor desconectado), los habría corrido en el simulador con el retardo del agua y habría descubierto que la válvula se quedaba abriendo y cerrando sin parar antes de mojar la huerta.

Resumen

Ver todos los ejercicios de este apartado