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.

TMS320F280049C: Park Transform

Part Number: TMS320F280049C
Other Parts Discussed in Thread: TIDA-010062

Tool/software:

Hi,

Recently I've been going through the TIDA-010062 reference design and the corresponding source code where SPLL for single phase grid module is used. 

I have a question about the park transform in the source code of the spll_1ph_sogi.h header file.

In the inline function SPLL_1PH_SOGI_run, I found the Park Transform from alpha beta to d-q axis section, as shown below.

spll_obj->u_Q[0]=(spll_obj->cosine*spll_obj->osg_u[0]) +
                     (spll_obj->sine*spll_obj->osg_qu[0]);
    
spll_obj->u_D[0]=(spll_obj->cosine*spll_obj->osg_qu[0]) -
                     (spll_obj->sine*spll_obj->osg_u[0]);

For the transform, compared with the matrix, as shown in Figure 1, it seems that u_Q[0] and u_D[0] are reversed. 

Figure 1

I think it should be like the following. Am I right or I don't quite understand the source code?

spll_obj->u_D[0]=(spll_obj->cosine*spll_obj->osg_u[0]) +
                     (spll_obj->sine*spll_obj->osg_qu[0]);

spll_obj->u_Q[0]=(spll_obj->cosine*spll_obj->osg_qu[0]) -
                     (spll_obj->sine*spll_obj->osg_u[0]);

I'm looking forward to hearing from you.

Best regards,

Power

  • please note most of the team is OOO due to the US holiday.  Please expect a response next week.

  • OK. Thank you.

  • There is another question. According to the diagram of Lab4 of the TIDA-010062 reference design, I want to know why the duty cycle of the PFC driver is generated in such a way as shown below.

    TTPLPFC_dutyPU = ( TTPLPFC_gi_out + (TTPLPFC_ac_vol_sensed_pu *
                                (float32_t)TTPLPFC_VAC_MAX_SENSE_VOLT/ 
                                (float32_t)TTPLPFC_VDCBUS_MAX_SENSE_VOLT)
                                - TTPLPFC_inductor_voltage_drop_feedforward )
                                / (TTPLPFC_vBus_sensed_pu);

  • Hi experts,

    Is there any update?

    Best regards,

    Power

  • void computeNotchFltrCoeff(DCL_DF22 *coeff, float32_t Fs, float32_t notch_freq,
                               float32_t c1, float32_t c2)
    {
        float32_t temp1;
        float32_t temp2;
        float32_t wn2;
        float32_t Ts;
        Ts = 1 / Fs;
    
        //
        // pre warp the notch frequency
        //
        wn2 = 2 * Fs * tanf(notch_freq * PI_VALUE * Ts);
    
        temp1 = 4 * Fs * Fs + 4 * wn2 * c2 * Fs + wn2 * wn2;
        temp2 = 1 / ( 4 * Fs * Fs + 4 * wn2 * c1 * Fs + wn2 * wn2);
    
        coeff->b0 = temp1 * temp2;
        coeff->b1 = (-8 * Fs * Fs + 2 * wn2 * wn2) * temp2;
        coeff->b2 = (4 * Fs * Fs - 4 * wn2 * c2 * Fs + wn2 * wn2) * temp2;
        coeff->a1 = (-8 * Fs * Fs + 2 * wn2 * wn2) * temp2;
        coeff->a2 = (4 * Fs * Fs - 4 * wn2 * c1 * Fs + wn2 * wn2) * temp2;
    
    }

    Hi,

    As to the notch filter, I found that I could get the same approximate value of variable wn2 if I use the following equation.

    wn2 = 2 * notch_freq * PI_VALUE;

    So, why not use the classic method in the function computeNotchFltrCoeff?

    Best regards,

    Power

  • Hi,

    In the function computeNotchFltrCoeff, which discretization method is used? ZOH/FOH, Tustin or others?

    Best regards,

    Power

  • I think I've already got my answer.

  • I know now this change is dedicated to the single phase grid.