I am trying to simulate a metal oxide varistor. Since PLECS does not have this component, I have tried simulating it with a C-script block, a function block, or a 1D lookup table block. Attached I have the circuit I have been trying to make work. the voltmeter reads the voltage across the “varistor” and outputs the current that runs through it. I have also tried running it with a variable resistor but that also does not work. The error message I get is that it cannot solve the algebraic loop.

the attached file shows two different MOV models. The C-script seems to work the best, but only in the most ideal simple cases and gives an algebraic loop error if hooked into a circuit with something more complex (or inductive).

Is there a way to model the VI characteristics, or is there a better way to model a MOV?

MOV Model Tests.plecs (27.4 KB)

Hello,

Due to the fact that the voltage applied to the device affects the current, and the current driven through it affects the voltage drop across it, a variable-resistance by it’s very nature creates an algebraic loop. This is not easily solved without taking certain steps to break such a loop. We introduced “Algebraic Components” into the PLECS library (Electrical and Mechanical components) in a recent release that can be used for exactly this type of problem. I have included a very basic model showing the design and operation of a MOV using a current source stimulus and some dummy IV curve data implemented in a 1D Lookup Table. The requirement of the Algebraic Component is that the two output signals, “v” and “i”, must affect the input signal “0” by means of a direct feedthrough path. In this case, I chose to drive the “0” input signal to zero by subtracting the calculated value of voltage as provided by the lookup table from the measured voltage value in the component. You should be able to use this model as a reference and include your own custom data in the lookup table (you could also have temperature dependence via a 2D Lookup Table). I hope this helps.

Regards,

Kris

MOV_Example.plecs (7.78 KB)