Modelos Continuos · Tema 02

Tiempo continuo

Del paso discreto al flujo permanente: instantes, intervalos, horizonte y el paso dt como decisión numérica, no como propiedad del sistema.

01 · Punto de partida

El reloj que nunca se detiene

En el Tema 1 vimos que un sistema continuo fluye en todo instante. Ahora miramos el reloj mismo: entre el segundo 2 y el segundo 3 también existen t = 2,1, t = 2,37 y t = 2,718. El tiempo no avanza por turnos ni espera a que lo midamos.

Cuando programamos, en cambio, estamos obligados a avanzar por pasos: calculamos en t = 0, luego en t = dt, luego en t = 2·dt. La pregunta central del tema es: ¿cómo representar un tiempo sin saltos dentro de un programa que avanza por saltos?

  • ¿Qué instantes existen entre dos mediciones?
  • ¿Qué perdemos al avanzar con pasos grandes?
  • ¿Qué significa que dt tienda a cero?
  • ¿Hasta cuándo simulamos: cuál es el horizonte?

02 · Definición

¿Qué es el tiempo continuo?

El tiempo continuo tiene tres ingredientes inseparables:

·

Instante

Cada punto del reloj existe: t = 1,5, t = 1,51, t = 1,515… No hay «siguiente instante», siempre hay uno en el medio.

↔

Intervalo

El tramo entre dos instantes tiene duración real: entre t = 2 y t = 5 pasan 3 minutos de flujo, no un salto.

▷

Horizonte

Hasta dónde seguimos la historia: T = 12 min, T = 30 días. Fuera del horizonte, el modelo no promete nada.

La misma historia puede contarse con relojes distintos: el sistema vive en tiempo continuo, la medición lo muestrea y la simulación lo integra por pasos. Los tres relojes deben distinguirse.

Tres relojes para la misma historia.
RelojEjemploQué representa
SistemaEl tanque fluye siempreTiempo continuo real del fenómeno.
MediciónMido cada 2 minutosMuestreo discreto de la curva continua.
SimulaciónIntegro con dt = 0,1Aproximación numérica por pasos finos.
HorizonteSimulo hasta T = 12Fin de la historia que nos interesa.

03 · Anatomía

Instante, paso, horizonte y muestreo

Para no mezclar los relojes conviene nombrar cada pieza con precisión:

Instante t
Punto del reloj continuo: puede ser 3, 3,5 o 3,14159. Siempre hay más entre dos dados.
Paso dt
Salto de la aproximación numérica: 1, 0,5, 0,1. No es del sistema, es de nuestro programa.
Horizonte T
Fin de la simulación: hasta dónde integramos la trayectoria.
Muestreo
Cada cuánto observamos o guardamos: puede ser distinto de dt.

Reloj discreto

Solo existen los pasos

El estado solo vive en t = 0, 1, 2… Entre pasos no hay nada. Es el mundo de los turnos y los eventos.

Reloj continuo

Todo instante existe

El estado x(t) está definido en cada punto de [0, T]. El programa lo aproxima con dt fino, pero la curva vive entre los puntos.

04 · Tiempo en los modelos

Dónde aparece el reloj

El tiempo continuo reordena las distinciones clásicas de modelos. Tres preguntas bastan para ubicarse:

¿Cambia en el tiempo?→¿Fluye o salta?→¿Hasta cuándo?
  1. 1
    Estático o dinámico.

    Una foto (costo de hoy) no necesita reloj; una película (nivel durante 12 minutos) sí. Este curso es dinámico.

  2. 2
    Discreto, continuo o híbrido.

    Por eventos (llegan clientes), por flujos (entra agua) o mezclando ambos (tanque con descargas puntuales).

  3. 3
    Horizonte corto o largo.

    A corto plazo importa la trayectoria exacta; a largo plazo importan el equilibrio y la tendencia. Lo veremos en el Tema 27.

05 · Representación en Python

El reloj continuo en una lista de tiempos

En Python no podemos guardar infinitos instantes, pero sí una malla fina que los aproxime: [0, dt, 2·dt, …, T]. Con dt = 0,1 la malla tiene 121 puntos en [0, 12]; con dt = 2 solo 7. La curva real vive entre ellos.

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Achicá dt y observá cómo la poligonal se acerca a la recta exacta.

def malla_temporal(t_final, dt):
    tiempos = []
    t = 0.0
    while t < t_final + 1e-9:
        tiempos.append(round(t, 3))
        t += dt
    return tiempos


print("dt=2  :", malla_temporal(6, 2))
print("puntos con dt=0.5:", len(malla_temporal(6, 0.5)))

Probá con dt = 0,1: ¿cuántos puntos hay en [0, 6]? ¿Qué pasa si dt no divide exacto a T?

Integrar una tasa constante

Con tasa fija, la solución exacta es una recta x(t) = x0 + tasa·t. Euler con cualquier dt la recupera exacta; la diferencia aparece cuando la tasa depende del estado (Temas 15–16). Por ahora, comparemos malla gruesa y fina sobre la misma recta:

def euler_tasa_constante(x0, tasa, t_final, dt):
    x, t = x0, 0.0
    historia = [(t, x)]
    while t < t_final - 1e-9:
        x = x + tasa * dt
        t = round(t + dt, 6)
        historia.append((round(t, 3), round(x, 3)))
    return historia


print(euler_tasa_constante(10, 1, 4, dt=2))
print(euler_tasa_constante(10, 1, 4, dt=0.5)[-1])

06 · Exploración

Laboratorio: dt grueso frente a dt fino

La curva dorada es la solución exacta continua x(t) = x0 + tasa·t. La escalera teal es Euler con tu paso dt: con tasa constante coinciden en los nodos, pero mirá qué pasa con la forma entre ellos y qué lejos queda la escalera cuando el paso es grande.

EXPERIMENTO 02

El mismo flujo, dos resoluciones

x(t) = x₀ + tasa · t

Los resultados numéricos aparecen debajo.
Final exacto (T=12)22,00
Final con dt22,00
Nodos calculados7
LecturaCoinciden

Con dt 2 hay 7 nodos y la escalera se separa de la curva entre ellos.

La recta dorada existe en todo instante; la escalera teal solo conoce los nodos. Entre nodos, Euler supone tasa congelada: con dt grande el dibujo miente aunque el valor final coincida.

Preguntas para explorar

  1. Con tasa +1 y dt = 4, ¿el valor final es correcto? ¿Y la forma entre nodos?
  2. Poné la tasa en 0. ¿Cuántos nodos hacen falta para dibujar bien una horizontal?
  3. Si dt no divide a T = 12 (por ejemplo 5), ¿qué hace el último paso?
Ver respuestas sugeridas
  1. El final coincide (la recta se recupera en los nodos), pero entre nodos la escalera dibuja mesetas falsas: la forma miente.
  2. Con tasa 0 bastan 2 nodos para el valor, pero la escalera con dt grande sigue dibujando escalones donde hay una línea.
  3. El último tramo queda más corto: conviene recortar el paso final a T en vez de pasarse del horizonte.

07 · Comprensión

Confusiones frecuentes

«dt es una propiedad del sistema»

No: el sistema no tiene dt. El paso es una decisión de tu programa: con dt más fino ves mejor la misma curva.

«Si el valor final coincide, el dt era bueno»

Con tasa constante el final siempre coincide y aun así la forma puede mentir. Con tasas que dependen del estado, el final también se desvía.

«Más horizonte siempre es mejor»

Más horizonte acumula más error y cuesta más cómputo. El horizonte debe responder a la pregunta, no a la ambición.

«Muestreo y paso son lo mismo»

Podés integrar con dt = 0,1 y guardar cada 2 minutos. Uno define precisión, el otro define cuánto observás.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: contar nodos

Sin ejecutar primero: ¿cuántos nodos tiene la malla [0, 12] con dt = 3? ¿Y con dt = 0,5? Después comprobalo.

def cantidad_nodos(t_final, dt):
    n = 0
    t = 0.0
    while t < t_final + 1e-9:
        n += 1
        t += dt
    return n


print(cantidad_nodos(12, 3))
print(cantidad_nodos(12, 0.5))
Ver solución

Con dt = 3 hay 5 nodos (0, 3, 6, 9, 12). Con dt = 0,5 hay 25 nodos. Achicar dt multiplica el costo: precisión y cómputo se negocian.

Ejercicio 2: exacto frente a Euler

Completá la comparación para tasa −0,5 desde x0 = 10 hasta T = 6 con dt = 2. ¿Coinciden?

def comparar(x0, tasa, t_final, dt):
    exacto = x0 + tasa * t_final
    x, t = x0, 0.0
    while t < t_final - 1e-9:
        x = x + tasa * dt
        t += dt
    return exacto, x


print(comparar(10, -0.5, 6, 2))
Ver solución

Ambos dan 7,0: con tasa constante, Euler es exacto en los nodos para cualquier dt. La trampa está en la forma entre nodos, no en el número final.

Ejercicio 3: recortar el último paso

Escribí una malla que nunca se pase de T: si el paso siguiente excede el horizonte, recortalo. Probala con T = 12 y dt = 5.

Ver una posible respuesta
def malla_recortada(t_final, dt):
    tiempos, t = [0.0], 0.0
    while t < t_final - 1e-9:
        t = min(t + dt, t_final)
        tiempos.append(round(t, 3))
    return tiempos


print(malla_recortada(12, 5))

Da [0, 5, 10, 12]: el último paso mide 2 en vez de 5. Respetar el horizonte evita inventar tiempo más allá de la pregunta.

09 · Síntesis

Ideas para recordar

  • El tiempo continuo vive en todo punto de [0, T]: entre dos instantes siempre hay más.
  • Sistema, medición y simulación tienen relojes distintos: flujo real, muestreo y paso dt.
  • dt es resolución numérica: achicarlo acerca la poligonal a la curva y multiplica el costo.
  • Con tasa constante, Euler acierta en los nodos pero la escalera deforma la forma entre ellos.
  • Horizonte, paso y muestreo son tres argumentos separados: no los mezcles en una sola variable.

En el próximo tema estudiaremos las variables de estado continuas: los niveles que varían en cada instante y cómo elegirlos bien.