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.

3P3Z controller coefficient

Other Parts Discussed in Thread: SFRA, CONTROLSUITE

Hello,

I am working on digital control of BUCK Converter using TMS320F28035 DSP.

For that I have gone through "C2000 Digital Power Control and Implementation with Peggy Liska"TYPE III controller.

but I didn’t get it how the coefficient of 3P3Z controller calculated.

is their any formula or procedure through which I can find the value.

 

Thanks in advance for your time and help.

  • Sameer,

    The video outlines how to design a digital compensator for a buck converter operating in CCM.  In the method, the designer selects the pole and zero frequencies of the controller from the frequency response of the power stage and feedback path.  I have attached the part of the presentation which contains the relevant formulae.  A similar method is described at 40:35 in this video:

    https://www.youtube.com/watch?v=BTF5jYoefvQ

    An alternative approach is covered in chapter 4 of the following 1-day digital power supply workshop, which is based on an F28035.  In this case the coefficients are found by emulating a PID controller in a 2P2Z structure.  You can download the code on this page:

    http://processors.wiki.ti.com/index.php/C2000_DPSWorkshop

    I hope this helps.  Feel free to post back if you still have questions.

    Regards,

    Richard

    slides 54-61.pdf

  • Thank you so much for your quick reply..

    All this data are really helpful for me.

    I also gone through this  document sprabe7a.pdf(Digital Peak Current Mode Control With Slope
    Compensation Using the TMS320F2803x)  . I am new to MATLAB that's why i have some doubt related this concept.In this design example they selected 15KHz as crossover frequency for 200 KHz PWM switching period .How this is selected ? 

    My application PWM frequency is 25 KHz . for this how much crossover frequency required?

  • Sameer,

    From memory, the cross-over frequency in the appnote was chosen to compensate the loop with a digital 2P2Z controller.  The plant phase lag increases quickly at higher frequencies (see fig. 6) so with the additional lag from digital delay and reconstruction, compensation would have been more challenging.

    For digital loop compensation, a rule-of-thumb is to aim for a cross-over of about 1/10th of the switching frequency.  In this example, we used something a little lower than that, but not too far off.

    Regards,

    Richard

  • Thank you so much...

  • Hello,

    After trying i am stucked  because my 3P3Z loop  does not give the correct output voltage .Below  is the my application details please notify me if there is wrong in any calculation or selection process of SFRA and 3P3Z coefficient.

    Application:Buck converter using voltage mode control

    code:C:\ti\controlSUITE\libs\app_libs\SFRA\v1_10_00_00\examples\DPSWrkShpKit_SFRA_F28035

    Input Voltage:12 volt

    output voltage :any voltage less than the  input voltage .

    switching frequency:25KHz

    Here is the Copy of 8686.C2000_DPS_Workshop_R2.xlsxcoefficient calculation  of 3P3Z  i have derived coefficient from this document  Presentation_-_Mr._Ali_Shirsavar.pdf page no. 31,33

    for this example i have selected the followinf SFRA data and 3P3Z coefficient.

        cntl3p3z_coeff1.Coeff_A1=_IQ24(-0.212433857);                             
        cntl3p3z_coeff1.Coeff_A2=_IQ24(0.992719045);                             
        cntl3p3z_coeff1.Coeff_A3=_IQ24(0.219714811);                             
        cntl3p3z_coeff1.Coeff_B0=_IQ24(0.600155167); 
        cntl3p3z_coeff1.Coeff_B1=_IQ24(-0.20928543);  
        cntl3p3z_coeff1.Coeff_B2=_IQ24(-0.536513646);
        cntl3p3z_coeff1.Coeff_B3=_IQ24(0.272926952);  
        cntl3p3z_coeff1.IMin=_IQ24(-0.1);                                        
        cntl3p3z_coeff1.Max=_IQ24(0.9);                                         
        cntl3p3z_coeff1.Min=_IQ24(0.0);   

    #define SFRA_ISR_FREQ 25000   //200000
    #define SFRA_FREQ_START 100        //100
    #define SFRA_FREQ_LENGTH 100   // 100
    //SFRA step Multiply = 10^(1/No of steps per decade(40))
    #define FREQ_STEP_MULTIPLY (float)1.059253

        //SFRA Object Initialization
        //Specify the injection amplitude
        SFRA1.amplitude=_IQ26(0.01);            //_IQ26(0.01);0.00009
        //Specify the length of SFRA
        SFRA1.Vec_Length=SFRA_FREQ_LENGTH;
        //Specify the SFRA ISR Frequency
        SFRA1.ISR_Freq=SFRA_ISR_FREQ;
        //Specify the Start Frequency of the SFRA analysis
        SFRA1.Freq_Start=SFRA_FREQ_START;
        //Specify the Frequency Step
        SFRA1.Freq_Step=FREQ_STEP_MULTIPLY;
        //Assign array location to Pointers in the SFRA object
        SFRA1.FreqVect=FreqVect;
        SFRA1.GH_MagVect=OL_MagVect;
        SFRA1.GH_PhaseVect=OL_PhaseVect;
        SFRA1.H_MagVect=Plant_MagVect;
        SFRA1.H_PhaseVect=Plant_PhaseVect;

    if i am wrong please correct me ..

    And  one another question is related SFRA GUI and CompDesigner GUI.

    Can i use SFRA csv file located at :\ti\controlSUITE\libs\app_libs\SFRA\v1_10_00_00\GUI  for my example as it is for the calculation of 3P3Z coefficient using CompDesigner GUI.

  • Sameer,

    I recommend taking your digital compensator coefficients from the CompDesigner GUI, since you will be able to see immediately their influence on the open loop frequency response. Your configuration code for the compensator and SFRA looks correct to me, however you will have to verify the coefficient choice using the compensation designer GUI.

    Regarding the CSV file in the SFRA directory, keep in mind that the data will be over-written each time you run the SFRA.

    Hopefully this helps but I'm not sure if it answers all your questions. Feel free to post back if not.

    Regards,

    Richard
  • Thank you for quick reply..

    I am using my development board for buck converter and i am unable to connect  SFRA GUI .

    could you please tell me the switch position for GPIO 34 and TDO pin or any schematic for reference

  • Sameer,

    Please can you clarify which board?  There are several buck converter boards and I want to be sure we are talking about the same one.  Can you give me a part number?

    Regards,

    Richard

  • Now my buck converter working...

    Thank you so much for your response.

    Now i want to develop boost converter using type III compensator and SFRA lib. so can you please provide documents or material related to boost converter pole zero calculation.

    Thanks in advance...