Ask Your Question

Revision history [back]

Instability during constant power load characteristic model dynamic simulation

Hi all,

First time custom user model writer and PSSE user here. The system I want to model is similar to the PERCBL1U model from the ModelLibrary document, but I need some different features. Most importantly I want to operate with constant power load instead of constant current/admittance.

I have tried building a custom version similar to PERCBL1U (only taking P into account for now) where I essentially calculate P_INIT either with the CLODFR() functions or use a fixed value for constant power.

My problem is the following: When I apply a balanced fault to a bus, the system becomes unstable (very high frequency chatter >>1.0pu) when I use constant power mode. When I switch to constant current there is no instability. This instability only occurs when the load power setting is close to the generator MBASE value. My .sav file contains a single generator [1 'GENCLS' 1 30.0000 0.000], a transformer, and my user model [USRLOD].

I understand the feedback which occurs when current injection is done with constant power (i.e. decreasing voltage = increasing current gives positive feedback), but my guess is that with heavy filtering even this should eventually be stable. Which does not seem to be the case for weak grid / low SCR. The instability chatter seems to be randomly set off, not even necessarily during the transient, but can be in the middle of a fault.

A snippet from T-entry mode = 3 below:

VT = ABS(GET_VOLT(IB))

PLOAD = PINIT → constant current

PLOAD = GETVAR(L+1) → (or) constant power

IPLOAD = PLOAD / VTF

PQOLD = PQ_INIT / SBASE

PQNEW = CMPLX(IP_LOAD*VT/SBASE, 0.0/SBASE)

IINJ = GETCURNT(IB) - CONJG((PQNEW-PQOLD)/GET_VOLT(IB))

CALL SETCURNT(IINJ, IB)

PQ_INIT get calculated with the CLODFR() functions in the T-entry mode 3. I filter VT with NWLAG in the following way:

In the normal subroutine entry, mode = 2;

VTF = NWLAGMODE2(1.0, GETVAR(L+10), 10.0, -10.0, VT, K)

In the T-entry initialization, mode = 1;

VTF = NWLAGMODE1( 1.0, GETVAR(L+10), 10.0, -10.0, ABS(GET_VOLT(IB)), K, IERR )

In the T-entry, mode = 3;

VTF = NWLAGMODE3(1.0, GETVAR(L+10), 10.0, -10.0, ABS(GET_VOLT(IB)), K)

Any tips on where to look would be appreciated.