Bode plot of flyback control loop using oscilloscope DHO924S - Page 1
Forum section: electronics / projects

author: nicsam92
author_rank: Newbie
timestamp: September 19, 2025, 12:44:45 pm
content: Hello. I have a 10W flyback converter going from 230V to 12V. It seems to work fine. But I want to analyze the control loop by using bode plots. I tried to use my Rigol oscilloscope DHO924S, but my bode plots become quite noisy and I don't really know if I can trust the plots.I have a 10ohm resistor in the feedback-circuit across which I inject the AC signal. It's pretty much according to the diagram that I include in this post.Does anyone have experience using an oscilloscope for bode analysis of a converter? The plots should not be this noisy right? I make sure to have short GND wires for my probes. Not sure what else I can do to get better plots.

author: Grandchuck
author_rank: Super Contributor
timestamp: September 19, 2025, 02:42:04 pm
content: You might get better results with an injection transformer.

author: TimFox
author_rank: Super Contributor
timestamp: September 19, 2025, 02:53:30 pm
content: As I posted in another lengthy thread a while back, I found the DHO914S Bode plot function to be inaccurate even on a simple R-C low pass filter (roughly 10 kHz corner). I believe the firmware does not allow enough settling time after each frequency step, and that time is not user-settable.

author: mawyatt
author_rank: Super Contributor
timestamp: September 19, 2025, 03:56:50 pm
content: Not only this ^^, but the Bode function needs to have good frequency selectivity in the measurement scheme, without which the results get contaminated by the switching artifacts!!Best

author: mtwieg
author_rank: Frequent Contributor
timestamp: September 20, 2025, 01:05:55 pm
content: I've done a lot of transfer function measurement on SMPS, here's the most important things:1. Trigger the scope on the injection signal, not on any probes connected to the SMPS itself. Best is if the function generator producing the injection signal has a separate trigger output.2. Set the vertical scaling of the scope based on the raw signals (bandwidth limiting is fine, but no averaging or hi-res acquisition modes).3. Once you've adjusted the vertical scaling such that none of the signals are clipping, turn on averaging acquisition mode on the scope. Usually I end up using somewhere between a factor of 16 and 64 depending on the injection frequency. Often this will leave behind clean waveforms with small amplitudes. Do not adjust the scaling to zoom in on them.4. Configure auto measurements of amplitude (I always use AC RMS, not amplitude or peak-to-peak) and phase.5. Adjusting the amplitude of the injection signal is the most tricky part. Need to make sure it's large enough to get decent measurement accuracy, but not too high to introduce nonlinearity. Usually every octave in frequency I'll check that making a small adjustment to injection amplitude doesn't change the measured gain/phase. Also remember to check the vertical scaling as you change injection frequency and amplitude.It's a tedious process to do properly. Which is why fancy instruments like the Bode 100 are sought after by engineers who have to do this often.

author: youngda9
author_rank: Regular Contributor
timestamp: September 22, 2025, 03:19:06 pm
content: What is the signal injection amplitude that you're using?What is being plotted on the scope (sorry I can't tell), is it V(A)/V(b) ?

author: 2N3055
author_rank: Super Contributor
timestamp: September 22, 2025, 03:56:50 pm
content: Quote from: mtwieg on September 20, 2025, 01:05:55 pmOn Bode plot on Siglent you don't have to any of those things.1. You don't need to set triggering to anything. Software takes care of that.2. Levels will be set automatically, or forced to manual if you require it for some reason.3. Software automatically does averaging and uses propper FFT based algorithm to extract amplitude and phase.4. Standard measurements of amplitude and phase are not used, but said FFT based measurements. That makes results very selective and rejects very well any noise (in this case switching noise)4. You can not only adjust injected signal level, but can create a table of different levels across the sweep. That is combined by adaptive gain for measured channels. You can run a check sweep with time domain display to check nothing saturate and then if all was right you go back to se measurement results.It takes certain care but is not tedious and is really straight forward. Then you also have several measurements like BW, LP and HP point, even phase margin directly there. And you can save that as image or as a CSV table for post processing.Try it if you can.

author: mawyatt
author_rank: Super Contributor
timestamp: September 22, 2025, 04:29:31 pm
content: Here's a few articles that might be of interest.https://www.edn.com/investigating-injection-locking-with-dso-bode-function/https://www.edn.com/injection-locking-acts-as-a-frequency-divider-and-improves-oscillator-performance/https://www.edn.com/diy-isolation-transformer-enhances-bode-analysis-with-modern-dsos/https://www.eevblog.com/forum/testgear/bode-plot-torture-test/https://www.eevblog.com/forum/projects/state-variable-active-filter/Best

author: Someone
author_rank: Super Contributor
timestamp: September 22, 2025, 11:10:13 pm
content: Quote from: 2N3055 on September 22, 2025, 03:56:50 pmEqually:On Bode plot on Siglent youcan'tadjust the averaging or acquisition window (ie, selectivity, and the noise rejection vs speed tradeoff).So it's all fine until it isn't, and then you're stuck having to implement the full solution anyway. Same as all the built in "bode" plot tools from other manufacturers.

author: 2N3055
author_rank: Super Contributor
timestamp: September 23, 2025, 06:44:41 am
content: Quote from: Someone on September 22, 2025, 11:10:13 pmItisfull solution. It is more comprehensive than any out there at this moment. It has one annoyance, and that is that you cannot make it less selective and less resilient to errors if you want to run it faster. Which would be nice for some occasions. I agree. I did ask Siglent to think about adding that option.But if you compare it to doing it all manually, or spending time writing and setting up your hand made software solution you are still order(s) of magnitude faster the way it is now. And it does have quite a lot more control than even excellent FRA on Keysight.One thing that you can do, for instance, that is really quick to setup and run, is to make a composite plot of 3-way active X-over gain/phase characteristics, because you can measure and plot over 3 outputs simultaneously. You can get nice plot how filter bands overlap, etc.In those cases single sweep is not as fast as Keysight, but as you do 3 simultaneously you are faster with the whole measurement.You can export data for further processing.For specific cases where you need to measure something specific to your project, you will have to cobble together something specific anyways. That I do not dispute.But, I think calling out that all built in FRA applications are useless is going a bit to extreme.Those that work well and measure right are very useful.

author: Someone
author_rank: Super Contributor
timestamp: September 23, 2025, 10:04:39 am
content: Quote from: 2N3055 on September 23, 2025, 06:44:41 amWow put your marketing hat away with those forcefully directed claims. You can keep blowing up with more positive energy and brand fanboyism but its not addressing the limitations.Yes, it is complete or "full". But.....It is not more comprehensive than any other option, only if you consider "canned" oscilloscope analysis options.Yes you cannot make it less selective and faster, but you cannot make it more selective and slower either! It is fixed and may not match the users needs, and is unlikely to ever be optimal.I said people would need to put together a "full" solution to go further if they found any single limitation in the built in app, to surpass its basic feature set. It is right there in the quote you chose.Quote from: 2N3055 on September 23, 2025, 06:44:41 amKeep saying this every time it is brought up, and we'll keep pointing out there are many existing software solutions out there. Not comparable at all to doing it by hand over and over. Skipping over the main point which is:if the built in app does not have the required feature/option/capability, in this case increasing selectivity for extracting the synchronous signal amongst switching activity/noise, then it is simply no use. A dead end at which point something else is required, as the OP has hit with their example.I suggest the OP would be better off understanding the underling techniques and methods rather than buying n oscilloscopes so they can swap them out hoping that the particular bode measurement application hits their needs.But we've been here before:https://www.eevblog.com/forum/projects/bode-plot-(-1hz-to-10-mhz)/?allSame people, same fanboyism.

author: 2N3055
author_rank: Super Contributor
timestamp: September 23, 2025, 11:22:47 am
content: Quote from: Someone on September 23, 2025, 10:04:39 amSame people, same totalitarian views...If you keep pulling out corner cases that prove only your point, and claim they are the only ones relevant, you will always be right.I will repeat. For majority, plain vanilla cases embedded Bode applications are great. If your problem lies outside their capability envelope, do not use them. Of course.

author: mtwieg
author_rank: Frequent Contributor
timestamp: September 23, 2025, 12:07:53 pm
content: Oh both of you calm down.Quote from: 2N3055 on September 23, 2025, 06:44:41 amNot having this be adjustable is one thing, but I can't find any documentation describing how much filtering/averaging is applied. Or maybe it's "smart" and automatically adjusts averaging?Quote from: 2N3055 on September 23, 2025, 11:22:47 amYeah but how do I know it fits my use case without buying it?

author: 2N3055
author_rank: Super Contributor
timestamp: September 23, 2025, 05:10:53 pm
content: Quote from: mtwieg on September 23, 2025, 12:07:53 pmOn SDS800xHD for instance:It uses DFT based algorithm, and takes 3 consecutive captures per point and averages in frequency domain.In log sweep you can have 500 measurement points total.You can have all of them in one decade.In linear mode you can have up to 501 points at minimum of 1Hz distance.It works from 10Hz min to limit of AWG, but up to 20 MHz is working well if you deskew inputs properly.For PSU stability you pretty much need 100Hz to 100kHz range... 10 Hz to 1MHz is more than enough for that kind of work.If you want to know if it works for you, you can always ask for a loaner and try.

author: mawyatt
author_rank: Super Contributor
timestamp: September 23, 2025, 06:15:42 pm
content: Quote from: mtwieg on September 23, 2025, 12:07:53 pmThe actual Bode setup is critical in achieving good results, especially at higher frequencies! Errors can come from probes (10X generally aren't that accurate), poor cables and/or unequal length/delay/attenuation, poor 50Ω termination, fixturing, and the lack of proper channel "deskewing".Performa01 has demonstrated with a proper setup, quality cables and good splitter and 50Ω termination, core DSO instrument results can be quite good!!Besthttps://www.eevblog.com/forum/testgear/bode-plot-with-siglent-scope/msg6033901/#msg6033901

author: Someone
author_rank: Super Contributor
timestamp: September 23, 2025, 11:05:22 pm
content: Quote from: mtwieg on September 23, 2025, 12:07:53 pmThis is a real problem with the highly dimensional/parametric measurment possibilities that oscilloscopes now offer, it is impractical to have everything documented. Even simple questions like how many waveforms per second will a scope average are mysteries, which analysis such as bode plotting is usually then built upon.Price is low enough that you probably wont get much application support from vendors, with a notable exception being tautech on this forum who despite being in the game for money avoids generating one sided puffery that the fanboys pollute discussions/forums with.

author: 2N3055
author_rank: Super Contributor
timestamp: September 24, 2025, 06:57:13 am
content: Again with insults.When you have no real facts, insulting others to poison discussion so they give up..Fantastic.

author: mtwieg
author_rank: Frequent Contributor
timestamp: September 24, 2025, 12:27:34 pm
content: Quote from: 2N3055 on September 23, 2025, 05:10:53 pmHmm, that's not a lot of averaging, I'd be worried about issues when the switching frequency is near a harmonic of the injection frequency...Quote500 doesn't sound like a lot, but it's certainly way more than I'd be willing to measure with the manual method.QuoteYeah I looked for short term rentals but couldn't find anything, at least not at test equipment brokers I'm familiar with. Maybe I should contact Siglent directly.I actually already have a 4 channel siglent scope (not sure of the exact model, but its maybe 5 years old). I can't find a way to check which specific models work with Bode Plot though...

author: 2N3055
author_rank: Super Contributor
timestamp: September 24, 2025, 01:00:55 pm
content: Quote from: mtwieg on September 24, 2025, 12:27:34 pmIt does not measure phase/gain in time domain. It does it in frequency domain. It takes long capture (for 100Hz it would take 1 second of data IIRC) and does DFT on that. You have processing gain there. Than it averages 3 of those.It is actually a LOT more averaging that with manual method. It 100% rejects all the bins except the one it cares for.The Siglent spent a lot of time designing this and stability of switchers was application in mind. Current version of Bode plot is actually called Bode II because they went and rewrote whole thing from the scratch from initial version because they were not happy with initial performance.If you would tell us the model number we could check. But by age it might support Bode with appropriate generator. SDS1000X-E already supports it.Best,

author: mtwieg
author_rank: Frequent Contributor
timestamp: September 24, 2025, 01:30:54 pm
content: Quote from: 2N3055 on September 24, 2025, 01:00:55 pmAh I was assuming you meant it acquired three periods of the injection frequency, did the DFT of that, and extracted the frequency bin for the injection frequency from that (effectively the same as averaging three periods). Is the acquisition time configurable by the user? I guess that would be equivalent to adjusting the RBW on a SA.QuoteI'll make sure to check when I get to the lab.

author: mawyatt
author_rank: Super Contributor
timestamp: September 24, 2025, 02:06:54 pm
content: Quote from: 2N3055 on September 24, 2025, 01:00:55 pmThis explains how the Bode II handled the Oscillator, Injection Locking, and Non-Linear aspects of various DUTs mentioned in our links above which have large effective "interferers" present close by. We had thought this was a synchronous sampling/demodulation effect, however DFT seems even a better solution!!Very curious as to how this was implemented? Guess that since the signal stimulus source is available, an exact integer number of cycles of input stimulus is processed which benefits the Window Function selection for selectivity bandwidth and out-of-band rejection.Anyway we've been quite impressed with the Bode II behavior, and anticipate even better with upcoming revisions.BTW when we did the investigation into using a high current/power (30A/300W) SMPS control by an AWG thru the SMPS "Sense Terminals" the Bode II was employed to view the control channel (Sense Terminal) characteristics, worked a treat as you can see here!!https://www.eevblog.com/forum/testgear/high-current-awg-using-power-supply/Best

author: 2N3055
author_rank: Super Contributor
timestamp: September 24, 2025, 02:28:45 pm
content: Quote from: mtwieg on September 24, 2025, 01:30:54 pmNo you can't control it. That is the critique, because on linear regulator, filter or something that is not so critical, it would be nice to dial it down to run faster.I can tell you that it has algorithm to get certain amount of periods, because as stimulus frequency rises, it adapts the time base.Also with adaptive leveling, you get really large dynamic range.Let us know what model it is. If it supports it, you only need Siglent AWG to try. Or if it is a model with AWG built in then you have all needed to try and see.

author: 2N3055
author_rank: Super Contributor
timestamp: September 24, 2025, 02:30:56 pm
content: Quote from: mawyatt on September 24, 2025, 02:06:54 pmMike,I don't know what exactly they use, but if it were me I would use Goertzel...Just saying...best,Sinisa

author: mawyatt
author_rank: Super Contributor
timestamp: September 24, 2025, 02:31:39 pm
content: Quote from: mtwieg on September 24, 2025, 12:27:34 pmIf you are in Tampa Bay Area, we could setup a demo andrent (brew)loan you one of our DSOs.Best

author: mawyatt
author_rank: Super Contributor
timestamp: September 24, 2025, 02:53:45 pm
content: Quote from: 2N3055 on September 24, 2025, 02:30:56 pmExactlyIf they employed the Goertzel algorithm, that is impressiveMaybe move over to another thread?https://www.eevblog.com/forum/testgear/siglent-bode-implementation-details/Best