Saltar al contenido

¿Qué es ChainSolve? Un nuevo enfoque para cálculos de ingeniería

Una introducción a ChainSolve, cómo funciona, por qué existe y cómo se diferencia de hojas de cálculo, Mathcad y herramientas de cálculo tradicionales.

BG ben godfrey · · 4 min read
CHAINSOLVE

El problema de los cálculos

Considere una tarea típica de diseño de suspensión automotriz. Necesita determinar la rigidez del muelle para una esquina delantera. Esto requiere:

  1. Una frecuencia natural objetivo (derivada de los requisitos de dinámica vehicular)
  2. La masa de esquina (derivada de la distribución del peso del vehículo)
  3. La relación de movimiento (derivada de la geometría de la suspensión)
  4. El ángulo de instalación del muelle
  5. La rigidez de la rueda (calculada a partir de la frecuencia objetivo y la masa de esquina)
  6. La rigidez del muelle helicoidal (calculada a partir de la rigidez de la rueda, la relación de movimiento y el ángulo de instalación)

Cada uno de estos valores tiene una fuente. Algunos proceden de documentos de requisitos. Algunos proceden de modelos CAD. Algunos proceden de otros cálculos. Algunos son criterio de ingeniería. Todos ellos deben ser registrados, justificados y trazables.

En una hoja de cálculo, este cálculo podría ocupar 30 filas. Las dependencias son implícitas: la celda B14 hace referencia a B8, que hace referencia a B3, que hace referencia a un valor que alguien escribió hace seis meses y nadie recuerda su fuente. Cambie la relación de movimiento y deberá verificar manualmente que cada valor corriente abajo se haya actualizado correctamente, suponiendo que pueda encontrarlos todos.

ChainSolve adopta un enfoque fundamentalmente diferente.

Cálculos como grafos

En ChainSolve, el cálculo de la rigidez del muelle anterior no es una lista plana de celdas. Es un grafo dirigido acíclico de bloques de cálculo:

  • Entradas son explícitas, nombradas, tipificadas y documentadas. Cada entrada registra su valor, unidad, fuente y cualquier supuesto.
  • Bloques son pasos de cálculo autocontenidos. Un bloque toma entradas nombradas, aplica un cálculo definido (desde una fórmula simple hasta un método numérico complejo) y produce salidas nombradas.
  • Conexiones vinculan las salidas de un bloque a las entradas de otro. Estas conexiones son explícitas y visibles, no están ocultas dentro de referencias de celdas.
  • Cadenas son grafos compuestos de bloques que representan un cálculo de ingeniería completo.

Cuando cambia una entrada, ChainSolve identifica cada bloque corriente abajo que se ve afectado y los recalcula en orden topológico. No hay ambigüedad sobre qué cambió y qué se vio afectado.

Cómo se diferencia de herramientas existentes

Hojas de cálculo (Excel, Google Sheets): Las hojas de cálculo le dan una cuadrícula de celdas con fórmulas. Las dependencias son implícitas en referencias de celdas. No hay tipificación, no hay verificación de unidades, no hay una forma estructurada de adjuntar supuestos o fuentes a valores. La colaboración significa enviar archivos por correo o esperar que la versión del unidad compartida sea actual. ChainSolve reemplaza grafos de celdas implícitos con grafos de cálculo explícitos, documentados y componibles.

Mathcad / SMath: Estas herramientas son excelentes para crear cálculos legibles y documentados para un único análisis. Pero son inherentemente orientadas a documentos: una hoja de trabajo de Mathcad es una página, no un componente componible. No puede tomar el cálculo de deflexión de viga de una hoja de trabajo y componerlo programáticamente con un cálculo de carga de otra. El modelo de bloques de ChainSolve hace que la composición sea una operación de primera clase.

Scripts personalizados (Python, MATLAB): Los ingenieros que escriben scripts personalizados ganan componibilidad y control de versiones, pero pierden accesibilidad. No todo ingeniero en un equipo puede leer Python. No todo cálculo justifica escribir y mantener un script. ChainSolve proporciona la componibilidad del código con la accesibilidad de una herramienta visual.

Herramientas integradas con PLM: Los sistemas de gestión del ciclo de vida del producto ofrecen trazabilidad pero con un coste enorme. Están diseñados para grandes organizaciones con administradores dedicados. ChainSolve proporciona trazabilidad a nivel de cálculo sin requerir infraestructura empresarial.

El flujo de trabajo principal

Un flujo de trabajo típico de ChainSolve:

  1. Cree una cadena para su cálculo (p. ej., “Rigidez del muelle de la suspensión delantera”)
  2. Defina bloques de entrada para sus valores conocidos: masa de esquina, frecuencia objetivo, relación de movimiento
  3. Agregue bloques de cálculo que transformen entradas en salidas: rigidez de la rueda a partir de frecuencia y masa, rigidez del muelle a partir de rigidez de la rueda y relación de movimiento
  4. Conecte bloques para crear el grafo de dependencias
  5. Ejecute la cadena para calcular todas las salidas
  6. Exporte el cálculo como un informe documentado con trazabilidad completa

Cada cambio se registra. Cada supuesto se adjunta al valor al que se aplica. Cada cálculo puede ser versionado, compartido y reutilizado como componente en un cálculo más grande.

Construido para rendimiento

El motor de cálculo de ChainSolve está escrito en Rust y compilado a WebAssembly. Esto significa:

  • Los cálculos se ejecutan a velocidad casi nativa en el navegador, sin viajes de ida y vuelta al servidor para la computación
  • La aplicación completa funciona sin conexión una vez cargada
  • Cadenas complejas con cientos de bloques se evalúan en milisegundos
  • El mismo motor puede ejecutarse del lado del servidor para procesamiento por lotes e integración de CI/CD

Qué viene después

ChainSolve está actualmente en desarrollo. Estamos construyendo hacia una versión inicial que cubra el flujo de trabajo principal descrito anteriormente, con énfasis en cálculos de ingeniería mecánica en el dominio de automoción y motorsport.

Si desea acceso anticipado o desea seguir el desarrollo, visite chainsolve.co.uk o suscríbase al flujo RSS de este blog.

Written by
BG
ben godfrey
Ingeniero en Godfrey Engineering Ltd.