Project

General

Profile

Actions

Support #956

closed

Documenter le mecanisme associé à SSS-CP-EQS-526

Added by Veronique bouzid about 7 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
High
Category:
-
Target version:
-
Start date:
02/03/2017
Due date:
% Done:

0%

Estimated time:
revision:
r0

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

Related to Task #3038: SDD : Ajouter un paragraphe sur la caractérisation du filtre IIRClosedAlexis Jeandet22/06/2018

Actions
Actions #1

Updated by Veronique bouzid about 7 years ago

  • Priority changed from Normal to High
Actions #2

Updated by paul leroy about 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) );
    }
Actions #3

Updated by paul leroy about 7 years ago

  • Status changed from New to Feedback
  • Assignee changed from paul leroy to Veronique bouzid
Actions #4

Updated by thomas chust about 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?

Actions #5

Updated by paul leroy about 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.

Actions #6

Updated by bruno katra about 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

Actions #7

Updated by thomas chust about 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 ?

Actions #8

Updated by bruno katra almost 7 years ago

  • Description updated (diff)
  • Assignee changed from thomas chust to Alexis Jeandet
Actions #9

Updated by bruno katra over 5 years ago

  • Related to Task #3038: SDD : Ajouter un paragraphe sur la caractérisation du filtre IIR added
Actions #10

Updated by bruno katra about 5 years ago

  • Status changed from Feedback to Closed

Fait dans SDD 1.5

Actions

Also available in: Atom PDF