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.

UCC2818: design of the current loop

Part Number: UCC2818

Hello,

I'm using the UCC2818D to control single phase PFC. I was looking at the datasheet of the contrôleur UCC2818D, in order to understand : How to design the current loop ?

- Following the datasheet : the transfer function of the power stage is  :

 

   Then the current compensation loop is 

- I calculted the transfer function of the current loop compensation  i found the result below:   

 The parametres ( Rf / Ri / Cz / Ci )  calculted for a crossover frequency  f= 10kHz

When i implemented  the open loop = C(p)*Gid(p) in matlab, I find a crossover frequency superior of 10khz.

I would like to understund how to design the compensation parametres to have a crossover frequency equal to 10kHz with a large margin of stability.

Thank you !

Kind regards

    1. If you use Gid(s) and Gea(s), loop gain should be Gid(s) X Gea(s).
    2. Using eq (22), determine Gid(s) at 10 kHz. 
    3. Using eq (23), set the gain of Gea(s) to 1/Gid(s) at 10 kHz.
    4. Set Rf/RI = 1/Gid(s)
    5. Set Cz based on eq (24) to 10 KHz.
    6. Select Cp based on eq (25) to the (switching frequency)/2
  • Hi Ray,

    Thank you for your response !

    I followed this step before, in order to calculate the compensation parameters.

    I would like to check with matlab the open loop : (  transfert function of  (compensation  x the power stage ) ), in order to check the stability of my system.

    when i implemented the open loop  in matlab and i draw bode diagram , i didn't find the crossover frequency 10Khz and the values of :

    Gid(s) and Gea(s) at 10kHz are different from the theorical calculation indicated in your answer.

    Can you  check please  the transfert function of the current compensation : 

    Kind regards 

  • Hi, If you are using the formulas provided and you're not getting the same results, I feel there must be a math error or perhaps an error in your transfer function.  If you provide your Matlab file I can look at it to try to see where the issue is.