Diagnosi dello Smartphone del Ronzio delle Ruote: Analisi Sequenziale delle Vibrazioni di Audi Q7 tramite AI Claude

Il metodo è universale e funziona su qualsiasi auto moderna: BMW X5, Mercedes GLE, Range Rover, Tesla Model Y, Volvo XC90, Porsche Cayenne, VW Touareg, Ford Ranger, Toyota Land Cruiser. La marca non ha importanza: la fisica della rotazione delle ruote è la stessa per tutte.

Un problema invisibile all'elettronica di bordo
Un'auto moderna di lusso è piena di sensori. Un'Audi Q7 4M legge la velocità di ogni ruota 48 volte per giro, conosce l'accelerazione longitudinale e laterale del corpo, l'altezza delle sospensioni in quattro punti e la posizione di ogni valvola del sistema pneumatico. Uno scanner diagnostico restituirà centinaia di parametri in tempo reale.
Tuttavia, il sistema di bordo è fondamentalmente incapace di rispondere alla domanda: "Perché è apparso un ronzio a 55 km/h?"
La ragione risiede nell'architettura. I sensori di battito sul blocco motore sono accelerometri piezoelettrici a banda larga con una larghezza di banda di 1–20 kHz, esattamente ciò che serve per l'analisi delle vibrazioni. Tuttavia, la centralina elabora il loro segnale internamente, in una finestra stretta attorno al punto morto superiore di ogni cilindro, e restituisce solo il risultato: angolo di correzione dell'anticipo di accensione. Non è disponibile alcun flusso di dati grezzi tramite alcun protocollo.
I sensori di accelerazione del corpo sono accessibili come valori, ma vengono letti tramite richiesta-risposta UDS a una frequenza di 5–20 valori al secondo per tutti i parametri combinati. Secondo il teorema di campionamento di Nyquist-Shannon, questo corrisponde a un massimo di 2–10 Hz. Un difetto della ruota a 50 km/h rientra nell'intervallo 6–25 Hz. È fisicamente impossibile costruire uno spettro a causa della frequenza di campionamento insufficiente di un ordine di grandezza.
La conclusione importante da accettare immediatamente: l'elettronica standard dell'auto è progettata per il controllo, non per l'analisi delle vibrazioni. Questa non è una limitazione di uno scanner specifico, ma dell'architettura del bus dati automobilistico stesso. Il sistema di bordo non può e non vede i difetti meccanici di rotolamento.
È qui che entrano in gioco la misurazione esterna e l'elaborazione AI.
Perché mi sono interessato a questo
Lavoro come ingegnere presso Mind4Ship, un'azienda specializzata nella diagnostica predittiva di attrezzature marine. Colleghiamo sensori industriali di rumore e vibrazioni a cuscinetti, riduttori e alberi, catturiamo spettri, li elaboriamo con algoritmi e prevediamo i guasti prima che si verifichino. Un difetto del cuscinetto è visibile settimane prima del guasto, attraverso impulsi d'impatto caratteristici nello spettro di inviluppo.

Quando è apparso un ronzio nella zona della ruota posteriore destra della mia Audi Q7 3.0 TDI con sospensioni pneumatiche, la mia reazione è stata professionale: questo è esattamente il compito che risolvo al lavoro, solo con un oggetto diverso.
Ma qualcos'altro mi ha incuriosito. Si poteva ottenere lo stesso risultato con strumenti comuni? Senza accelerometri industriali da 600€ l'uno, senza un analizzatore, senza un team di assistenza sul campo. Uno smartphone, la fisica scolastica e l'AI moderna: sarebbero bastati per diagnosticare il problema prima di una visita in officina?
Ecco come è andata.
Il primo vicolo cieco: app che "diagnosticavano da sole"
YouTube è pieno di video su applicazioni NVH (Noise, Vibration, Harshness). Ne installi una sul telefono, guidi e l'app dice: "Hai uno squilibrio sulla ruota anteriore sinistra". Sembra fantastico.
Ho studiato la più popolare: NVH by Vibrate Software, $99.99. Ha un database di 276 sorgenti di vibrazione, verdetti pronti come "causa—conseguenza—soluzione". La versione iOS è aggiornata, ha database di modelli fino al 2026 e supporta 303 veicoli elettrici.
Ed ecco la prima decisione importante che ha determinato l'intero metodo in seguito.
Un'app del genere vende una guida di riferimento, non una misurazione. Prende uno spettro, trova l'ordine dominante, lo cerca nel suo database e fornisce un elenco di decine di possibili cause. Non ti dirà da quale angolo dell'auto proviene la vibrazione. Non fornirà dati grezzi. Non ti permetterà di testare la tua ipotesi.

Come specialista AI, ho capito: ho bisogno di uno stream grezzo di accelerometro. Con esso, posso elaborare i dati con qualsiasi algoritmo e ottenere una risposta più accurata di qualsiasi database predefinito. Senza di esso, sono ostaggio delle soglie e della logica di qualcun altro.
Pertanto, invece di una guida di riferimento da 99 dollari, ho optato per uno strumento da 12 euro.
Scelta dello strumento: un'app che registra semplicemente i dati
Ho scelto CarNVH (Android, com.motordoktor.carnvh). La scelta è stata puramente tecnica:
| CarNVH Pro €12 | NVH Vibrate $99 | |
|---|---|---|
| Esportazione dati grezzi | Sì | No |
| Spettro di inviluppo | Sì | No |
| Kurtosi spettrale | Sì | No |
| Microfono fino a 10 kHz | Sì | No |
| Ordini per giro | Sì | No |
| Spettrogramma 2D | Sì | No |
| Database "276 cause" | No | Sì |
La differenza di prezzo di otto volte — e lo strumento più economico è oggettivamente più ricco di capacità di misurazione. L'analisi dell'inviluppo e la kurtosi, utilizzate per rilevare problemi ai cuscinetti, sono completamente assenti nell'app costosa.
Controllo hardware — il passaggio che tutti saltano
Non ho comprato un nuovo telefono per questo compito. Avevo un Samsung Galaxy A51 da parte: era il mio dispositivo di riserva dopo essere passato a uno nuovo principale. Un candidato ideale: un dispositivo dedicato che non mi dispiacesse attaccare al pianale del bagagliaio.
Ma prima di pagare per l'app, dovevo assicurarmi che l'hardware fosse adatto.
Compito: Determinare la frequenza di campionamento effettiva dell'accelerometro. Le specifiche spesso mentono: i produttori limitano frequentemente la frequenza a livello di sistema sui modelli di fascia media, anche se il chip stesso è in grado di migliaia di Hz. Inoltre, a partire da Android 12, il sistema limita di default i sensori a 200 Hz.
Strumento: L'app gratuita phyphox, esperimento "Acceleration Spectrum". Visualizza direttamente la velocità di raccolta dati, senza bisogno di calcoli.

Risultato sull'A51: 506 Hz, frequenza di Nyquist 253 Hz.
Verifichiamo se è sufficiente. Per una Q7 con pneumatici 255/55 R19 a 55 km/h, la ruota gira 6,65 volte al secondo:
| Sorgente | Frequenza |
|---|---|
| 1× rotazione ruota | 6,6 Hz |
| 3° ordine di rotazione ruota | 20 Hz |
| Cuscinetto, anello esterno | 23–30 Hz |
| Albero di trasmissione | 40–60 Hz |
| Motore 2× a 2500 giri/min | 83 Hz |
Tutto il necessario rientra nei 100 Hz. Nyquist richiede 200 Hz; abbiamo 506 Hz — un margine di cinque volte. Il telefono è adatto; non c'è bisogno di comprare nulla.
Conclusione per chi replica il metodo: misurare prima con phyphox, poi pagare il software. Cinque minuti di controllo determineranno se otterrai una misurazione o spazzatura.
Impostazioni che fanno la differenza
CarNVH ha una casella di controllo "Request High Sampling Rate". Questa richiede il permesso di sistema HIGH_SAMPLING_RATE_SENSORS. Senza di essa, Android limita il flusso a 200 Hz indipendentemente dalle capacità hardware.
Altre impostazioni critiche:

- Circonferenza della ruota. Per 255/55 R19: diametro = 19 × 25,4 + 2 × (255 × 0,55) = 763,6 mm, circonferenza geometrica 2399 mm, circonferenza di lavoro con cedimento sotto carico ≈ 2300 mm
- Ordini ruota: abilitare 0,5, 1, 2, 3 — altrimenti, l'app mostra solo un marcatore per il primo ordine.
- Asse X logaritmico — disabilitare per l'analisi delle vibrazioni (su scala lineare, le armoniche formano un pettine uniforme immediatamente visibile) e abilitare per l'analisi del rumore (che copre 10 Hz–10 kHz).
- Scala Y automatica — disabilitare, fissare a 0,2 m/s². Altrimenti, due registrazioni non possono essere confrontate per ampiezza.
- Numero di massimi locali: 5
Montaggio
Questa è metà dell'accuratezza della misurazione, ed è dove si commettono la maggior parte degli errori.
Il telefono è montato saldamente al pianale o al battitacco, schermo verso l'alto, lato lungo in avanti, utilizzando nastro biadesivo 3M VHB o velcro robusto.
La posizione di montaggio determina l'output. Durante il mio primo viaggio, ho posizionato il telefono al centro del pianale del bagagliaio — questo è stato un errore da evitare.
Il centro del bagagliaio è equidistante da entrambi i passaruota posteriori, quindi le vibrazioni delle ruote sinistra e destra arrivano lì con intensità approssimativamente uguale. Una registrazione del genere risponde a domande come "C'è un difetto?", "Di che ordine si tratta?" e "È correlato al motore?", ma non risponde quale delle due ruote è in difetto. Questo richiede un altro viaggio in seguito.
L'approccio corretto fin dall'inizio:
- Prima registrazione — telefono posizionato vicino al passaruota da cui si sospetta provenga il rumore. Non al centro, ma spostato il più possibile verso la ruota sospetta, entro i limiti del pianale del bagagliaio.
- Seconda registrazione — vicino al passaruota opposto. Stesso percorso, stessa velocità, stessa scala Y fissa, stesso orientamento del telefono.
Confrontando l'ampiezza alla frequenza target tra le due registrazioni si individua il lato: dove è più alta, lì si trova il difetto. La differenza è solitamente moltiplicativa, rendendo difficile l'errore.
L'autoscala deve essere disabilitata per entrambe le registrazioni — altrimenti, l'app regolerà la scala separatamente per ogni viaggio, rendendo il confronto inutile.
Cosa non funziona: supporti a ventosa e collo d'oca flessibili (filtri meccanici che tagliano tutto sopra i 20 Hz e aggiungono la propria risonanza), sedili e pavimenti rivestiti in moquette (la schiuma attenua precisamente l'intervallo desiderato), mani (il tremore della mano crea un picco stabile di 8–12 Hz — l'ho visto al primissimo test).
Assi dopo il montaggio: Z verticalmente — primario per cuscinetti e fuori centro; Y lungo l'asse dell'auto; X trasversalmente, importante per il test di trasferimento del carico.

Registrazione: percorso e primi intoppi
La procedura è semplice: avviare la registrazione da fermo, percorrere il tragitto senza toccare il telefono, tornare indietro, fermarsi, salvare. Non è necessario dividere il viaggio in file — tutto viene analizzato successivamente per tempo e giri motore.
Un percorso di 4–6 minuti:
| Segmento | Azione | Cosa rivela |
|---|---|---|
| 0–1 min | Fermo, motore acceso | linea di base, armoniche del motore |
| 1–2 min | Accelerazione fluida | mostra se il picco cresce linearmente o è un rigonfiamento di risonanza |
| 2–3 min | Velocità costante, asfalto liscio | spettro pulito |
| 3–4 min | In folle in marcia | separa il rumore di rotolamento dal rumore della trasmissione |
| 4–5 min | Velocità costante, asfalto ruvido | dove il difetto è udibile |
| 5–6 min | Curve a S fluide a sinistra e a destra | trasferimento del carico, determinazione del lato |
Primo intoppo: il file è risultato essere di 145,7 MB per 4,2 minuti. Formato testo, precisione float completa, tre assi a 500 Hz più un microfono a 5,7 kHz. Questo non può essere caricato su una chat AI, aperto in Excel o elaborato manualmente.
Secondo intoppo: il GPS non è stato registrato. L'app non aveva il permesso per la posizione precisa. È stato registrato solo il regime motore tramite adattatore OBD — 679 valori a una frequenza di 3 Hz.
Entrambi i problemi sono stati risolti programmaticamente, e il secondo si è rivelato inaspettatamente un dono.
Strumento 1: Preparazione dei dati
Ho scritto uno script nvh_prep.py (codice nel repository del metodo). Il compito è trasformare 145 MB di dati grezzi in pochi megabyte adatti all'analisi, senza perdere nulla.
Cosa fa:
Analizza il formato. CarNVH scrive .txt con delimitatore punto e virgola senza virgolette e .csv con virgola e campi dati quotati. Lo script determina automaticamente il formato.
Unisci frame sovrapposti. L'app non scrive un flusso continuo ma finestre di 256 campioni con un passo di circa 52 ms. Le finestre adiacenti si sovrappongono: ognuna contiene solo 26 nuovi campioni su 256. Lo script trova lo spostamento per correlazione e ricostruisce un segnale continuo.
Calcola la frequenza di campionamento effettiva. Non in base alla durata totale (che sovrastima a causa del jitter), ma in base al rapporto tra "nuovi campioni per frame" e il passo temporale tra i frame. Il risultato è stato esattamente 500,0 Hz — il che significa che l'High Sampling Rate ha funzionato.
Scarta il microfono. Occupa la maggior parte del volume, mentre l'accelerometro è il canale cruciale per distinguere tra rumore di ruota/pneumatico e rumore di cuscinetto.
Taglia in segmenti di 20 secondi, distribuiti uniformemente durante la registrazione, e salva separatamente tutti i dati OBD per intero.
Risultato: invece di 145,7 MB, un report di 17 KB, 2,6 MB di segmenti e 20 KB di dati OBD.
Strumento 2: Analisi degli ordini
Il secondo script, nvh_analyze.py, esegue la diagnostica effettiva. La logica segue quattro passaggi.
Passaggio 1. Test di correlazione RPM motore
L'idea chiave dell'intero metodo, e fornisce una risposta prima di qualsiasi analisi spettrale.
Tutte le sorgenti di vibrazione sono divise in due classi: quelle legate al regime motore (supporti, ammortizzatore, accessori, scarico) e quelle legate alla velocità del veicolo (ruote, pneumatici, cuscinetti, albero di trasmissione).
Possono essere separate con una singola manovra: un kickdown. Con un'accelerazione improvvisa, i giri motore raddoppiano mentre la velocità cambia pochissimo nel corso di un paio di secondi. Se la frequenza del picco segue i giri motore, la sorgente è nel motore. Se rimane ferma, la sorgente è nei componenti rotanti.
Ecco cosa hanno mostrato i miei dati:
| Segmento | RPM | Frequenza di picco |
|---|---|---|
| 3 | 1184 → 2418 | 13,00 → 13,00 Hz |
| 6 | 777 → 2070 | 5,00 → 11,00 Hz |
| 2 | 717 → 1788 | 25,00 → 14,50 Hz |
Aumento medio RPM: ×2,39. Spostamento medio di frequenza: ×1,00.
I giri motore sono più che raddoppiati — la frequenza non si è spostata. Motore, trasmissione e albero di trasmissione sono esclusi in un'unica iterazione, senza smontaggi.
Passaggio 2. Analisi degli ordini
Successivamente, viene preso un segmento con velocità costante — lo script lo seleziona in base al criterio "ampiezza massima con minima variazione RPM". Per me, si trattava di 20 secondi a 51 km/h.
Lo spettro viene scomposto per multipli della frequenza di rotazione della ruota:
Ordine Frequenza Z X Y Z/background
1x 6,45 Hz 0,1020 0,0252 0,0192 2,3
2x 12,25 Hz 0,4416 0,0574 0,1205 10,1
3x 18,20 Hz 0,0705 0,0111 0,0039 1,6
4x 24,70 Hz 0,1170 0,0264 0,0178 2,7
5x 30,50 Hz 0,0830 0,0471 0,0230 1,9
Inoltre, viene calcolato il fattore Q del picco principale: Q = 122, larghezza di banda a -3 dB è solo 0,10 Hz. Si tratta di una linea discreta stretta, non di un rigonfiamento di risonanza. A confronto, durante l'accelerazione su asfalto ruvido, Q scende a 1,4 — quella è la risonanza delle sospensioni, e non va confusa con un difetto.
Passaggio 3. Analisi dell'inviluppo — Controllo cuscinetti
Un difetto del cuscinetto non è vibrazione ma impulsi d'impatto. Questi si manifestano come modulazione di una portante ad alta frequenza e vengono rilevati solo tramite demodulazione: filtraggio passa-banda, trasformata di Hilbert, spettro di inviluppo.
Lo script esegue questa operazione nelle bande 60–240 Hz e 100–240 Hz e cerca linee discrete. Il segno più importante: le frequenze di difetto del cuscinetto non sono multipli interi della rotazione della ruota — l'anello esterno è tipicamente 3,5–4,5×, l'anello interno 5,5–6,5×. Gli ordini interi non sono correlati ai cuscinetti.
Nei miei dati, il picco massimo dell'inviluppo è 8,6 volte la mediana di fondo; non ci sono linee discrete. Cuscinetto escluso.
Passaggio 4. Verdetto
Lo script correla l'ordine dominante con una causa meccanica e confronta l'ampiezza con le soglie (0,30 m/s² — percettibile, 0,50 — difetto).
Risultato e un errore che quasi mi ha tratto in inganno
La prima esecuzione ha prodotto una risposta errata, ed è utile mostrare perché.
Lo script ha trovato una linea dominante a 12,25 Hz e per impostazione predefinita ha assunto che fosse il primo ordine della ruota. Ciò implicava una velocità di 101 km/h e una diagnosi di "squilibrio".
La diagnosi sarebbe stata errata. Con una circonferenza di 2,30 m, il primo ordine a 60 km/h è 7,25 Hz — e non ho superato i 60 km/h in questo viaggio. Pertanto, 12,25 Hz fisicamente non può essere il primo ordine.
L'unica spiegazione coerente: 12,25 Hz è il secondo ordine, il primo ordine è 6,125 Hz, velocità ≈ 51 km/h.
Verifica indipendente tramite la trasmissione:
- Giri ruota a 6,125 Hz = 368 giri/min
- Rapporto di trasmissione totale = 1460 / 368 = 3,97
- 5ª marcia di 8HP: 1,285 × 3,204 finale = 4,12
Una discrepanza del 4% — entro la tolleranza per la circonferenza degli pneumatici. 5ª marcia a 51 km/h a 1460 giri/min è assolutamente normale. L'ipotesi è confermata.
Immagine ricalcolata:
- Primo ordine: 0,083 m/s², praticamente al livello di fondo → squilibrio escluso
- Secondo ordine: 0,442 m/s², 10 volte superiore al fondo → dominante
- Direzione: 71% verticale → eccentricità radiale, non laterale
Il secondo ordine della ruota con un primo ordine pulito significa: ellitticità dello pneumatico, usura in due punti opposti, deformazione del cerchio in due punti, o l'inizio di una separazione del battistrada.
I sintomi corrispondono perfettamente. Il ronzio appare a 50–60 km/h — misurato precisamente a 51 km/h. Non reagisce all'acceleratore — dimostrato dal test di kickdown. L'intervallo è stretto — 12,25 Hz rientra nell'intervallo di frequenza naturale della massa non sospesa dell'asse posteriore, motivo per cui il difetto risuona più fortemente lì, mentre frequenze più alte e più basse escono dalla risonanza.
La equilibratura non aiuterà qui: corregge il primo ordine, che è pulito. È necessaria una misurazione del fuori centro radiale su un equilibratore, separatamente per lo pneumatico e per la ruota assemblata.
Il ruolo dell'AI in questo lavoro
È importante essere precisi perché c'è molta mistica sull'argomento.
L'AI non ha "sentito il guasto". Claude non ha sostituito un sensore o un equilibratore per fuori centro.
Cosa ha effettivamente fatto:
- Stabilito i requisiti di misurazione. Calcolare la frequenza di campionamento necessaria in base alle frequenze dei difetti, ai requisiti di montaggio e all'insieme di manovre nel percorso — tutto questo è determinato dalla fisica del problema, e un errore qui svaluta qualsiasi elaborazione successiva.
- Scritto entrambi gli strumenti. Gli script per l'analisi dei frame sovrapposti e per l'analisi degli ordini con trasformata di Hilbert avrebbero richiesto ore di lavoro manuale; qui ci sono voluti minuti.
- Eseguito l'analisi stessa. Test di correlazione RPM motore tramite kickdown, calcolo del fattore Q, analisi dell'inviluppo, controllo incrociato del rapporto di trasmissione — l'intera parte analitica.
- Ha individuato il proprio errore basandosi su una singola osservazione. La frase "non sono andato più veloce di 60 km/h" ha completamente cambiato l'interpretazione: la diagnosi è passata dal primo ordine al secondo, dallo squilibrio all'ellitticità. Questo è un punto chiave: l'AI testa le ipotesi contro la fisica, piuttosto che difenderle.
La divisione del lavoro è stata equa: l'uomo fornisce il contesto e i vincoli fisici, l'AI calcola e verifica la coerenza. Senza l'osservazione sui 60 km/h, la diagnosi sarebbe stata elegante e errata.
In conclusione: quanto costa il metodo
| Articolo | Prezzo |
|---|---|
| CarNVH Pro | €12 |
| phyphox | Gratuito |
| Smartphone | Vecchio A51, già posseduto |
| Adattatore OBD | Già posseduto, e alla fine non necessario |
| Script | Scritti una volta, riutilizzabili |
| Totale | €12 |
Rispetto ai 99,99 dollari per un'app di riferimento che non fornisce dati grezzi, e a una visita in officina con la dichiarazione "c'è un ronzio da dietro".
Il metodo è trasferibile a qualsiasi auto senza modifiche. Cambiano solo due numeri: la circonferenza della ruota e i rapporti di trasmissione. La fisica della rotazione è la stessa per Audi Q7, BMW X5, Mercedes GLE, Range Rover, Tesla Model Y, Volvo XC90, Porsche Cayenne, VW Touareg, Ford Ranger, Toyota Land Cruiser, e qualsiasi altra auto.
Per Range Rover, Q7, Touareg, Cayenne e altri SUV con sospensioni pneumatiche, c'è una condizione aggiuntiva: mantenere un'unica modalità di altezza durante tutto il viaggio. Cambiare l'altezza da terra altera gli angoli dell'albero di trasmissione e il carico delle sospensioni, rendendo le registrazioni non confrontabili.
Per i veicoli elettrici, il metodo funziona ancora meglio: il motore è silenzioso, le sorgenti meccaniche si sentono come in laboratorio e il test di correlazione RPM è del tutto superfluo.
Prossimi passi
Il passo successivo è determinare il lato, e qui pago il prezzo per aver posizionato il telefono al centro del bagagliaio. Un punto del genere è equidistante da entrambi i passaruota e non isola il lato. Sono necessarie due registrazioni, spostate verso i passaruota destro e sinistro, alla stessa velocità, con la stessa scala fissa. La differenza di ampiezza a 12,25 Hz indicherà la ruota.
E una misurazione di controllo obbligatoria dopo la riparazione: lo stesso tratto di strada, la stessa velocità, le stesse impostazioni. Se il picco a 12,25 Hz scende al livello di fondo — il difetto è stato oggettivamente eliminato, non solo "sembra più silenzioso". È esattamente così che funziona la diagnostica predittiva sulle navi, e questo esatto principio è completamente trasferibile alle auto.
Gli script nvh_prep.py, nvh_analyze.py e la descrizione tecnica completa del metodo sono pubblicati su GitHub: github.com/gptariacom/car-nvh-order-analysis (MIT).
Autore — ingegnere presso Mind4Ship, diagnostica predittiva di attrezzature marine.
Ti piace questo case?
Avvia un progetto simile — descrivi «voglio lo stesso» e i Builder invieranno prototipi funzionanti. Il link a questo case è già nel brief.
Ordina un progetto simile