X

Write your own software for one dimensional finite element analysis.

Every physical process takes place within some kind of time scale. Every process that happens in the real world is rate limited by __something__. Nothing in the real world actually occurs in zero time. Zero rise time and zero fall time waveshapes are a mathematical artifice, useful for many calculation purposes, but you will never find them in any physical system.

Instead, all physical events proceed differentially. A falling rock gathers velocity gradually (acceleration) and you can examine differentials in its falling velocity as it homes in on your skull. Voltages and currents vary differentially and in dependence on values of reactance, either inductive or capacitive.

Differential equations are descriptive of the proceedings of physical events. Finite element analysis relies on exactly that. Software for such analysis can be a wallet buster, but if we write our own software, we can use the finite element analysis concept to great advantage. I call these equations “one dimensional”; because the only dimension of concern is time.

For an inductance, we have V = L di/dt and for capacitance we have i = C dV/dt. Everything to be looked at differentially is with respect to time. A simple example would be an RLC circuit, perhaps as follows. Let the capacitor have some initial voltage, all that “VCAP”; and further assume that the inductor current has a current, call that “i,”; with an initial value of zero. We can create a calculation loop that uses recursive differential equations to describe what happens.

**Figure 1** A simple RLC decay result is achieved using recursive differential equations.

The above illustration holds no surprises. Arbitrarily using 100 pF and 1 mHy, we set the capacitor voltage to an initial value of 10V and then look at the exponentially decaying sine waves of the current and the capacitor voltage for several different values of series resistance. This result can be easily replicated in SPICE if we choose to do so.

**Figure 2** A still simple RLC decay result but with a variable capacitance.

One key advantage of using recursive differential equations is extreme flexibility. In the sketch above, we vary the capacitance value of C as if it were a varactor. The capacitance goes from 5 pF to 100 pF for which the waveshapes become altered. Some version of SPICE might somewhere exist, but none of the various versions with which I have had any personal acquaintance have had the ability to simulate swept component value variation.

Taken to much greater complexity, I once used recursive differential equations to simulate a three phase switch-mode motor drive (**Figure 3**).

**Figure 3** This is a three phase motor drive simulation.

The power MOSFETs are represented by resistances that get set as being open or to Rdson in keeping with the MOSFET timing. As I got deeper into equivalent circuits and into various initially-unanticipated stray effects, and as some hints were being dropped as to my dubious sanity, the actual waveform measurements versus the simulation waveforms started to line up.

**Figure 4** Here simulation is compared to measurement.

It became comforting to know that we had a truly solid grasp and understanding of what our motor drive was really doing and why.

*John Dunn is an electronics consultant, and a graduate of The Polytechnic Institute of Brooklyn (BSEE) and of New York University (MSEE).*

**Related articles**: