Problems with MOV (Metal Oxide Varistor) simulation in LTspice

I recently ask a question relating this topic because I was having problems with the spice models supplied by the manufacturers wich consists of a logarithmic power law:

The problem was of the type "Time step too small".

Since then @Tim Williams suggested me to use a table expresion to attemt to solve the problem but the same problem arised:

.SUBCKT SIOV 1 2 PARAMS: T=1 C=1pF L=1nH B1=1 B2=1 B3=0 B4=0
R_SERIES  1 3 100u
L_SERIES  3 4 {L}
V_I_SENSE 4 5 0V
H_I_SENSE 6 0 V_I_SENSE 10k
R_I_SENSE 6 0 1G
B_VAR     5 2 table = (1e-6,799.968) (1e-5,927.732) (1e-4,1019.74) (1e-3,1099.143) (1e-2,1176.691) (1e-1,1257.9) (1,1347.942) (1e1,1457.19) (1e2,1614.786) (1e3,1914.646) (1e4,2728.713)
C_PAR    4 2 {C}
B_SW 7 0 VALUE={PWR(10,(B1+B2*(-7)+B3*EXP(+7)+B4*EXP(-7)))}
R_SW 7 0 1G
.ENDS


After that I wanted to find a better analytical function to substitute the logarithmic model and found this:

The yellow curve is the TDK varistor model with the following parameters:

B1=2.9094171 B2=0.0246895 B3=-0.0001545 B4=0.0052839


The blue curve is my custom function, whose parameters are the following:

K1=840 K2=1 K3=-0.5  a1=0.03 a2=0.735 a3=-0.344


The subcircuit netlis is the following:

.SUBCKT MOV_model 1 2 PARAMS: C=1pF L=1nH K1=840 K2=1 K3=-0.5  a1=0.03 a2=0.735 a3=-0.344
R_SERIES  1 3 100u
L_SERIES  3 4 20n
V_I_SENSE 4 5 0V
H_I_SENSE 6 0 V_I_SENSE 10k
R_I_SENSE 6 0 1G
B_VAR     5 2  V={ K1*LIMIT(V(6),1m,100G)**a1 + K2*LIMIT(V(6),1m,100G)**a2 + K3*LIMIT(V(6),1m,100G)**a3}
.ENDS


The problem that I have now is that its no behaving as expected. For example, when connecting the varistor to an RLC circuit (used to produce impulse currents as 8/20 waveform) usually the internal resistance, inductance and capacitance of the varistor are negligible to the RLC values of the RLC circuit and it should look like this:

But instead, the presence of the varistor with this model does change the circuit dynamics significantly:

Basically, I suspect there is something wrong with the way I'm writing the subcircuit expresion. But I havent find the issue yet and maybe there is something else that I am missing. Any idea?

Edit1: Some of you suggested a better description of the circuit that I'm using. Here is a more detailed screnshoot :

Following @tobalt suggestion I tried using the following formula for the variable resistance:

$V(I)&space;=&space;K_1\cdot&space;i^{a_1-1}&space;+&space;K_2\cdot&space;i^{a_2-1}&space;+&space;K_3\cdot&space;i^{a_3-1}$

This variable resistance aproach actually works better although it still not producing the expected results since the short circtuit current still difers from the current across the varistor

The blue curve is the varistor modeled as a variable resistance, the red curve is with my MOV model based on a behavioral voltage source. What changes should I make to model the negative part of the impulse?

Edit 2: After fidgeting around I noticed that in my subcircuit model (and also de TDK model) the "H_SENSE" line has a transconductance of 10k which I dont understand why they chose this value instead of just 1 since "H_SENSE" is transforming the measured current from "V_SENSE" to a voltage in order to use it in the formula as @SteKulov mentioned in a coment.

For now, it seems that with these changes my model is working a little bit better

• I've edited your question to make it clearer. Of course, if you don't like those edits you can roll-back to your version. Commented Jun 27, 2023 at 11:23
• Thank you very much Andy! Commented Jun 27, 2023 at 11:26
• could you post a spice schematic of you varistor model? are you sure that the component names work as they should with the underscore? Commented Jun 27, 2023 at 12:16
• it looks like you have a voltage source BV there? I guess it is better to simply use a resistor that directly depends on the voltage between nodes 1 and 2. and then some Cpar and Lser Commented Jun 27, 2023 at 12:18
• Do you mean the underscore in the "MOV_model" name? If yes, I'm pretty positive its this syntax is okay since I have already used it for other models before. :) Commented Jun 27, 2023 at 12:18

You have derived the $$\I(V)\$$ relationship. So the corresponding resistance description $$\R(V) = \frac{V}{I(V)}\$$.
• A behavioral resistor in LTspice converts into a behavioral current source with the I= set to the voltage across it divided by what R= is set to. Regardless, the reason why TDK uses that goofy H-source off to the side is because of the blurb explained in the LTspice help that says: "..the circuit element current is varying quasi-statically, that is, there is no instantaneous feedback between the current through the referenced device and the behavioral source output". The additional H-source converts the current to a voltage which is then used in the behavioral expression without a problem. Commented Jun 27, 2023 at 15:59