This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SFRA measurement

Other Parts Discussed in Thread: SFRA

While doing, SFRA when I am forcing the output value as below,

VIENNA_dutyPU_DC = 0.8f;

VIENNA_duty4PU = VIENNA_SFRA_INJECT(VIENNA_dutyPU_DC);


var1.Ref =1;

VIENNA_SFRA_COLLECT((float32_t *)&VIENNA_duty4PU,
(float32_t *)&var1.Ref);

I am getting the following response. 

I made var1.Ref = 0.5. Then  also similar response as above.

======================================================================================

But, when I force as shown in code below , which forces output as a factor of duty I am getting below response, which is correct.

var1.Ref = VIENNA_duty4PU;

VIENNA_SFRA_COLLECT((float32_t *)&VIENNA_duty4PU,
(float32_t *)&var1.Ref);

What could be the issue in the first method ?.

  • Can you mention how much noise injection amplitude provided and what are SFRA configurations? Input argument to this function: SFRA_F32_config()?

    What frequency at which SFRA inject/collect and SFRA_F32_runBackgroundTask functions are called?

    Regards,

    Shashank

  • Neeraja,

    SFRA collect has two input arguments [ Compensator output / Plant input and Plant output].

    In first case, you are providing controller output/ plant input as (0.8+ noise) and plant output as "1". => which leads to plant transfer function k/noise and that will impact plant transfer function.

    In second case, you are providing controller output/ plant input as (0.8+ noise) and plant output as "controller output". => which leads to plant transfer function k. 

    So, both plots are correct as per my understanding!

    Regards,

    Shashank