Ask Your Question

wassup_doc's profile - activity

2023-09-27 10:53:23 -0500 received badge  Famous Question (source)
2020-05-03 22:21:25 -0500 received badge  Famous Question (source)
2019-11-22 09:00:50 -0500 received badge  Famous Question (source)
2019-09-28 03:26:38 -0500 received badge  Notable Question (source)
2019-09-18 13:09:10 -0500 answered a question Next Available CON

The DYRE_NEW() python API is designed in such a way that it assumes you are trying to clear the dynamic working memory in PSS/E and read in new model data (usually starting at the 1st location). From your question it seems that you are trying to append models (CONs) to the existing data in dynamics working memory. If this is the case you might want to take a look at DYRE_ADD() python API. This allows you to specify the default integer (psspy._i) which automatically gives you the last CON in the CON array as described in the DYRE_ADD() functionality.

In short, I do not know of a python API that gives you the current length (or ending index) of the CON array. Based on the limited info in your question, it sounds like what I suggest above should suffice as you shouldn't need to know the ending CON to append data... I took a quick look through the API too, but don't see anything for returning the specific ending CON.

EDIT: I just looked again in the API... the DLST PSSE function is available in python. Search the PSSE API Manual for DLST. That should give you the exact functionality you are looking for... though I am still not sure that using it in conjunction with dyre_new is what you really want to do.

2019-09-18 12:47:57 -0500 received badge  Popular Question (source)
2019-09-17 10:05:08 -0500 commented answer Dyntools error? "no attribute 'xdata'"

Won't I run into the same problem converting the .out data to .csv or .xlsx? If looping over 100 .out files within python and accessing the .out data that way causes issues then it seems looping over the same 100 .out files and dumping the data to excel would cause the same issue.? any experience?

2019-09-16 17:26:48 -0500 asked a question Dyntools error? "no attribute 'xdata'"

Has anyone ever seen this error?

File ".\dyntools.py", line 1459, in get_data
AttributeError: OUTDATA instance has no attribute 'xdata'

This is the last piece of the stack callback upon hitting this error in python2.7.. It appears to show up when I try to open and read the data in too many .out files using the CHNF command. If I only open a read a small subset of files (e.g. 1-10 .out files) then my code works fine, but if I try to open and read 100+ files then I get this error.

Any thoughts?

Can we access the DYNTOOLS code anywhere? looks like PSSBIN only has a .pyc binary file.

2019-09-03 14:30:05 -0500 commented answer Dynamics with wind turbine

Run a DYDA or DOCU command either directly in PSS/E or via Python. Alternatively take a screen shot of the dynamics data in the PSS/E UI.

2019-08-29 12:32:21 -0500 answered a question Dynamics with wind turbine

This is highly dependent on the Wind Model you are using. Please edit your question to tell us what model you are using. and also show us what parameters you have entered into the dynamics data.

Typically there is an ICON that indicates how many wind generators are being modeled in a single equivalent machine/generator. This error is telling you two things:

  1. The model is assuming each wind machine is 3MW, however it appears that the data you plugged in says there are 0 machines. So you have an active power rating of 0*3MW=0MW.

  2. Your powerflow has resulted in a PELEC (active power injection) at that machine should be 9.92MW... however your rated power is 0MW. Hence the error.

You either need to change your powerflow solution such that the power being produced by the machine is less than the rated power or modify the model such that the rated/max power is higher than the PELEC that was solved in the powerflow. It seems that due to item 1 above your max power/rated power is not correct.

2019-08-29 12:04:00 -0500 received badge  Famous Question (source)
2019-07-29 12:29:46 -0500 received badge  Notable Question (source)
2019-07-27 06:34:31 -0500 received badge  Popular Question (source)
2019-07-26 13:51:02 -0500 commented question Completing a STRT when GE wind Models are used

UPDATE: by setting the GEWTGCU1 model status to 'off' in dynamics the strt will complete. But with that model online, then PSS/E will crash. Thinking this is a PSS/E bug.

2019-07-25 17:48:38 -0500 asked a question Completing a STRT when GE wind Models are used

Has anyone been able to run a STRT in the UI? or a STRT_2() via PSSPY in Version 34.4.0 while the GE "Vendor Specific" models are being used in the SNP file?

Every time I run a strt with those models in use (GEWTGCU1, GEWTECU1, etc...) PSSE crashes! If I disable the models and the associated machine in the powerflow then everything works as expected.

Has anyone else had success using these models? what is the secret?

2019-06-24 11:10:09 -0500 commented answer Can i use aAPI from PSS/E in a fortran user written model subroutine??

Can you please expand on this answer? Are there specific INCLUDE statements that are needed? In my experience only some fortran API's are available to use in user-model code. Using PSS/E 34 I am unable to use the MDLIND API in user-model code -- any thoughts on why?

2019-06-24 11:04:32 -0500 commented answer User Defined Model Development

@EBahr You said: "Finally, most (all?) API routines are available in Fortran." Do you know how to tell which functions are and are not available? I am trying to use MDLIND fortran version within a user-model, and get failure on Linking....

2019-06-24 11:02:10 -0500 commented answer Is there a way to assign states to output channels without knowing the state index/number?

old answer, i know, but figured I'd ask anyway. How do you use the fortran version of MDLIND() within User-Model code?

2019-06-24 10:57:42 -0500 commented answer Calling API in Fortran

Any resolution to this issue? I have the exact same problem. Failure during Environment manager Linking when MDLIND fortran call is placed in FLECS user-model code. What is odd, however, is that it does work when placed in CONEC or CONET.

2019-02-21 17:04:31 -0500 commented answer Python API to Terminate Dynamic Simulation

You can also add this directly to CONET.flx --- IF(ITER .GT. ITMXDS) --- then set the flags as @perolofl mentioned.

2019-02-18 09:12:10 -0500 answered a question getting latest pssbin location

I know this does not answer the question directly, but if you are simply trying to ascertain PSSE location for psspy, dyntools, etc. you might want to check out the psse library "PSSEPATH". I believe it was created by a forum contributor a few years ago. I have used it on PSSE 32, 33, an 34 with different versions of python. It works great.

Check here: https://github.com/danifus/pssepath

and the comments here: https://psspy.org/psse-help-forum/que...

2019-02-17 17:41:44 -0500 received badge  Notable Question (source)
2019-01-21 10:43:39 -0500 received badge  Popular Question (source)
2019-01-14 10:27:31 -0500 asked a question Turn off all loads in a zone.

Does anyone know of an easy way to turn off (set status to off) all loads within a particular zone?

I imagine I could use some combination of the bsys subsystem definition, and the subsystem retrieval functions ( aloadint(), aloadchar(), etc... ) to retrieve all the bus numbers and IDs within a particular zone, and then loop over those results using loadchange4() to set each one's status to off...

Is there an easier way? I'm thinking of some parallel to scal_2()... if only that function had the ability to set the status flag...

2018-12-13 13:19:50 -0500 commented answer Equivalent Grid Representation for Dynamic Analysis

Agreed. As an addition, you can set the H parameter of a generator to 0 (rather than 999), PSS/E will treat that as an infinite bus/machine.

2018-12-13 13:15:16 -0500 marked best answer Why would PU bus voltages blow up to infinity in a FLAT dynamic simulation?

Hello,

I just started working extensively with the dynamic simulator in PSS/E 33, and I am currently running a flat (No Contingencies), 1 second, dynamic simulation of a simple 9 bus (3 gens, 3 loads) case. I have loaded all the .raw data and .dyr data into the case via python and the PSSE API (see applicable source code below).

Does anyone have any idea why the PU bus voltages blow up to infinity? I must be missing something somewhere - This exact case simulates perfectly in PowerWorld.

Here is some of the applicable source code:

p.case(static_case_file) #Loads a succesfully solved (with FNSL) case. (Verified against PowerWorld output)
##convert to dynamic case
p.conl(-1,1,1)  #setup
p.conl(-1,1,2,[0,0],[100,0,0,100]) #convert loads
p.conl(-1,1,3) #cleanup
p.cong() # convert Gens
p.ordr() # preserve sparsity of network matrices
p.fact() # factorize the network admittance matrix
p.tysl() # switching study network solutions
## Save dynamic case binary file
p.save(dynamic_case_file)
## load dynamic model definitions
p.dyre_new([1,1,1,1], dyr_infile) # loads dynamic parameters in the .dyr file overwrites existing dynamic data
## Save binary file for dynamic information
p.snap([-1,-1,-1,-1,-1], dynamic_snap_file) 
##LOAD Saved Files into working memory
p.case(dynamic_case_file)
p.rstr(dynamic_snap_file)
##Setup Dynamic Sim
p.chsb(0,1,[-1,-1,-1,1,13,0])
## strt(Option, Outfile)  execute before 'run'
p.strt(0, dynamic_channel_outfile)
## run(OPTION, TPause, numTimeStepsBTWPrint, numTimeStepsOUT, NumtimeStepPLT)
p.run(tpause = .1) # initial run to stabalize (suggested in PSSe)
p.run(tpause = 1)  # proceding runs...

Following are the generator models that I am using in the dyr_infile:

1, 'GENSAL', 1, 8.96, .0333, .0333, 23.64, 23.64, .146, .0969, .0608, .05, 0, 0, 0 /
2, 'GENSAL', 1, 6, .0333, .0333, 6.4, 6.4, .8958, .8645, .1198, .05, 0, 0, 0 /
3, 'GENSAL', 1, 5.89, .0333, .0333, 3.01, 3.01, 1.3125, 1.2578, .1813, .05, 0, 0, 0 /

Finally here is the channel_outfile graphed (and zoomed in...)

image description

A few other notes:

  1. I have already verified that complex machine impedance (Zx of ZSOURCE) matches the Xd" and Xq" value in the GENSAL model

  2. For simplicity sake I am modeling 3 transformer branches as simple Non-Transformer Branches.

I am brand new to PSSE, and would really appreciate any thoughts on what might be causing this. I assume there is some parameter causing the differential equations in the dynamic simulation to blow up - or I am missing a command/step in allowing PSSE to completely understand the topology. Any thoughts on how to troubleshoot this beast would also be helpful. In the meantime, I will continue reading through the loads of documentation...

thanks

2018-12-13 13:11:41 -0500 marked best answer "Connection Tables Full" when running dyre for dynamic simulation

Hello,

I am using psspy.dyre_new() to load the generator, exciter, governor, and relay models into PSS/E. I am getting a warning message in the command line output as follows:

Generator models use:
CONS        1-   140
STATES      1-    60

Excitation System models use:
CONS      141-   280
STATES     61-   100
VARS        1-    10

Turbine Governor models use:
CONS      281-   350
STATES    101-   130
VARS       11-    20

LINE RELAY MODEL Connection tables full--use pack models function

SUMMARY OF MODELS READ:

GENS:  GENROU
      10

EXSYS: IEEET1
      10

GOVS:  IEEEG2
      10

RELAY: TIOCR1
       2

NEXT AVAILABLE ADDRESSES ARE:
CON  STATE    VAR   ICON
365    131     24     16

Only PSS/E supplied models in case. Compilation is not required

LINE RELAY MODEL TABLES ALREADY PACKED:
Connections from Branches to Models:  1(Old)    1(New)    1(Maximum)
Pointers from Models to Data:         1(Old)    1(New)    2(Maximum)

Here is what I do not understand:

  1. Under "models use" it does not list any of the relay models, but in "models read" it lists both relays.
  2. The output suggests to fix the problem with the "Pack models function"... I found and used psspy.rlmod_pack() but it does not seem to do anything to fix the issue.
  3. If I use 1 relay model I do not get this message vs. >1 relay model, the functionality of all the relays go away (even the first one that did work).
  4. Psse lists the next available con, state, var, icon addresses, but apparently they cannot be used?

Eventually I would like to load about 50 relay models to the dynamic working case. I am modeling the old case 39 New England, and I feel like PSS/E should easily be able to do this. (Though I am new to PSS/E).

If anyone has any insight into what I am doing wrong that would be appreciated. BTW - I am using the PSSE33 Free University version. I am starting to think that I have simply found a limitation of the free version (the number of dynamic models you can initialize)... but then again they claim the only limit to the university version is initialization to <50 buses.....

Thanks.

2018-12-13 13:07:23 -0500 answered a question ¿what does it mean the line code INCLUDE COMON4.INS in the PSS/E user written model examples ?? also , what is BADMID?

There is a manual for using environment manager that should address your questions on how to use that application. It covers the GUI and a great library that can be imported into python and used to automate the process of compiling, linking, and building user DLL's. It has saved me a ton of time creating an automation script for compiling user-defined flecs code.

The manual is located in the "site-packages" directory of your python installation. You should find a manual entitled "PSSE Environment Manager.pdf"

2018-12-13 12:50:11 -0500 answered a question .sav file with psse34

Ask the file provider to give you the file as a *.raw format. This will be a plain text file that you can then tailor to fit whatever version of PSS/E you have.

2018-12-13 12:45:14 -0500 answered a question Retrieve Inter-Area Transfer data by Area

psspy.inta() mentioned above and the macro-recording functionality of psse are good points.

Additionally, in the V34 documentation the API manual has a few functions under Chapter 8.23 (Area subsystem data retrieval) that you should look at.

  • psspy.aareareal is a function that has various options for returning area interchange values.
  • psspy.aareaint could return you a list of all area numbers. You could combine this function, the array it returns, and the TRXDAT function you mentioned to write a loop that iterates over combinations of existing areas and determines the transfer between those areas.

Finally, you could just do a simple psspy.list() function, and be sure to specify the option so that you output "area interchange data" or "inter-area transfer data"-- obviously doesn't return you values, but would allow you to observe what is going on.

2018-12-13 12:09:28 -0500 commented question UDM with vars and states equal to zero during dynamic simulation

agreed. post code, otherwise we have no idea what you're doing.

2018-09-27 00:20:37 -0500 received badge  Notable Question (source)
2018-09-18 16:30:33 -0500 commented question Example .dyr data for BESS

I have modeled ESSs with the REGCAU1, REECCU1, and REPCAU1 models... what "results" are you trying to obtain? Specifically what in the dynamics data is causing problems? It is not likely that someone will just place all data online. You need to ask a specific question that is troubling you.

2018-05-29 12:49:57 -0500 answered a question Import redirect module error

Depending on which version of Python you are using (e.g. python 2.7.x or Python 3.4.x) you need to setup the following location(s) in your PATH -- they each have a different version of the compiled Python binary 'redirect.pyc'

C:\ ... \PTI\PSSE34\PSSPY34

OR

C:\ ... \PTI\PSSE34\PSSPY27

2018-05-04 19:08:16 -0500 answered a question How to recover the principal menu?

You should just be able to hit the 'ALT' key on your keyboard. That should temporarily show the menus... from there you should be able to undo whatever you did to hide the menus.

2018-05-04 19:04:31 -0500 commented question How to recover the principal menu?

How did you get rid of it in the first place?

2018-04-27 13:57:26 -0500 edited answer can anybody please provide the dynamic data for IEEE-30 and 39 bus

Or see the appendix of this paper: IEEE xplore paper

The dynamics data for IEEE case 39 can be found in the appendix. Keep in mind it is modified to make the case N-1 secure.

2018-04-27 12:02:18 -0500 commented answer saving power flow results to file and creating excel tables

Seconded!!

2018-04-19 08:39:53 -0500 received badge  Popular Question (source)
2018-04-18 08:55:54 -0500 received badge  Enthusiast
2018-04-12 09:52:36 -0500 commented question I have a python code works for PSSE32 I want it for PSSE33, what should I change in this code?

Did you try running this in PSS/e 33 before posting? If so, post the error that is giving you problems... It should work assuming you don't have any dependencies on python 2.5.x -- PSS/e 32 runs Python 2.5.x while PSS/e 33 runs python 2.7.x

2018-04-12 09:47:41 -0500 received badge  Critic (source)
2018-04-11 17:39:52 -0500 asked a question How to query the time remaining on a USB hardware lock?

Does anyone know if there is a way to query the time remaining on the USB hardware lock?

Ideally, I am looking for a python API that simply returns the amount of time remaining -- I don't see anything obvious in the API manual.

The purpose, of my question is because I am running PSS/e with multiple subprocesses running in the background and subprocesses just within python that are doing analysis on my simulations outside of PSS/e. I would like to build in a "safety net" by writing a small subprocess that simply queries the amount of time used up, and shuts PSS/e down if for some reason it was running for hours... How do you all ensure that unnecessary time is not being used up on your hardware lock?