Aller au contenu

Qu'est-ce que ChainSolve ? Une nouvelle approche des calculs d'ingénierie

Une introduction à ChainSolve, son fonctionnement, sa raison d'être, et ses différences par rapport aux feuilles de calcul, Mathcad et aux outils de calcul traditionnels.

BG ben godfrey · · 4 min read
CHAINSOLVE

Le problème de calcul

Considérez une tâche typique de conception de suspension automobile. Vous devez déterminer le taux de ressort pour un coin avant. Cela nécessite :

  1. Une fréquence naturelle cible (dérivée des exigences de dynamique du véhicule)
  2. La masse du coin (dérivée de la répartition du poids du véhicule)
  3. Le rapport de mouvement (dérivé de la géométrie de la suspension)
  4. L’angle d’installation du ressort
  5. Le taux de roue (calculé à partir de la fréquence cible et de la masse du coin)
  6. Le taux de ressort hélicoïdal (calculé à partir du taux de roue, du rapport de mouvement et de l’angle d’installation)

Chacune de ces valeurs a une source. Certaines proviennent de documents d’exigences. Certaines proviennent de modèles CAD. Certaines proviennent d’autres calculs. Certaines sont le fruit du jugement de l’ingénieur. Elles doivent toutes être enregistrées, justifiées et traçables.

Dans une feuille de calcul, ce calcul pourrait occuper 30 lignes. Les dépendances sont implicites : la cellule B14 référence B8, qui référence B3, qui référence une valeur que quelqu’un a tapée il y a six mois et dont personne ne se souvient de la source. Modifiez le rapport de mouvement et vous devez vérifier manuellement que chaque valeur en aval a été mise à jour correctement, en supposant que vous puissiez les retrouver toutes.

ChainSolve adopte une approche fondamentalement différente.

Les calculs comme graphes

Dans ChainSolve, le calcul du taux de ressort ci-dessus n’est pas une liste plate de cellules. C’est un graphe acyclique orienté de blocs de calcul :

  • Les entrées sont explicites, nommées, typées et documentées. Chaque entrée enregistre sa valeur, son unité, sa source et toute hypothèse associée.
  • Les blocs sont des étapes de calcul autonomes. Un bloc prend des entrées nommées, applique un calcul défini (d’une formule simple à une méthode numérique complexe) et produit des sorties nommées.
  • Les connexions relient les sorties d’un bloc aux entrées d’un autre. Ces connexions sont explicites et visibles, non masquées à l’intérieur de références de cellules.
  • Les chaînes sont des graphes composés de blocs qui représentent un calcul d’ingénierie complet.

Lorsque vous modifiez une entrée, ChainSolve identifie chaque bloc en aval qui est affecté et les recalcule dans l’ordre topologique. Il n’y a aucune ambiguïté quant à ce qui a changé et ce qui a été affecté.

Comment cela se différencie des outils existants

Les feuilles de calcul (Excel, Google Sheets) : Les feuilles de calcul vous donnent une grille de cellules avec des formules. Les dépendances sont implicites dans les références de cellules. Il n’y a pas de typage, pas de vérification d’unités, pas de moyen structuré d’attacher les hypothèses ou les sources aux valeurs. La collaboration signifie envoyer des fichiers par courrier électronique ou espérer que la version du lecteur partagé est à jour. ChainSolve remplace les graphes de cellules implicites par des graphes de calcul explicites, documentés et composables.

Mathcad / SMath : Ces outils sont excellents pour créer des calculs lisibles et documentés pour une seule analyse. Mais ils sont fondamentalement orientés vers les documents : une feuille de calcul Mathcad est une page, pas un composant composable. Vous ne pouvez pas prendre le calcul de déflexion de poutre d’une feuille de calcul et le composer de manière programmatique avec un calcul de charge d’une autre. Le modèle de bloc de ChainSolve fait de la composition une opération de première classe.

Scripts personnalisés (Python, MATLAB) : Les ingénieurs qui écrivent des scripts personnalisés gagnent en composabilité et en contrôle de version, mais perdent en accessibilité. Tous les ingénieurs d’une équipe ne peuvent pas lire Python. Tous les calculs ne justifient pas d’écrire et de maintenir un script. ChainSolve fournit la composabilité du code avec l’accessibilité d’un outil visuel.

Outils intégrés à la PLM : Les systèmes de gestion du cycle de vie des produits offrent la traçabilité mais avec une surcharge énorme. Ils sont conçus pour les grandes organisations avec des administrateurs dédiés. ChainSolve fournit la traçabilité au niveau des calculs sans nécessiter une infrastructure d’entreprise.

Le flux de travail principal

Un flux de travail typique de ChainSolve :

  1. Créer une chaîne pour votre calcul (par exemple, « Taux de ressort de suspension avant »)
  2. Définir des blocs d’entrée pour vos valeurs connues : masse du coin, fréquence cible, rapport de mouvement
  3. Ajouter des blocs de calcul qui transforment les entrées en sorties : taux de roue à partir de la fréquence et de la masse, taux de ressort à partir du taux de roue et du rapport de mouvement
  4. Connecter les blocs pour créer le graphe de dépendances
  5. Exécuter la chaîne pour calculer toutes les sorties
  6. Exporter le calcul en tant que rapport documenté avec traçabilité complète

Chaque modification est enregistrée. Chaque hypothèse est associée à la valeur à laquelle elle s’applique. Chaque calcul peut être versionné, partagé et réutilisé en tant que composant dans un calcul plus large.

Conçu pour la performance

Le moteur de calcul de ChainSolve est écrit en Rust et compilé en WebAssembly. Cela signifie :

  • Les calculs s’exécutent à une vitesse quasi native dans le navigateur, sans allers-retours au serveur pour le calcul
  • L’application entière fonctionne hors ligne une fois chargée
  • Les chaînes complexes avec des centaines de blocs s’évaluent en millisecondes
  • Le même moteur peut s’exécuter côté serveur pour le traitement par lot et l’intégration CI/CD

Ce qui vient ensuite

ChainSolve est actuellement en développement. Nous travaillons vers une version initiale qui couvre le flux de travail principal décrit ci-dessus, en mettant l’accent sur les calculs d’ingénierie mécanique dans le domaine automobile et du sport automobile.

Si vous souhaitez un accès anticipé ou si vous voulez suivre le développement, visitez chainsolve.co.uk ou abonnez-vous au flux RSS de ce blog.

Written by
BG
ben godfrey
Ingénieur chez Godfrey Engineering Ltd.