CURENT / andes

Python toolbox / library for power system transient dynamics simulation with symbolic modeling and numerical analysis 🔥
https://ltb.curent.org
Other
224 stars 111 forks source link

Time domain simulation of fault failed for system with renewables #337

Closed imitator19 closed 2 years ago

imitator19 commented 2 years ago

For andes systems with wind or PV, time domain simulation fails at the time of fault: "Time step reduced to zero. Convergence is not likely."

Steps to reproduce the behavior:

  1. Find the ieee14_wt3.xlsx or ieee14_solar.xlsx attached with andes package
  2. Add fault to the system at bus 8: tf = 1, tc = 1.3, xf = 0.0001, rf = 0
  3. run time domain simulation
  4. See error
cuihantao commented 2 years ago

Thanks for reporting the issue. I was able to replicate the issue but don't have a solution yet.

The error is due to not being able to find solutions to algebraic equations. It might be caused by the control parameters of the renewable model. One way to troubleshoot is to keep only the REGCA1 model and test it again. Adjust the parameters until it converges, then add back REECA1, and tune the parameters.

I'm tied up recently and will be able to work on it late this month.

imitator19 commented 2 years ago

Thank you for your fast response and suggestions. I will try to troubleshoot it on these two days, and report the result here.

imitator19 commented 2 years ago

I have removed REECA1 and REPCA1, only leaving the REGCA1 for renewable modeling, in the case of ieee14_solar.xlsx. I have tried a variety of parameter combinations, the simulation continues to fail, however. I think it may be necessary to inspect the equations of REGCA1 that do not converge. Thank you.

cuihantao commented 2 years ago

Thank you for your time and update.

If you are interested, another direction for troubleshooting is to increase the fault impedance xf to a large value, say 0.1, to reduce the severity of the fault. If the system converges, then slowly decrease xf and see if any of REGCA1's variable sees sharp changes. All variables of REGCA1 can be viewed using ss.TDS.plt.panoview(ss.REGCA1). Related parameters of sharply changing variables may offer some clue.

I will work on it later this month.

Payne1992 commented 2 years ago

Hi Cui, I‘m Payne, from CSG, China, I've been studying Andes recently and would like to ask a question about why andes can finish a 20-second transient simulation of a 2000-bus system in a few seconds. while other software or toolbox takes tens of seconds to calculate. What is the secret to speed up?

cuihantao commented 2 years ago

@Payne1992 Please start a new thread in Discussions and do not reply to an unrelated issue in the future :)

It's mostly owing to the implicit integration method, vectorization, and numba compilation.

cuihantao commented 2 years ago

@imitator19 : The convergence issue you experienced is likely a no-solution case. A fault is implemented by a shunt with a small impedance, which effectively draws reactive power from the fault bus. As a result, the voltage will be reduced to almost zero, but the drawn reactive power, i.e., V^2/X, can still be too large for the network.

I created the case with REGCA1 only in PSS/E and got the same non-convergence issue. A fault is applied to Bus 8 at t=0.1 and cleared at t=0.11 with the default impedance parameters. PSS/E complains that the network does not converge immediately after the fault clearing. Note that in PSS/E, the fault is cleared at t=0.11 but will take place at the next step.

The PSS/E output is in the below, and I attached the case files for your reference.

regc_fault.zip

 Ordering network...
 Diagonals = 13   Off-diagonals = 22   Maximum size = 36

  ITER       DELTAP      BUS         DELTAQ      BUS        DELTA/V/      BUS       DELTAANG      BUS
   0.0       0.0001(      2     )    0.0001(      9     )
                                                             0.00000(            )   0.00000(      2     )
   0.5       0.0000(      2     )    0.0001(      2     )
                                                             0.00001(      2     )   0.00000(            )
   1.0       0.0000(      2     )    0.0000(      2     )

 Reached tolerance in 1 iterations

 Largest mismatch:     -0.00 MW      0.00 Mvar      0.00 MVA at bus 2 [BUS2        69.000]
 System total absolute mismatch:                    0.01 MVA

 SWING BUS SUMMARY:
   BUS#-SCT X-- NAME --X BASKV      PGEN     PMAX    PMIN      QGEN     QMAX    QMIN
      1     BUS1        69.000      81.5    200.0    50.0       2.0    100.0   -50.0

 Generator conversion completed using ZSORCE

 11 loads converted during this step

 11 of 11 loads converted

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
        6      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       11      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       16      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       21      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       26      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       31      23      12

 5 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       36      23      12

 14 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
       50      37      26

 80 Output channels have been added

 Next available addresses are:
   CHANNEL    VAR    ICON
      130     117     146
 Ordering network...
 Diagonals = 14   Off-diagonals = 24   Maximum size = 40

 14 diagonal and 24 off-diagonal elements

 Model GENROU Bus 2 [BUS2        69.000] Machine "1 " :
 X''D =  0.2800     and Imaginary part of complex machine impedance (ZSORCE) =  0.1300     differ by > 0.000005

 Model GENROU Bus 3 [BUS3        69.000] Machine "1 " :
 X''D =  0.3400     and Imaginary part of complex machine impedance (ZSORCE) =  0.1300     differ by > 0.000005

 Model GENROU Bus 6 [BUS6        138.00] Machine "1 " :
 X''D =  0.2800     and Imaginary part of complex machine impedance (ZSORCE) =  0.1200     differ by > 0.000005

 Model TGOV1 Bus 6 [BUS6        138.00] Machine "1 " :
     PMECH Initialized out of limit: PMECH (pu on Trate)=  0.3000       VMIN=  0.3000

     PTI INTERACTIVE POWER SYSTEM SIMULATOR--PSS(R)E     SAT, JUN 25 2022  12:38
  IEEE 14 BUS TEST CASE
  03/06/14 CONTO           100.0  1962 W

 INITIAL CONDITION LOAD FLOW USED 1 ITERATIONS

 ----------------------------- MACHINE INITIAL CONDITIONS -----------------------------
   BUS#-SCT X-- NAME --X BASKV ID  ETERM   EFD    POWER    VARS   P.F.  ANGLE   ID     IQ
      1     BUS1        69.000 1  1.0300 1.8936   81.46    1.96 0.9997  49.33 0.6123 0.5010
      2     BUS2        69.000 1  1.0197 1.5480   40.00   15.00 0.9363  22.90 0.2966 0.2959
      3     BUS3        69.000 1  1.0004 1.4984   40.00   15.00 0.9363  21.38 0.3040 0.2999
      6     BUS6        138.00 1  0.9987 1.3599   30.00   10.00 0.9487  14.63 0.2008 0.2448
      8     BUS8        69.000 1  1.0189 0.0000   35.00   10.00 0.9615  -1.40 0.0981 0.3435

  INITIAL CONDITIONS SUSPECT:
      I   DSTATE(I)    STATE(I)     MODEL             STATE     BUS#-SCT X-- NAME --X BASKV  ID
       2  -0.67697E-02  0.38037     GENROU             K+1         1     BUS1        69.000  1
       3  -0.50616E-01  0.76314     GENROU             K+2         1     BUS1        69.000  1
       4  -0.15055      0.70604     GENROU             K+3         1     BUS1        69.000  1
       8  -0.13354E-01  0.23064     GENROU             K+1         2     BUS2        69.000  1
       9  -0.15590      0.92783     GENROU             K+2         2     BUS2        69.000  1
      10  -0.18274      0.42298     GENROU             K+3         2     BUS2        69.000  1
      14  -0.15811E-01  0.24313     GENROU             K+1         3     BUS3        69.000  1
      15  -0.14114      0.88971     GENROU             K+2         3     BUS3        69.000  1
      16  -0.14804      0.43807     GENROU             K+3         3     BUS3        69.000  1
      20  -0.12451E-01  0.20013     GENROU             K+1         6     BUS6        138.00  1
      21  -0.23300      0.93079     GENROU             K+2         6     BUS6        138.00  1
      22  -0.17038      0.35925     GENROU             K+3         6     BUS6        138.00  1
      42  -0.36176E-02  0.30000     IEEEST             K+5         3     BUS3        69.000  1
      44  -0.15159       1.0300     ESST3A             K           1     BUS1        69.000  1
      47   0.48817E-01  0.49620     ESST3A             K+3         1     BUS1        69.000  1
      48  -0.10815E-01   1.0197     EXST1              K           2     BUS2        69.000  1
      49   0.42509E-02  0.30959E-01 EXST1              K+1         2     BUS2        69.000  1
      50   0.42200E-01   1.5480     EXST1              K+2         2     BUS2        69.000  1
      52  -0.14209       1.0004     ESST3A             K           3     BUS3        69.000  1
      56  -0.20219      0.99871     ESST3A             K           6     BUS6        138.00  1
      59  -0.64465E-02  0.36608     ESST3A             K+3         6     BUS6        138.00  1
      78  -0.34852       1.0189     REGCA1             K+2         8     BUS8        69.000  1

 Channel output file is "C:\Users\cuiha\Dropbox\notebooks\regc_fault\out.out"

 Channel output file is "C:\Users\cuiha\Dropbox\notebooks\regc_fault\out.out"

 *** Shunt " 1" at bus 8 [BUS8        69.000] (  0.0000,-0.20000E+10) added ***

 Channel output file is "C:\Users\cuiha\Dropbox\notebooks\regc_fault\out.out"

 14 diagonal and 24 off-diagonal elements

 *** Shunt " 1" at bus 8 [BUS8        69.000] (  0.0000,-0.20000E+10) deleted ***

 Channel output file is "C:\Users\cuiha\Dropbox\notebooks\regc_fault\out.out"

 14 diagonal and 24 off-diagonal elements

 Network not converged at TIME = 0.1167
cuihantao commented 2 years ago

Despite that nonconvergence, PSS/E is able to finish the simulation. I'm still troubleshooting the model.

cuihantao commented 2 years ago

Fixed in https://github.com/cuihantao/andes/pull/338.

imitator19 commented 2 years ago

Thanks a lot!

cuihantao commented 2 years ago

You are welcome! Thanks again for reporting!