First time here? We are a friendly community of Power Systems Engineers. Check out the FAQ!

1 | initial version |

Hi all,

Thank you for coming to watch the question. I am trying to optimize the output from PSS/E then send the results back to PSS/E for further operations.

I found PSS/E doesn't with Scipy package (a very popular optimization package in python), does anyone encounter the same problem before?

The code below is a concise example that shows the problem, in my IDE (Spyder), as long as you initialize PSS/E, the program is going to be stuck and die.

You are welcome to try the code：

```
import os, sys
# Set environment for psse33.04
PYTHONPATH = r'C:\Program Files (x86)\PTI\PSSE33\PSSBIN'
sys.path.append(PYTHONPATH)
os.environ['PATH'] += ';' + PYTHONPATH
import psspy
_i = psspy.getdefaultint()
_f = psspy.getdefaultreal()
import redirect
redirect.psse2py()
psspy.psseinit(buses=50) # the optimization code doexn't work as long as you keep this line!!!
from scipy.optimize import minimize
import numpy as np
fun = lambda x : (x[0] - 0.667) / (x[0] + x[1] + x[2] - 2) # obj: min (x−2/3)/(x+y+z−2)
cons = ({'type': 'eq', 'fun': lambda x: x[0] * x[1] * x[2] - 1}, # xyz=1
{'type': 'ineq', 'fun': lambda x: x[0] }, #x>0
{'type': 'ineq', 'fun': lambda x: x[1] },#y>0
{'type': 'ineq', 'fun': lambda x: x[2] }#z>0
)
x0 = np.array((1.0, 1.0, 1.0)) #
res = minimize(fun, x0, method='SLSQP', constraints=cons)
print('min value:',res.fun)
print('solution:',res.x)
print('success or not:', res.success)
print('message:', res.message)
```

Thanks in advance, any help will be appreciated.

2 | No.2 Revision |

Hi all,

Thank you for coming to watch the question. I am trying to optimize the output from PSS/E then send the results back to PSS/E for further operations.

I found PSS/E doesn't work with Scipy package (a very popular optimization package in python), does anyone encounter the same problem before?

The code below is a concise example that shows the problem, in my IDE (Spyder), as long as you initialize PSS/E, the program is going to be stuck and die.

You are welcome to try the code：

```
import os, sys
# Set environment for psse33.04
PYTHONPATH = r'C:\Program Files (x86)\PTI\PSSE33\PSSBIN'
sys.path.append(PYTHONPATH)
os.environ['PATH'] += ';' + PYTHONPATH
import psspy
_i = psspy.getdefaultint()
_f = psspy.getdefaultreal()
import redirect
redirect.psse2py()
psspy.psseinit(buses=50) # the optimization code doexn't work as long as you keep this line!!!
from scipy.optimize import minimize
import numpy as np
fun = lambda x : (x[0] - 0.667) / (x[0] + x[1] + x[2] - 2) # obj: min (x−2/3)/(x+y+z−2)
cons = ({'type': 'eq', 'fun': lambda x: x[0] * x[1] * x[2] - 1}, # xyz=1
{'type': 'ineq', 'fun': lambda x: x[0] }, #x>0
{'type': 'ineq', 'fun': lambda x: x[1] },#y>0
{'type': 'ineq', 'fun': lambda x: x[2] }#z>0
)
x0 = np.array((1.0, 1.0, 1.0)) #
res = minimize(fun, x0, method='SLSQP', constraints=cons)
print('min value:',res.fun)
print('solution:',res.x)
print('success or not:', res.success)
print('message:', res.message)
```

Thanks in advance, any help will be appreciated.

whit loves you. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.