Vérification — Tuners et vibrations harmoniques du canon

Fiche de traçabilité de l'article Tuners et vibrations harmoniques du canon. Voir la méthode.

Cette page porte aussi le récit commun aux trois articles tuners — comment des valeurs fausses sont entrées, et comment elles ont été rattrapées. Les fiches de tuners_limites et de protocole_amortissement y renvoient.

Particularité de ce dossier : la source primaire est du code. Le modèle de vibrations vit dans simulation.jl (dépôt public). Toute grandeur publiée ici peut donc être recalculée, et non seulement recoupée. C'est ce qui a permis de trancher, et c'est la leçon principale de ce dossier : confronter des documents entre eux ne suffit pas quand un exécutable fait autorité.

Le dossier des fréquences modales

La version publiée

Le tableau central de l'article a porté, du 2026-07-20 au 2026-07-27, les valeurs suivantes :

publié alors établi depuis
Mode fondamental 281 Hz 40 Hz
Modes porteurs 9 et 10 5 et 6
Fréquences de ces modes 2333 / 3009 Hz 2271 / 3394 Hz
Cycles du fondamental avant sortie 0,72 0,10

Résultats du modèle

simulation.jl ré-exécuté sur le canon nu de référence (660 mm, 20 éléments, encastré) — vérification refaite le 2026-07-28 :

Mode 1 2 3 4 5 6 7 8 9
Fréquence (Hz) 39,95 250,37 701,05 1373,84 2271,30 3393,62 4741,50 6316,08 8119,09

Temps de parcours projectile_kinematics() : 2,568 ms. Cycles avant sortie : 0,10 au fondamental, 5,83 au mode 5, 8,72 au mode 6 — exactement le tableau publié aujourd'hui.

Aucun mode entre 250 et 701 Hz : 281 Hz ne correspond à rien, dans aucune configuration, avec ou sans tuner. Les chiffres sont identiques sur la version du modèle datée du 2026-07-20 et sur l'actuelle — la géométrie et le maillage n'ayant pas bougé, il n'existe aucune version du code d'où ces valeurs auraient pu sortir.

Comment l'erreur s'est trahie

Trois signes, tous internes, aucun ne nécessitant de source extérieure :

  • L'analyse se contredisait. Sa propre réserve de maillage — « 7,7 à 8,8 éléments par longueur d'onde dans cette bande » — décrit les modes 6 et 7 (8,0 et 6,7 éléments), pas les modes 9 et 10 (5,0 et 4,4).
  • Le fondamental était démenti ailleurs dans la même page. Le § 4 annonçait « canon nu : ≈ 40 Hz » pendant que le tableau affichait 281.
  • La table de cycles ne se reconstituait pas. Une colonne calculée comme t_b × f doit se vérifier à la calculette ; elle ne tombait juste avec aucun couple de valeurs annoncé.

Portée de la correction

La conclusion de fond est intacte, et se trouve même renforcée. Il existe bien, vers 2-3 kHz, des modes parcourus six à neuf fois avant la sortie de la balle, contre un dixième de cycle pour le fondamental. C'est tout l'argument de la page : l'accord d'un tuner ne peut pas se jouer sur le fondamental, que la balle voit à peine bouger. Avec 0,10 cycle au lieu de 0,72, l'argument est plus fort qu'avant.

Seules la numérotation des modes et deux décimales étaient fausses.

L'outil de surveillance portait la même erreur

Point le plus instructif du dossier. Un contrôle automatique (check_prose_claims.py) surveille les grandeurs affirmées dans les textes publiés, à partir d'un manifeste tenu à la main. Ce manifeste ayant été écrit le 2026-07-20, en même temps que les valeurs fausses, il enregistrait 281 Hz comme valeur de référence.

Pire : l'entrée portait une note d'apparence savante — le chiffre viendrait d'un modèle « fusil entier sur appuis », à ne pas confondre avec le canon encastré. Ce modèle n'existe pas. C'était une justification construite après coup pour un nombre sans origine.

Résultat : le 2026-07-28, le contrôle a signalé que l'article affirmait 40 Hz « alors que le manifeste dit 281 » — et a donc, pendant un instant, plaidé pour annuler une correction juste. Il a fallu chercher 281 dans l'ensemble du dépôt (absent partout) et ré-exécuter le modèle pour en sortir.

Leçon retenue : quand un contrôle contredit une correction vérifiée, regarder d'abord quand son manifeste a été écrit, et par rapport à quel état. Manifeste corrigé le 2026-07-28 ; les valeurs écartées y sont désormais déclarées périmées, pour qu'elles ne puissent plus revenir en silence.

Autres rectifications portées à cette page

  • Plages d'optimum. Une version antérieure annonçait ~30 et ~65 mm et en concluait que la tolérance croissait avec la masse du tuner. Le calcul de l'inertie du tuner ayant été corrigé, les deux plages s'élargissent (~40 mm dans les deux cas) et l'ordre s'inverse. La conclusion pratique — l'accord n'est pas pointu — ne dépendait pas de ce détail.
  • Écart d'excitation sur un PCP. Une version antérieure décrivait le modèle comme « quasi muet » sur une carabine à air comprimé. La mesure (pcp_vs_firearm.jl) donne un écart de 8 à 16 pour 1, non de 26 : la formulation surestimait d'un facteur 3, en raisonnant sur les pics là où la physique du problème sélectionne les impulsions.

Cohérence interne — 2026-09-30

Cinq chiffres contredisaient d'autres passages de la page ; chacun est ramené aux valeurs recalculées que la page publie déjà (aucune simulation relancée) :

  • « un mode parcouru 7 fois », « une fondamentale vue à 69 % de cycle » → 6 à 9 fois et un dixième de cycle, d'après le tableau des modes (5,8 et 8,7 cycles ; 0,10 à 40 Hz).
  • « la balle sort après 5 à 7 cycles » (réserve du 19 juillet) → 6 à 9 cycles, même tableau.
  • Coût du décalage au critère θ' « retombé à 1,1 » (commit 2a306acb, 20 juillet, 6 h) → 2,3 à 2,5, valeur du tableau recalculé le même jour à 11 h (aafd394e) ; l'historique des valeurs est mentionné.
  • Optimum du ladder tune « vers 115 mm à 100 g (65 mm à 200 g) », valeur que la page qualifie elle-même d'artefact → nœud vers 140 mm (85 mm à 200 g), à une dizaine de millimètres près.
  • Largeur de l'optimum « ~45 mm, soit ~90 tours » → ~40 mm, soit ~80 tours (§ « L'optimum est large » ; pas de 0,5 mm par tour).

Résolu le 2026-09-30 : la source LaTeX est réalignée, sur le modèle et non sur le wiki. simulation.jl et variability.jl ont été relancés. Balayage en position : critère θ' à 115 mm (100 g) et 65 mm (200 g), θ' plafonnant à 6,38 ; tolérance à moins de 1 MOA/ms de la cible de 40 mm aux deux masses (100-140 et 45-85 mm), soit ~80 tours au pas de 0,5 mm. Variabilité : 0,94 → 0,38 mm (100 g, minimum à 140 mm, facteur 2,5) et 0,77 → 0,34 mm (200 g, minimum à 85 mm, facteur 2,3). Le wiki était juste ; tuner_fr.tex et tuner_en.tex donnaient « ~75 mm » et « 150 à 190 tours », et omettaient la ligne 200 g. Corrigés, PDF régénérés. Au passage, variability.jl imprimait encore « viser le passage de θ par zéro (ou, ce qui revient au même, le maximum de θ') », contraire à son propre résultat : message corrigé.

Ajout du 2026-09-30 — affirmations sans source

  • Généralisations sans source retirées : « la quasi-totalité de la littérature » (deux fois), le Starik « l'un des plus répandus en 50 m ISSF », le tuner de bouche « le dispositif le plus répandu », et le « surtout » qui classait le passage du plomb parmi les sources d'excitation d'un PCP.

Historique des conclusions, retiré de l'article le 2026-10-09

L'article racontait lui aussi ses corrections ; il dit désormais ce qui tient. Termes retirés :

  • « La suite de cette page a longtemps raisonné sur la fondamentale. Une décomposition modale de la réponse (19 juillet 2026) montre que c'est faux. »
  • Le coût de viser le chiffre plutôt que le nœud, « annoncé successivement comme un facteur 2,8 puis 1,1 », vaut 2,3 à 2,5 depuis que la cible est dérivée du modèle.
  • « Cotes recalculées le 20 juillet 2026 : celles de cette section provenaient d'un profil de pression dont l'impulsion valait 5,2× le recul physique ; elles ont été refaites sur le modèle couplé. »
  • « Une version antérieure de cette page affirmait ici que les deux formes coïncident par quadrature […]. C'est faux » — détail sur la fiche de tuners_limites.
  • « Tant que la cible restait figée à 6,0, empruntée à Kolbe, elle paraissait atteinte. »
  • La vérification de la liaison rigide « ne tient plus » (même fiche).
  • Pour le PCP, « le chiffrage, refait le 20 juillet 2026 » ne s'énonce plus comme « l'arme à feu y arrive, le PCP non ».
  • Une réserve « ajoutée le 19 juillet 2026 » sur le peigne de sweet spots, et le modèle d'arme à feu « abandonné en juillet 2026 ».

Deux phrases contredisaient la page compagnon et sont retirées de la conclusion : « rien de ce que cette page avance n'est original », alors que l'article publie son propre modèle et sa conclusion sur les modes à 2-3 kHz ; et « l'obstacle n'étant pas l'instrumentation, mais la grandeur que les auteurs ont choisi de mesurer », alors que les deux essais en tir réel d'O'Neil (2022) ont échoué par la résolution, puis par la saturation des capteurs. La conclusion dit désormais les deux obstacles.

Recalcul du 2026-10-13 — lecture à la sortie de la balle

Méthode. simulate_shot (tuners/simulation.jl) lisait θ' au point de sa grille de 5 µs le plus proche de t_b. Or θ' varie de plusieurs dixièmes de MOA/ms en quelques microsecondes autour de la sortie (modes élevés excités par l'impulsion de pression). Étude de convergence, au réglage par défaut du simulateur web (tuner de 200 g, sans porte-à-faux) : θ' interpolé à t_b vaut −0,320 MOA/ms au pas de 10 µs, −0,379 à 5 µs, −0,394 à 2,5 µs, −0,3986 à 1 µs, −0,3992 à 0,5 µs ; la lecture au point le plus proche, au pas de 5 µs, donnait −0,483. Le modèle calcule désormais au pas de 1 µs jusqu'à la sortie et interpole y, θ et θ' à t_b exact. simulation.jl, variability.jl, pcp_vs_firearm.jl, flexible_tube.jl et sensitivity_map.jl ont été relancés avant et après.

Chiffres de cette page qui changent.

Grandeur Avant Après
θ' maximal, aux deux masses 6,38 6,39
Écart au neutre au critère θ', 200 g 149 µrad 147 µrad
Écart au neutre au critère θ', 100 g 184 µrad 182 µrad

Inchangés : réglages à 115 mm (100 g) et 65 mm (200 g), tolérances 100-140 et 45-85 mm, dispersions 0,94 → 0,38 mm et 0,77 → 0,34 mm, facteurs 2,5 et 2,3.

Balayage en position, chiffres d'une version antérieure du modèle. La page donnait « de −2,1 à +6,2 MOA/ms (100 g) ou de +1,9 à +5,9 (200 g) », et la source LaTeX une troisième version (−1,7 à +6,2 ; +1,8 à +5,9). La figure publiée à côté, comme le modèle avant ou après ce recalcul, donne environ −7,0 → +6,4 à 100 g et −0,2 → +6,4 à 200 g : chiffres remplacés. La même phrase affirmait que « la course couvre tout l'écart entre une arme non compensée et la cible », contraire à l'encadré de la même page (cible 6,88, plafond 6,39) : elle dit désormais que la course mène à moins de 0,5 MOA/ms de la cible. Figures plot_balayage_position, plot_balayage_tuner et plot_tir_nominal régénérées ; PDF français et anglais refaits.

Simulateur web. La page du simulateur affichait θ'(t_b) = +3,52 MOA/ms au réglage par défaut, contre −0,40 pour le modèle : son analyse modale échouait à chaque exécution (appel propre à une version de math.js plus récente que celle servie), l'erreur était avalée et un amortissement forfaitaire prenait le relais ; elle amortissait en outre à 0,5 % / 1 % et lisait θ' sans interpolation au pas de 10 µs. Corrigé le même jour ; la page et le modèle concordent sur quatre montages (θ à 0,1 µrad, θ' à 0,001 MOA/ms près), contrôlés chaque nuit (scripts/check_tuners_page.js).

Points non vérifiés

  • La finesse du maillage dans la bande 2-3 kHz reste une réserve du modèle lui-même, pas de la page : à 20 éléments il ne subsiste que 7,7 à 8,8 éléments par longueur d'onde. Le raffinement est identifié comme travail à faire, et il pourrait déplacer les fréquences des modes 5 et 6.
  • Les taux d'amortissement employés sont des hypothèses, non des mesures — c'est précisément l'objet du protocole de mesure publié.
  • La comparaison aux mesures de Kolbe repose sur les valeurs qu'il publie, non sur un jeu de données brutes.

Voir aussi

verification/technique/tuners_vibration.txt · Dernière modification : de 127.0.0.1