Patent Publication Number: US-2023163689-A1

Title: Digital Average Input Current Control in Power Converter

Description:
RELATED APPLICATIONS 
     This Application is a continuation of and claims priority to U.S. patent application Ser. No. 16/675,870, filed on Nov. 6, 2019, which is a continuation of and claims priority to Ser. No. 16/149,679, filed on Oct. 2, 2018 (now U.S. Pat. No. 10,516,336), which is a continuation of and claims priority to U.S. patent application Ser. No. 15/495,301, filed on Apr. 24, 2017 (now U.S. Pat. No. 10,116,217), which is a continuation of and claims priority to U.S. patent application Ser. No. 14/324,820 (now U.S. Pat. No. 9,673,711), filed on Jul. 7, 2014, which is a continuation of and claims priority to U.S. patent application Ser. No. 13/661,503 (now U.S. Pat. No. 8,773,092), filed on Oct. 26, 2012, which is a continuation of and claims priority to U.S. patent application Ser. No. 12/187,335 (now U.S. Pat. No. 8,319,483), filed on Aug. 6, 2008, which claims priority from U.S. Provisional Application No. 60/954,261 filed on Aug. 6, 2007 and U.S. Provisional Application No. 60/954,354 filed on Aug. 7, 2007. The disclosures of each of the foregoing applications are hereby incorporated by reference herein in their entirety. 
    
    
     BACKGROUND 
     The subject invention relates to control loops for switching converters. The following articles and patents, which may or may not be prior art, and which are incorporated here by reference, may be relevant to the subject invention.
         Jingquan Chen, Aleksandar Prodic, Robert W. Erickson and Dragan Maksimovic, “Predictive Digital Current Programmed Control.” IEEE Transaction on Power Electronics, Vol. 18, No. 1, January 2003   USPTO U.S. Pat. No. 7,148,669, “Predictive Digital Current Controllers for Switching Power Converters” by Dragan Maksimovic, Jingquan Chen, Aleksandar Prodic, and Robert W. Erickson   K Wallace, G Mantov, “DSP Controlled Buck/Boost Power Factor Correction for Telephony Rectifiers.” INTELEC 2001, 14-18 October 2001   USPTO U.S. Pat. No. 6,166,527, “Control Circuit and Method for Maintaining High Efficiency in a Buck-Boost Switching Regulator” by David M. Dwelley, and Trevor W. Barcelo.       

     Additionally, the following basic text is incorporated here by reference, in order to provide the reader with relevant art and definitions:
         Robert W. Erickson, Dragan Maksimovic, “Fundamentals of Power Electronics” (Second Edition), ISBN 0792372700.       

     SUMMARY 
     Aspects of the invention provide a method and system for digitally controlling the average input current in a non-inverting buck-boost converter. The method provides a fast cycle-by-cycle control loop to set the average input current when the converter is working in three different modes: buck, buck-boost and boost. Unlike analog control where it is difficult to change the parameters of the control loop in an adaptive manner, a digital control system can adjust the control loop parameters according to various parameters measured such as input voltage, output voltage and inductor current. In general, this enables to achieve a fast and stable control loop that controls the input current in various working points of the converter. 
     Aspects of the invention also provide for a method and system for digitally controlling the input current in a non-inverting (cascaded) buck-boost converter operating in a buck-boost mode, i.e., alternating between buck and boost in each cycle. Such an operation mode is particularly beneficial when the required converter output current is similar to the converter&#39;s input current. Since there are limits to the maximal and minimal allowed PWM values of the buck or boost operational modes, there are areas in which control is impossible without use of the alternating buck-boost mode. 
     Aspects of the invention further provide for a method and system for controlling the operational mode switching of a cascaded buck-boost converter. According to aspects of the invention, whenever the converter has been operated in one mode, i.e., buck or boost, for at least a predetermined period, and is needed to change into the other operational mode, i.e., to boost or buck, the transition is performed by forcing the converter to first execute several cycles on alternating buck and boost modes and only then switching to the other mode. Thus, for example, if the converter has been operating in a buck mode and is now to be switched to a boost mode, it is first switched to operate in an alternating buck-boost mode, in which the converter alternates by each cycle between buck and boost modes for several cycles, and only then switches to boost mode. This feature avoids the current jumps or discontinuities that are generally observed when a converter switches between buck and boost modes of operation. 
     Aspects of the invention further provide for a method and system for controlling the operation of a cascaded buck-boost converter, operable in one of three modes: buck, boost, and alternating buck-boost. The system includes three preprogrammed PWM control modules, each for controlling the input current according to one of the converter&#39;s operational modes. During operation of the converter, the operational mode is determined and the corresponding PWM control module is selected to control the input current. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    illustrates an example of a digital controlled non-inverting buck-boost converter according to aspects of the invention. 
         FIG.  2    illustrates the waveforms of trailing triangle PWM modulation. 
         FIG.  3    illustrates the waveforms of leading triangle PWM modulation. 
         FIG.  4    shows the inductor current waveform during two switching cycles using trailing edge triangle PWM modulation. 
         FIG.  5    illustrates a block diagram of predictive buck input current control, according to embodiments of the invention. 
         FIG.  6    illustrates the inductor current waveforms for a buck-boost switching cycle. 
         FIG.  7    illustrates the inductor current waveforms for a buck-boost switching cycle according to embodiments of the invention. 
         FIG.  8    shows a block diagram of control loops for buck-boost input current control, according to embodiments of the invention. 
         FIG.  9    shows a state diagram and the possible options to switch between the three different states. 
     
    
    
     DETAILED DESCRIPTION 
     A digital controlled non-inverting (cascaded) buck-boost converter, as described in  FIG.  1   , is a topology for a converter that is capable of both increasing the input voltage and decreasing it. The proposed topology is beneficial over prior art converters for at least the following reasons: 1) high conversion efficiency can be achieved; 2) component stress is relatively low as opposed to other buck-boost topologies; and 3) low component count-only one inductor, two capacitors and four switches. When buck-boost converters are discussed in this specification, we typically refer to cascaded buck-boost topology, sometimes named “non-inverting buck-boost” converter, rather than the lower efficiency (inverting) buck-boost converter. 
     While in general control loops of converters the inductor current is controlled, according to an embodiment of the invention, a control loop is provided in order to set the average input current to the requested current (I ref ). Controlling the average input current can be relevant for various applications such as: power factor correction (PFC), photovoltaic inverters, and more. In this example, the control is based on predicting the inductor current for the next switching cycle based on measuring the input voltage (V In ), the output voltage (V Out ) and the inductor current (I L ) in the current switching cycle. By using a predictive method a fast, cycle-by-cycle, control loop can be implemented. 
     Converter Modes 
     The cascaded buck-boost topology can achieve the desired input average current at various output currents. Depending on the output current, the converter can work in 3 different modes:
         1. I ref &gt;I out : Boost Converter—Switch A is constantly conducting and switch B is not conducting.   2. I ref &lt;I out : Buck Converter—Switch D is constantly conducting and switch C is not conducting.   3. I ref ≈I out : Buck-Boost Converter—All four switches are being used to control the input current.       

     Each of the three modes may have a different control scheme. The control loop will decide which control scheme is used at each switching cycle. 
     Predictive Average Input Current Control Using Triangle PWM Modulation 
     The control scheme of this example is based on predicting the inductor current for the next switching cycle based on measuring the inductor current and the input and output voltage. Based on the inductor current the control loop sets the average input current. Because of the fact that the predictive control loop is a non-linear control loop and it is executed on every PWM cycle, a high control bandwidth can be achieved. 
     The following sections will explain the concept of triangle PWM modulation and the three control schemes mentioned above. 
     Triangle PWM Modulation 
     There are two types of triangle PWM modulation—leading and trailing triangle modulation.  FIG.  2    illustrates the waveforms of trailing triangle PWM modulation. 
     Each cycle, having length T S  and a duty cycle of d, starts with an on-time of length 
     
       
         
           
             
               
                 d 
                 2 
               
               ⁢ 
               
                 T 
                 S 
               
             
             , 
           
         
       
     
     an off-time of (1−d)T S  and another on-time of the same length. Leading triangle modulation is similar but the on-time and off-times are switched, as shown in  FIG.  3   . Both methods are suitable for input average current control because of the fact that the average inductor current is always at the beginning of each PWM cycle. This enables the digital control loop to sample the average inductor current at fixed intervals, at the beginning of each cycle. 
     Controlling Average Input Current Using the Inductor Current 
     The method of this example uses the inductor current to set the average input current when the converting is operating in continuous conduction mode (CCM). The converter can work in one of three different modes—Buck, Boost, Buck-Boost. For each mode there is a different equation for converting the average inductor current to the average input current in each switching cycle. Derived from the power train properties of the converter, the equations are:
         4. Boost:  =     5. Buck:  = *d, where d is the duty cycle.   6. Buck-Boost:  = *d buck  where d buck  is the buck duty cycle       

     For all of the equations above   denote the average input current and average inductor current, respectively. 
     Control Loops 
     The converter works in 3 different modes. For each mode a different control loop is used to control the average input current. This section will describe each control loop for the different modes. Later on, the algorithm for switching between the modes will be described. 
     Predictive Boost Input Current Control 
     The goal of the control loop is to ensure that the average input current follows the reference I ref . As described above, when the converter operates in a boost mode the steady state average input current is the same as the average inductor current. In this mode the boost control will try to set the average inductor current to I ref  The required boost duty cycle for the next switching cycle is predicted based on the sampled inductor current, the input voltage and the output voltage.  FIG.  4    shows the inductor current waveform during two switching cycles using trailing edge triangle PWM modulation. The sampled inductor current at switching cycle n, i(n), can be calculated using the previous sample, i(n−1), and the input and output voltage. The calculation is based on the inductor current slopes during the on-time and off-time. 
     Since the input and output voltage change slowly we assume that they are constant during a switching cycle. For a boost converter the on-time slope (m 1 ) and off-time slope (m 2 ) are given by the following equations: 
     
       
         
           
             
               
                 
                   
                     m 
                     1 
                   
                   = 
                   
                     
                       V 
                       
                         i 
                         ⁢ 
                         n 
                       
                     
                     L 
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     m 
                     2 
                   
                   = 
                   
                     
                       
                         V 
                         
                           i 
                           ⁢ 
                           n 
                         
                       
                       - 
                       
                         V 
                         out 
                       
                     
                     L 
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     Based on these equations we can predict i(n) using the following equation: 
     
       
         
           
             
               
                 
                   
                     
                       i 
                       pred 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       i 
                       ⁡ 
                       ( 
                       n 
                       ) 
                     
                     = 
                     
                       
                         i 
                         ⁡ 
                         ( 
                         
                           n 
                           - 
                           1 
                         
                         ) 
                       
                       + 
                       
                         
                           
                             
                               V 
                               
                                 i 
                                 ⁢ 
                                 n 
                               
                             
                             [ 
                             n 
                             ] 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 V 
                                 
                                   i 
                                   ⁢ 
                                   n 
                                 
                               
                               - 
                               
                                 V 
                                 out 
                               
                             
                             ) 
                           
                           ⁢ 
                           
                             
                               d 
                               ′ 
                             
                             [ 
                             n 
                             ] 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     Where d′[n]=1−d [n], T S  is the switching cycle time and L is the inductor inductance. Equation (3) can also be written as: 
     
       
         
           
             
               
                 
                   
                     
                       i 
                       pred 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       i 
                       ⁡ 
                       ( 
                       n 
                       ) 
                     
                     = 
                     
                       
                         i 
                         ⁡ 
                         ( 
                         
                           n 
                           - 
                           1 
                         
                         ) 
                       
                       + 
                       
                         
                           
                             V 
                             out 
                           
                           ⁢ 
                           
                             d 
                             [ 
                             n 
                             ] 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 V 
                                 
                                   i 
                                   ⁢ 
                                   n 
                                 
                               
                               - 
                               
                                 V 
                                 out 
                               
                             
                             ) 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     We now have the prediction equation for one switching cycle. Because of the fact that every digital implementation of the control loop will have an execution delay, we will extend the prediction to one more switching cycle. So the prediction will set the duty cycle of the n+1 switching cycle based on the samples of the n−1 switching cycle. Extending equation (4) to two switching cycles we get: 
     
       
         
           
             
               
                 
                   
                     i 
                     ⁡ 
                     ( 
                     
                       n 
                       + 
                       1 
                     
                     ) 
                   
                   = 
                   
                     
                       
                         i 
                         pred 
                       
                       ( 
                       n 
                       ) 
                     
                     + 
                     
                       
                         
                           V 
                           out 
                         
                         ⁢ 
                         
                           d 
                           [ 
                           
                             n 
                             + 
                             1 
                           
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               V 
                               
                                 i 
                                 ⁢ 
                                 n 
                               
                             
                             - 
                             
                               V 
                               out 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     The prediction for the duty cycle d [n+1] can now be obtained based on the values sampled in the previous switching period. By substituting i(n+1) with the desired current I ref , in equation (5), and by solving the equation for d [n+1] we get: 
     
       
         
           
             
               
                 
                   
                     d 
                     [ 
                     
                       n 
                       + 
                       1 
                     
                     ] 
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             I 
                             ref 
                           
                           - 
                           
                             
                               i 
                               pred 
                             
                             ( 
                             n 
                             ) 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         L 
                         
                           
                             T 
                             S 
                           
                           * 
                           
                             V 
                             out 
                           
                         
                       
                     
                     + 
                     1 
                     - 
                     
                       
                         V 
                         
                           i 
                           ⁢ 
                           n 
                         
                       
                       
                         V 
                         out 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     Because of the fact that the inductor inductance can vary and to be able to achieve a slower control loop, we modify equation (6) with a variable gain that can be pre-adjusted, and we get: 
     
       
         
           
             
               
                 
                   
                     d 
                     [ 
                     
                       n 
                       + 
                       1 
                     
                     ] 
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             I 
                             
                               τ 
                               ⁢ 
                               e 
                               ⁢ 
                               f 
                             
                           
                           - 
                           
                             
                               i 
                               
                                 p 
                                 ⁢ 
                                 τ 
                                 ⁢ 
                                 e 
                                 ⁢ 
                                 d 
                               
                             
                             ( 
                             n 
                             ) 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         
                           L 
                           * 
                           K 
                         
                         
                           
                             T 
                             S 
                           
                           * 
                           
                             V 
                             out 
                           
                         
                       
                     
                     + 
                     1 
                     - 
                     
                       
                         V 
                         
                           i 
                           ⁢ 
                           n 
                         
                       
                       
                         V 
                         out 
                       
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     Equation (7) is the control law when the converter is in boost mode. 
     If we denote T i  as the beginning time of each switching cycle (i), the above method samples the input voltage, output voltage, and inductor current at time T 0 , utilizes the time until T 1  to predict the inductor current at T 1  using the input voltage, output voltage and the knowledge of the inductor inductance, and calculate the needed duty-cycle in order to reach the desired input current (I ref ) at T 2 , and set that duty cycle to be performed in the switching cycle between T 1  and T 2 . 
     Predictive Buck Input Current Control 
     The principles of the predictive buck average input current control loop are similar to those of the boost current control loop. For the buck converter, the on-time and off-time inductor slopes are given by the following equations: 
     
       
         
           
             
               
                 
                   
                     m 
                     1 
                   
                   = 
                   
                     
                       
                         V 
                         
                           i 
                           ⁢ 
                           n 
                         
                       
                       - 
                       
                         V 
                         out 
                       
                     
                     L 
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     m 
                     2 
                   
                   = 
                   
                     - 
                     
                       
                         V 
                         out 
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     For switching cycle number n the average input current, based on the inductor current, is: 
     
       
         
           
             
               
                 
                   
                     
                       ι 
                       ~ 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           i 
                           ⁡ 
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                         + 
                         
                           
                             m 
                             ⁢ 
                             1 
                             ⁢ 
                             
                               d 
                               [ 
                               n 
                               ] 
                             
                             ⁢ 
                             
                               T 
                               s 
                             
                           
                           L 
                         
                         + 
                         
                           
                             m 
                             ⁢ 
                             2 
                             ⁢ 
                             
                               
                                 d 
                                 ′ 
                               
                               [ 
                               n 
                               ] 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                       
                       ) 
                     
                     * 
                     
                       d 
                       [ 
                       n 
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     Based on equations (8) and (9) we can predict the inductor current for one switching cycle, and get the following equation: 
     
       
         
           
             
               
                 
                   
                     i 
                     ⁡ 
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       i 
                       ⁡ 
                       ( 
                       
                         n 
                         - 
                         1 
                       
                       ) 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               V 
                               
                                 i 
                                 ⁢ 
                                 n 
                               
                             
                             - 
                             
                               V 
                               out 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           d 
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     - 
                     
                       
                         
                           V 
                           out 
                         
                         ⁢ 
                         
                           
                             d 
                             ′ 
                           
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
           
         
       
     
     Combining equations (10) and (11) we get: 
     
       
         
           
             
               
                 
                   
                     
                       i 
                       ~ 
                     
                     ( 
                     
                       n 
                       + 
                       1 
                     
                     ) 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           i 
                           ⁡ 
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                         + 
                         
                           
                             
                               V 
                               in 
                             
                             ⁢ 
                             
                               d 
                               [ 
                               n 
                               ] 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                         - 
                         
                           2 
                           ⁢ 
                           
                             
                               
                                 V 
                                 out 
                               
                               ⁢ 
                               
                                 T 
                                 S 
                               
                             
                             L 
                           
                         
                         + 
                         
                           
                             
                               V 
                               in 
                             
                             ⁢ 
                             
                               d 
                               [ 
                               
                                 n 
                                 + 
                                 1 
                               
                               ] 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       d 
                       [ 
                       
                         n 
                         + 
                         1 
                       
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
     The prediction for the duty cycle d [n+1] can now be obtained based on the values sampled in the previous switching period. Denoting the sampled current as i s [n], and substituting the control objective {tilde over (l)} (n+1)=I ref  in (11), we have: 
     
       
         
           
             
               
                 
                   
                     
                       
                         0 
                         = 
                         
                           
                             
                               
                                 d 
                                 2 
                               
                               [ 
                               
                                 n 
                                 + 
                                 1 
                               
                               ] 
                             
                             * 
                             
                               
                                 
                                   V 
                                   in 
                                 
                                 ⁢ 
                                 
                                   T 
                                   S 
                                 
                               
                               L 
                             
                           
                           + 
                           
                             
                               d 
                               [ 
                               
                                 n 
                                 + 
                                 1 
                               
                               ] 
                             
                             [ 
                             
                               
                                 i 
                                 ⁡ 
                                 ( 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 ) 
                               
                               + 
                               
                                 
                                   
                                     V 
                                     in 
                                   
                                   ⁢ 
                                   
                                     d 
                                     [ 
                                     n 
                                     ] 
                                   
                                   ⁢ 
                                   
                                     T 
                                     S 
                                   
                                 
                                 L 
                               
                               - 
                               
                                 2 
                                 ⁢ 
                                 
                                   
                                     
                                       V 
                                       out 
                                     
                                     ⁢ 
                                     
                                       T 
                                       S 
                                     
                                   
                                   L 
                                 
                               
                             
                           
                         
                       
                       ) 
                     
                     ] 
                   
                   - 
                   
                     I 
                     ref 
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
     Equation (13) is the control law when the converter is in buck mode. Because of the fact that this equation is a quadratic equation, one of the methods of solving it in an efficient manner is to use Newton Raphson method to approximate the solution. 
     If we denote T i  as the beginning time of each switching cycle (i), the above method samples the input voltage, output voltage, and inductor current at time T 0 , utilizes the time until T 1  to predict the inductor current at T 1  using the input voltage, output voltage and the knowledge of the inductor inductance, and calculate the needed duty-cycle in order to reach the desired input current (I ref ) at T 2 , that is dependent on the inductor current and the duty cycle at T 2 , and set that duty cycle to be performed in the switching cycle between T 1  and T 2 . 
     Predictive Buck Input Current Control-Alternative Embodiment 
     Another method for controlling the converter&#39;s input current in a buck converting is by controlling the inductor current and using the converter&#39;s input and output voltage to set the correct inductor reference value in an adaptive manner.  FIG.  5    shows the block diagram of the control loops for this method. Equation 14 holds true in steady state in a buck converter: 
     
       
         
           
             
               
                 
                   
                     
                       I 
                       ~ 
                     
                     in 
                   
                   = 
                   
                     
                       
                         V 
                         out 
                       
                       
                         V 
                         in 
                       
                     
                     ⁢ 
                     
                       
                         I 
                         ~ 
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
     By using equation (14) we can set the required inductor current (I L_Ref ) according to V in  and V out  in the following way: 
     
       
         
           
             
               
                 
                   
                     I 
                     
                       L 
                       ⁢ 
                       _ 
                       ⁢ 
                       Ref 
                     
                   
                   = 
                   
                     
                       I 
                       ref 
                     
                     * 
                     
                       
                         V 
                         in 
                       
                       
                         V 
                         out 
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     Equation (15) is the feed-forward block that runs every switching cycle. After calculating the cycle-by-cycle inductor current reference, an inductor current loop is used to set the required inductor current. 
     Predictive Buck Inductor Current Control 
     By using equation (11), extending it for two switching cycles and replacing i(n) with i pred (n) we get the following equation: 
     
       
         
           
             
               
                 
                   
                     i 
                     ⁡ 
                     ( 
                     
                       n 
                       + 
                       1 
                     
                     ) 
                   
                   = 
                   
                     
                       
                         i 
                         pred 
                       
                       ( 
                       n 
                       ) 
                     
                     + 
                     
                       
                         
                           V 
                           in 
                         
                         ⁢ 
                         
                           d 
                           [ 
                           
                             n 
                             + 
                             1 
                           
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     - 
                     
                       
                         
                           V 
                           out 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
           
         
       
     
     By solving equation (16) for d[n+1] we get: 
     
       
         
           
             
               
                 
                   
                     d 
                     [ 
                     
                       n 
                       + 
                       1 
                     
                     ] 
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             I 
                             
                               L 
                               ⁢ 
                               _ 
                               ⁢ 
                               ref 
                             
                           
                           - 
                           
                             
                               I 
                               pred 
                             
                             [ 
                             n 
                             ] 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         L 
                         
                           
                             T 
                             S 
                           
                           * 
                           
                             V 
                             in 
                           
                         
                       
                     
                     + 
                     
                       
                         V 
                         out 
                       
                       
                         V 
                         in 
                       
                     
                   
                 
               
               
                 
                   ( 
                   17 
                   ) 
                 
               
             
           
         
       
     
     Because of the fact that the inductor inductance can vary and to be able to achieve a slower control loop, we modify equation (17) with a variable gain that can be pre-adjusted, and we get: 
     
       
         
           
             
               
                 
                   
                     d 
                     [ 
                     
                       n 
                       + 
                       1 
                     
                     ] 
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             I 
                             
                               L 
                               ⁢ 
                               _ 
                               ⁢ 
                               ref 
                             
                           
                           - 
                           
                             
                               I 
                               pred 
                             
                             [ 
                             n 
                             ] 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         
                           L 
                           * 
                           K 
                         
                         
                           
                             T 
                             S 
                           
                           * 
                           
                             V 
                             in 
                           
                         
                       
                     
                     + 
                     
                       
                         V 
                         out 
                       
                       
                         V 
                         in 
                       
                     
                   
                 
               
               
                 
                   ( 
                   18 
                   ) 
                 
               
             
           
         
       
     
     Equation (18) is the control law for the buck inductor current loop. 
     If we denote T i  as the beginning time of each switching cycle (i), the above method samples the input voltage, output voltage, and inductor current at time T 0 , utilizes the time until T 1  to estimate the needed inductor current (I L_Ref ) according to the input voltage, output voltage and desired input current (I ref ). In addition, predicting the inductor current at T 1  using the input voltage, output voltage and the knowledge of the inductor inductance, and calculate the needed duty-cycle in order to reach the needed inductor current (I L_Ref ) at T 2 , and set that duty cycle to be performed in the switching cycle between T 1  and T 2 . 
     Predictive Cascaded Buck-Boost Input Current Control 
     When the converter is in buck-boost mode all four switches are being used to set the correct converter&#39;s average input current. This can be shown in  FIG.  6    for trailing triangle PWM modulation. Switches B and D are complementary to switches A and C respectively. In each switching cycle both the buck and boost switches are being used to control the converter&#39;s average input current. In general, the boost switches will operate at a low duty cycle while the buck switches will operate at a high duty cycle. 
       FIG.  6    illustrates a method enabling the converter to set the converter&#39;s average input current correctly when the output current is relatively close to the reference current. In order to simplify the control loop the buck duty cycle will be fixed to a value, d buck , and the control loop will set the boost duty cycle every switching cycle. 
       FIG.  7    illustrates the inductor current waveforms for a buck-boost switching cycle. The on-time and off-time inductor current slopes for the buck cycle and boost cycle are identical to the equations in (8), (9) and (1), (2). In addition, the average input current can be calculated from the average inductor current with the following equation: 
         Ĩ   ln   =I   L   *d   buck    (19)
 
     Based on all these equations the predictive control law can be built for calculating the required boost duty cycle: 
     
       
         
           
             
               
                 
                   
                     
                       i 
                       ~ 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           i 
                           ⁡ 
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                         + 
                         
                           
                             
                               ( 
                               
                                 
                                   V 
                                   in 
                                 
                                 - 
                                 
                                   V 
                                   out 
                                 
                               
                               ) 
                             
                             ⁢ 
                             
                               d 
                               buck 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                         - 
                         
                           
                             
                               V 
                               out 
                             
                             ⁢ 
                             
                               d 
                               buck 
                               ′ 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                         + 
                         
                           
                             
                               V 
                               in 
                             
                             ⁢ 
                             
                               d 
                               [ 
                               n 
                               ] 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                         + 
                         
                           
                             
                               ( 
                               
                                 
                                   V 
                                   in 
                                 
                                 - 
                                 
                                   V 
                                   out 
                                 
                               
                               ) 
                             
                             ⁢ 
                             
                               
                                 d 
                                 ′ 
                               
                               [ 
                               n 
                               ] 
                             
                             ⁢ 
                             
                               T 
                               S 
                             
                           
                           L 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       d 
                       buck 
                     
                   
                 
               
               
                 
                   ( 
                   20 
                   ) 
                 
               
             
           
         
       
     
     Denoting the sampled current as i s [n], substituting the control objective {tilde over (l)}(n)=i ref  in the equation above, and solving for d[n], we get the following: 
     
       
         
           
             
               
                 
                   
                     d 
                     [ 
                     n 
                     ] 
                   
                   = 
                   
                     2 
                     + 
                     
                       
                         ( 
                         
                           
                             
                               i 
                               ref 
                             
                             
                               d 
                               buck 
                             
                           
                           - 
                           
                             
                               i 
                               S 
                             
                             [ 
                             n 
                             ] 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         L 
                         
                           
                             V 
                             out 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                       
                     
                     - 
                     
                       
                         
                           V 
                           in 
                         
                         
                           V 
                           out 
                         
                       
                       ⁢ 
                       
                         d 
                         buck 
                       
                     
                   
                 
               
               
                 
                   ( 
                   21 
                   ) 
                 
               
             
           
         
       
     
     Equation (21) is the control law for setting the boost duty cycle when the converter is in buck-boost mode. 
     If we denote T i  as the beginning time of each switching cycle (i), the above method samples the input voltage, output voltage, and inductor current at time T 0 , utilizes the time until T 1  to predict the inductor current at T 1 , based on the fact that the converter is in alternating buck-boost mode, using the input voltage, output voltage and the knowledge of the inductor inductance, and calculate the needed duty-cycle in order to reach the desired input current (I ref ) at T 2 , and set that duty cycle to be performed in the switching cycle between T 1  and T 2 . 
     Predictive Buck-Boost Input Current Control—Alternative Embodiment 
     Another method for controlling the converter&#39;s input current in a cascaded buck-boost converting is by controlling the inductor current and using the input and output voltage to set the correct inductor reference value in an adaptive manner.  FIG.  8    shows the block diagram of the control loops for this method. 
     Predictive Buck-Boost Inductor Current Control 
     An efficient method of controlling the inductor current in a cascaded buck-boost converter is setting a linear relation between the boost and buck duty cycle in the following manner: 
         d   buck =1− c+d   boost    (22)
 
     Where: 
       0≤c&lt;1
 
     Using equations (1), (2), (8) and (9) we can estimate the inductor at the end of switching cycle n: 
     
       
         
           
             
               
                 
                   
                     i 
                     ⁡ 
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       i 
                       ⁡ 
                       ( 
                       
                         n 
                         - 
                         1 
                       
                       ) 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               V 
                               in 
                             
                             - 
                             
                               V 
                               out 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           
                             d 
                             buck 
                           
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     - 
                     
                       
                         
                           V 
                           out 
                         
                         ⁢ 
                         
                           
                             d 
                             buck 
                             ′ 
                           
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     + 
                     
                       
                         
                           V 
                           in 
                         
                         ⁢ 
                         
                           
                             d 
                             boost 
                           
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               V 
                               in 
                             
                             - 
                             
                               V 
                               out 
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           
                             d 
                             boost 
                             ′ 
                           
                           [ 
                           n 
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   23 
                   ) 
                 
               
             
           
         
       
       
         
           
             	 
             
               
                 i 
                 ⁡ 
                 ( 
                 n 
                 ) 
               
               = 
               
                 
                   i 
                   ⁡ 
                   ( 
                   
                     n 
                     - 
                     1 
                   
                   ) 
                 
                 + 
                 
                   
                     
                       V 
                       in 
                     
                     ⁢ 
                     
                       
                         d 
                         buck 
                       
                       [ 
                       n 
                       ] 
                     
                     ⁢ 
                     
                       T 
                       S 
                     
                   
                   L 
                 
                 + 
                 
                   
                     
                       V 
                       out 
                     
                     ⁢ 
                     
                       
                         d 
                         
                           boost 
                             
                         
                       
                       [ 
                       n 
                       ] 
                     
                     ⁢ 
                     
                       T 
                       S 
                     
                   
                   L 
                 
                 + 
                 
                   
                     
                       ( 
                       
                         
                           V 
                           in 
                         
                         - 
                         
                           2 
                           ⁢ 
                           
                             V 
                             
                               out 
                                 
                             
                           
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       T 
                       S 
                     
                   
                   L 
                 
               
             
           
         
       
     
     Combining equations (22) and (23) and we get: 
     
       
         
           
             
               
                 
                   
                     
                       i 
                       pred 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       i 
                       ⁡ 
                       ( 
                       n 
                       ) 
                     
                     = 
                     
                       
                         i 
                         ⁡ 
                         ( 
                         
                           n 
                           - 
                           1 
                         
                         ) 
                       
                       + 
                       
                         
                           
                             V 
                             in 
                           
                           ⁢ 
                           
                             
                               d 
                               boost 
                             
                             [ 
                             n 
                             ] 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                       + 
                       
                         
                           
                             V 
                             out 
                           
                           ⁢ 
                           
                             
                               d 
                               boost 
                             
                             [ 
                             n 
                             ] 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 
                                   V 
                                   in 
                                 
                                 ( 
                                 
                                   2 
                                   - 
                                   c 
                                 
                                 ) 
                               
                               - 
                               
                                 2 
                                 ⁢ 
                                 
                                   V 
                                   out 
                                 
                               
                             
                             ) 
                           
                           ⁢ 
                           
                             T 
                             S 
                           
                         
                         L 
                       
                     
                   
                 
               
               
                 
                   ( 
                   24 
                   ) 
                 
               
             
           
         
       
     
     By extending equation (24) to another switching cycle we get: 
     
       
         
           
             
               
                 
                   
                     i 
                     ⁡ 
                     ( 
                     
                       n 
                       + 
                       1 
                     
                     ) 
                   
                   = 
                   
                     
                       
                         i 
                         pred 
                       
                       ( 
                       n 
                       ) 
                     
                     + 
                     
                       
                         
                           V 
                           in 
                         
                         ⁢ 
                         
                           
                             d 
                             boost 
                           
                           [ 
                           
                             n 
                             + 
                             1 
                           
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     + 
                     
                       
                         
                           V 
                           out 
                         
                         ⁢ 
                         
                           
                             d 
                             boost 
                           
                           [ 
                           
                             n 
                             + 
                             1 
                           
                           ] 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               
                                 V 
                                 in 
                               
                               ( 
                               
                                 2 
                                 - 
                                 c 
                               
                               ) 
                             
                             - 
                             
                               2 
                               ⁢ 
                               
                                 V 
                                 out 
                               
                             
                           
                           ) 
                         
                         ⁢ 
                         
                           T 
                           S 
                         
                       
                       L 
                     
                   
                 
               
               
                 
                   ( 
                   25 
                   ) 
                 
               
             
           
         
       
     
     Solving equation (25) for d boost [n+1]and replacing i(n+1) with the control objective, I L_Ref , we get: 
     
       
         
           
             
               
                 
                   
                     
                       d 
                       boost 
                     
                     [ 
                     
                       n 
                       + 
                       1 
                     
                     ] 
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             i 
                             
                               L 
                               ⁢ 
                               _ 
                               ⁢ 
                               Ref 
                             
                           
                           - 
                           
                             i 
                             ⁡ 
                             ( 
                             
                               n 
                               - 
                               1 
                             
                             ) 
                           
                         
                         ) 
                       
                       * 
                       
                         
                           L 
                           * 
                           K 
                         
                         
                           
                             ( 
                             
                               
                                 V 
                                 out 
                               
                               + 
                               
                                 V 
                                 in 
                               
                             
                             ) 
                           
                           * 
                           
                             T 
                             S 
                           
                         
                       
                     
                     - 
                     
                       
                         ( 
                         
                           
                             
                               V 
                               in 
                             
                             ( 
                             
                               2 
                               - 
                               c 
                             
                             ) 
                           
                           - 
                           
                             2 
                             ⁢ 
                             
                               V 
                               out 
                             
                           
                         
                         ) 
                       
                       
                         
                           V 
                           out 
                         
                         + 
                         
                           V 
                           in 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   26 
                   ) 
                 
               
             
           
         
       
     
     Equation (26) is the control law for the inductor current control in a cascaded buck-boost converter. 
     Feed Forward 
     In order to control the converter&#39;s input current, a cycle by cycle feed-forward is used in order to change the inductor current reference according to the required converter input current and input and output voltage. In a cascaded buck-boost converter we know that in steady state: 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       out 
                     
                     
                       V 
                       in 
                     
                   
                   = 
                   
                     
                       D 
                       buck 
                     
                     
                       1 
                       - 
                       
                         D 
                         boost 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     27 
                     ⁢ 
                     a 
                   
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     
                       
                         i 
                         ~ 
                       
                       in 
                     
                     
                       
                         i 
                         ~ 
                       
                       l 
                     
                   
                   = 
                   
                     D 
                     buck 
                   
                 
               
               
                 
                   ( 
                   
                     27 
                     ⁢ 
                     b 
                   
                   ) 
                 
               
             
           
         
       
     
     Using equations (27) and (22) we can get: 
     
       
         
           
             
               
                 
                   
                     i 
                     
                       L 
                       ⁢ 
                       _ 
                       ⁢ 
                       Ref 
                     
                   
                   = 
                   
                     
                       i 
                       ref 
                     
                     ⁢ 
                     
                       
                         
                           V 
                           in 
                         
                         + 
                         
                           V 
                           out 
                         
                       
                       
                         
                           ( 
                           
                             2 
                             - 
                             c 
                           
                           ) 
                         
                         ⁢ 
                         
                           V 
                           out 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   28 
                   ) 
                 
               
             
           
         
       
     
     Using equation (28) we can set the required inductor current according to the desired input current and input and output voltages. 
     If we denote T i  as the beginning time of each switching cycle (i), the above method samples the input voltage, output voltage, and inductor current at time T 0 , utilizes the time until T 1  to estimate the needed inductor current (I L_Ref ) according to the input voltage, output voltage and desired input current (I ref ). In addition, predicting the inductor current at T 1  using the input voltage, output voltage and the knowledge of the inductor inductance, and calculate the needed duty-cycle in order to reach the needed inductor current (I L_Ref ) at T 2 , and set that duty cycle to be performed in the switching cycle between T 1  and T 2 . 
     Switching Between Converter Modes 
     The converter needs to switch between three different modes depending on the reference current and the output current.  FIG.  9    shows a state diagram and the possible options to switch between the three different states. The following sections will describe the logic from switching between the different states. 
     Switching From Buck Mode 
     When in buck mode, the duty cycle will be monitored every switching cycle. If the duty cycle is higher than the threshold set, 0&lt;Th buck &lt;1, for more than X buck  consecutive switching cycles the converter will switch to buck-boost mode. 
     Switching From Buck-Boost Mode 
     When in buck-boost mode, the duty cycle of the boost converter will be monitored every boost switching cycle (every second switching cycle). Two thresholds will be set—Th high  and Th low . If the duty cycle is higher than Th high  for more than X high  consecutive switching cycles the converter will switch to boost mode. If the duty cycle is lower than Th low  for more than X low  consecutive switching cycles the converter will switch to buck mode. 
     Switching From Boost Mode 
     When in boot mode, the duty cycle will be monitored every switching cycle. If the duty cycle is lower than the threshold set, 0&lt;Th boost &lt;1, for more than X boost  consecutive switching cycles the converter will switch to buck-boost mode.