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.
