4.8  POSY: Polynomial with non-integer powers

4.8.1  Syntax

POSY c1,p1 c2,p2 ...
POSY c1,p1 c2,p2 ... args

4.8.2  Purpose

Defines a transfer function by a one dimensional “posynomial”, like a polynomial, except that the powers are arbitrary, and usually non-integer.

4.8.3  Comments

There is no corresponding capability in any SPICE that I know of.

For capacitors, this function defines charge as a function of voltage. For inductors, it defines flux as a function of current.

For fixed sources, it defines voltage or current as a function of time.

Normal use of this function required positive input (voltage or current). The result is zero if the input is negative. Raising a negative number to a non-integer power would produce a complex result, which implies a non-causal result, which cannot be represented in a traditional transient analysis.

The transfer function is defined by:
if (in >= 0){
  out = (c1*in^p1) + (c2*in^p2) + ....
}else{
  out = 0.
}

4.8.4  Parameters

MIN = x
Minimum output value (clipping). (Default = -infinity.)

MAX = x
Maximum output value (clipping). (Default = infinity)

ABS
Absolute value, truth value. (Default = false). If set to true, the result will be always positive.

ODD
Make odd function, truth value. (Default = false). If set to true, negative values of x will be evaluated as out = -f(-x), giving odd symmetry.

EVEN
Make even function, truth value. (Default = false). If set to true, negative values of x will be evaluated as out = f(-x), giving even symmetry.

4.8.5  Example

E1 (2 0 1 0) posy(1 .5)
The output of E1 is the square root of its input.