Volver a la portadaCiencias de la Computación · 9° EBI · Cambiar asignatura
Empezar gratis
9° EBI · Ciencias de la Computación
Pensamiento computacional y robótica · Sistemas de control

Simulación y verificación de sistemas de control

Te conviene dominar: Los sistemas de control (8.° grado de Educación Básica Integrada (2.° de liceo))
Te conviene dominar: Algoritmos y pensamiento computacional (8.° grado de Educación Básica Integrada (2.° de liceo))

El equipo de Valentina armó un sistema de riego para la huerta del liceo. Lo conectaron directo, sin probar, y la electroválvula quedó trabada 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 dinero, tarda en armarse y se puede dañar al primer error. Un modelo en la pantalla de la computadora no.

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
Explicá qué es un simulador de circuitos o de robótica y dá dos ventajas de probar en él antes de hacer el montaje real.

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

Resolver
Practica★☆☆Sin empezar
Explicá la diferencia entre simular un circuito en la computadora y montarlo en una placa de pruebas real: qué se gana y qué se pierde con cada método.

Explicá la diferencia entre simular un circuito en la computadora y montarlo en una placa de pruebas real: qué se gana y qué se pierde con cada método.

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

Algunos simuladores permiten «acelerar el tiempo». Explicá 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. Dá tres causas posibles que un simulador no detecta y explicá cómo…

En el simulador tu programa funciona perfectamente, pero en el montaje real el motor no gira. Dá tres causas posibles que un simulador no detecta y explicá 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 placa de pruebas) 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. Imaginá 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
Escribí 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.

Escribí 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}$. Definí 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}$. Definí tres casos de prueba (dato de entrada y resultado esperado) para verificarlo, incluyendo el valor límite de $26\ ^\circ\text{C}$, y justificá por qué ese último caso es importante.

Resolver
Practica★★☆Sin empezar
Explicá 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 de aprobado a partir de…

Explicá 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 de aprobado 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ñá 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ñá 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
Explicá qué es una «prueba de estrés» de un sistema de control y proponé una para el programa de un estacionamiento: qué condiciones extremas simularías y qué…

Explicá qué es una «prueba de estrés» de un sistema de control y proponé una para el programa de un estacionamiento: qué condiciones extremas simularías y qué comportamiento correcto esperás.

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

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

Resolver
Practica★★☆Sin empezar
Diseñá 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ñá 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 ultrasonidos 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ñá una…

Un robot móvil utiliza un sensor de ultrasonidos 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ñá 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 tenés que 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ñá un plan de verificación para simular el sistema antes de su puesta en marcha. Tenés que definir 5 casos de prueba exhaustivos que incluyan situaciones de conflicto de prioridades y fallos de suministro. Para cada caso detallá: 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 la computadora, 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. Para corregirlo, esperá un tiempo parecido al retardo (por ejemplo, 2 minutos) antes de volver a leer, o usá un doble umbral.

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. Indicá 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. Indicá qué debería hacer ese bloque y describí 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, programaste este bucle de control: REPETIR SIEMPRE: humedad = leer_sensor() SI humedad < 30 % ENTONCES:…

En la simulación de un sistema de riego para una huerta escolar, programaste 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) Justificá 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ñá 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) Determiná cuántas órdenes de movimiento recibe el motor en ese intervalo y justificá qué consecuencias mecánicas y energéticas tiene este funcionamiento.
  2. b) Diseñá una solución basada en doble umbral (histéresis) definiendo valores numéricos concretos para la orden de bajada y de subida, y demostrá 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 de las fases del desarrollo de un proyecto: 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
Explicá con tus palabras qué significa verificar un programa y en qué se diferencia de «probarlo un poco a ver si funciona».

Explicá 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 programa un robot transportador para un depósito. 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 un depósito. 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 marcha atrás, recorriendo los pasillos en sentido contrario al flujo de trabajo del depósito. El profesor afirma: «El software está perfectamente verificado, pero el sistema no está validado».

  1. a) Justificá técnicamente la afirmación del profesor aplicando las definiciones operativas de verificación y validación a este caso concreto.
  2. b) Reformulá 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 podés 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

Dejá registro de cada prueba en una tabla (caso, entrada, salida esperada, salida obtenida, si pasó o no, fecha y quién la hizo). Es parte de la bitácora del proyecto y ayuda al equipo a no repetir errores.

Practica★☆☆Sin empezar
Explicá qué significa depurar un programa y nombrá una técnica sencilla para hacerlo en un simulador (ejecutar paso a paso, observar el valor de las variables).

Explicá qué significa depurar un programa y nombrá 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 serie (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) Interpretá 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 ultrasonidos.
  2. b) Diseñá qué variables adicionales o condiciones de alerta temprana deberías incluir en el registro y en el código de control para gestionar este problema de forma progresiva sin llegar a la desconexión abrupta.
Resolver
Practica★★★Sin empezar
Reto del tema. Climatización inteligente en tu hogar. ¿Sabías que automatizar la calefacción puede reducir drásticamente el consumo energético? Diseñá y validá un…

Reto del tema. Climatización inteligente en tu hogar.

¿Sabías que automatizar la calefacción puede reducir drásticamente el consumo energético? Diseñá y validá un sistema eficiente para tu casa.

  1. Datos y modelado: Consultá en la web de INUMET la previsión de temperaturas para las próximas $24\text{ h}$ en tu localidad. Compará en una tabla cómo respondería un sistema de lazo abierto (temporizador fijo) frente a uno de lazo cerrado (con retroalimentación), identificando para este último: sensor, controlador y actuador.

  2. Diseño y simulación: Entrá en Tinkercad Circuits o MakeCode. Modelá un circuito con un sensor de temperatura, un microcontrolador y un actuador (LED o relé que represente la caldera). Programá el controlador para que active la calefacción si la temperatura baja de una consigna de $20,5\text{ }^\circ\text{C}$ y se apague al alcanzarla.

  3. Verificación y propuesta final: Simulá cambios de temperatura ambiente para verificar que el sistema reacciona automáticamente. Redactá un informe breve en LibreOffice con capturas del montaje y un gráfico de las temperaturas de INUMET, justificando cuántas horas de encendido innecesario evita el lazo cerrado.

Se valorará:

  • Identificación y distinción conceptual rigurosa de los elementos del lazo abierto y cerrado.

  • Montaje, programación y verificación funcional del sistema simulado con la consigna dada.

  • Justificación razonada del ahorro energético a partir de los datos meteorológicos reales consultados.

Resolver

Volvé 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 abierta antes de mojar la huerta.

Resumen

Ver todos los ejercicios de este apartado