Ciao a tutti...sono di nuovo qui con un nuovo problema.
Per ora si e' deciso di partire a stimare il vento con un bel filtro di Kalman. La cosa e' fattibile e vi espongo un po' come vorrei fare.
Nel programma SIMULINK in questione (che fa volare il quadricottero) gia' c'e' un filtro di Kalman che prende in ingresso le misure del sensore di posizione del quadri (una cosa simile a un GPS per Indoor) e fa una predizione di dove si trovera' il quadricottero.
Il problema e' che il filtro di Kalman in questione non tiene conto per niente di disturbi vari e inoltre e' un filtro di Kalman a guadagni costanti.
La soluzione che mi e' venuta in mente e' quella di aggiungere alle equazioni a cui fa riferimento il filtro il disturbo introdotto dal vento. Per fare cio' in prima approssimazione ho supposto di vedere il vento come una Forza (quindi pensate a un vento che agisce solo nel piano xy).
Di seguito ho scritto le equazioni differenziali che legano lo stato del sistema al disturbo, non so se ho sbagliato qualcosa:
Ora il mio problema e' come modificare il codice del filtro di Kalman. Secondo voi basta aggiungere una variabile di stato, e modificare la relativa equazione?
Scusate se sono un po' vago ma non ho capito bene come fare questa cosa.
Se qualcuno volesse propormi un approccio diverso faccia pure :)
Fab.
Filtro di Kalman Per stimare il Vento
43 messaggi
• Pagina 1 di 5 • 1, 2, 3, 4, 5
0
voti
Ciao
minidiable.
Devi scrivere le equazioni utilizzando LATEX.
Leggi le regole del forum, qui sopra.
Al seguente link, trovi una piccola guida all' uso:
http://www.electroyou.it/mrc/wiki/intro ... o-di-latex
Devi scrivere le equazioni utilizzando LATEX.
Leggi le regole del forum, qui sopra.
Al seguente link, trovi una piccola guida all' uso:
http://www.electroyou.it/mrc/wiki/intro ... o-di-latex
0
voti
avete ragione. Scusatemi, ma non essendo molto esperto di LaTex avevo pensato che questo era il modo migliore per esporvi il mio ragionamento.
Appena posso cambio tutto.
Grazie per l'aiuto.
Appena posso cambio tutto.
Grazie per l'aiuto.
-

minidiable
5 1 2 5 - Stabilizzato

- Messaggi: 425
- Iscritto il: 7 gen 2009, 14:08
0
voti
Tralasciando un momento il mio primo messaggio.
Vorrei sapere, secondo voi dove e' piu' giusto inserire il disturbo vento in una simulazione.
Mi spiego:
Io ho il mio modello SIMULINK in cui ho il sensore che mi da la posizione del mio quadricottero. Il filtro di kalman che stima la velocita' e per ora niente di piu' (poi ci vorrei aggiungere un altro stato che mi permetta di stimare anche il vento). Ora stavo facendo un po' di prove di robustezza del controllore e vorrei sapere:
per simulare un vento nel piano xy del quadricottero secondo voi e' piu' giusto inserire il disturbo:
1) Nella posizione che entra al filtro di kalman (non penso che sia questa la cosa giusta da fare in quanto cosi' simulerei semplicemente un imprecisione del sensore che mi da la posizione del quadri)
2) Nella Forza che entra al filtro di Kalman (ho provato a fare cio' ma non sembra cambiare molto)
3) Nella velocita' che esce dal filtro di Kalman
4) Nella posizione che esce dal Filtro di Kalman.
5) Da qualche altra parte.
Grazie per l'aiuto.
Vorrei sapere, secondo voi dove e' piu' giusto inserire il disturbo vento in una simulazione.
Mi spiego:
Io ho il mio modello SIMULINK in cui ho il sensore che mi da la posizione del mio quadricottero. Il filtro di kalman che stima la velocita' e per ora niente di piu' (poi ci vorrei aggiungere un altro stato che mi permetta di stimare anche il vento). Ora stavo facendo un po' di prove di robustezza del controllore e vorrei sapere:
per simulare un vento nel piano xy del quadricottero secondo voi e' piu' giusto inserire il disturbo:
1) Nella posizione che entra al filtro di kalman (non penso che sia questa la cosa giusta da fare in quanto cosi' simulerei semplicemente un imprecisione del sensore che mi da la posizione del quadri)
2) Nella Forza che entra al filtro di Kalman (ho provato a fare cio' ma non sembra cambiare molto)
3) Nella velocita' che esce dal filtro di Kalman
4) Nella posizione che esce dal Filtro di Kalman.
5) Da qualche altra parte.
Grazie per l'aiuto.
-

minidiable
5 1 2 5 - Stabilizzato

- Messaggi: 425
- Iscritto il: 7 gen 2009, 14:08
10
voti
Faccio alcuni commenti al testo nell'immagine del post [1].
Come al solito si tenta di spremere "sangue dalle arance" non impiegando gli strumenti in modo adeguato.
La frase "Assuming that the d has not dynamics" oltre che essere sbagliata dal punto di vista del modello e' anche falsa dal punto di vista della rappresentazione.
Scrivere
vuol dire che
ma siccome il modello e' di tipo stocastico si ha :

Dove
e' una variabile aleatoria che indica il fatto importantissimo che c'e' un errore di modello per cui
non e' una costante ma e' una costante a parte un errore.
E' questo che permette allo stimatore di far variare la costante e modificare il valore di
il quale rimane inchiodato per definizione al valore iniziale se fisso
.
Se voglio far muovere piu' velocemente
dovrei aumentare il valore dell'incertezza ovvero la varianza di
per rendere l'inseguimento della variabile di stato piu' veloce.
Questa tecnica pero' sovrappone molto rumore alla stima perche' non c'e' nessuna specifica sulla banda della variabile di stato
per cui il rumore puo' eccitarne tutto lo spettro senza limitazioni.
Questo e' sbagliato.
Nell'osservatore di Kalman la conoscenza a priori e' fondamentale.
Cosa sai del processo "vento" a priori ?
Puoi simulare il processo "vento" in modo sensato ?
Puoi almeno ipotizzare che la banda della velocita' sia limitata ?
Direi di si.
Se per esempio modelli il processo aleatorio in frequenza come indicato in figura puoi supporre il
processo aleatorio
come l'uscita di un filtro alimentato con rumore bianco gaussiano
.
A questo punto hai due sezioni [A] e [B] che potrebbero rappresentare la brezza lentamente variabile e le raffiche di vento ad alta frequenza.
Tutto cio' che non rientra in questa banda non ha a che fare con il modello del processo per cui non viene stimato in quanto fa parte dell'errore.
Se per esempio compare una oscillazione del rotore a 100 Hz, risultando fuori banda viene eliminata dalla stima di
in quanto il vento non puo' fisicamente avere frequenze di quell'ordine di grandezza per cui appartengono ad un altro disturbo.
Le frequenze sono puramente indicative come l'andamento spettrale del segnale.
Per fare un lavoro significativo dal punto di vista scientifico bisognerebbe campionare l'andamento del vento per un lungo periodo con diverse condizioni atmosferiche e ricavare la densita' spettrale del processo.
Fondamentalmente bisogna ipotizzare o ricavare la dinamica del modello
, la si deve inserire nel modello generale e poi si stima
aggiungendo la variabile di stato
che non risulta piu' una costante ma un processo aleatorio con caratteristiche ben delineate e quindi piu' fedelmente stimabile in virtu' della conoscenza a priori.
Ipotizzare a priori che il vento sia una "costante ma non proprio" come indicato nel documento iniziale comporta stime molto lente con valori di
piccoli e stime estremamente rumorose ed errate per
di valore elevato.
Come al solito si tenta di spremere "sangue dalle arance" non impiegando gli strumenti in modo adeguato.
La frase "Assuming that the d has not dynamics" oltre che essere sbagliata dal punto di vista del modello e' anche falsa dal punto di vista della rappresentazione.
Scrivere
vuol dire che
ma siccome il modello e' di tipo stocastico si ha :
Dove
e' una variabile aleatoria che indica il fatto importantissimo che c'e' un errore di modello per cui
non e' una costante ma e' una costante a parte un errore.E' questo che permette allo stimatore di far variare la costante e modificare il valore di
il quale rimane inchiodato per definizione al valore iniziale se fisso
.Se voglio far muovere piu' velocemente
dovrei aumentare il valore dell'incertezza ovvero la varianza di
per rendere l'inseguimento della variabile di stato piu' veloce.Questa tecnica pero' sovrappone molto rumore alla stima perche' non c'e' nessuna specifica sulla banda della variabile di stato
per cui il rumore puo' eccitarne tutto lo spettro senza limitazioni.Questo e' sbagliato.
Nell'osservatore di Kalman la conoscenza a priori e' fondamentale.
Cosa sai del processo "vento" a priori ?
Puoi simulare il processo "vento" in modo sensato ?
Puoi almeno ipotizzare che la banda della velocita' sia limitata ?
Direi di si.
Se per esempio modelli il processo aleatorio in frequenza come indicato in figura puoi supporre il
processo aleatorio
come l'uscita di un filtro alimentato con rumore bianco gaussiano
.A questo punto hai due sezioni [A] e [B] che potrebbero rappresentare la brezza lentamente variabile e le raffiche di vento ad alta frequenza.
Tutto cio' che non rientra in questa banda non ha a che fare con il modello del processo per cui non viene stimato in quanto fa parte dell'errore.
Se per esempio compare una oscillazione del rotore a 100 Hz, risultando fuori banda viene eliminata dalla stima di
in quanto il vento non puo' fisicamente avere frequenze di quell'ordine di grandezza per cui appartengono ad un altro disturbo.Le frequenze sono puramente indicative come l'andamento spettrale del segnale.
Per fare un lavoro significativo dal punto di vista scientifico bisognerebbe campionare l'andamento del vento per un lungo periodo con diverse condizioni atmosferiche e ricavare la densita' spettrale del processo.
Fondamentalmente bisogna ipotizzare o ricavare la dinamica del modello
, la si deve inserire nel modello generale e poi si stima
aggiungendo la variabile di stato
che non risulta piu' una costante ma un processo aleatorio con caratteristiche ben delineate e quindi piu' fedelmente stimabile in virtu' della conoscenza a priori.Ipotizzare a priori che il vento sia una "costante ma non proprio" come indicato nel documento iniziale comporta stime molto lente con valori di
piccoli e stime estremamente rumorose ed errate per
di valore elevato.Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
Innanzitutto parto col ringraziarti davvero tanto perche' queste risposte sono il genere di risposte che mi fanno pensare che i forum e le persone come voi sono le cose migliori che abbiano mai inventato :) La condivisione della conoscenza e' una cosa incantevole a mio parere.
Tralasciando cio', volevo dirti che :
Fin qui ci sono. Infatti io ho detto che
per semplificare il modello e cercare di simulare qualcosa.
Detto questo, ho cercato di simulare il tutto e il mio Predittore non mi da risultati proprio scadenti, anche se non proprio eccezionali:
Quello rosa e' l'andamento del "vento" che il mio Filtro non conosce e quella in giallo e' la "stima" del vento.
Con andamento del vento intendo il termine additivo che ho inserito in questa equazione:


(Si e' supposto, per cominciare, di non avere effetti del vento lungo l'asse z! Naturalmente e' un'ipotesi molto restrittiva)
Dove:
xdd=Accelerazione lungo l'asse x
ydd= Accelerazione lungo l'asse y
Fu=Forza
m=massa del quadricottero
Ho simulato varie situazioni:
0-10 secondi : Semplice sinusoide
10-20 secondi : Sinusoide con rumore bianco
20-30 secondi : sinusoide con bias=10
30-40 secondi : sinusoide con bias=-10
40-50 secondi : costante =5
50-55 secondi : costante =0
Questa cosa mi interesserebbe molto. Puoi spiegarmi meglio come fare? Mi serve un anemometro o cosa?
Ti ringrazio molto per l'aiuto,
Fab.
Tralasciando cio', volevo dirti che :
dimaios ha scritto:Scriverevuol dire che
ma siccome il modello e' di tipo stocastico si ha :
Dovee' una variabile aleatoria che indica il fatto importantissimo che c'e' un errore di modello per cui
non e' una costante ma e' una costante a parte un errore.
E' questo che permette allo stimatore di far variare la costante e modificare il valore diil quale rimane inchiodato per definizione al valore iniziale se fisso
.
Fin qui ci sono. Infatti io ho detto che
per semplificare il modello e cercare di simulare qualcosa.Detto questo, ho cercato di simulare il tutto e il mio Predittore non mi da risultati proprio scadenti, anche se non proprio eccezionali:
Quello rosa e' l'andamento del "vento" che il mio Filtro non conosce e quella in giallo e' la "stima" del vento.
Con andamento del vento intendo il termine additivo che ho inserito in questa equazione:


(Si e' supposto, per cominciare, di non avere effetti del vento lungo l'asse z! Naturalmente e' un'ipotesi molto restrittiva)
Dove:
xdd=Accelerazione lungo l'asse x
ydd= Accelerazione lungo l'asse y
Fu=Forza
m=massa del quadricottero
Ho simulato varie situazioni:
0-10 secondi : Semplice sinusoide
10-20 secondi : Sinusoide con rumore bianco
20-30 secondi : sinusoide con bias=10
30-40 secondi : sinusoide con bias=-10
40-50 secondi : costante =5
50-55 secondi : costante =0
dimaios ha scritto:Se per esempio modelli il processo aleatorio in frequenza come indicato in figura puoi supporre il
processo aleatoriocome l'uscita di un filtro alimentato con rumore bianco gaussiano
.
A questo punto hai due sezioni [A] e [B] che potrebbero rappresentare la brezza lentamente variabile e le raffiche di vento ad alta frequenza.
Tutto cio' che non rientra in questa banda non ha a che fare con il modello del processo per cui non viene stimato in quanto fa parte dell'errore.
Se per esempio compare una oscillazione del rotore a 100 Hz, risultando fuori banda viene eliminata dalla stima diin quanto il vento non puo' fisicamente avere frequenze di quell'ordine di grandezza per cui appartengono ad un altro disturbo.
Le frequenze sono puramente indicative come l'andamento spettrale del segnale.
Per fare un lavoro significativo dal punto di vista scientifico bisognerebbe campionare l'andamento del vento per un lungo periodo con diverse condizioni atmosferiche e ricavare la densita' spettrale del processo.
Fondamentalmente bisogna ipotizzare o ricavare la dinamica del modello, la si deve inserire nel modello generale e poi si stima
aggiungendo la variabile di stato
che non risulta piu' una costante ma un processo aleatorio con caratteristiche ben delineate e quindi piu' fedelmente stimabile in virtu' della conoscenza a priori.
Questa cosa mi interesserebbe molto. Puoi spiegarmi meglio come fare? Mi serve un anemometro o cosa?
Ti ringrazio molto per l'aiuto,
Fab.
-

minidiable
5 1 2 5 - Stabilizzato

- Messaggi: 425
- Iscritto il: 7 gen 2009, 14:08
5
voti
minidiable ha scritto:Detto questo, ho cercato di simulare il tutto e il mio Predittore non mi da risultati proprio scadenti, anche se non proprio eccezionali
Beh, non direi che funziona granchè bene.
Innanzitutto dovresti precaricare lo stimatore con uno stato diverso da zero altrimenti all'inizio hai delle oscillazioni indesidrate.
La dinamica della stima è troppo lenta, infatti non riesci a stimare la sinusoide.
Quando inserisci un grafico abbi la cortesia di indicare le scale su ambedue gli assi altrimenti non si capisce nulla.
minidiable ha scritto:Questa cosa mi interesserebbe molto. Puoi spiegarmi meglio come fare? Mi serve un anemometro o cosa?
Innanzitutto direi che il vento dovrebbe essere rappresentato in modo vettoriale ovvero ha un'intensità una direzione ed un verso.
Per fare questo devi identificare due processi aleatori :
[1] Intensità del vento
[2] Variazione direzionale del vento
Supponiamo che il processo
ed il processo
siano generati da rumori bianchi statisticamente indipendenti tra loro.Questo in generale non è vero in quanto l'intensità del vento e la sua direzione in qualche modo potrebbero essere collegati ma accettiamo l'ipotesi come valida.
In particolare assumiamo che il meccanismo di generazione dei due processi sia un modello AR alimentato rispettivamente da
e
.Siccome la traiettoria di un quadrocopter è generica non c'è motivo di pensare che vi sia un angolo privilegiato tra velivolo e direzione del vento per cui si suppone che l'angolo iniziale del vento sia una variabile aleatoria
uniformemente distribuita nell'intervallo
.Questa ipotesi non sarebbe vera nel caso di una traiettoria deterministica di un velivolo che sorvola una particolare zona dove per esempio soffia sovente il ponente o il libeccio in modo predominante in quanto l'angolo di incidenza tra traiettoria e vento sarebbe polarizzato su alcuni valori ( l'esempio è solo per farti capire che stiamo modellando il problema con ipotesi non applicabili in generale ).
Per misurare le due grandezze in oggetto ( intensità e direzione del vento dovresti avere un sistema come quello illustrato nel video ).
I dati campionati sul lungo periodo si possono dividere in serie temporali da cui si ricava la stima della densità spettrale dei processi e quindi
e
.Per il calcolo si possono utilizzare algoritmi classici tipo lo schema di Yule-Walker oppure algoritmi più sofisticati come Capon oppure APES.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
dimaios ha scritto:Quando inserisci un grafico abbi la cortesia di indicare le scale su ambedue gli assi altrimenti non si capisce nulla.![]()
Innanzitutto ecco il grafico corretto :) Per il resto di quello che mi hai scritto... Devo capirlo e poi ti rispondo :)
-

minidiable
5 1 2 5 - Stabilizzato

- Messaggi: 425
- Iscritto il: 7 gen 2009, 14:08
0
voti
dimaios ha scritto:minidiable ha scritto:Detto questo, ho cercato di simulare il tutto e il mio Predittore non mi da risultati proprio scadenti, anche se non proprio eccezionali
Per misurare le due grandezze in oggetto ( intensità e direzione del vento dovresti avere un sistema come quello illustrato nel video ).
I dati campionati sul lungo periodo si possono dividere in serie temporali da cui si ricava la stima della densità spettrale dei processi e quindie
.
Per il calcolo si possono utilizzare algoritmi classici tipo lo schema di Yule-Walker oppure algoritmi più sofisticati come Capon oppure APES.
Visto che io parto dallo stimare il vento Indoor (con una grossa ventola) potrebbe bastare solo un anemometro in modo tale che io possa stimare l'intensita' . Questo perche' suppongo di conoscere la direzione. Posso provare ad identificare solo I(s). Cosa ne pensi? La vedi fattibile come cosa?
-

minidiable
5 1 2 5 - Stabilizzato

- Messaggi: 425
- Iscritto il: 7 gen 2009, 14:08
43 messaggi
• Pagina 1 di 5 • 1, 2, 3, 4, 5
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



