Hey all,

So glad to have found an HPEESof forum.

I'm trying to create a non-linear user-defined model for a transistor based on the Curtice cubic model but with a few significant differences. For the extrinsic gate, drain, and source inductors I've found two ways of entering the elements into the MNA.

You can:

a) add an extra "internal node" for each inductor that will be used to solve for the inductor current thus removing the problem of omega=0 and having an omega in the denominator of the admittance.

b) Treat the inductor as lossy and add a small series parasitic resistor and compute tha admittance using a phasor style notation. Leading to:

y.real = (1/(sqrt(pow(0.001,2)+pow(omega*L_g_x_P,2))))*cos(-atan((omega*L_g_x_P)/(0.001)));

y.imag = (1/(sqrt(pow(0.001,2)+pow(omega*L_g_x_P,2))))*sin(-atan((omega*L_g_x_P)/(0.001)));

Again, resolving the short circuit that results as an infinite admittance at omega = 0.

Both of these solutions work for AC simulations but come time to implement the time domain function (analyze_tr()) solution a falls apart. The number of internal nodes are required to be equal in the transient function list (code options dialog) as in the top level of the user-defined model.

What is the correct way to handle inductors that will work consistently througout the model when it is simulated (including transient simulations)?

Also as a side request, if anyone knows of any examples that are larger and more complex than the non-linear diode that is shown in the documentation could you please point me in the right direction. Would probably save me asking dozens of dozens of questions...then it would just be dozens of questions.

Thanks in advance,

Steve

So glad to have found an HPEESof forum.

I'm trying to create a non-linear user-defined model for a transistor based on the Curtice cubic model but with a few significant differences. For the extrinsic gate, drain, and source inductors I've found two ways of entering the elements into the MNA.

You can:

a) add an extra "internal node" for each inductor that will be used to solve for the inductor current thus removing the problem of omega=0 and having an omega in the denominator of the admittance.

b) Treat the inductor as lossy and add a small series parasitic resistor and compute tha admittance using a phasor style notation. Leading to:

y.real = (1/(sqrt(pow(0.001,2)+pow(omega*L_g_x_P,2))))*cos(-atan((omega*L_g_x_P)/(0.001)));

y.imag = (1/(sqrt(pow(0.001,2)+pow(omega*L_g_x_P,2))))*sin(-atan((omega*L_g_x_P)/(0.001)));

Again, resolving the short circuit that results as an infinite admittance at omega = 0.

Both of these solutions work for AC simulations but come time to implement the time domain function (analyze_tr()) solution a falls apart. The number of internal nodes are required to be equal in the transient function list (code options dialog) as in the top level of the user-defined model.

What is the correct way to handle inductors that will work consistently througout the model when it is simulated (including transient simulations)?

Also as a side request, if anyone knows of any examples that are larger and more complex than the non-linear diode that is shown in the documentation could you please point me in the right direction. Would probably save me asking dozens of dozens of questions...then it would just be dozens of questions.

Thanks in advance,

Steve

Kostas.