| Precedente :: Successivo |
| Autore |
Messaggio |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Dom Luglio 25, 2010 1:19 pm Oggetto: Altimetro autocostruito |
|
|
Ho già RIriparato il gwiz LCX che si era rotto al MIR. In ogni caso voglio comunque co
struire il mio altimetro partendo da zero, soprattutto per acquisire nuove abilità di programmazione in C per microcontrollori che potranno essermi utili in vista della mia tesi di laurea specialistica.
L'altimetro in progetto sarà dotato di accelerometro e barometro. I sensori e il microcontrollore sono già stati scelti ed ho già fatto alcune prove.
Microcontrollore: PIC 16F88 (8Mhz) Già in mio possesso
Accelerometro: Freescale MMA2202 (50G) Già in mio possesso
Barometro: Freescale MPX2102 Da ordinare
Al momento attuale sono alle prese con la logica generale del programma ed ho fatto un diagramma di flusso preliminare. Avrei bisogno di una mano per la ricerca di eventuali errori concettuali, e vi sarei grato se poteste dare un'occhiata. Ogni ulteriore consiglio è accettato.
 _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Dom Luglio 25, 2010 8:37 pm Oggetto: Re: Altimetro autocostruito |
|
|
| Adriano ha scritto: | Ho già RIriparato il gwiz LCX che si era rotto al MIR. In ogni caso voglio comunque co
struire il mio altimetro partendo da zero, soprattutto per acquisire nuove abilità di programmazione in C per microcontrollori che potranno essermi utili in vista della mia tesi di laurea specialistica. |
Buona idea!
| Citazione: | | L'altimetro in progetto sarà dotato di accelerometro e barometro. |
Per un altimetro, un accelerometro no è necessario, ma puo essere utile se hai un Kalman filter. O per la detezione del lancio.
| Citazione: | | Microcontrollore: PIC 16F88 (8Mhz) Già in mio possesso |
Non penso che questo è una buona scelta. Questo controller è un po primitivo. Generalmente, i PIC sono un po troppo semplici, almeno per me, nemmeno hanno un stack. Significa che la struttura dei programmi che puoi scrivere per questo controller è anche molto primitivo. Io preferisco i controller di architettura AVR di Atmel. Un AVR ti permette programmare col GNU compiler, uno dei migliori compiler in esistenza. L'atlastimer e l'altimax sono tutti i due costruiti a base di un Atmel ATmega644.
| Citazione: | | Ogni ulteriore consiglio è accettato. |
Nel disegnio di un altimetro, ci sono due problemi difficili che devi risolvere:
1. detezione del lancio: con un accelerometro questo non e troppo difficile, ma ci sone qualche finezze da considerare: semplicemente muovere il razzo non deve essere detetto come lancio.
2. detezione del apogeo: il metodo li più affidabile è un Kalman filter, tutti gli altimetri moderni ne fanno uso. Ma il PIC che tu hai scelto è probabilmente troppo debole per i calcolazioni abastanza complicati del Kalman filter. Questo è la seconda raggione perche ti raccomando scegliere un altro controller. L'ATmega644 del Altimax non ha problemi di questo genere... |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Dom Luglio 25, 2010 10:09 pm Oggetto: |
|
|
| Citazione: | | Non penso che questo è una buona scelta. Questo controller è un po primitivo. Generalmente, i PIC sono un po troppo semplici, almeno per me, nemmeno hanno un stack. Significa che la struttura dei programmi che puoi scrivere per questo controller è anche molto primitivo. Io preferisco i controller di architettura AVR di Atmel. Un AVR ti permette programmare col GNU compiler, uno dei migliori compiler in esistenza. L'atlastimer e l'altimax sono tutti i due costruiti a base di un Atmel ATmega644. |
Finora ho sempre usato i pic programmandoli soltanto in basic. E' la prima volta che programmo in C. I PIC li conosco, ma non ho idea di come siano fatti gli ATMEL. Cambiare tipo di microcontrollore sarebbe uno sforzo troppo grande da fare in una sola volta.
I pic hanno lo stack. E' ad 8 livelli per quelli piccoli come il 16F88. Ho già realizzato nel 2007 un datalogger che registra l'accelerazione 20 volte al secondo per poi scaricare i dati sul PC con la seriale. L'ho usato il venerdì al MIR.
| Citazione: | Nel disegnio di un altimetro, ci sono due problemi difficili che devi risolvere:
1. detezione del lancio: con un accelerometro questo non e troppo difficile, ma ci sone qualche finezze da considerare: semplicemente muovere il razzo non deve essere detetto come lancio.
2. detezione del apogeo: il metodo li più affidabile è un Kalman filter, tutti gli altimetri moderni ne fanno uso. Ma il PIC che tu hai scelto è probabilmente troppo debole per i calcolazioni abastanza complicati del Kalman filter. Questo è la seconda raggione perche ti raccomando scegliere un altro controller. L'ATmega644 del Altimax non ha problemi di questo genere... |
1) Pensavo di fare più o meno così: una piccola accelerazione (3,5G) per un tempo prolungato (1s) oppure una grande accelerazione per un breve tempo. In pratica dovrò fare un'integrazione dell'accelerazione a tratti di 1 secondo. Se l'integrale (cioè la velocità) supera un certo valore entro il secondo allora il razzo è partito.
2) Ci hanno parlato del filtro di kalman proprio 2 mesi fa alla lezione di Dinamica del volo II (però devo ancora studiarlo per bene ). Pensavo di rilevare l'apogeo così: integro istante per istante i dati dell'accelerometro in modo da avere la velocità del razzo. Quando la velocità è =<0 ho l'apogeo.
Pensi possa funzionare integrando direttamente senza filtrare i dati?
Ho letto tra le altre cose questo documento della g-wiz. Parla anche della rilevazione degli eventi.
http://www.gwiz-partners.com/Flight_Computers.pdf
Grazie per l'aiuto. _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Lun Luglio 26, 2010 9:10 am Oggetto: |
|
|
| Adriano ha scritto: | | I pic hanno lo stack. E' ad 8 livelli per quelli piccoli come il 16F88. |
Ma soltanto per indirizzi di ritorno. Questo rende l'uso di variabili locali veri molto complicato. E l'uso di un sistema operativo come FreeRTOS è praticamente escluso. Il atlastimer utilizza i queues di FreeRTOS per elaborare gli eventi rilevati durante il volo. Sembra essere abbastanza elegante ed efficiente.
| Citazione: |
1) Pensavo di fare più o meno così: una piccola accelerazione (3,5G) per un tempo prolungato (1s) oppure una grande accelerazione per un breve tempo. In pratica dovrò fare un'integrazione dell'accelerazione a tratti di 1 secondo. Se l'integrale (cioè la velocità) supera un certo valore entro il secondo allora il razzo è partito. |
Scrivi i tuoi dati in un buffer circolare in modo da non dimenticare nulla. Integrare i dati di accelerometro per rilevare grandi cambiamenti nella velocità. Se nessun grande cambiamento accade, lo usa per determinare la gravità. Un grande cambiamento nella velocità indica lancio. Utilizzare i dati nel buffer circolare e tutti i dati successivi per l'integrazione della velocità.
| Citazione: | 2) Ci hanno parlato del filtro di kalman proprio 2 mesi fa alla lezione di Dinamica del volo II (però devo ancora studiarlo per bene ). |
| Citazione: | Pensavo di rilevare l'apogeo così: integro istante per istante i dati dell'accelerometro in modo da avere la velocità del razzo. Quando la velocità è =<0 ho l'apogeo.
Pensi possa funzionare integrando direttamente senza filtrare i dati |
C'è un problema con l'integrazione, però, è necessario integrare g insieme ai dati accelerometro. Quando il razzo è sul pad, l'accelerometro mostra g. Nel momento esatto in cui il razzo non è più supportato dal pad in senso verticale, è necessario avviare l'integrazione, ma con g. Dopo il tempo t, un errore Delta g per il valore di g diventa un errore di velocità di t x Delta g. Quindi è molto importante avere un valore esatto di g. Se il razzo ha un ampio angolo con la verticale, si ottiene un grande Delta g. Inoltre, quando il razzo ruota di seguire la sua parabola, l'accelerometro misure non più di accelerazione verticale. Altimetri basato soltanto su un accelerometro possono risolvere questo problema con l'aggiunta di qualche fattore di correzione. Ma questo è un hack al meglio, ed è la raggione per cui ad esempio R-DAS arriva sempre in ritardo (non sto usando più a causa di questo difetto). Un mio studente ha cercato l'anno scorso a risolvere il problema con l'aggiunta di due accelerometri per misurare più esattamente il vettore gravità prima di decollare (questo vi dà l'angolo rispetto alla verticale) e simulando la parabola nel Kalman filter. Venne fuori che si guadagno quasi nulla. Quindi il miglior impiego per l'accelerometro è veramente a determinare la velocità durante la prima parte del volo, e passare al sensore di pressione una volta la velocità è scesa al di sotto di un valore in cui gli effetti transsonici nella pressione non disturberanno più le misurazioni di pressione. Usare un Kalman filter per la pressione è relativamente facile (vettore di stato tridimensionale, spazio di misura 1-dimensionale, il Kalman gain matrix 3x1, si può assumere che K converge, e utilizzare un K costante per tutto). Guardate [url = http://www.eurocketry.org/forum/german/viewtopic.php?t=880] http://www.eurocketry.org/forum/german/viewtopic.php?t=880 [/ url] per un esempio di come il Kalman filter del Altimax determina apogeo. Lo fa guardando la variabile di stato per la velocità (come si farebbe per l'accelerazione integrata) e sollevando l'evento apogeo quando cambia segno. |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Lun Luglio 26, 2010 10:01 am Oggetto: |
|
|
| Citazione: | | E l'uso di un sistema operativo come FreeRTOS è praticamente escluso. Il atlastimer utilizza i queues di FreeRTOS per elaborare gli eventi rilevati durante il volo. Sembra essere abbastanza elegante ed efficiente. |
Ecco. Comincio a non capirci niente Comincia a essere troppo complicato per me.
| Citazione: | | Scrivi i tuoi dati in un buffer circolare in modo da non dimenticare nulla. Integrare i dati di accelerometro per rilevare grandi cambiamenti nella velocità. Se nessun grande cambiamento accade, lo usa per determinare la gravità. Un grande cambiamento nella velocità indica lancio. Utilizzare i dati nel buffer circolare e tutti i dati successivi per l'integrazione della velocità. |
Ma come si fa a determinare la gravità lasciando semplicemente il razzo sul pad? Bisogna aver memorizzato precedentemente il valore di 0 G. Intendi questo, giusto?
| Citazione: | | C'è un problema con l'integrazione, però, è necessario integrare g insieme ai dati accelerometro. Quando il razzo è sul pad, l'accelerometro mostra g. Nel momento esatto in cui il razzo non è più supportato dal pad in senso verticale, è necessario avviare l'integrazione, ma con g. Dopo il tempo t, un errore Delta g per il valore di g diventa un errore di velocità di t x Delta g. Quindi è molto importante avere un valore esatto di g. Se il razzo ha un ampio angolo con la verticale, si ottiene un grande Delta g. |
Qui è tutto chiaro.
| Citazione: | | Inoltre, quando il razzo ruota di seguire la sua parabola, l'accelerometro misure non più di accelerazione verticale. Altimetri basato soltanto su un accelerometro possono risolvere questo problema con l'aggiunta di qualche fattore di correzione. Ma questo è un hack al meglio, ed è la raggione per cui ad esempio R-DAS arriva sempre in ritardo (non sto usando più a causa di questo difetto). |
E vero, ma se si fa una correzione e poi il razzo sale verticale senza fare al parabola poi il drogue si apre prima. Il g-wiz LCX usa la rilevazione inerziale dell'apogeo, eppure apre sempre in maniera corretta.
| Citazione: | | Un mio studente ha cercato l'anno scorso a risolvere il problema con l'aggiunta di due accelerometri per misurare più esattamente il vettore gravità prima di decollare (questo vi dà l'angolo rispetto alla verticale) e simulando la parabola nel Kalman filter. Venne fuori che si guadagno quasi nulla. |
Bello! Dove e cosa insegni?
| Citazione: | | Quindi il miglior impiego per l'accelerometro è veramente a determinare la velocità durante la prima parte del volo, e passare al sensore di pressione una volta la velocità è scesa al di sotto di un valore in cui gli effetti transsonici nella pressione non disturberanno più le misurazioni di pressione. |
In effetti è la soluzione più semplice e che dovrebbe funzionare subito senza dover fare prove in volo.
Usare un Kalman filter per la pressione è relativamente facile (vettore di stato tridimensionale, spazio di misura 1-dimensionale, il Kalman gain matrix 3x1, si può assumere che K converge, e utilizzare un K costante per tutto). Guardate [url = http://www.eurocketry.org/forum/german/viewtopic.php?t=880] http://www.eurocketry.org/forum/german/viewtopic.php?t=880 [/ url] per un esempio di come il Kalman filter del Altimax determina apogeo. Lo fa guardando la variabile di stato per la velocità (come si farebbe per l'accelerazione integrata) e sollevando l'evento apogeo quando cambia segno.
Ora studio i link.
Grazie per l'aiuto. Si sta rivelando fondamentale. Se è più comodo possiamo continuare in inglese. _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Lun Luglio 26, 2010 11:26 am Oggetto: |
|
|
| Adriano ha scritto: | Ecco. Comincio a non capirci niente Comincia a essere troppo complicato per me. |
http://www.freertos.org, http://rocketware.othello.ch/index.php?option=com_content&task=view&id=20&Itemid=37.
| Citazione: | | Ma come si fa a determinare la gravità lasciando semplicemente il razzo sul pad? Bisogna aver memorizzato precedentemente il valore di 0 G. Intendi questo, giusto? |
Si. 0 g = razzo horizontale, 1 g = razzo verticale (ma il razzo sul pad non è verticale )
| Citazione: | | E vero, ma se si fa una correzione e poi il razzo sale verticale senza fare al parabola |
Un tale razzo non esiste! Ogni razzo fa una parabola piu o meno ampia.
| Citazione: | | poi il drogue si apre prima. Il g-wiz LCX usa la rilevazione inerziale dell'apogeo, eppure apre sempre in maniera corretta. |
vi è un secondo metodo: se il razzo segue la tangente della parabola (normalmente il caso, ma Ariane 4 e Atlas Centaur hanno un momento di inerzia troppo grande di farlo), allora apogeo è il punto di minima velocità tangenziale, vale a dire minima resistenza del'aria o minima accelerazione tangenziale. Così l'apogeo puo essere trovato guardando il punto di minima resistenza. Ma si dovrebbe comunque integrare per trovare la finestra di tempo approssimativo del apogeo, quindi utilizzare il metodo di resistenza per il punto preciso, ed espellere il drogue in ogni caso se la minima resistenza non è apparsa durante la finestra.
| Citazione: | | Bello! Dove e cosa insegni? |
Hochschule Rapperswil http://www.hsr.ch, Mathematica, facio anche qualche progetti in embedded systems. |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Lun Luglio 26, 2010 1:19 pm Oggetto: |
|
|
| Citazione: | | Si. 0 g = razzo horizontale, 1 g = razzo verticale (ma il razzo sul pad non è verticale ) |
In effetti se si inclina la rampa di 15°, il coseno fa 0,97. C'è un 3% di errore.
| Citazione: | | vi è un secondo metodo: se il razzo segue la tangente della parabola (normalmente il caso, ma Ariane 4 e Atlas Centaur hanno un momento di inerzia troppo grande di farlo), allora apogeo è il punto di minima velocità tangenziale, vale a dire minima resistenza del'aria o minima accelerazione tangenziale. Così l'apogeo puo essere trovato guardando il punto di minima resistenza. Ma si dovrebbe comunque integrare per trovare la finestra di tempo approssimativo del apogeo, quindi utilizzare il metodo di resistenza per il punto preciso, ed espellere il drogue in ogni caso se la minima resistenza non è apparsa durante la finestra. |
OK, sembra bello, ma parliamo della minima accelerazione tangenziale senza considerare g, che è molto più grande dell'accelerazione causata dalla resistenza dell'aria. Visto che non c'è modo di sottrarre g all'accelerazione totale (perché non è costante ma cambia con l'angolo), all'apogeo la lettura dell'accelerometro non avrà un minimo, ma cambierà segno da negativa a positiva perché il razzo ruota.
Per trovare la minima velocità come si fa? Si integra semplicemente l'accelerazione e si trova il punto in cui inizia a ricrescere?
| Citazione: | | Hochschule Rapperswil http://www.hsr.ch, Mathematica, faccio anche qualche progetti in embedded systems. |
Ecco perché hai questa competenza estrema. Complimenti. _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Lun Luglio 26, 2010 1:39 pm Oggetto: |
|
|
| Adriano ha scritto: | | all'apogeo la lettura dell'accelerometro non avrà un minimo, ma cambierà segno da negativa a positiva perché il razzo ruota. |
No. Nel razzo non si sente la gravità. L'accelerometro sente soltanto la decelerazione del razzo a causa della resistenza dell'aria, e questa è minima quando la velocità tangenziale (vuol dire la velocità horizontale al apogeo) a minimale.
| Adriano ha scritto: | In effetti se si inclina la rampa di 15°, il coseno fa 0,97. C'è un 3% di errore.
|
Doppo 18 secondi (tempo d'apogeo del nostro X-Roc), l'error in velocità è gia 5m/s. |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Mar Luglio 27, 2010 3:27 pm Oggetto: |
|
|
| Citazione: | | No. Nel razzo non si sente la gravità. L'accelerometro sente soltanto la decelerazione del razzo a causa della resistenza dell'aria, e questa è minima quando la velocità tangenziale (vuol dire la velocità horizontale al apogeo) a minimale. |
Giusto. Il razzo in volo è dentro a un riferimento non inerziale. In pratica è un caso simile alla caduta libera.
Probabilmente seguirò il tuo consiglio rilevando l'apogeo con il barometro, ma sapere come utilizzare l'accelerometro è utile. Dimmi se la seguente timeline è giusta:
1) Quando il razzo è fermo sulla rampa memorizzo il valore g (rocket is in an inertial reference, so I can measure g).
2) Appena il razzo decolla inizio l'integrazione per capire quanto manca approssimativamente all'apogeo .The integration must be done adding the g value measured before. This because during flight the rocket is in a non-inertial reference and the gravity is not measured.
3) I wait until the integrated velocity has a minimum -> drogue deploy
Ho cambiato idea sul microcontrollore, potrei spostarmi su un dsPIC30F2011 che è molto più potente, ha un A/D a 12 bit ed ha il modulo DSP. Preferisco rimanere sui PIC perché ho già il programmatore.
Grazie _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Mar Luglio 27, 2010 9:05 pm Oggetto: |
|
|
| Adriano ha scritto: |
1) Quando il razzo è fermo sulla rampa memorizzo il valore g (rocket is in an inertial reference, so I can measure g). |
Si, ma da devo hai un valore per 0g?
| Citazione: | | 2) Appena il razzo decolla inizio l'integrazione per capire quanto manca approssimativamente all'apogeo .The integration must be done adding the g value measured before. This because during flight the rocket is in a non-inertial reference and the gravity is not measured. |
Il meglior metodo di fare l'integrazion è di nuovo un Kalman filter.
| Citazione: | 3) I wait until the integrated velocity has a minimum -> drogue deploy
|
No. Integrated velocity = aprossimazione per la velocity verticale. Per rilevare l'apogeo dalla velocità, ti interessa la velocità tangenziale, che non puoi trovare integrando l'accelerometro. Il minimo della velocità tangenziale si trova solo indirettamente, via il minimo della decelerazione. E soltanto se il razzo rota. Se no (Ariane 4, Atlas Centaur 1:10), non funziona. Dunque il barometro è il metodo il piu affidabile. L'accelerometro si puo usare per trovare il momento quando la velocità del razzo è meno di 100m/s per esempio. Si la velocità è tropo grande, il barometro non è affidabile. |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Mar Luglio 27, 2010 9:21 pm Oggetto: |
|
|
| Citazione: | | Si, ma da devo hai un valore per 0g? |
Ovviamente bisogna tarare il sistema salvando nella EEPROM il valore 0
| Citazione: | | Il meglior metodo di fare l'integrazion è di nuovo un Kalman filter. |
OK
| Citazione: | | No. Integrated velocity = aprossimazione per la velocity verticale. Per rilevare l'apogeo dalla velocità, ti interessa la velocità tangenziale, che non puoi trovare integrando l'accelerometro. Il minimo della velocità tangenziale si trova solo indirettamente, via il minimo della decelerazione. E soltanto se il razzo rota | .
Pensandoci bene hai ragione. Perché se il razzo ruota e io continuo a integrare sommando g la velocità integrata che ottengo è errata.
Tutta questa questione è molto più complicata di quanto pensassi due giorni fa.
Grazie ancora per la tua importante lezione di fisica. Ora studio bene il Kalman filter. Se ho problemi chiedo. _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Sab Luglio 31, 2010 2:53 pm Oggetto: |
|
|
I understood how Kalman filter works. I didn't understand well how to find the kalman filter gain K, the measurement noise covariance matrix and the model noise covariance matrix. _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Sab Luglio 31, 2010 5:43 pm Oggetto: |
|
|
| Adriano ha scritto: | | I understood how Kalman filter works. I didn't understand well how to find the kalman filter gain K, the measurement noise covariance matrix and the model noise covariance matrix. |
model noise covariance: assume the model variables are independent, so only variances are needed. The model noise variance of the variable x is the mean squared error of the model x compared to an ideally measured real x, e.g. modelled altitude versus actual altitude. If the model assumes that acceleration is constant (which is true if there is no drag), then the variance for the acceleration variable is the mean squared deviation of the acceleration from constant acceleration.
measurement noise covariance: again, assume measurements are independent, then only variances are needed. So you essentially need the measurement errors. This is a case of RTFD: read the f*** datasheet of your sensor.
How to find the Kalman gain matrix K: In principle, the Kalman filter formulae compute K. However, if you have constant model noise covariance and measurement noise covariance, then K usually converges to a constant matrix, which is what you need because you certainly don't have enough compute power in a PIC to compute K (it involves computing the inverse of a 3x3-matrix). Therefore you compute K on your PC, and add it as a constant matrix to your PIC code. This also means that you only need to compute state update and measurement update, no error covariance update.
In practice, model noise covariance is sometimes difficult to find. If the model noise covariance is too large, then this means that the model cannot be trusted, and measurements are used almost exclusively. If the model noise covariance is too small, then the model is trusted too much, which can be very wrong in some flight phases. Some simulation experiments will be needed to verify that errors accumulated during such phases are later damped away. For some (bad) combinations of model noise covariance and measurement noise covariance, it may happen that the filter is no longer stable, but simulations will quickly indicate this. |
|
| Torna in cima |
|
 |
Andreas Müller 100 metri


Registrato: 13/02/09 14:00 Messaggi: 45 Località: Altendorf
|
Inviato: Sab Luglio 31, 2010 5:50 pm Oggetto: |
|
|
| Se tu leggi tedesco ti puo dare il script che uttilizo per il mio corso in probabilità e statistica. Contiene un capitolo sul Kalman filter, e (surprise!) il Kalman filter per un razzo è un esempio... |
|
| Torna in cima |
|
 |
Adriano Moderatore


Registrato: 01/02/05 15:35 Messaggi: 1676 Località: Palermo
|
Inviato: Dom Agosto 01, 2010 2:26 pm Oggetto: |
|
|
| Citazione: | | model noise covariance: assume the model variables are independent, so only variances are needed. |
Yes. The values are only on the matrix diagonal.
| Citazione: | | The model noise variance of the variable x is the mean squared error of the model x compared to an ideally measured real x, e.g. modelled altitude versus actual altitude. If the model assumes that acceleration is constant (which is true if there is no drag), then the variance for the acceleration variable is the mean squared deviation of the acceleration from constant acceleration. |
So. How can I find practically the variance? (I'm using the only pressure sensor) I think I have to make the experiment reading a lot of samples from the pressure sensor, say 10000, and then make the variance of the signal. Is this the correct procedure? I think the variance value is 100% correct only when the experiment is done in definitive hardware configuration.
| Citazione: | | measurement noise covariance: again, assume measurements are independent, then only variances are needed. So you essentially need the measurement errors. This is a case of RTFD: read the f*** datasheet of your sensor. |
The only error data reported in datasheet is that the accuracy is +/- 1,5%
See it: http://cache.freescale.com/files/sensors/doc/data_sheet/MPXAZ6115A.pdf?fpsp=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation
Actually I can't understand the difference between model noise variance and measurement noise covariance
| Citazione: | | How to find the Kalman gain matrix K: In principle, the Kalman filter formulae compute K. However, if you have constant model noise covariance and measurement noise covariance, then K usually converges to a constant matrix, which is what you need because you certainly don't have enough compute power in a PIC to compute K (it involves computing the inverse of a 3x3-matrix). Therefore you compute K on your PC, and add it as a constant matrix to your PIC code. This also means that you only need to compute state update and measurement update, no error covariance update. |
Questo l'avevo già capito. I will use mathematica for this.
| Citazione: | | Se tu leggi tedesco ti puo dare il script che uttilizo per il mio corso in probabilità e statistica. Contiene un capitolo sul Kalman filter, e (surprise!) il Kalman filter per un razzo è un esempio... |
Non conosco neanche una parola in tedesco (a parte achtung), però può essere utile leggere l'esempio. Per fortuna la matematica è internazionale! Ti ho mandato un PM con la mia Email. Grazie mille!
I reordered all the equations that must be implemented in the micro. I think are correct.
 _________________ Ciao
Neway (Adriano Arcadipane)
www.newaysfactory.it |
|
| Torna in cima |
|
 |
|
|
Non puoi inserire nuovi Topic in questo forum Non puoi rispondere ai Topic in questo forum Non puoi modificare i tuoi messaggi in questo forum Non puoi cancellare i tuoi messaggi in questo forum Non puoi votare nei sondaggi in questo forum Non puoi allegare file in questo forum Puoi scaricare file da questo forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|