I would like to determine as accurately as possible (ideally within an error limit of +/- 0.25% or better, but I guess that's nigh impossible) the efficiency of a converter, using a simple method.

I need to have the instantaneous value of the efficiency, so calorimetric approaches won't do (Plus I don't have the equipment for that).

By 'instantaneous' I mean that since the switch operates at high frequency - in the upper tens of the kHz range - it will not falsify the results to average them over - say 10 cycles if need be, since the load is switched every few seconds or so; so the time resolution required is in the order of 100-1k measures/second.

Measuring the input and output voltages and currents would be another option, but this gives highly inaccurate results. (Partially because the instrument I use has a limit of 20 A and the current I measure is around a few 100 mA.)

What I have is: a very low power converter (P_rated = 5 W) with several load points in which to measure the efficiency at constant voltage V_out = 5 V. I have multimeters and digital scopes (with current probes). Theoretically I can measure on the PCB (I have access to the components and traces.)

Can anybody suggest a setting/method on how I could get some improvement in my measurement accuracy? Or maybe do I need to buy something else to get a better result?

EDIT: The converter is a simple buck (DC/DC) converter with a synchronous rectifier or a diode (both configurations possible). You can see the full specs here.

enter image description here

  • \$\begingroup\$ Can you specify what type of converter is it? AC-DC, DC-DC, an maybe some details? The best would be a scheme. \$\endgroup\$
    – clabacchio
    Jan 14, 2012 at 18:48
  • \$\begingroup\$ I edited the question. \$\endgroup\$
    – Count Zero
    Jan 14, 2012 at 19:27
  • 3
    \$\begingroup\$ MAJOR QUESTION: You said "Measuring the input and output voltages and currents would be another option,but this gives highly inaccurate results." Question: Would this be acceptable if results were accurate. I have done a large amount of measurements using that simple method on circuits functionally the same as what you are describing with good accuracy. Certain things need to be done to avoid major errors. Please answer that then I'll add more. \$\endgroup\$
    – Russell McMahon
    Jan 15, 2012 at 7:39
  • \$\begingroup\$ @RussellMcMahon: Thanks, that would be great! I'm really open to any suggestions that help me get better accuracy. \$\endgroup\$
    – Count Zero
    Jan 15, 2012 at 10:40
  • \$\begingroup\$ @clabacchio: No you're not. :D Here's what I have right now: Agilent DSO 6000 Oscilloscope (4 channels) & a bunch of Metex M-3860M multimeters. \$\endgroup\$
    – Count Zero
    Jan 22, 2012 at 15:43

5 Answers 5


Here's a relatively simple solution, but not necessarily a cheap one (depending on your budget).

An oscilloscope is not likely to give you the accuracy you asked for because they typically use an 8-bit ADC, giving 0.2% in measurement uncertainty just from the sampling digitization.

Instead, consider simply using two benchtop multimeters, like Agilent 34401A's. I haven't looked at other models, but the 34401A can measure current at the accuracy you need (for example, 0.05% of reading + 0.005% of full-scale on the 100 mA range).

They can be triggered externally at 300 readings / second (for 5-1/2 digit resolution), so that gets you a sample window much shorter than your load switching cycle. If you hook the meters up to measure the input and output current, then trigger them simultaneously you'll be able to compare the results to determine the efficiency (assuming the input and output voltages are holding constant).

If the input and output voltages are also changing, you may need 4 multimeters to get all the information you need.

If you can synchronize your measurement to the moments when the load switches, you only need half as many multimeters, because you can first measure how the input current & voltage change in response to the load switch and then move the meters around and measure how the output responds to the switching event.


The mentioned specs can be achieved using two high-quality voltmeters and two very low burden voltage ammeters, all capable of logging to enable the use of averaging algorithms.

To exceed the specified 0.25% resolution, current and voltage measurements, assuming identical measurement techniques at the input and output (hence identical relative errors), must satisfy the uncertainty equation resultant from the efficiency calculation \$(\eta=P_{out}/P_{in}) \$: $$ \sqrt{\left(\frac{\delta P}{P_{in}}\right)^2+\left(\frac{\delta P}{P_{out}}\right)^2} < 0.25\% $$ $$ \sqrt{\left[\left(\frac{\delta V}{V_{in}}\right)^2+\left(\frac{\delta I}{I_{in}}\right)^2\right]+\left[\left(\frac{\delta V}{V_{out}}\right)^2+\left(\frac{\delta I}{I_{out}}\right)^2\right]} < 0.25\% $$

Using the uCurrent to get rid of burden voltage one can achieve 0.5% current measurement accuracy in the mA range, and, with a quality meter such as the Fluke 87V, 0.05% voltage measurement accuracy in the 6V range. Plug it into the equation:

$$ \sqrt{\left(\frac{0.05\%\times 6V}{5V}\right)^2+(0.5\%)^2+\left(\frac{0.05\%\times 6V}{5V}\right)^2+(0.5\%)^2} = 0.71\% $$

Pretty close. The current measurement error swamps this figure. It can be improved using averaging algorithms, assuming mostly random error. Meters with logging capability would allow for simple measurement synchronism.

If ripple at input or output can be measured, use the [true] RMS readings. In this case, though, the specified measured efficiency resolution is likely not useful. \$ \sqrt{4\left(\frac{V_{ripple,RMS}}{5V}\right)^2} \$ would be the best measurement I would look for. (Eg. 0.8% for 20mVRMS ripple.)


A lot of the following is (hopefully) "applied common sense 101". There is a fair bit of empirical twiddling suggested (a bigger capacitor here causes ... / a longer tome constant helps xxx but makes yyy harder ...). While this may seem to be far more complex that "just using a bench power supply" the same considerations apply whatever is used. If the power supply was created by ascended-masters such as HP or Tektronix it may already be able to deal with fed back noise and rapid current variations. If it was created by lesser-mortals as are many of the cheaper bench power supplies, it may be susceptible to load induced issues without this being apparent. I have seen the voltage indicated on two meter (current and voltage)supplies increase very substantially as loading was varied even though the supply was never in current limiting and voltage should have been constant and in fact more or less constant. Adding noise filtering between supply and load tends to fix such problems at the potential cost of adding "burden" resistance. This may be able to be overcome. See below.

The term "burden voltage" is often used to refer to the voltage drop across an ammeter. In tyhe examples below there is ZERO burden resistance.

Simple method: Input power can be measured adequately well by ensuring that the operating voltage is what is desired and then measuring the current in a manner that produces zero "burden voltage". Below are a simple and an even simpler way to achieve this.

The first diagram will require a few bits and pieces to finish it off (mainly a few capacitors) but is close to usable as is.

R1C1 and R2C2 are simply noise filters for the meters used. The requirements are discussed below.

Magic. Of sorts. R_Isense is used as a current sense resistor. Because the current is sensed before the voltage regulator of IC1/Q1 the voltage drop across it is unimportant. As long as Vin is adequate the drop across R_Isense may be 0.1 ohm or 1 ohm or 10 ohms or more. There is zero "burden voltage" - the voltage drop across the sense resistor is not reflected in a change in output voltage. Burden voltage = zero.

Rather than using a resistor at R_Isense an ammeter can be used. This also does not affect the output voltage and burden voltage is zero.

If the circuit switches between a sleep and awake mode with currents in the microamps range in the first case and 10's or 100's of mA in the latter I find it useful to use an ammeter set to auto-range io place of R_Isense OR an autoranging voltmeter across R_Isense. This allows current in either mode to be displayed and again/still there is zero burden voltage as the meter is on the input side of the voltage regulator formed by IC1/Q1.

Q1 and IC1 are a basic voltage regulator. The aim is to hold Vout at the same voltage as Vr. Say +5 VDC or whatever. To keep the very basic operation of the circuit clear I have not shown any noise filtering on Vout or in the opamp feedback loop, as discussed below. Filtering can be as heavy as is needed to get a clean Vout and as minimal as required to maintain response to load steps. A larger capacitor across Vout will make maintaining voltage easier BUT will prevent rapid current variations being seen across Isense. If Vout rises above Vr then op-amp output goes low turning Q1 off and reducing Vout as required. As shown the opamp is a comparator with open loop action and no feedback. While this would work OK, the user may wish to give the opamp finite gain by using negative feedback. An N Channel MOSFET is sused but this could be a P Channel MOSFEt with inverted drive to the opamp. Q1 could be bipolar but there is no obvious advantage in not using a MOSFET in typical cases.

As shown the noise from the buck regulator may (will) disrupt the opamp feedback loop. A capacitor can be added across Vout to source current peaks and rapid variations and reduce smps noise. A filter as per R1C1 nd R2C2 can be added between Vout and inverting input to reduce noise that may affect the opamp. An RC filter to the inverting input with a 1/time-constant several decades below the smps switchiong frequency should suffice. eg if the buck regulator operates at 100 kHz then a filter frequency of <= 1 kHz is a good starting point. eh 10k, 0.1 uF.
time constant t = RC = 10,000 x 1E-7 = 0.001 or Frc =~~~ 1 kHz.

Once you get Voltage supply "stable enough" as load varies you get some free magic. Supply current flows through R_Isense. Load current can be determined by measuring voltage across here. Thje more voltage you allow to drop across R_Isense the more accuracy (actually resolution) is available for determining current. If say I_load max = 100 mA. If R_Isense is 10 ohms it will drop 1 volt at 100 mA. If R_Isense = 100 ohms it will drop 10 Volt at 100 mA. Obviously Vin has to bve large enough to allow this. A 4 digit voltmeter will allow you to resolve 0.1 mA steps at 100 mA full scale. If available a 6 digit voltmeter of whatever accuracy it happens to be will allow you to resolve 1 uA steps. A meter with 6 digit "accuracy" is unlikely to be available. The use of a multi ranging meter, as mentioned above, effectively gives high accuracy and resolution.

enter image description here


An annoying to use but simpler and super low cost solution is as per the diagram below.

This is functionally equivalent to the prior arrangement but uses no active electronics and again has zero effective burden voltage.

Current is sensed with R_Isense or an ammeter at this position and Vout is then measured with the meter at Vout2. Filtering is often crucial for correct meter operation. As voltmeters are used R1C1 and R2 C2 time constants can be as high as required to remove smps noise at the expense of loss of response time.

Load power measurement is "more of the same." Voltage measurement with filtered meter to reduce smps noise enough. "Enough" will vary with manufacturer and noise level but is "easy", as above

If Rload is constant Power out can be inferred.

If Rload is dynamic then a current sense resistor or equivalent is needed. Again - "adequate" filtering is essential - with "adequate depending on immunity of meter to smps noise.

enter image description here

  • \$\begingroup\$ Somehow your images make my browser lag when I scroll by them, I am impressed. \$\endgroup\$
    – Kortuk
    Aug 17, 2012 at 16:04
  • \$\begingroup\$ Just checked. 15 Mp, 582 kB. 5098 x 3095. Similar for 2nd one. Must have not downscaled those after input :-). I took them with a 24Mp 6000 x 4000 camera. And, usually, downsize them to about 1000 x xxx. Usually. \$\endgroup\$
    – Russell McMahon
    Aug 17, 2012 at 16:50

It would seem that the easy part is to measure the wattage being consumed by the load on the 5V output since you can easily use carbon resistors to construct a purely resistive load.

To measure the power consumed by the PS it would seem you would need to do power factor calculations. If accuracy were not so critical something like a kill-a-watt might be appropriate.

Generally to achieve high accuracy a professional lab would have instruments that were professionally calibrated and certified on a regular basis. An error limit of +/- 0.25% is an extremely tight tolerance since that is a cumulative error across all measurement devices. In other words if the error in measuring input power were 0.1% and the error in measuring output power were 0.2% then the potential total error is 0.3% and already fails to meet your target. Don't forget to take into account the fact that most digital readouts are +- 1 digit which needs to be accounted for as well.

I wish you luck and am anxious to see how you do it.

  • \$\begingroup\$ Thanks! Me too! :D How about if I measure with the scope and calculate thing from the actual waveshapes and then average over several cycles? What's your bet, would that be better? \$\endgroup\$
    – Count Zero
    Jan 14, 2012 at 19:30
  • \$\begingroup\$ @CountZero, first you said you want the "instantaneous" efficiency and now you say you could average over several cycles...which one do you really want? If you've changed your requirements, could you edit your question to reflect that? \$\endgroup\$
    – The Photon
    Jan 14, 2012 at 20:12
  • \$\begingroup\$ @ThePhoton: Ok, that really needs some extra info. What I meant is that since the switch operates at high frequency (in the upper tens of kHz range), it will not falsify the results to average over say 10 cycles, since the load is switched every few seconds or so. \$\endgroup\$
    – Count Zero
    Jan 14, 2012 at 20:54
  • \$\begingroup\$ @CountZero, it always helps us to know if you mean you need a measurement averaged over seconds, milliseconds, microseconds or nanoseconds. When you say "instantaneous" I assume you mean a much shorter time than any frequency operating in the circuit. \$\endgroup\$
    – The Photon
    Jan 14, 2012 at 21:02
  • \$\begingroup\$ @ThePhoton: I edited the question to include that too. \$\endgroup\$
    – Count Zero
    Jan 14, 2012 at 21:46

I assume that the input is a DC source (I try guessing: a photovoltaic panel?).

OPTION1: A I->V converter at the output of the converter, like the MAX4173 that you have on the board, and the same at the input. Then, using the oscilloscope with a good averaging, you can measure quite accurately the power consumed using 2 channels for the input (V-I) and 2 for the output. Other than simply measuring the values, you can use the mathematical functions of the scope or (the best in my opinion) use the USB interface of the scope with the drivers provided by Agilent (I'm using these driver for the N6705B but they must exist also for your scope) and download data to your PC.

OPTION2 (simpler but less accurate): you can directly measure the output current with the signal feed to the ADC of the dsPIC: you have to consider also the power consumed by the voltage divider, but it's an easy task if you know the exact value of the resistors (possible) and the output voltage (that you have). For the input you still need a V->I converter, but it's quite easily doable with something like this.

Maybe the scope doesn't have the highest precision, but with many samples you can still get better results and it gives you a flexibility that the handheld multimeter doesn't have. And interfacing it with a PC you get access to the widest range of analysis.

OPTION3: If the source gives a slowly changing voltage, you can just use the multimeter to measure current and voltage; the problem is that this way you can't save the data automatically.

NOTE: Since probably the output voltage has an AC component due to the switching, you could try to average over a finite number of periods of the ripple.


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.