SIDEL_ScriptsManager/app/backend/script_groups/hammer/README.md

221 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Water Hammer Simulator - ScriptsManager Edition
## Interactive Hydraulic Transient Analysis for Syrup Pumping Systems
![Python](https://img.shields.io/badge/python-v3.8+-blue.svg)
![Flask](https://img.shields.io/badge/Flask-2.0+-green.svg)
![License](https://img.shields.io/badge/license-MIT-green.svg)
![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey.svg)
### 🎯 Overview
Interactive web-based water hammer simulator for analyzing hydraulic transients in syrup pumping systems. Built for ScriptsManager framework with multi-language support, real-time parameter adjustment, and Chart.js visualizations.
### 🏭 System Features
- **Fluid**: Syrup (density 1100-1300 kg/m³, temperature-dependent properties)
- **Pipeline**: Stainless steel, configurable diameter and length
- **Pump**: Variable pressure and flow rate
- **Valve**: Controllable closure time (0.1 - 20s)
- **Protection**: Optional hydropneumatic damper analysis
- **Analysis**: Joukowsky equations with reduction factors
### 🌐 Multi-Language Support
- **English** - Complete interface and documentation
- **Español** - Interfaz y documentación completa
- **Italiano** - Interfaccia e documentazione completa
- **Français** - Interface et documentation complète
### 🚀 ScriptsManager Integration
This simulator follows ScriptsManager specifications:
```bash
python hammer_simulator.py --data-dir /path/to/data --user-level operator --port 5200 --project-id project_name
```
**Features:**
- Project-specific data persistence
- User-level access control
- Automatic port management
- Session-based configuration storage
- Multi-project support
### ✨ Funcionalidades Principales
#### 🖥️ Interfaz Gráfica Interactiva
- Modificación de parámetros en tiempo real
- Visualización inmediata de resultados
- Gráficos profesionales con Matplotlib
- Análisis de seguridad automático
#### 🔧 Parámetros Configurables
- **Sistema hidráulico**: longitud, diámetro, rugosidad
- **Propiedades del fluido**: densidad, temperatura, módulo bulk
- **Operación**: caudal, presión, tiempo de cierre
- **Protección**: damper con volumen y presión ajustable
#### 📊 Análisis y Resultados
- Cálculo de sobrepresión máxima
- Velocidad de onda de presión
- Tiempo crítico de cierre
- Análisis de seguridad automático
- Recomendaciones de protección
#### 💾 Exportación
- Gráficos en alta resolución (PNG)
- Reportes detallados
- Configuraciones guardables
### 🚀 Instalación
#### Requisitos del Sistema
- Python 3.12 o superior
- Sistema operativo: Windows, Linux o macOS
- Memoria RAM: 4GB mínimo (8GB recomendado)
#### Instalación Paso a Paso
1. **Clonar el repositorio**
```bash
git clone https://github.com/miguefin/colpo_ariete_interattivo.git
cd colpo_ariete_interattivo
```
2. **Crear entorno virtual** (recomendado)
```bash
# Con conda
conda create -n tsnet python=3.12
conda activate tsnet
# O con venv
python -m venv tsnet_env
# Windows
tsnet_env\Scripts\activate
# Linux/macOS
source tsnet_env/bin/activate
```
3. **Instalar dependencias**
```bash
pip install -r requirements.txt
```
### 🎮 Uso
#### Ejecutar el Simulador Principal
```bash
python simulador_hammer_interactivo.py
```
#### Interfaz Gráfica
1. **Panel de Parámetros**: Ajusta las características del sistema
2. **Panel de Control**: Ejecuta simulaciones y análisis
3. **Panel de Resultados**: Visualiza gráficos y resultados
4. **Panel de Protección**: Configura dampers y sistemas de protección
#### Flujo de Trabajo Típico
1. Configurar parámetros del sistema
2. Ejecutar simulación base
3. Analizar resultados de seguridad
4. Ajustar protecciones si es necesario
5. Exportar resultados y reportes
### 📁 Estructura del Proyecto
```
colpo_ariete_interattivo/
├── simulador_hammer_interactivo.py # 🎯 Aplicación principal
├── conceptos_golpe_ariete.md # 📚 Documentación técnica
├── requirements.txt # 📦 Dependencias
├── README.md # 📖 Este archivo
├── doc/ # 📁 Documentación adicional
│ ├── configurador_hammer.py # 🧮 Calculadora rápida
│ ├── simulador_hammer_simple.py # 🔧 Versión simplificada
│ ├── simulador_jarabe_final.py # 🏭 Versión específica jarabe
│ └── *.png # 📊 Ejemplos de resultados
└── test/ # 🧪 Scripts de prueba
├── test_tsnet_*.py # ✅ Tests unitarios
└── debug_*.py # 🔍 Scripts de depuración
```
### 🔬 Fundamentos Técnicos
#### Ecuación de Joukowsky
```
ΔP = ρ × c × ΔV
```
- **ΔP**: Sobrepresión (Pa)
- **ρ**: Densidad del fluido (kg/m³)
- **c**: Velocidad de onda (m/s)
- **ΔV**: Cambio de velocidad (m/s)
#### Velocidad de Onda de Presión
```
c = √(K/ρ) / √(1 + (K/E) × (D/e))
```
- **K**: Módulo bulk del fluido (Pa)
- **E**: Módulo de Young del material (Pa)
- **D**: Diámetro interno (m)
- **e**: Espesor de pared (m)
### ⚠️ Criterios de Seguridad
- **Presión máxima**: No superar 1.5 × presión nominal
- **Tiempo crítico**: Tc = 2L/c (tiempo mínimo seguro)
- **Factor de seguridad**: Mínimo 2.0 para aplicaciones críticas
### 🛡️ Sistemas de Protección
#### Damper Hidropneumático
- Volumen ajustable (10-200 litros)
- Presión de precarga configurable
- Posición optimizable en la línea
- Análisis automático de efectividad
### 📈 Ejemplos de Resultados
El simulador genera automáticamente:
- Gráficos de presión vs tiempo
- Análisis de velocidad de flujo
- Mapas de riesgo por tiempo de cierre
- Recomendaciones de protección
### 🔧 Desarrollo y Contribución
#### Tecnologías Utilizadas
- **Python 3.12**: Lenguaje base
- **Tkinter**: Interfaz gráfica
- **Matplotlib**: Visualización avanzada
- **NumPy**: Cálculos numéricos
- **TSNet**: Simulación de transitorios
#### Estructura del Código
- Programación orientada a objetos
- Interfaz modular y extensible
- Documentación completa en código
- Tests unitarios incluidos
### 📞 Soporte y Contacto
- **Repositorio**: [GitHub](https://github.com/miguefin/colpo_ariete_interattivo)
- **Issues**: Reportar bugs y solicitar funcionalidades
- **Documentación**: Wiki del proyecto
- **Autor**: Generado con GitHub Copilot (Septiembre 2025)
### 📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver archivo `LICENSE` para más detalles.
### 🙏 Agradecimientos
- Comunidad TSNet por las herramientas de simulación
- GitHub Copilot por asistencia en desarrollo
- Comunidad Python por las excelentes librerías
---
**¡Contribuciones bienvenidas!** 🚀
Si encuentras bugs, tienes ideas de mejora o quieres contribuir al proyecto, no dudes en abrir un issue o pull request.