measurement-and-instrumentation
Progettazione di algoritmi di stima robusti in Matlab per i dati dei sensori
Table of Contents
Introduzione: La necessità di una stima robusta nel trattamento dei dati del sensore
I dati del sensore costituiscono la spina dorsale dei moderni sistemi di ingegneria, dai veicoli autonomi e dall'automazione industriale al monitoraggio ambientale e alla diagnostica medica. Tuttavia le letture dei sensori grezzi sono raramente perfette. Essi arrivano contaminati da rumore elettronico, interferenze ambientali, deriva dell'hardware, e occasionali outlier lordi causati da glitch dei sensori o interruzioni di comunicazione.
In un impianto di produzione, un singolo punto del sensore spurioso può innescare un falso allarme che chiude una linea di produzione. Nel sistema di navigazione del drone, alcune letture GPS corrotte possono causare la perdita del veicolo.
Comprendere le sfide dei dati del sensore reale-mondo
Prima di immergersi nel design degli algoritmi, è importante caratterizzare i tipi di corruzione che i dati dei sensori mostrano comunemente. Le tre sfide principali sono il rumore, gli outlier e la non-stationarity.
Rumore
Il rumore termico, l'errore di quantizzazione e l'interferenza elettronica sono fonti tipiche. Mentre il rumore può essere spesso modellato come Gaussian a zero-mean, il rumore del mondo reale mostra a volte code più pesanti o componenti periodici.
Esterno
Gli estranei sono valori estremi che deviano in modo significativo dal modello di dati sottostante, possono derivare dalla saturazione dei sensori, dagli errori dei bit di trasmissione o dai disturbi ambientali transitori (ad esempio, una riflessione di lidar da una particella di polvere).
Non-stationarity e Time-varying Behavior
Le caratteristiche del sensore possono cambiare nel tempo a causa della deriva della temperatura, dei componenti di invecchiamento o dei turni di calibrazione. Inoltre, il processo fisico sottostante che viene misurato può mostrare cambiamenti improvvisi.
Comprendere queste sfide è il primo passo: il prossimo è imparare i principi chiave su cui gli algoritmi di stima robusti si affidano per far fronte a loro.
Principi chiave della stima robusta
La stima robusta è un campo costruito su diverse idee fondamentali che permettono agli algoritmi di resistere all'influenza negativa delle irregolarità dei dati. I tre principi più importanti sono la resistenza più evidente, la tolleranza al rumore e l'adattabilità.
Resistenza all'esterno
Un algoritmo è più resistente se può efficacemente ignorare o minimizzare l'influenza dei punti dati anomali.
- Funzioni di influenza recidiva:[ L'influenza di un'osservazione sulla stima diminuisce come il suo residuo (error) diventa molto grande, alla fine andando a zero.
- Random campionamento con consenso:[] Invece di utilizzare tutti i punti di dati, l'algoritmo ripetutamente campionari sottoinsiemi che sono probabili essere puliti, montare un modello ogni volta e selezionare quello supportato dai più inliers.
- Trimming o Winsorizing:[] I residui estremi sono scartati o tagliati a un valore di soglia prima che la stima venga calcolata.
Tolleranza al rumore
La tolleranza al rumore si riferisce alla capacità dell'algoritmo di produrre stime accurate anche quando il rapporto segnale-rumore è basso.
- Meno quadrati usciti:[] Le osservazioni sono inversamente ponderate con una stima della loro variazione, dando più peso a misurazioni meno rumorose.
- Regolarizzazione:[] Aggiungendo un termine di penalità al problema di ottimizzazione può stabilizzare le stime in presenza di alto rumore.
- I vincoli di stato:[] L'integrazione dei limiti fisici noti (ad esempio, l'accelerazione massima) può filtrare i valori implausibili causati dal rumore.
Adaptability
Gli estimatori adattabili possono regolare i parametri o la struttura in quanto le caratteristiche dei dati cambiano nel tempo.
- Peso adattivo:[] I pesi sono aggiornati in modo iterativo basato sui residui attuali, in modo che i nuovi outlier apparinti siano in calo.
- Filtro ricorsivo:[ I filtri Kalman e gli estimatori ricorrenti simili possono essere resi robusti modificando il passaggio di aggiornamento per ospitare innovazioni non gaussiane.
- Rilevamento delle impostazioni:[] Gli algoritmi possono rilevare quando il processo di generazione dei dati si sposta e poi resetta o riavvicina le parti dello stimatore.
Con questi principi in mente, ora possiamo esplorare come implementarli concretamente in MATLAB.
Attuazione di algoritmi di stima robusti in MATLAB
MATLAB offre un ecosistema ricco per lo sviluppo di estimatori robusti, dalle funzioni di cassetta degli strumenti integrate al codice personalizzato flessibile. La scelta dell'algoritmo dipende dalle specifiche caratteristiche dei dati dei sensori e dai requisiti applicativi.
M-Estimatori per la Regressione Robusta
I M-estimatori sono una classe di robuste tecniche di regressione che sostituiscono la funzione di costo quadratico di quadratici ordinari meno quadrati con una funzione che cresce più lentamente per i grandi residui. Le scelte comuni includono la funzione di perdita di Huber (quadratic per i piccoli residui, lineari per quelli grandi) e la perdita di biquare Tukey (che si distinguono e poi diminuiscono).
mdl = fitlm(X, y, 'RobustOpts', 'bisquare');
Questo si adatta a un modello lineare con meno quadrati (IRLS) ponderati iterativamente con la funzione di peso del biquaro. È inoltre possibile implementare i stimatori M personalizzati scrivendo le proprie funzioni di peso e iterating fino alla convergenza.
- Inizializzare utilizzando meno quadrati ordinari.
- Computo residui e deviazione standard (ad esempio, utilizzando la deviazione assoluta mediana per robustezza).
- Calcola i pesi in base alla funzione di influenza scelta.
- Risolvere il problema di quadrati meno ponderati.
- Ripetere i passaggi 2-4 fino a quando le stime del parametro si stabilizzano.
I M-stimatori funzionano bene quando la maggior parte dei dati è pulita e il numero di outlier è moderato, sono computazionalmente efficienti e ampiamente utilizzati nelle attività di calibrazione e fusione dei dati.
RANSAC per dati personali
RANSAC (Random Sample Consensus) è ideale quando la frazione di inliers è bassa, per esempio in lidar point cloud di registrazione o SLAM visivo dove gli outlier (ad esempio, da oggetti in movimento) possono essere numerosi.
- Seleziona casualmente un sottoinsieme minimo di punti necessari per adattarsi al modello (ad esempio, 2 punti per una linea).
- Adatta il modello a quel sottoinsieme.
- Contare quanti punti di dati concordano con il modello all'interno di una data tolleranza (il consenso impostato).
- Ripetere i passaggi 1-3 molte volte.
- Selezionare il modello con il più grande consenso impostato e perfezionarlo in modo facoltativo utilizzando tutti gli inlier.
MATLAB ti permette di definire il tuo [ e ] per applicare RANSAC a qualsiasi problema di stima. Ad esempio, per stimare una linea attraverso punti 2D con molti outlier:
params = ransac(pts, @fitLine, @evalLine, ...);
RANSAC è robusto ad una percentuale molto elevata di outlier, fino al 50% o più, ma è computazionalmente intensivo e richiede l'accordamento della soglia e del numero di iterazioni.
Filtri robusti Kalman per i dati del sensore di tempo
Per applicazioni in tempo reale come la fusione GPS/IMU o il tracciamento di destinazione, il filtro Kalman è uno strumento standard. Tuttavia, il classico filtro Kalman assume il rumore gaussiano ed è altamente sensibile agli outlier.
- Filtro Kalman basato su Huber:[ Sostituisce il costo di innovazione quadratica con una perdita di Huber, in modo efficace in diminuzione grandi innovazioni.
- Il filtraggio t-distribuzione dello studente:[ Assume il rumore di processo e misura dalle linee pesanti, utilizzando un approccio Bayesiano variabile per aggiornare i parametri di stato e di rumore.
- Reiezione di un avallo adattivo:[ Compiti la distanza di Mahalanobis dell'innovazione; se supera una soglia, scarta la misura o gonfia la sua covarianza.
MATLAB non fornisce un filtro Kalman robusto integrato, ma è possibile implementarne uno estendendo gli oggetti [ o ]. Ad esempio, un aggiornamento basato su Huber semplificato può essere codificato come:
function [x, P] = robustUpdate(x_pred, P_pred, z, H, R, threshold)
S = H * P_pred * H' + R;
K = P_pred * H' / S;
innov = z - H * x_pred;
% Compute weight using Huber
w = huberWeight(innov, S, threshold);
x = x_pred + K * (w .* innov);
P = (eye(n) - K * H) * P_pred;
end
Questo tipo di filtro è robusto contro le misurazioni negative occasionali, mantenendo l'efficienza ricorrente necessaria per la stima online.
Ulteriori metodi robusti
Oltre alle tre famiglie principali, MATLAB supporta altre tecniche robuste:
- Filtri di media:[] Filtri non lineari che sostituiscono ogni punto con la mediana dei suoi vicini; eccellente per la rimozione del rumore di impulso. MATLAB e sono semplici da usare.
- Il estimatore Theil-Sen:[] Un metodo di regressione robusto non-parametrico che calcola la mediana delle piste attraverso tutte le coppie di punti. È altamente resistente agli outlier e non richiede alcun tuning. Implementabile tramite la funzione della cassetta degli strumenti statistici.
- L1 regressione (sfidenze assolute più basse):[] Minima la somma dei residui assoluti invece dei residui quadrati. MATLAB con e può approssimare L1, o si possono utilizzare risolutori di ottimizzazione come con un costo L1.
Migliori Pratiche per la progettazione di esiti robusti
L'implementazione di un algoritmo robusto è solo la metà della battaglia, per assicurarsi che funzioni in modo affidabile nella pratica, seguire queste migliori pratiche.
Dati del sensore di preprocesso
Eseguire sempre controlli di qualità di base prima di fornire dati a un estimatore.
- Controllo del segnale:[] Scontri i valori che cadono fuori dei limiti fisici.
- Limitare il cambiamento:[ Rifiutare le punte che implicano derivati implausibili.
- Gestione dei dati:[] Interpolare o saltare le osservazioni mancanti in modo appropriato.
- Normalizzazione:[ Variabili di scala a magnitudine simili per migliorare la stabilità numerica.
Scegli il giusto livello di robustezza
Non tutte le applicazioni richiedono lo stesso grado di robustezza. Una lieve perdita di Huber può bastare per flussi di sensori rumorosi ma raramente corrotti, mentre un approccio RANSAC è necessario quando gli outlier sono frequenti.
Parametri sintonizzanti con attenzione
Gli algoritmi robusti hanno parametri di sintonizzazione, ad esempio la soglia di inlier in RANSAC, il taglio Huber in M-stimatori, o la soglia di innovazione di gating in robusti filtri Kalman, che dovrebbero essere scelti in base alle caratteristiche di magnitudine e di outlier previste.
Convalida con dati simulati e reali
Prima di dispiegare, testare rigorosamente lo stimatore utilizzando:
- Dati sintetici:[] Generare la verità del terreno più rumore controllato e outlier per verificare la correttezza e il punto di rottura.
- Dati storici:[] Eseguire l'algoritmo sui registri dei sensori archiviati dove gli outlier sono noti per verificarsi.
- Testi di Monte Carlo:[ Ripetere molte realizzazioni casuali per stimare i tassi di bias, varianza e guasti.
Monitorare le prestazioni online
Nei sistemi di produzione, monitoriamo continuamente le metriche chiave come residui, sequenze di innovazione e limiti di stato stimati. Se lo stimatore inizia a degradare (ad esempio, i residui diventano persistentimente grandi), uno strato di supervisione può innescare la riavviamento o il passaggio a una modalità diversa.
Applicazioni reali e studi di casi
La stima robusta in MATLAB viene applicata in molti domini, qui ci sono tre esempi illustrativi.
Localizzazione autonoma del veicolo
In auto-guida, la fusione del sensore combina GPS, IMU, l'odometria della ruota e il lidar. I segnali GPS possono essere bloccati o multipath-prone, le scansioni di lidar contengono riflessi da oggetti in movimento, e la deriva IMU si accumula. Un robusto filtro Kalman esteso (EKF) con la gating e la ponderazione adattativa è usato per rifiutare le misurazioni anomali.
Manutenzione Predizionale Industriale
I sensori di vibrazione sui macchinari rotanti raccolgono dati per il rilevamento dei guasti. I sensori possono verificarsi da clipping o shock transitori. Un robusto estimatore spettrale (ad esempio, utilizzando il parodogramma mediano) può estrarre le frequenze di vibrazione vere nonostante queste anomalie.
Reti dei sensori ambientali
Le reti di sensori wireless che misurano temperatura, umidità e qualità dell'aria spesso sperimentano la perdita dei pacchetti e i guasti dei sensori intermittenti. Un algoritmo di assimilazione dei dati robusto basato su un filtro Kalman ensemble con rilevamento outlier può produrre mappe spaziali accurate anche quando il 20% dei sensori riporta valori corrotti.
Conclusioni
Con la comprensione dei tipi di corruzione che i sensori producono e applicando i principi di resistenza superiore, tolleranza del rumore e adattabilità, gli ingegneri possono progettare algoritmi che forniscono stime affidabili. MATLAB fornisce una potente piattaforma per questo lavoro, offrendo sia funzioni ready-made per i metodi comuni robusti e la flessibilità per i filtri di tuning personalizzati.
Per approfondire la vostra conoscenza, esplorare la documentazione ufficiale MATLAB su []regressione del robust[ e l'algoritmo RANSAC[[]]]. Inoltre, il []]]Robust State Estimation for Vehicle Localization, l'esempio fornisce un pratico strumento di e i dati più complessi.