This is an interesting problem from the physics viewpoint, due to the singular waveform and the variations in duty cycle. I'll try to tackle it. Since duty cycle introduces harmonics, nonidealities will kick in if the duty cycle is reduced too much, since the higher harmonics will become much stronger. I'll disregard that effect.
As you said, your problem is equivalent to finding the maximum flux at a given frequency. Begin with Ampere's Law, which tells you that for a given magnetizing current I, \$ B = \displaystyle \frac{\mu N I}{\mathcal{l}} \$, where N is the number of turns, and l the magnetic length of the torus (*). Since you want the result in terms of voltage, use \$ V = \omega L I \$ to arrive to:
\$ B = \displaystyle \frac{\mu N V}{\mathcal{l} L \omega} \$
Since \$ L = A_N\cdot N^2 \$, (you must use A_N in Henries per turn square in the formula) this can be written:
\$ B = \displaystyle \frac{\mu V}{\mathcal{l} N A_N \omega} \$
Maximum flux is inversely proportional to frequency and number of turns. Increasing the numbers of turns, or the frequency, will increase the reactance of the coil. For a given voltage, that means that a smaller current will flow, so the mangetizing current will be smaller, hence the flux will decrease. That doesn't tell the whole story: ferrites lose inductance at high enough frequencies, and the core losses also increase with frequency. You must know your materials' propierties at the frequencies of interest.
The previous formula works for a pure sinusoid but, what happens with your variable duty cycle, bipolar square wave? Of course, such a wave is a superposition of sinusoids, so we just need to work out the Fourier components, at least to some reasonable order. As a general rule,
the further the duty cycle goes away from 50%, the higher the harmonic content.
Your waveform is peculiar because, when duty cycle reaches 100%, you have a regular square wave: the H-bridge is always either up or down, with no time disconnected. A duty cycle of 50% means a quarter wavelength at +1, a quarter at 0, a quarter at -1, and a quarter at 0.
So this is your wave at 0.5 duty cycle:
https://www.eevblog.com/forum/beginners/how-to-measure-toroid-saturation-at-a-particular-frequency/?action=dlattach;attach=293829;imageYour particular waveform, with unity amplitude, duty cycle k (between 0 and 1) and alternating polarity, has the following rather unnice Fourier series:
\$ \frac{2}{\pi}\, \sum_{n=0}^{\infty}\, \frac{1}{2n + 1}\,\left[ \left(1 - \cos (2n+1)k\pi\right)\,\sin(2n+1)t\ + \ \sin(2n+1)k\pi\,\cos(2n+1)t\right] \$
Here is a plot of the 0.5 duty cycle fourier approximation with fourty terms:
https://www.eevblog.com/forum/beginners/how-to-measure-toroid-saturation-at-a-particular-frequency/?action=dlattach;attach=293831;imageThe wave has only odd harmonics. It would be interesting to know what correction factor we should add to the sinewave flux formula in order to accomodate for the variable duty cycle. Well, we need only to add the amplitudes of the harmonics, divided by their harmonic index (since flux is inversely proportional to frequency). It is also possible to prove that the maximum flux will be reached when your waveform is at the middle of the 'on' voltage plateau. In essence, the flux, relative to a sinewave of the same frequency as your waveform, is:
\$ B_{rel} \quad = \quad \frac{2}{\pi}\, \sum_{n=0}^{\infty}\, \frac{1}{(2n + 1)^2}\,\left[ \left(1 - \cos (2n+1)k\pi\right)\,\sin(2n+1)\frac{k\pi}{2}\ + \ \sin(2n+1)k\pi\,\cos(2n+1)\frac{k\pi}{2}\right] \$
Oddly, a closed form for this series can be found, but it depends on some funny transcendental functions on the complex plane. For our purposes, it is enough to know that if we plot it, we get:
https://www.eevblog.com/forum/beginners/how-to-measure-toroid-saturation-at-a-particular-frequency/?action=dlattach;attach=293833;imageDuty cycle: | Relative flux: |
0% | 0 |
5% | 0.212 |
10% | 0.354 |
20% | 0.570 |
30% | 0.732 |
40% | 0.859 |
50% | 0.959 |
60% | 1.036 |
70% | 1.094 |
80% | 1.135 |
90% | 1.158 |
100% | 1.166 |
The relative flux is smooth and monotonic with respect to duty cycle, so other values can be interpolated from the table.
For example, if a coil is driven with your waveform and a maximum duty cycle of 30%, the formula for the maximum flux becomes:
\$ B = 0.732\cdot \displaystyle \frac{\mu V}{\mathcal{l} N A_N \omega} \$
Since the flux is monotonic with respect to the duty cycle, lower duties will have lower flux (if we ignore the fact that for higher frequencies, the permeability of the toroid will probably be lower), so the max duty cycle must be used to estimate the saturation flux.
I hope this has come off clear and without gross mistakes. I've been working late into the night the last couple of days, so I'm not at my best.
------
(*) A toroid has a non uniform magnetic length: the part nearer the inner radius has shorter length that the others, so it will saturate first. Then the torus will saturate in the outward direction. This means that, if you want to avoid
any saturation, you should take the minimum magnetic length. I think it's usual just taking the average.