You can make it with one MOSFET (paralleling them increases current capabilities), you just have to make sure you keep within it's ratings. Something like this circuit only uses a single IRFP450:
You could drive from the high side using your P-channel FETs, but I'd keep it simple and lowish power/voltage to start with.
Obviously be very careful with the high voltages ;-)
For a P-channel version, you can just swap all the polarities around from a design like this. You should end up with something like this (disclaimer, although it simulates okay, I have not tested this, so check everything carefully. The parts are not recommendations, just what LTSpice had available):
I think the reason for the confusion is this isn't a true ZVS (Mazilli) driver, at least, not like one I've ever seen.
ZVS Driver
Typically a ZVS driver is like this, where a center-tapped transformer primary is used in conjunction with a capacitor as an LC oscillator. Clever connection of the nodes via mosfets means that the FETs drive the LC tank at its resonant frequency.
Note: you don't need to use a center tapped transformer, it is merely commonly done to step up the output at the secondary. There is no reliance on magnetic flux linkage and thus you could do this with discrete inductors. An additional aside: you'll often see a single inductor in series with the supply before current gets to the center tap. This is used as a choke to limit current spikes.
In your circuit you've attached, you only have an inductor on a single side of the oscillator circuit. It will still oscillate, but less effectively as only half the circuit is used over a full period.
With this in mind, we can now get to your questions...
How is oscillation initiated?
This is an interesting question and slightly amusing because typically when it comes to simulating oscillators like this, you have the opposite problem in being unable to get it to oscillate! In the circuit I've shown, it's perfectly symmetrical, and so oscillation only begins because of mismatch between real components. At the beginning of the simulation, both FETs should fight to turn on exactly the same. Normally you could solve this by making one resistor value a few ohms off or changing the VTH of one FET slightly differently (this is what you'll have in reality anyway), and hence one will "win" the initial race and start the oscillations. From there, the resonant LC tank will take over and whether they are perfectly matched or not, it resonates.
I'm not 100% sure without reading source code for Falstad but my guess is they impose some kind of initial conditions that the circuit is asymmetrical at startup and hence it works at all. Why yours fails to reset though, is beyond me.
However, I've modified the circuit to be as I explained I've typically seen these.
Note that:
- This modified circuit does not have the same issue, and upon reset it starts oscillating immediately again.
- The output voltage is much higher than your simulated version (188 vs 134V), because both halves of the output period are being used effectively instead of just half.
- If you slow down the simulation, you'll note that your circuit has significantly more overlap where both MOSFETs are on. This burns a lot of power and takes away from the primary advantage of Mazilli ZVS drivers (hence the name Zero-Voltage-Switching). It's what lets ZVS drivers control so much power at such great efficiencies, and you're not getting that performance, which will require much more heatsinking if you're trying to build this.
How does one size the inductor for balanced tuning?
You don't. The balancing of the circuit is by-design, simply by having a symmetrical circuit in the first place. This is fundamental to you having half the circuit missing. Yours will oscillate, but never evenly, because each half of the circuit is asymmetrical. It doesn't matter how you size your inductor with this topology.
In the traditional design, the inductance is used along with the capacitor to set the switching frequency, and this is the primary factor in choosing its value.
\$ f = \dfrac{1}{2 \pi \sqrt{LC}} \$
Hope that answers your questions and for more good reading, check out these links here and here.
Best Answer
For repeat-ability I would suggest that you require some form of PID temperature control. You could use a simple thermostat but that would not present a repeatable temperature profile given atmospheric variances, etc. This can be achieved with an Arduino as you mentioned - google "Brett Beauregard" for some great PID tutorials on Arduino.
Depending upon how tight the temperature control needs to be, and this does not sound like an application where you require it to be held <1C, I would suggest a simple thermocouple or RTD PID temperature controller with relay controlling the DC link voltage (see ebay for cheap ready-made PID options), that covers the temperature range you are after. This should allow you to keep the heating and cooling within around 10C.
Ultimately you can vary the DC link voltage to get the required power, but in the ZVS mentioned, minimum voltage is 12V, so nowhere near zero power output is possible without modification of the ZVS. Also, it would require a more complex setup (with modifications to the ZVS) to be able to continuously vary the DC link voltage, but for the purpose you have outlined I would suggest it is likely overkill (albeit more elegant and better controlled).
The issue with the switching approach however, is that the switching will cause additional stress and heat in your MOSFETS. However if you set the operation such that the relay operates at a maximum of >1Hz, you should be OK. The reason that the workpiece should not normally be in the coil at startup is because it causes the inductance of the coil to shift, which may inhibit oscillation. If self-oscillation does not occur, the mosfets will short out and burn. Switching the DC supply causes large currents at startup when the workpiece is cold, and this is often less of an issue when the workpiece is hot (in the case of ferric materials). I have discovered in the past that the 'requirement' of having an empty coil at startup is not necessarily true and very much depends upon the relationship of the coil and the workpiece, and such operation IS often possible (albeit less sophisticated than it could be).
Since this is a DC supply, I am not sure what kind of SSR you will be using or where you hope to place it. A mechanical relay is possibly a better bet, placed between the DC power supply and the ZVS. I say this because if you switch the power supply instead, it will take time to come up to voltage, which is likely to cause problems with oscillation (many PSUs this is even a feature, "soft start"). By switching the DC Link with a relay it will be true on/off operation.
In short you will need to experiment, since your work coil, the size of your work piece, and its coupling to the coil will determine what you can achieve. I would suggest trying the relay option first as in many cases it works just fine with an appropriate interval (>1Hz). I would then reduce the DC link voltage manually as far as possible to provide:
If switching proves unreliable than you will need to consider varying the DC link, which will require a power supply that may be controlled from the PID temperature controller. I would also suggest that you should include some kind of oscillation detection, and fusing to the device in the longer term as you could have issues with exploding mosfets and / or fire if left unattended and the oscillations failed, presenting a dead short to the power supply.