Support #956
closedDocumenter le mecanisme associé à SSS-CP-EQS-526
0%
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.
Related issues
Updated by Veronique bouzid over 7 years ago
- Priority changed from Normal to High
Updated by paul leroy over 7 years ago
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) );
}
Updated by paul leroy over 7 years ago
- Status changed from New to Feedback
- Assignee changed from paul leroy to Veronique bouzid
Updated by thomas chust over 7 years ago
- 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?
Updated by paul leroy over 7 years ago
- 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.
Updated by bruno katra over 7 years ago
- 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
Updated by thomas chust over 7 years ago
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 ?
Updated by bruno katra over 7 years ago
- Description updated (diff)
- Assignee changed from thomas chust to Alexis Jeandet
Updated by bruno katra almost 6 years ago
- Related to Task #3038: SDD : Ajouter un paragraphe sur la caractérisation du filtre IIR added