Cos'è ChainSolve? Un nuovo approccio ai calcoli ingegneristici
Introduzione a ChainSolve: come funziona, perché esiste e come si differenzia da fogli di calcolo, Mathcad e strumenti di calcolo tradizionali.
Il Problema del Calcolo
Considerate un compito tipico di progettazione di sospensioni automobilistiche. Dovete determinare la rigidezza della molla per un angolo anteriore. Questo richiede:
- Una frequenza naturale target (derivata dai requisiti di dinamica del veicolo)
- La massa dell’angolo (derivata dalla distribuzione del peso del veicolo)
- Il rapporto di moto (derivato dalla geometria della sospensione)
- L’angolo di installazione della molla
- La rigidezza della ruota (calcolata dalla frequenza target e dalla massa dell’angolo)
- La rigidezza della molla elicoidale (calcolata dalla rigidezza della ruota, dal rapporto di moto e dall’angolo di installazione)
Ognuno di questi valori ha una fonte. Alcuni provengono da documenti di requisiti. Alcuni provengono da modelli CAD. Alcuni provengono da altri calcoli. Alcuni sono frutto di giudizio ingegneristico. Tutti devono essere registrati, giustificati e tracciabili.
In un foglio di calcolo, questo calcolo potrebbe occupare 30 righe. Le dipendenze sono implicite; la cella B14 fa riferimento a B8, che fa riferimento a B3, che fa riferimento a un valore digitato da qualcuno sei mesi fa di cui nessuno ricorda la fonte. Cambiate il rapporto di moto e dovrete verificare manualmente che ogni valore a valle sia stato aggiornato correttamente, ammesso che riusciate a trovarli tutti.
ChainSolve adotta un approccio fondamentalmente diverso.
Calcoli come Grafi
In ChainSolve, il calcolo della rigidezza della molla di cui sopra non è un elenco piatto di celle. È un grafo aciclico diretto di blocchi di calcolo:
- Input sono espliciti, nominati, tipizzati e documentati. Ogni input registra il suo valore, unità, fonte e eventuali assunzioni.
- Blocchi sono passaggi di calcolo autonomi. Un blocco accetta input nominati, applica un calcolo definito (da una formula semplice a un metodo numerico complesso) e produce output nominati.
- Connessioni collegano gli output di un blocco agli input di un altro. Queste connessioni sono esplicite e visibili, non nascoste all’interno di riferimenti di cella.
- Catene sono grafi composti di blocchi che rappresentano un calcolo ingegneristico completo.
Quando cambiate un input, ChainSolve identifica ogni blocco a valle interessato e li ricalcola in ordine topologico. Non c’è ambiguità su cosa è cambiato e cosa è stato influenzato.
Come Si Differenzia Dagli Strumenti Esistenti
Fogli di calcolo (Excel, Google Sheets): I fogli di calcolo vi danno una griglia di celle con formule. Le dipendenze sono implicite nei riferimenti di cella. Non c’è tipizzazione, non c’è controllo delle unità, non c’è un modo strutturato per allegare assunzioni o fonti ai valori. La collaborazione significa inviare file via email o sperare che la versione in condivisione sia aggiornata. ChainSolve sostituisce i grafi di celle impliciti con grafi di calcolo espliciti, documentati e componibili.
Mathcad / SMath: Questi strumenti sono eccellenti per creare calcoli leggibili e documentati per una singola analisi. Ma sono intrinsecamente orientati al documento; un foglio di lavoro Mathcad è una pagina, non un componente componibile. Non potete prendere il calcolo della deflessione della trave da un foglio di lavoro e comporlo programmaticamente con un calcolo del carico da un altro. Il modello a blocchi di ChainSolve rende la composizione un’operazione di prima classe.
Script personalizzati (Python, MATLAB): Gli ingegneri che scrivono script personalizzati guadagnano componibilità e controllo di versione, ma perdono accessibilità. Non tutti gli ingegneri di un team sanno leggere Python. Non ogni calcolo giustifica scrivere e mantenere uno script. ChainSolve fornisce la componibilità del codice con l’accessibilità di uno strumento visuale.
Strumenti integrati PLM: I sistemi di gestione del ciclo di vita del prodotto offrono tracciabilità ma con un enorme sovraccarico. Sono progettati per grandi organizzazioni con amministratori dedicati. ChainSolve fornisce tracciabilità a livello di calcolo senza richiedere infrastruttura aziendale.
Il Flusso di Lavoro Principale
Un tipico flusso di lavoro di ChainSolve:
- Create una catena per il vostro calcolo (ad es. “Rigidezza della Molla della Sospensione Anteriore”)
- Definite blocchi di input per i vostri valori noti: massa dell’angolo, frequenza target, rapporto di moto
- Aggiungete blocchi di calcolo che trasformano input in output: rigidezza della ruota dalla frequenza e dalla massa, rigidezza della molla dalla rigidezza della ruota e dal rapporto di moto
- Collegate i blocchi per creare il grafo di dipendenze
- Eseguite la catena per calcolare tutti gli output
- Esportate il calcolo come rapporto documentato con tracciabilità completa
Ogni modifica è registrata. Ogni assunzione è allegata al valore a cui si applica. Ogni calcolo può essere versionato, condiviso e riutilizzato come componente in un calcolo più grande.
Costruito per le Prestazioni
Il motore di calcolo di ChainSolve è scritto in Rust e compilato in WebAssembly. Questo significa:
- I calcoli vengono eseguiti a velocità quasi nativa nel browser, senza round-trip al server per il calcolo
- L’intera applicazione funziona offline una volta caricata
- Catene complesse con centinaia di blocchi si valutano in millisecondi
- Lo stesso motore può essere eseguito lato server per l’elaborazione batch e l’integrazione CI/CD
Cosa Viene Dopo
ChainSolve è attualmente in sviluppo. Stiamo costruendo verso una versione iniziale che copra il flusso di lavoro principale descritto sopra, con focus sui calcoli di ingegneria meccanica nel dominio automobilistico e motorsport.
Se desiderate accesso anticipato o volete seguire lo sviluppo, visitate chainsolve.co.uk o iscrivitevi al feed RSS di questo blog.