4
\$\begingroup\$

I would like to create a SPICE model for a constant power load. I'm guessing that would involve using an equation to dynamically adjust the model's resistance based on the applied voltage. How do you do this in SPICE?

(I'm currently using Eagle but any SPICE2 or SPICE3 answer will work)

\$\endgroup\$

2 Answers 2

3
\$\begingroup\$

You could use a resistor and define the resistance as a function of the voltage across it. R=V_R^2/power

V_R is the voltage across the resistor (power supply) and for "power" you can use a value for the desired constant power.

I found a link to an example.

edit:

Here is the netlist:

R1 V_R 0 R=limit(0.0001,V(V_R)**2/100,10000)
V1 V_R 0 SINE(11 10 1k)
.tran 0 10ms 0s 100ns
.backanno
.end

for this simulation: enter image description here The limits are the min and max value of the resistor and can be changed to any number. But without the limit, the current will rise to very extreme values at nearly or exact 0V across the resistor (R=0). With V_R >> 0V you don't need the limits. In this case the load is 100W. You have to change the number "100" in the formula for R1.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks - but what would the actual syntax be? What would the netlist file look like? \$\endgroup\$ Jul 21, 2019 at 9:21
  • \$\begingroup\$ @JeremiahRose I deleted my second answer and edited this answer instead. Also included the Spice netlist. \$\endgroup\$
    – Momchilo
    Jul 21, 2019 at 14:12
  • \$\begingroup\$ Thanks. This answer works for me in LTSPICE! I can't get it to work in Eagle though. \$\endgroup\$ Jul 22, 2019 at 9:30
4
\$\begingroup\$

Use an Arbitrary behavioural voltage source (bv). Set Value to P=10 for 10W.

enter image description here

If your system is starting at zero volts then follow the instructions on LTspice: Modeling Constant Power Loads and define an initial behaviour using their example. I.e create a spice directive .step param foldback list 1 3 in you schematics and set the second value line of the arbitrary voltage source to Vprxover=foldback-

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.