I have recently started using PSIM. I'm generating power stages of non-isolated topologies and stabilizing them to get used to PSIM. I've done a buck converter, and now I'm looking at a boost converter.

Problem: open-loop control-to-output Bode plot + compensator frequency response doesn't give expected loop gain Bode plot.

High level specs:

  • Vin = 10 V
  • Vout = 15 V
  • Pout = 45 W
  • Peak current mode control - CCM

Right Half Plane Zero Frequency (Frhpz) = 65.2 kHz

Power stage LC resonance Frequency (Fo) = 2.2 kHz

What I've done:

My PSIM circuit:

enter image description here

All the sources within the schematic show their amplitudes, so there is no confusion there. On the inner current loop there is a triangular wave superimposed on top of the FET current which acts like adding a ramp to dampen out sub harmonic oscillations. Since the duty cycle is 36% at the moment, I've nulled it.

The greyed out section at the bottom left is for the constant duty cycle open loop curves. At 33% duty cycle, we get the two time domain open loop curves, then the frequency domain.

enter image description here

enter image description here

enter image description here

Let's say I am targeting a 55° phase margin and a cross-over frequency of 10 kHz, which is 3×Fo < Fc < 0.2×Frhpz (Mr. Basso gives these details/specs, so that's where those come from). I believe I should be within a safe target cross-over frequency.

The open loop curve shows at 10 kHz I need 6.5 dB of attenuation and 70° of boost. Phase is showing -105°, so, boost required = PM - Phase@fc - 90, so 55-(-105)-90 = 70° of boost. A type 2 compensator should do.

Again, using equations from Mr Basso:

enter image description here

enter image description here

The LTspice file (using K-factor method) shows at 10 kHz 6.5 dB attenuation and 160° of phase, so I believe everything so far is making sense and lining up. You can see the two capacitor values and one resistor value suggested in the op-amp feedback path, plus, the upper and lower resistor divider values calculated or shown.

Now, the next bit is when things stop lining up for me.

Time domain screen shots show it's regulating around 15 V which is good, and things look stable.

enter image description here

enter image description here

The frequency response is the part where I'm confused.

enter image description here

You can see the far-left cursor showing the zero crossing, around 400 Hz, definitely not the 10 kHz I was targeting.

Before making the frequency response curves, I first inject signals of different amplitudes and frequencies in the time domain to make sure there is a measurable signal that isn't affecting the large signal response.

This is where I am stuck.


  1. What do you believe is wrong?
  2. When you fine folks use calculated compensation values, does that get you the target cross frequency first try with out any tweaking of values? When I read papers or Basso's book it seems like that is the case.


Bode plot of PSIM type 2 as a comparison to the LTspice plot enter image description here Pretty close the -6.5dB LTspice showed, and, the phase is exactly the same.

  • \$\begingroup\$ You can take a look at my free ready-made templates running in SIMPLIS, not PSIM. They work with the free demo and you will have another ac response then. Because loop gain is made of the power stage and the compensator, I usually plot them separately to check the compensation brings what I need, e.g. the wanted phase boost and the gain/attenuation at crossover. You can easily probe them in PSIM and LTspice I believe. Then you will where ac responses diverge between the two simulators. \$\endgroup\$ Feb 21 at 7:04
  • \$\begingroup\$ @VerbalKint I tried playing around with a SIMPLIS boost model you made, I've never used SIMPLIS. Over time I'll start playing more with them, but for now, I'll stick with PSIM/LTSPICE since I have a better grasp of both of them at the moment. I added the Type 2 compensator bode plot by itself, seems to line up with what LTspice shows. I guess that would mean the peak current mode part of the schematic is changing the open-loop frequency curve shape? \$\endgroup\$ Feb 21 at 17:11
  • \$\begingroup\$ First off, if this is peak current mode control, the constraint in upper \$f_c\$ is 0.2 RHPZ but no longer the resonant frequency which is only for voltage-mode control. For LTspice, if the type 2 response is ok and the power stage also, then the sum of mag in dB should lead to the correct crossover value unless something bothers LTspice in its frequency-response analyzer (FRA) configuration. I've seen that in SIMPLIS and I got around it by physically opening the loop and extract the loop gain. It's hard to do with a high open-loop gain op-amp unfortunately (it will rail up or down easily). \$\endgroup\$ Feb 21 at 18:07
  • \$\begingroup\$ @VerbalKint Yes, your absolutely right, mistake on my end. I use PSIM to extract the open-loop freq reponse and feed that parametric info into yours truly's LTspice type 2 compensator file. Question in aisle 3, if I disable the compensator, and, instead feed a constant signal into the inverting pin of the modulator's error amp and then peturb that signal, would that give the same freq response as the open-loop curve? If it does, then I can compare it to the other way I generate the open-loop curve and see if this is the area of the circuit that is causeing problems. \$\endgroup\$ Feb 21 at 21:02


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.