I've designed a two-switch forward converter, that I would like to create a small signal model for to examine the stability criteria of the converter and then compatibility with the EMI filter...

A transient simulation was created, and the supply works great. I attempted to create the small signal model using Christophe Basso's available PWM-CM models, but am struggling to produce a proper Bode plot or make sense of my simulation... Changing the type-II compensator values does not change the Bode plot...

Using LTSpice because it's the only available and downloadable software where I am.

Any advice or recommendations? Am I using the PWM-CM, Gain, XFMR or Ampsimp model wrong?

Circuit Schematic

Circuit Schematic1

Bode Plot


DC Schematic DC sim

  • 1
    \$\begingroup\$ @VerbalKint calling verbalkint, this one's for you. \$\endgroup\$
    – Andy aka
    Commented Aug 2, 2023 at 20:06
  • 1
    \$\begingroup\$ Hi there, have a look at this PDF and check the schematics I provided for the forward converter. Also, you have several examples of forward converters in my ready-made templates which work on the free demo version of SIMPLIS. It's easy to run and you will then be able to check your LTspice results versus those obtained with SIMPLIS. \$\endgroup\$ Commented Aug 2, 2023 at 20:28
  • 1
    \$\begingroup\$ I recommend you also look at this answer I gave a while ago. In your sim, try first to physically open the loop by biasing the modulator input with a dc+ac source (forget the loop in a first approach) and check a) the operating point, a correct output and duty ratio then b) the ac response. When this looks correct, you can start considering closing the loop. \$\endgroup\$ Commented Aug 2, 2023 at 20:44
  • \$\begingroup\$ As always @VerbalKint, the god of control, answers the calling and arrives at the speed of light. Even God doesn't answer my prayers that quickly. \$\endgroup\$ Commented Aug 2, 2023 at 21:10
  • \$\begingroup\$ @VerbalKint I opened the loop and injected an AC(1) signal into the input along with the 28VDC. The output is not biasing to the designed +5.3V. My nominal duty cycle is calculated to be 37.3% - I connected a voltage source to the Vctrl pin similar to your PDF example. Edited post to include visual image of schematic and plots for the DC operation. Thanks. \$\endgroup\$
    – user397703
    Commented Aug 2, 2023 at 21:41

1 Answer 1


I looked at a simple simulation setup with my auto-toggling CCM-DCM current-mode model that I introduced in 2005 at a PCIM conference. The original structure is based on the work carried by Vatché Vorpérian in 1990 where he presented his concept of the PWM switch adapted to current mode. This model is a beauty of simplicity and I encourage you to read his paper that you can download from here. This model perfectly agrees with the work carried by Ray Ridley in which he used sampled-data analysis while Vatché only resorted to time-continuous expressions. In the end, the transfer functions obtained with either approaches are identical.

Vorpérian looked at the continuous conduction mode (CCM) but did not publish his approach for the DCM. That is what I looked at and I crafted a fully auto-toggling model capable of predicting sub-harmonic oscillations in CCM and buck instability in DCM in certain conditions. So this model is fairly versatile and has been ported to LTspice and other SPICE simulators. You can easily simulate a converter based on the UC384x PWM controller. What is specific to the UC384x is the fact the error voltage delivered by the on-board op-amp first goes through two diodes in series and then undergoes a division by 3 before being clamped to 1 V: in case of loop failure, the maximum current setpoint is then 1 V/\$R_{sense}\$. The two-diode drop is there to impose a true zero setpoint when the op-amp falls below 1.2 V roughly and the UC384x can actually skip cycle by going to 0% duty ratio in no-load conditions.

The below figure shows how to assemble the model to simulate a forward converter. In this approach, the transformer is placed after the input source and effectively translates the buck voltage to \$NV_{in}\$ but it could also be placed after the PWM switch model also. Both options are explored in my last book on transfer functions:

enter image description here

To clamp the voltage at the CM PWM switch model, many options are possible and I used an in-line expression clamping the error voltage while performing the \$2V_f\$ subtraction and the division by 3. The type 2 is automated and please note that components values depend on the upper resistance \$R_{upper}\$ only as \$R_{lower}\$ is silent considering the virtual ground at the (-) pin. Once the ac analysis is run, always check the operating points to verify voltages are on par with what is expected: a duty ratio of 32.6% for this particular point, a 5-V output voltage, a credible output level for the op-amp etc. From there, you can display the ac response of the power stage and feed the macro with the magnitude/phase values collected at the selected crossover of 10 kHz:

enter image description here

Check that the compensated loop gain meets the phase/gain margins criteria but it looks good here. Of course, from there, you would need to run many more simulations like Monte Carlo to check that despite components tolerances, various input and output conditions etc. the phase/gain margins and crossover always guaranty a reliable operation.

When this is working, you can perform a transient simulation:

enter image description here

In this example, I have used IsSpice from Intusoft but you should obtain identical results from LTspice. I don't know what model version do you use for the PWM CM model though and I know there are plenty of versions (I posted a few on my page). As I said in the comments section, I don't use SPICE anymore and I prefer using SIMPLIS as I can immediately extract the ac response from the switching circuit without the need to resort to an average model. It offers the advantage of simplicity but it also works for converters who do not have an averaged model like the LLC converter for instance. Finally, I used SIMPLIS a lot to verify my equation-based models published in my last book. You can find plenty of ready-made examples working on the free demo Elements and there are forward converters if you want to give it a try. I hope this is useful for your design! Cheers.


Not the answer you're looking for? Browse other questions tagged or ask your own question.