/* * EJEMPLOS DE CONFIGURACIÓN TSNetRealTimeSimulator * ================================================ * * Este archivo contiene ejemplos de diferentes configuraciones para el simulador en tiempo real. * Muestra las opciones de timestep y intervalos de respuesta disponibles. * * Para usar estos ejemplos, copia el código relevante al constructor de TSNetRealTimeSimulator. */ /* // EJEMPLO 1: Configuración para respuesta cada 10ms (NO recomendado para producción) // Uso: Sistemas que requieren respuesta muy rápida pero pueden ser inestables public TSNetRealTimeSimulator() { _simulationManager = new TSNetSimulationManager(); _simulationManager.Configuration.Duration = 0.01; // 10ms de simulación _simulationManager.Configuration.TimeStep = 0.001; // 1ms timestep interno SimulationInterval = TimeSpan.FromMilliseconds(10); // Timer cada 10ms _simulationTimer = new Timer(ExecuteSimulationCycle, null, Timeout.Infinite, Timeout.Infinite); } // EJEMPLO 2: Configuración para respuesta cada 100ms (más razonable) // Uso: Sistemas de control que requieren respuesta rápida pero estable public TSNetRealTimeSimulator() { _simulationManager = new TSNetSimulationManager(); _simulationManager.Configuration.Duration = 0.1; // 100ms de simulación _simulationManager.Configuration.TimeStep = 0.01; // 10ms timestep interno SimulationInterval = TimeSpan.FromMilliseconds(100); // Timer cada 100ms _simulationTimer = new Timer(ExecuteSimulationCycle, null, Timeout.Infinite, Timeout.Infinite); } // EJEMPLO 3: Configuración actual (estable) - respuesta cada 1000ms // Uso: Simulación general con buena estabilidad numérica public TSNetRealTimeSimulator() { _simulationManager = new TSNetSimulationManager(); _simulationManager.Configuration.Duration = 1.0; // 1s de simulación _simulationManager.Configuration.TimeStep = 0.1; // 100ms timestep interno SimulationInterval = TimeSpan.FromSeconds(1.0); // Timer cada 1s _simulationTimer = new Timer(ExecuteSimulationCycle, null, Timeout.Infinite, Timeout.Infinite); } // REGLAS GENERALES: // - Duration: Tiempo total de cada ciclo de simulación // - TimeStep: Paso interno de TSNet (debe ser menor que Duration) // - SimulationInterval: Frecuencia del timer (debería coincidir con Duration) // // RECOMENDACIONES: // - Para estabilidad: TimeStep = Duration / 10 // - Para sistemas críticos: Duration >= 100ms // - Para desarrollo/testing: Duration = 1000ms */