Bode Plot Controller Tuning and Implementation 1709480570
Bode Plot Controller Tuning and Implementation 1709480570
Note:
1. Bode plot provides the frequency domain response where the system response is plotted as Gain[dB] vs Freq[Hz] and Phase(degree) vs
Freq[Hz].
2. Nyquist plot provides frequency domain response where the system response is plotted in 2D with the real component in X-axis and
imaginary component in Y-axis.
3. Historically, the loop stability was first analyzed using Nyquist plot, then bode plot is developed as an alternative visualization that is still
based on Nyquist plot principle but with different presentation method. However, in every design in power supply area I ever saw so far
bode plot is used as the only tool, as it allows for more intuitive presentation and wide dynamic range by using log scale. The only practical
case for Nyquist plot (that I am aware of) is to study system with conditional stability.
2
Basic Math Refresher
Method to obtain Gain and Phase on a simple transfer function 1 1
𝐺(𝑠) = → 𝐺(𝑗𝜔) =
𝑠 𝑗𝜔
𝑠 → 𝑗𝜔 Gain : 𝑀(𝜔) = −20 log10 𝜔 dB
Phase: 𝜃(𝜔) = −90°
1 1
𝐺(𝑠) = → 𝐺(𝑗𝜔) =
𝑠+𝑝 𝑗𝜔 + 𝑝
𝐺(𝑠) = 𝑒 −𝑠𝑇 → 𝐺(𝑗𝜔) = 𝑒 −𝑗𝜔𝑇
Gain : 𝑀(𝜔) = −20 log10 𝜔 2 + 𝑝2 dB
Gain : 𝑀(𝜔) = 0 dB
180 𝜔
Phase: 𝜃(𝜔) = − tan−1 ° Phase: 𝜃(𝜔) = −90°
𝜋 𝑝
𝐺(𝑠) = 𝑠 + 𝑧 → 𝐺(𝑗𝜔) = 𝑗𝜔 + 𝑧
Gain and Phase for a multiplied transfer function
Gain : 𝑀(𝜔) = 20 log10 𝜔 2 + 𝑧 2 dB
180 𝜔 𝑃(𝑠) = 𝐶 𝑠 𝐺 𝑠 𝐻 𝑠 𝐷(𝑠)
Phase : 𝜃(𝜔) = tan−1 °
𝜋 𝑧
Gain : 𝑀𝑃 (𝜔) = 𝑀𝐶 (𝜔) + 𝑀𝐺 (𝜔) + 𝑀𝐻 (𝜔) + 𝑀𝐷 (𝜔)
Note : Phase: 𝜃𝑃 (𝜔) = 𝜃𝐶 (𝜔) + 𝜃𝐺 (𝜔) + 𝜃𝐻 (𝜔) + 𝜃𝐷 (𝜔)
For a more complex system with multiple zero and poles, just replace “s”
with “𝑗𝜔” then solve it arithmetically until we come up with a complex
number “𝑥 + 𝑗𝑦”, then obtain
→ Gain using 𝑀(𝜔) = 20 𝑙𝑜𝑔10 𝑥 2 + 𝑦 2 or 𝑎𝑏𝑠(𝑥 + 𝑗𝑦)
→ Phase using 𝜃(𝜔) = (180/𝜋)𝑎𝑡𝑎𝑛2(𝑦, 𝑥) or (180/𝜋)𝑎𝑟𝑔(𝑥 + 𝑗𝑦) 3
Conversion from Bode Plot to Nyquist Plot
As previously mentioned before, bode plot and nyquist plot are Remember that Nyquist curve start from 𝜔 = −∞ to 𝜔 = ∞
basically the same thing with different presentation method.
They both are different methods to present complex number. However, of course negative frequency does not exist in real
world. But the good thing is, the response at the negative
frequency is a mirror of the response in positive frequency along
the x-axis (Real-axis).
Complex number 𝐺(𝑗𝜔) response to bode plot:
Mathematically, the negative frequency response is the complex
Gain : 𝑀(𝜔) = conjugate of positive frequency response, or it can be written as:
20 log10 Re(𝐺(𝑗𝜔))2 + Im(𝐺(𝑗𝜔))2 dB 𝑀(𝜔) 𝜃(𝜔). 𝜋
Re(−𝜔) = Re(𝜔) = Re(𝐺(𝑗𝜔)) = 10 20 cos
180 Im(𝐺(𝑗𝜔)) 180
Phase: 𝜃(𝜔) = tan−1
𝜋 Re(𝐺(𝑗𝜔))
Im(−𝜔) = −1. Im(𝜔) = −1. Im(𝐺(𝑗𝜔)) =
Bode plot response to complex number 𝐺(𝑗𝜔): 𝑀(𝜔)
𝜃(𝜔).𝜋
− 10 20 sin
𝑀(𝜔) 180
𝜃(𝜔).𝜋 𝜃(𝜔).𝜋
𝐺(𝑗𝜔) = 10 20 cos + 𝑗. sin
180 180
4
Definition of:
Crossover frequency/Phase Margin/Gain Margin/Nyquist Frequency
𝜔𝑐 → Crossover frequency :
Frequency at which gain is 0dB
Φ𝑚 → Phase Margin :
The gap between phase and -180⁰ at crossover frequency
Gain margin :
Gain value at phase = -180⁰
Nyquist frequency :
Half of the switching frequency for analog controller or
half of the sampling frequency for digital controller (with
Fsampling ≤ Fswitching)
Note:
1. Generally, a bode plot with (mostly) monotonously decreasing gain and phase curve is considered to be a good and stable system
(i.e. the example)
2. For a system with multiple gain 0dB crossings and/or phase -180⁰ crossings the right most crossing is what considered to matter
the most.
3. Generally speaking, the system will remain (conditionally stable) as long as the rightmost gain at phase=-180⁰ is still negative.
However, it will still be better (if possible) to fix the control system and remove the multiple phase crossing to ensure a trully stable
system. 5
Conditional Stability
System with Multiple Crossing at 0dB and/or -180⁰
Definition:
An open loop control system with multiple bode plot phase crossing at -180⁰. Where the system is stable even when there are some -
180⁰ crossing occurs with gain greater than 0dB at those phase crossover frequency.
Reason:
The open loop system contains some oscillation, either at the source (from input filter), at the output LC filter, subharmonic
oscillation, or resonant controller.
Why is it stable?
The phenomenon can be explained by using Nyquist plot. Nyquist stability rule is a system considered to be unstable when it going
around the “magic point” (-1, 0) in clockwise manner as the Nyquist curve goes from 𝜔 = −∞ to 𝜔 = ∞.
6
Quick Intro to Understand a bit on Nyquist Plot
1. How to know the starting point and end point of a Nyquist plot
As we are familiar with bode plot, it is common for us to see that bode gain at low frequency is high
and bode gain at high frequency is very low. Thus, the low frequency (positive and negative) end in
Nyquist plot starts from the end of the plot that is far from plot origin (0,0) and the high frequency
(positive and negative) end in Nyquist plot is located very close to the plot origin (0,0).
2. What is the function of the circle with radius of 1 around the plot origin
To provide visual reference to the reader for the 0dB (Gain = 1) crossover point. Then can also be
used to compute the phase margin and gain margin.
7
Conditional Stability stable as the nyquist curve
Stable – example directory is enclosing the (-1, 0) point,
f = 10.^(0:0.00001:6)';
w = 2*pi*f;
but in counter clock wise manner
nyquistlim = 5;
L = 50e-6;
R = 0.005;
C = 500e-6;
Ro = 1;
Zo = 1./(1./(1./(1j*w*C) + R) + 1/Ro);
sys = Zo./((1j*w*L) + Zo);
mod_rhpz = 2*pi*70e3;
mod_pole = 2*pi*100e3
modulator = 10^((195 + 0)/20).*(1j*w/mod_rhpz - 1)./(1j*w/mod_pole + 1);
R1 = 15e3;
R3 = 2.5e3;
C3 = 1.5e-9;
R2 = 31e3;
C2 = 4.5e-9;
G = modulator.*sys.*ctrl;
gain_db = 20*log10(abs(G));
𝜔 ≈ +∞
phase_deg = 180/pi*arg(G) - 180;
for i = 2 : length(phase_deg)
if((phase_deg(i) - phase_deg(i - 1)) > 90)
phase_deg(i : length(phase_deg)) = phase_deg(i : length(phase_deg)) - 360;
end
if((phase_deg(i) - phase_deg(i - 1)) < -90)
phase_deg(i : length(phase_deg)) = phase_deg(i : length(phase_deg)) + 360;
end
𝜔 ≈ −∞
end
th_plt = 0:pi/1000:2*pi-pi/1000;
realG = abs(G).*cos(phase_deg*pi/180);
imagG = abs(G).*sin(phase_deg*pi/180);
The equation is way too random for me to come out on my own. so here is the source:
gsills (https://electronics.stackexchange.com/users/16497/gsills), Conditional stability, URL (version:
2013-06-17): https://electronics.stackexchange.com/q/72943 8
Conditional Stability unstable as the nyquist curve
Unstable – example directory is enclosing the (-1, 0) point,
f = 10.^(0:0.00001:6)';
w = 2*pi*f;
in clock wise manner
nyquistlim = 5;
L = 50e-6;
R = 0.005;
C = 500e-6;
Ro = 1;
Zo = 1./(1./(1./(1j*w*C) + R) + 1/Ro);
sys = Zo./((1j*w*L) + Zo);
𝜔 ≈ +∞
mod_rhpz = 2*pi*70e3;
mod_pole = 2*pi*100e3
modulator = 10^((195 + 30)/20).*(1j*w/mod_rhpz - 1)./(1j*w/mod_pole + 1);
R1 = 15e3;
R3 = 2.5e3;
C3 = 1.5e-9;
R2 = 31e3;
C2 = 4.5e-9;
G = modulator.*sys.*ctrl;
gain_db = 20*log10(abs(G));
phase_deg = 180/pi*arg(G) - 180;
for i = 2 : length(phase_deg)
if((phase_deg(i) - phase_deg(i - 1)) > 90)
phase_deg(i : length(phase_deg)) = phase_deg(i : length(phase_deg)) - 360;
end
if((phase_deg(i) - phase_deg(i - 1)) < -90)
phase_deg(i : length(phase_deg)) = phase_deg(i : length(phase_deg)) + 360;
end
end
th_plt = 0:pi/1000:2*pi-pi/1000;
realG = abs(G).*cos(phase_deg*pi/180);
imagG = abs(G).*sin(phase_deg*pi/180);
9
Controller design goal
Time domain goal: Frequency domain goal:
• Zero steady-state error • High open loop DC gain (or at frequency of interest, i.e.
50/60Hz for PFC/inverter current controller)
• Good transient response
• Adequate crossover frequency
• Stable
• Adequate phase and gain margin
• Disturbance/noise immunity
• Adequate gain attenuation at high freq
Generic rule of thumb:
• Open loop DC/freq of interest gain >20dB for <1% steady state error.
• Crossover freq:
• Poles are generally used to increase gain margin or lower gain at Type III 𝐾 (𝑠 + 𝑧1 )(𝑠 + 𝑧2 )
×
𝑠
+1
𝑠
+1 Max 180° phase boost
𝑠 (𝑠 + 𝑝1 )(𝑠 + 𝑝2 ) 𝐾 𝜔𝑧1 𝜔𝑧2
Nyquist frequency to improve stability and noise disturbance. In many ×
𝑠 𝑠 𝑠 Common application:
design cases, it is common to simply place pole at Nyquist frequency or +1 +1
𝜔𝑝2 𝜔𝑝2 Voltage mode control
can be lowered as deemed necessary. An exception is for Type III
controller where the lower frequency pole is designed to limit the PI 𝐾 𝐾 𝑠 Max 90° phase boost
× (𝑠 + 𝑧) × +1
maximum phase boost and thus needed to be calculated properly. 𝑠 𝑠 𝜔𝑧
Common application:
Average current mode control
• Control system delay (Td):
PID 𝐾 𝐾 𝑠 𝑠 Max 180° phase boost
× (𝑠 + 𝑧1 )(𝑠 + 𝑧2 ) × +1 +1
Three delays existed on a fixed frequency PWM based converter. First, 𝑠 𝑠 𝜔𝑧1 𝜔𝑧2
PWM transport delay with total delay at half the switching frequency. Common application:
Second, Controller sampling delay with total delay at sampling period. Not much in power supply
Third, miscellaneous delay such as sensor feedback measurement delay. PID+Filter 𝐾 (𝑠 + 𝑧1 )(𝑠 + 𝑧2 ) 𝑠
+1
𝑠
+1 Max 180° phase boost
× 𝐾 𝜔𝑧1 𝜔𝑧2
Total system delay are the sum of the three delays combined. 𝑠 𝑠+𝑝 × 𝑠
𝑠 +1 Common application:
𝜔𝑝
Not much in power supply
11
General idea to perform controller tuning
• Check the phase value at the target crossover frequency of a system with pole at origin and
all phase delay, then determine if the phase needs to be added or reduced (generally it
needs to be added).
• For slow system (i.e. PFC outer voltage loop) a Type I controller is often necessary. For most
design cases that doesnot involve any resonant pole (current mode control converters),
Type II, or PI controller is sufficient. While for system with resonant pole (i.e. voltage mode
controlled converters), will require double zero (Type III) from controller to compensate for
those resonant pole.
• It is difficult to calculate a design with more than one output parameter, thus for most
controller design, we will place all zero or pole except one) based on a system parameter
then only leave one final controller zero/pole to adjust the overall loop performance.
double pole
• For Type I: engineer can only calculate the gain to set the open loop 0dB crossing at the desired 1
crossover frequency (no phase plot shaping is possible).
at f =
2𝜋 𝐿𝐶
• For Type II: controller pole can be directly placed at the Nyquist frequency (half of Fsw or
Fsampling). Then engineer can set the zero to reach the desired phase margin at the target
crossover frequency. Finally, set the controller gain to achieve open loop 0dB crossing at the desired
crossover frequency.
f=10.^(1:0.01:6)';
• For PI controller: Engineer can set the zero to reach the desired phase margin at the target L = 100e-6;
RL = 0.01;
crossover frequency. Finally, set the controller gain to achieve open loop 0dB crossing at the desired C = 100e-6;
RC = 0.01;
crossover frequency. LL = 1j*2*pi*f*L + RL;
CC = 1./(1j*2*pi*f*C) + RC;
• For Type III: Engineer directly set the double zero at the same frequency of the resonant pole (LC- LC = CC./(LL + CC);
semilogx(f,20*log10(abs(LC)))
pole), as well as set one pole at the Nyquist frequency. Then, the location of the final pole can be grid on
xlabel('Freq[Hz]')
set to reach the desired phase margin at target crossover frequency. Lastly, set the controller gain to ylabel('Gain[dB]')
make gain plot cross the 0dB at the desired crossover frequency 12
Controller tuning (bottom-up method)
Bottom-up controller tuning is a common textbook method of controller Design Procedure:
tuning where we have a complete system transfer function. This method is
good to provide good control design understanding however not the most 1. Make a first controller assumption if controller pole is needed or not. In this example we
appropriate method as it is very common for a designer to not have a assume to add a controller pole right at Nyquist frequency (this pole can be changed at
complete system transfer function as in the case of overly-complex system different frequency or omitted altogether). Then obtain the bode plot of:
transfer function derivation. 1 1
× × 𝐺 𝑠 𝐻 𝑠 𝐷(𝑠)
𝑠 𝑠+𝑝
basically plot everything that does not need to be calculated as the design initial point
Given an example system as following:
1 2. Check the phase at the target 𝜔𝑐 , then calculate the required phase boost to reach the
𝐺 𝑠 = target Φ𝑚 . Determine what controller type is needed based on the required phase boost
100 × 10−6 𝑠 + 0.01 (Φ𝑏𝑜𝑜𝑠𝑡 ).
With a feedback circuit that has 100kHz bandwidth and 1µs delay
For Type II or PI, ensure to not try to reach 90°phase boost, max phase boost of ~85°is generally preferred to
1 account for system tolerance. Similarly for Type III or PID+Filter max phase boost shall be capped at ~170°
𝐻 𝑠 =
1
𝑠+1
2𝜋. 105 3. Perform control loop phase shaping. For Type I, this step is omitted. For Type II and PI
controller, calculate the controller zero to provide the necessary Φ𝑏𝑜𝑜𝑠𝑡 .
PWM frequency and sampling frequency are 100kHz, thus: 𝜔𝑐
𝑧= 𝜋
PWM transport delay at 5µs and controller sampling delay at 10µs tan Φ𝑏𝑜𝑜𝑠𝑡 ×
−6
180
𝐷 𝑠 = 𝑒 −𝑠.16×10
For Type III or PID+Filter, general principle remain but the method is more complex due to the presence of two zeros
(and 1 additional pole for Type III).
Frequency domain design goal:
4. Calculate the controller gain to achieve 0dB gain at target 𝜔𝑐 .
• 𝜔𝑐 = 2𝜋5000 rad/s −1×Gain @ωc
𝐾 = 10 20
• Φ𝑚 = 45°
5. Evaluate the gain margin and system attenuation at Nyquist frequency. If not enough,
controller pole can be adjusted then step 2 to 4 can be recalculated.
13
Controller tuning (bottom-up method)
# Octave command
f = (0:0.01:6)';
f = 10.^f;
w = 2*pi*f;
Note 1: Controller pole is added at Nyquist frequency
#system transfer function
G = 1./(1j*w*100e-6 + 0.1);
Gmag = 20*log10(abs(G));
Phase value at target 𝜔𝑐 is:
Gph = 180/pi*arg(G);
Φቚ = −215°
# feedback transfer function 𝜔𝑐
H = 1./(1j*w/(2*pi*100e3) + 1);
Hmag = 20*log10(abs(H));
Hph = 180/pi*arg(H);
Required phase boost:
# total system delay
D = exp(-1j*w*16e-6);
Dmag = 20*log10(abs(D));
Φ𝑏𝑜𝑜𝑠𝑡 = Φ𝑚 − Φቚ − 180°
𝜔𝑐
Dph = 180/pi*arg(D);
# controller gain K
K = 10^(-1*-10.31/20);
Controller gain:
Kmag = 20*log10(abs(K)); −1×−10.31
Kph = 180/pi*arg(K); 𝐾 = 10− 20 = 3.2772
plt0=subplot(2,1,1)
hold on
semilogx(f, Gmag + Hmag + Dmag + CPmag);
semilogx(f, Gmag + Hmag + Dmag + CPmag + CZmag);
semilogx(f, Gmag + Hmag + Dmag + CPmag + CZmag + Kmag);
legend('1/P(s) x G(s)H(s)D(s)',...
'Z(s)/P(s) x G(s)H(s)D(s)',...
'K x Z(s)/P(s) x G(s)H(s)D(s)',...
'location', 'northoutside', 'orientation', 'horizontal')
hold off
grid on
ylabel('Gain [dB]')
xlabel('Freq [Hz]')
plt1=subplot(2,1,2)
hold on
semilogx(f, Gph + Hph + Dph + CPph);
semilogx(f, Gph + Hph + Dph + CPph + CZph);
semilogx(f, Gph + Hph + Dph + CPph + CZph + Kph);
hold off
grid on
ylabel('Phase [deg]') 14
xlabel('Freq [Hz]')
linkaxes([plt0 plt1],'x')
Controller tuning (Top-down method)
Top-down controller tuning is more practical design method that unfortunately rarely
discussed on any text book. The motivation of this method is complete system derivation is
mostly unavailable, thus we can instead obtain the complete system transfer function and
perform the controller design from this point.
Design Procedure:
1. Get the system open loop bode plot C(s)G(s)H(s)D(s), 𝑀𝑠𝑦𝑠 𝜔 and 𝜃𝑠𝑦𝑠 𝜔 .
In case of designing a controller from simulation, often time a simple Type I controller can be used. The Type I gain
can be set arbitrarily just to ensure a stable close loop operation (slow transient response is acceptable).
2. Derive the transfer function of the controller C(s), then obtain 𝑀𝐶 (𝜔) and 𝜃𝐶 𝜔
3. Obtain the bode plot of the system WITHOUT the controller by subtracting the gain and
phase from System with Controller.
𝑀𝐺𝐻𝐷 𝜔 = 𝑀𝑠𝑦𝑠 𝜔 − 𝑀𝐶 (𝜔)
𝜃𝐺𝐻𝐷 𝜔 = 𝜃𝑠𝑦𝑠 𝜔 − 𝜃𝐶 (𝜔)
4. Once 𝑀𝐺𝐻𝐷 𝜔 and 𝑀𝐺𝐻𝐷 𝜔 are obtained, then the new controller can be designed
following the procedures described in Bottom-Up method.
15
Method to Obtain System Bode Plot
(Frequency Response)
Open loop circuit FRA analysis
𝑂𝑈𝑇 𝑠
𝑃𝐶𝐺𝐻 𝑠 =
𝐼𝑁 𝑠
𝑀𝑂𝑈𝑇 𝜔
𝑀𝐶𝐺𝐻 𝜔 =
𝑀𝐼𝑁 𝜔
𝜃𝑂𝑈𝑇 𝜔
𝜃𝐶𝐺𝐻 𝜔 =
𝜃𝐼𝑁 𝜔
16
Method to Obtain System Bode Plot
(Frequency Response)
Close loop circuit FRA analysis
𝑂𝑈𝑇 𝑠
𝑃𝐶𝐺𝐻 𝑠 =−
𝐼𝑁 𝑠
𝑀𝑂𝑈𝑇 𝜔
𝑀𝐶𝐺𝐻 𝜔 =
𝑀𝐼𝑁 𝜔
𝜃𝑂𝑈𝑇 𝜔
𝜃𝐶𝐺𝐻 𝜔 = − 180°
𝜃𝐼𝑁 𝜔
Signal injection point on the “OUT” node must be placed facing the low impedance point at converter output
17
Signal injection point on the “IN” node must be placed facing to the high impedance input of the controller.
Method to Obtain System Bode Plot
(Frequency Response – Analog Regulator)
Close loop circuit FRA analysis
𝑂𝑈𝑇 𝑠 𝑀𝑂𝑈𝑇 𝜔 𝑀𝐴 𝜔
𝑃𝐺𝐻 𝑠 =− 𝑀𝐺𝐻 𝜔 = 𝑀𝐻 𝜔 =
𝐼𝑁 𝑠 𝑀𝐼𝑁 𝜔 𝑀𝐼𝑁 𝜔
𝜃𝑂𝑈𝑇 𝜔 𝜃𝐴 𝜔
𝜃𝐺𝐻 𝜔 = − 180° 𝜃𝐻 𝜔 = − 180°
𝜃𝐼𝑁 𝜔 𝜃𝐼𝑁 𝜔
18
Digital Controller Implementation
19
Transfer function discretization and C-code
1−𝑧 −1
I mostly use backward euler 𝑠 → for these two example
𝑇
PI controller
LPF 𝑦 𝑠 𝐾 𝑠 + 𝑐𝑧
𝑦 𝑠 1 𝑥 𝑠
=
𝑠
= 𝑦 𝑠 𝑠 = 𝐾. 𝑠. 𝑥 𝑠 + 𝐾. 𝑐𝑧 . 𝑥 𝑠
𝑥 𝑠 𝜏. 𝑠 + 1
𝑦 𝑠 . 𝜏. 𝑠 + 𝑦 𝑠 = 𝑥(𝑠) Discretize
𝑦 − 𝑦𝑧 −1 𝐾𝑥 − 𝐾𝑥𝑧 −1
𝑦 𝑠 . 𝜏. 𝑠 = 𝑥 𝑠 − 𝑦 𝑠 𝑇−1
=
𝑇−1
+ 𝑐𝑧 . 𝑥
𝑦 = 𝑦𝑧 + 𝐾 𝑥 − 𝑥𝑧 + 𝐾. 𝑐𝑧 . 𝑥. 𝑇
Discretize For anything more complex, just use
𝑦𝜏 − 𝑦𝜏𝑧 −1 Pseudocode
matlab/octave C2D command.
=𝑥−𝑦
𝑇 y_temp = K1*(x – x_prev) + K2*x
𝜏 𝑇 If the frequency of interest is a lot
𝑦 = 𝑦𝑧 −1 . + 𝑥. x_prev = x lower than the sampling frequency,
𝜏+𝑇 𝜏+𝑇 // rate limiter
then ‘zoh’ discretization method is
often adequate.
Pseudocode if(y_temp > maxrate) y_temp = maxrate
if(y_temp < minrate) y_temp = minrate However, for notch filter or band pass
y = y*k1 + x*k2; filter with high Q-factor, ‘tustin’ is
y += y_temp
often necessary (also called bilinear or
// output saturation and anti-windup trapezoidal) . To further improve the
accuracy at the frequency of interest,
if(y > max_out) y = max_out frequency pre-warping may also be
if(y < min_out) y = min_out used.
20
Analog Controller Implementation
21
Basic Generic Structure
Characteristic:
1. No phase boost
2. Generally only suitable for slow system (most commonly only for
PFC voltage loop controller).
Design steps:
1. Arbitrarily choose the R1
2. Calculate C1 to adjust the controller gain
23
Type II
transfer function to RC calculation
𝑦 1 𝑠𝑅2 𝐶2 + 1 𝐾 𝑠+𝑧
= . = .
𝑥 𝑅1 𝑠. 𝑠𝐶1 𝐶2 𝑅2 + 𝐶1 + 𝐶2 𝑠 𝑠+𝑝
Characteristics:
1. Commonly used for current mode control based design
2. Fast response
3. Good high frequency noise rejection.
Design steps:
1. Arbitrarily choose the 𝑅1
1
2. 𝐶1 = 𝐾.𝑅1
𝑝
−1
𝑧
3. 𝐶2 =
𝐾.𝑅1
1
4. 𝑅2 = .𝐶
𝑍 2
24
PI Controller
transfer function to RC calculation
𝑦 1 𝑠𝑅2 𝐶2 + 1 𝐾
= . = . (𝑠 + 𝑧)
𝑥 𝑅1 𝑠𝐶2 𝑠
Characteristics:
1. Max phase boost of 90°
2. No high frequency attenuation.
Design steps:
1. Arbitrarily choose the 𝑅1
2. 𝑅2 = 𝐾. 𝑅1
1
3. 𝐶2 = 𝑧.𝑅2
25
Tuning Basic – Type III and PID+F
Characteristics:
1. Max phase boost of 180°
2. Used for voltage mode controlled converter
3. Relatively complex calculation
Design steps:
1. I don’t know, I never need to use any of those
26