Support #956
closed
Documenter le mecanisme associé à SSS-CP-EQS-526
Added by Veronique bouzid about 6 years ago.
Updated almost 4 years ago.
Description
Expliquez comment la moyenne des 16 dernieres valeurs du champ electrique est calculé.
Il faudrait détailler dans une prochaine release du RPW-MEB-LFR-SPC-00003-1-12_technical_specifications le mécanisme du filtre IIR (paramètres...)
Si possible pour le DP R3++ sinpn pour la release suivante. La SRS fait référence à la tech spec pour l'implémentation du filtre.
- Priority changed from Normal to High
Les moyennes sont effectuées dans le code par la tâche
rtems_task avgv_task(rtems_task_argument argument)
Dans cette tâche, on effectue une moyenne glissante des valeurs lues dans les registres du waveform picker à chaque réveil de la tâche (période de 60ms).
while(1)
{ // launch the rate monotonic task
status = rtems_rate_monotonic_period( AVGV_id, AVGV_PERIOD );
if ( status != RTEMS_SUCCESSFUL )
{
PRINTF1( "in AVGV *** ERR period: %d\n", status);
}
else
{
// get new values
newValue_v = waveform_picker_regs->v;
newValue_e1 = waveform_picker_regs->e1;
newValue_e2 = waveform_picker_regs->e2;
// compute the moving average
average_v = average_v + newValue_v - v[k];
average_e1 = average_e1 + newValue_e1 - e1[k];
average_e2 = average_e2 + newValue_e2 - e2[k];
// store new values in buffers
v[k] = newValue_v;
e1[k] = newValue_e1;
e2[k] = newValue_e2;
}
if (k == (MOVING_AVERAGE-1))
{
k = 0;
}
else
{
k++;
}
//update int16 values
hk_lfr_sc_v_f3_as_int16 = (int16_t) (average_v / ((float) MOVING_AVERAGE) );
hk_lfr_sc_e1_f3_as_int16 = (int16_t) (average_e1 / ((float) MOVING_AVERAGE) );
hk_lfr_sc_e2_f3_as_int16 = (int16_t) (average_e2 / ((float) MOVING_AVERAGE) );
}
- Status changed from New to Feedback
- Assignee changed from paul leroy to Veronique bouzid
- Assignee changed from Veronique bouzid to paul leroy
Paul,
Je viens je crois de comprendre ce joli algorithme mais n'y a t-il pas un problème avec la périodicité de la tâche ? Tu dis toutes les 60ms alors que 1/16 s = 62.5 ms ... N'y a t-il un problème de dérive sous-jacent?
- Assignee changed from paul leroy to Veronique bouzid
Il me semble que Thomas et Alexis ont parlé de cela ensemble et que la conclusion était qu'on pouvait vivre avec.
Les tâches sont réveillées avec des périodes multiples de 10ms, j'ai pris 60ms car c'est la plus proche de 1/16 = 62.5ms.
- Assignee changed from Veronique bouzid to thomas chust
Thomas, confirmes-tu que tu as les infos nécessaires et que c'est clair pour toi, nous aurons besoin de toi pour rédiger le SUM et la SRS
Dans l'immédiat non. Je viens de terminer de faire une petite simu de la moyenne glissante et si cela marche plutôt bien pour les signaux à 0.1H, il y a comme un bug résiduel dans le cas à 5Hz (oscillation à 3s pas si négligeable) que je vais poster dans un des autres points ...
Sinon Paul je peux déjà soulever la question: la datation des HK 1s ne coïncide pas avec une date à F3. Par construction cela devrait être le cas non ?
- Description updated (diff)
- Assignee changed from thomas chust to Alexis Jeandet
- Related to Task #3038: SDD : Ajouter un paragraphe sur la caractérisation du filtre IIR added
- Status changed from Feedback to Closed
Also available in: Atom
PDF