0
\$\begingroup\$

I'm trying to charge a 200V battery with a 100V battery with the help of a boost converter in Simulink, just as an experiment. This is my circuit:

enter image description here

The 100V battery is V1 with a series resistance Rseries1 and the 200V battery is V2 with a series resistance Rseries2. The series resistance for both batteries is set to 0.01 ohms and the inductor is set to 220uH with a series resistance of 0.025 ohms. The duty-cycle is set to 50%.

I'm measuring the input and output power in this manner: enter image description here

The multimeters are used to measure the input and output voltage and current, the product block is used to multiply voltage and current and get the instantaneous power and the RMS block (fundamental set to 20kHz, which is the switching frequency) is used to get a steady value.

When I run the simulation, I get this result:

enter image description here

The output power is higher than the input power!

I initially thought that this error could be due to the voltage source present on the output side, so I replaced it with a 100ohm resistor and ran the simulation again. This is what I got:

enter image description here

The output power is still higher than the input power. So bizarre!

Next, I added an output capacitance of 330uF and ran the simulation again.

enter image description here

This time, the measured output power is less than the measured input power.

So why was there an over-unity efficiency in the previous cases? What have I done wrong?


edit

As per devnul's suggestion, I replaced the RMS blocks with Mean blocks and re-ran the simulation. T enter image description here

This time, the output power is less than the input power, but only by half-a-watt. (Ignore the minus sign.) The efficiency is close to 100%. Very unlikely.

I did the same thing with the 200V battery.

enter image description here

Here, the output power is much lower than the input power.

What's going on?

\$\endgroup\$
8
  • 1
    \$\begingroup\$ @devnull Yes, I just did that and got proper results. Could you tell me why the RMS block gave me incorrect results, please? \$\endgroup\$ Commented Oct 19, 2021 at 16:01
  • 5
    \$\begingroup\$ What have you done wrong - you've used RMS on power. RMS is for using with a linear quantity like voltage, or current. It's got a square term in there to implicitly turn things into power before averaging. If you're starting with power, then you need to do a straight sum over time to get energy, or the equivalent average to get mean power. The square term corrupts the meaning of an average for power. \$\endgroup\$
    – Neil_UK
    Commented Oct 19, 2021 at 16:53
  • 3
    \$\begingroup\$ I'd suggest running this simulation in a proper SPICE-based tool, such as LTspice. \$\endgroup\$
    – rdtsc
    Commented Oct 19, 2021 at 17:51
  • \$\begingroup\$ @rdtsc I usually use LTspice, but I'm trying to learn simulink, which is why I simulated it there:) \$\endgroup\$ Commented Oct 20, 2021 at 3:23
  • 2
    \$\begingroup\$ In your question, you rejected the multiply and mean block because 432 was too close to 433. However, your residual resistances are so small that you can expect the efficiency to be close to 100%. Only if you model realisitic losses are you going to get 80/90% efficincies. Set all loss resistance to zero and try again, you should get 100%. If not, it means the summation instead of integration approximation is not accurate enough, step-size and integration acccuracy is always a problem in simulators. \$\endgroup\$
    – Neil_UK
    Commented Oct 20, 2021 at 7:46

1 Answer 1

3
\$\begingroup\$

I'm measuring the input and output power in this manner:... The multimeters are used to measure the input and output voltage and current, the product block is used to multiply voltage and current and get the instantaneous power and the RMS block (fundamental set to 20kHz, which is the switching frequency) is used to get a steady value.

That's not how to calculate power. RMS blocks should only be used to get the rms value of a voltage or current waveform. Average power is the integral of instantaneous power over a period. The multiply block gives you instantaneous power, so you just have to average it.

This time, the output power is less than the input power, but only by half-a-watt. (Ignore the minus sign.) The efficiency is close to 100%. Very unlikely.

Simulations use simplified models or reality, and so are not 100% accurate. I simulated your circuit in LTspice using a 10A fast-recovery diode and a 'perfect' switch in place of the IGBT. Calculated efficiency was 99.2%, with the diode dissipating ~2.8W, the coil ~1W, and the battery resistances ~0.4W each. In reality the IGBT would dissipate significant power, the inductor would have core loss, and there would also be parasitic capacitance and inductance to account for.

To get realistic results you have to use realistic models. Whenever possible you should select real components that are similar to the devices you intend to use, and beware of model limitations (many behave very unrealistically outside their normal operating range).

\$\endgroup\$
2
  • \$\begingroup\$ The diode is set to have a voltage drop of 0.6V. At 200V and a power of 450W, there's 2A of current flowing through the diode, so 1.2W of power loss in it. In addition to that, there's losses in the IGBT, inductor, capacitor and the battery series resistances. Thats why a difference of less than 0.5W between the input and output power seemed odd to me. \$\endgroup\$ Commented Oct 20, 2021 at 15:43
  • \$\begingroup\$ Seems there is some inaccuracy in the calculations. Can Simulink tell you the losses in each component? \$\endgroup\$ Commented Oct 20, 2021 at 21:53

Your Answer

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

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