InterPSS-Project / ipss-plugin

InterPSS plugin projects
8 stars 11 forks source link

Error in multiNet SequenceNetworkSolver: I #35

Open thakars opened 4 years ago

thakars commented 4 years ago

Hello,

I was trying to load sequence information for IEEE9 bus provided with InterPSS and run a 3 sequence power flow. I was able to run positive sequence power flow, but there was a runtime exception in zero and negative sequence, as following:

com.interpss.common.exp.InterpssRuntimeException: BaseSparseEqnSolver.factorization() needs to be override

When I gave a tolerance as an input for the factorization function instead of giving no input (in the following code, which is lines 58-64 of SequenceNetworkSolver in org.interpss.multiNet.algo.powerflow), the issue seemed to resolve.

                try {
            zeroYSolver.factorization();// tolearance is not used actually.
            negYSolver.factorization();// tolearance is not used actually.
        } catch (IpssNumericException e) {
            e.printStackTrace();
        } 

I think since no input was given, the factorization function defined in 'com/interpss/core/sparse/ISparseEqnSolver' was not used, hence resulting in the error.

Thank you!

jinjingfarm commented 4 years ago

@thakars 3-Phase Loadflow is a very advanced subject. Please create a testcase with test data, and share the testcase with us. We will work together to investigate the issue.

thakars commented 4 years ago

Hello,

I have created a testcase for this issue, attaching the files here. test_3Seq.zip

The data for 9 bus is used from

ipss.plugins.multiNet

.

How the test works: In 'test_threeSeq', first we import IEEE9 bus raw and sequence data and load it as Acsc network. Then run positive sequence power flow, add zero and negative sequence injections to a bus (bus 4) and run zero and negative sequence power flow.

We can see the error by using original SequenceNetworkSolver from multiNet and what seemed to remove the error for me using the SequenceNetworkSolver from the attached file. You can control it by changing where it is imported from (lines 27-28 of test_threeSeq).

Also, please let me know if you would like the testcase in a different format. I am not very used to creating testcases in Java, so I am sorry in case this is not in ideal format work with!

Thanks and regards!

qhuang-pnl commented 4 years ago

The issue can be solved by adding a small tolerance, such as zeroYSolver.factorization(1.0E-6)

thakars commented 4 years ago

Hello, Yes, that seemed to work for me. You may close this issue if you wish. Thank you!