Ask Your Question

oppossumX's profile - activity

2023-04-03 08:07:46 -0500 received badge  Taxonomist
2020-08-26 19:36:06 -0500 answered a question Transformer load loss modelling

AESO Transformer Modelling Guide

"Since the load losses are dependent on the transformer temperature, it is necessary that the test report clearly states the transformer test temperature, which is called the reference temperature and denoted by Tr. As described in Section 1.15.1, according to IEEE C57.12.00, the reference temperature for power transformers is 85°C. This standard clarifies that as long as the following two conditions are met, the variation of temperature encountered from performing the test will not affect the load losses:

1)The average oil temperature is within ±10°C of Tr.

2)The difference between the top and bottom oil temperature does not exceed 5°C.

If the tests have been conducted at a temperature other than 85°C and one of these two conditions is not met, the measured no-load losses should be corrected using the method that has been proposed in IEEE C57. 12.90, Section 8.4."

2020-08-26 19:30:43 -0500 commented answer frequency response REPCA

Curious why you say not to change VAR L+3? I often do this on "single-machine-infinite-bus" PSSE cases to evaluate the frequency control parameters for new IBR's in a similar approach to the "GRUN" governor response test and ensure the active power ramp-rate meets requirements.

2020-08-22 20:28:12 -0500 answered a question Is there an API call to get existing Channel arrays directly into Python?

There is the dyntools API. I have only used it to process that kind of data from .out files, not snapshots so I am not sure it can do exactly what you are looking for. The help(dyntools) documentation is probably worth a look.

2020-08-22 20:18:51 -0500 answered a question frequency response REPCA

The L+3 VAR is frequency reference, not frequency. It is defined in per-unit frequency deviation from nominal. Increasing this is raising the set-point of the frequency control so your machine is responding by increasing its active power to raise the frequency to this new set-point. Sounds like you want to lower the frequency reference not raise it. If your machine is already dispatched to its Pmax it cannot increase its active power beyond this limit.

2020-08-22 20:06:47 -0500 answered a question Vreg, Vref, Qext

These are called "VARS" in the PSSE model documentation. You will have to record channels for them using BAT_VAR_CHANNEL or psspy.var_channel() functions. You will need the index of the VAR you want to record, this can be found using BAT_WNLIST or psspy.wnlist() and a subsystem containing the machine you want to record after loading your dynamic data. Refer to the PSSE documentation "MODELS.pdf" and "API.pdf".

2020-08-22 19:50:25 -0500 answered a question Momentary Cessation Capability in 2nd Gen Renewable Models

In short, yes. The REECBU1 model is not allowed by some ISO's because it does not have the "VDL" logic described below.

The REECAU1 and REECCU1 models have the "VDL" V-I characteristic curve parameters that define the momentary cessation characteristics. At VDL voltages V1 to V4 the corresponding limits for the active and reactive current commands Ip and Iq are defined. This enables the model to reduce or completely stop producing active and/or reactive power when low voltages are observed and then ramp back up once voltages increase.

There are other parameters in the models that can impact this behavior. The REGCAU1 model includes an ICON for LVPL switch that enables the LVPL characteristic that can also define reduction in active power at low voltages, however, this characteristic is a single, linear-slope while the VDL logic is piece-wise linear.

2020-05-06 21:49:07 -0500 answered a question Automated sld to pdf printing

I've used printdiagfile() to batch print pdfs. I think it is sensitive to the printer you are using to print to pdf (eg. Adobe, Microsoft, etc). Some pdf software has settings for location, automatic file naming, and options to append to existing files. I think Adobe defaults the filename to the same as the SLD filename and you need to print one SLD manually to set where to save the files.

I used "win32gui" python module to find the "Save PDF File As" window and use "SendKeys" python module to send the inputs automatically with python.

edit: It's 2 separate scripts, 1 script ran from the PSSE GUI to handle all of the opening, modification, saving, and printing of the PSSE SLDs. The other script run concurrently (not in psse tho) to detect and interact with the pop-up windows. An alternate to the second script is to just hold the enter key down. This is sensitive to the printer.

import os
import psspy

def exportAsPDF():
    os.system("TASKKILL /F /IM acrobat.exe")
    psspy.refreshdiagfile()
    psspy.printdiagfile(r"""Adobe PDF""",1,1) # (Name of printer, # of copies, 1=Portrait/2=landscape)
    os.system("TASKKILL /F /IM acrobat.exe")

import win32gui
import re
import SendKeys

class WindowFinder:
        # """Class to find and make focus on a particular Native OS dialog/Window """
    def __init__ (self):
        self._handle = None

    def find_window(self, class_name, window_name = None):
        # """Pass a window class name & window name directly if known to get the window """
        self._handle = win32gui.FindWindow(class_name, window_name)

    def _window_enum_callback(self, hwnd, wildcard):
        # '''Call back func which checks each open window and matches the name of window using reg ex'''
        if re.match(wildcard, str(win32gui.GetWindowText(hwnd))) != None:
            self._handle = hwnd

    def find_window_wildcard(self, wildcard):
        # """ This function takes a string as input and calls EnumWindows to enumerate through all open windows """
        self._handle = None
        win32gui.EnumWindows(self._window_enum_callback, wildcard)

    def set_foreground(self):
        # """Get the focus on the desired open window"""
        win32gui.SetForegroundWindow(self._handle)

win = WindowFinder()
while True:
    try:
        win.find_window_wildcard(".*Save PDF File As.*") 
        win.set_foreground()
        SendKeys.SendKeys("{ENTER}")           #Use SendKeys to send ENTER key stroke to Save As dialog

        win.find_window_wildcard(".*Confirm Save As.*") 
        win.set_foreground()
        SendKeys.SendKeys("{Y}")           #Use SendKeys to send Y key stroke to Save As dialog
    except:
        pass
2019-02-21 08:55:44 -0500 received badge  Teacher (source)
2019-01-30 18:57:24 -0500 answered a question Generator ZSORCE incompatibility

If you're sure your dynamic model data is correct then you can use ierr = set_disable_run(0) to disable the simulation option setting that precludes dynamic simulation runs in the event there are fatal errors in the model data.

The automatic Zsource reconciliation should work fine and in my experience doesn't result in fatal errors though. Try running the DOCU command in data checking mode on your dynamic data. Check the output for any suspicious parameters or look for red colored cells in your dynamic data when it is loaded in the PSSE GUI. (Red colored cells indicate a fatal error in your dynamic data)

2018-09-24 03:19:47 -0500 received badge  Famous Question (source)
2018-09-14 01:10:46 -0500 received badge  Notable Question (source)
2018-09-12 13:53:28 -0500 received badge  Enthusiast
2018-09-12 10:58:54 -0500 received badge  Popular Question (source)
2018-09-11 20:09:10 -0500 commented answer PSSE 33.12 dyntools pssplotc issue

Thanks, this worked.

2018-09-11 20:04:45 -0500 received badge  Supporter (source)
2018-09-11 12:33:12 -0500 answered a question Changing transmission line voltages?

What results are you trying to obtain from running a powerflow with the induced DC voltages added?

In powerflow we have 4 types of busses: PQ (Load), PV (generator), and V/angle (slack). Most busses are load busses where the active and reactive power are specified and we solve for the voltage and angle.

As a result you cannot set the voltage at these busses in powerflow, it is solved for. You can change the nominal voltage of a bus but this will only affect how parameters are converted to per-unit, not the voltage of the bus directly. PSSE is phasor-domain fundamental frequency model so if you're trying to apply a DC voltage offset to your powerflow model this is not the software to use.

In GIC simulations a DC network is created using only DC resistances of equipment. Using faradays law, the electric-field magnitude and angle, and the orientation of the lines the DC voltage induced in each line is calculated. These DC voltages are added to the DC resistive network and the currents (GIC) in each branch and the DC voltages at each node are solved for using KVL/KCL. No powerflow data (besides topology) is used for this.

In the GIC studies I have done we use the DC currents found in the transformers to calculate the reactive power loss in transformers (from half-cycle saturation) using linear k-factors (specified in the GIC data file). These Mvar losses are then added to the powerflow case to study voltage stability.

If you want to study the effects of GIC DC voltage offset for something like insulation coordination or protection and control settings you need to use an EMTP software I think.

In my experience these DC voltage offsets will generally be much smaller than the nominal AC voltage of the equipment (by something like 1000 times).

2018-09-11 11:50:28 -0500 asked a question PSSE 33.12 dyntools pssplotc issue

Has anyone tried using dyntools in PSSE 33.12? I am getting the following import error when using the CHNF and OUTDATA classes.

    outobj = dyntools.OUTDATA(thefile, 1, None)
  File ".\dyntools.py", line 231, in __init__
  File ".\dyntools.py", line 286, in _get_data_fortran
ImportError: No module named pssplotc

I can see the pssplotc.pyd file in the PSSPY27 and PSSPY34 folders of my PSSE 34 install but can't find it anywhere in my PSSE 33 install folder. I am using the same scripts and files that worked with PSSE 33.11 when running in PSSE 33.12.

2018-03-16 19:40:56 -0500 received badge  Citizen Patrol (source)
2017-12-06 18:41:35 -0500 received badge  Famous Question (source)
2017-11-21 18:24:14 -0500 answered a question Dynamic Study on Alberta System

These files are no longer publicly available as of 2015. This data is treated as confidential information and a NDA must be executed to receive these files. A request must be made to the AESO here: https://www.aeso.ca/grid/base-cases/ to obtain these files.

2017-11-10 17:54:30 -0500 answered a question How to select N-level buses from specific bus called"simple bus"

I do not know of an API command to do this directly outside of an SLD. You could maybe use a loop with the nxtbrn() or nxtbrn3() API commands to accomplish this. If you are okay running the code from the PSSE GUI with an SLD open you could do it using the growbuslevels() API command:

bus_list = list()
psspy.growbuslevels(bus_number, x, y, N_levels)
for component in sliderPy.GetActiveDocument().GetDiagram().GetComponents():
     if 'BU' in component.GetMapString():
          bus_list.append(int(component.GetMapString().split()[-1]))

If you need to use the bus name you would have to work through all the buses in the case using nxtbus() and notona() until you found the bus name you are looking for because most API commands require bus number arguments. PSSE bus names don't have to be unique and multiple buses can exist with the same name so I would caution against this and recommend using bus numbers instead.

2017-11-06 19:08:39 -0500 answered a question How to return machine CON description?

The CON descriptions are specified in the MODELS.pdf documentation accompanying PSSE. Several python modules exist that can be used to parse pdfs. You could write a quick script using something like PDFMiner to extract the CON descriptions for each model from the pdf document.

2017-11-06 16:57:10 -0500 answered a question run dynamic simulation without having dynamic parameters in the *.dyr file

You can use the GNET command on the machine with no dynamic parameters. This changes the machine to a negative MVA load with no dynamic response. In the GUI this is done through the "Equivalence Networks" dialog box found in the "Power Flow" menu. A GNET IDEV file can also be created and run using the runrspnsfile command.

2017-11-06 10:51:34 -0500 answered a question Detect transformer cycling

I do not know of a way to get this data directly, however, this information does appear in the progress window when solving. If you pipe the progress output to a text file using psspy.progress_output() and write a script to open and parse the output you could use that to determine what taps are changing. I wrote a quick proof of concept for 2W transformers that seems to work. I can share the code if you are interested.

2017-09-19 13:00:48 -0500 answered a question governor response test

Grun is a tool to evaluate governor response to a step change in loading. It can be useful for evaluating governor control parameters.

  • in the governor response window select the bus number of the machine to be tested. If there are multiple machines at the bus and you only want to test one make sure the others are off.
  • select some initial loading in pu. and step size.
  • I usually run for 10 sec and look at the Pmech and Speed response to the step change in loading.

From these results you can determine things like ramp rate, % overshoot, rise time, settling time, and steady-state error that can help evaluate your governor control parameters. By exporting the results to a csv file you can use something like MS Excel to calculate these results. I would try to play around with initial loading and step size to see how your governor deadband changes the results. (ie. what is the largest step size that results in no change in output from the governor response test?) In my experience governor deadbands can be quite small.

2017-08-21 13:27:59 -0500 answered a question wind turbine raw and dyr files

Different turbines (manufacturers, rating, etc.) will use different parameters for the wt3 generic models, there is no single set of "correct" parameters. There are a number of manufacturers that have developed psse models of their wind turbines and user manuals for them that can be downloaded from the Siemens PTI website.

What are the suspect initial conditions you are getting? Often these can help diagnose where the problem is.

2017-08-14 11:35:34 -0500 answered a question Writing in first line of a txt file with MATALB

Is using matlab a requirement for this? That seems like a lot of overhead for writing to a text file.

I think you could just use fopen, fprintf, and fclose to open, write, and close the file respectively.

https://www.mathworks.com/help/matlab...tid=gnloc_drop

2017-08-03 08:40:29 -0500 received badge  Notable Question (source)
2017-07-21 12:24:55 -0500 commented answer PSS/e 34 dyntools module

I have had this problem before. What is the file size of your .out file? Try recording fewer channels or run simulation for shorter duration. Did the simulation complete successfully? Sometimes if your network solution does not converge PSSE seems to mangle the out file.

2017-07-13 23:55:25 -0500 received badge  Popular Question (source)
2017-07-06 12:37:34 -0500 received badge  Scholar (source)
2017-07-06 12:37:32 -0500 commented answer PSSE 33.9 vs 33.10 Dynamics Simulation Results Mismatch

Thanks. It is good to know that 33.10 is working and this is most likely a problem on my end. I will look into my simulation settings further.

2017-07-05 19:40:03 -0500 asked a question PSSE 33.9 vs 33.10 Dynamics Simulation Results Mismatch

Hi,

I recently installed the latest PSSE 33.10 version. I previously was using 33.9 version. I found when I run the exact same dynamic simulation in each version the results are significantly different, with the 33.10 results going unstable and crashing the program but the simulations run fine in 33.9 and show no instability.

I am using the exact same cases, dyr data, same faults, clearing times, etc. I reviewed the release notes for 33.10 and none of the things I am using appeared to be affected by the updates in 33.10.

Is anyone else using PSSE version 33.10 for dynamics simulations and seen anything like this? I am wary that it is still an issue on my end that I haven't discovered but I thought it would be good to see if anyone else has seen this issue before I investigate further.

I would attach some sample plots of the dynamic results from both versions but I do not have the required points to do so.

2017-06-20 19:58:48 -0500 commented answer INITIALIZED OUT OF LIMITS

Generally PSSE machine dynamic model parameters are per-unitized on machine MBASE. When MBASE is zero it used system MVA base. The PSSE dynamic model data sheets should give some indication of what to use. Chapter 15 of the PSSE PAGV2 and POM documents have more details regarding this.

2017-06-20 19:40:34 -0500 answered a question Having trouble plotting wind machine P, Q and slip in dynamic simulations

I have used version 33.9 to capture PELEC and QELEC with the WT3 wind models before without issue. In PSSE versions >33.5 you need to ensure the wind control mode flag in the machine powerflow model is not 0 when using the WT3 dynamic models for the machine.

I typically use the "Machinearraychannel" API function to define channel:

psspy.machine_array_channel([_i, channel, bus], id, _s)

Where channel=2 for PELEC, bus is the bus number of the wind machine and id is the id of the wind machine

2017-06-07 14:45:28 -0500 answered a question INITIALIZED OUT OF LIMITS

As perolofl mentioned these problems are often caused by overloaded Pgen or Qgen. Probably the Pmax/Pmin or Qmax/Qmin in your powerflow data doesn't match with the Pmax/Pmin or Qmax/Qmin in your dynamic models.

My suggestions for what to check:

Check the J+4 and J+5 CONS in your SEXS model against the field voltage initial conditions for machine '1' at bus 84580. Try making Qgen of the machine closer to zero.

Check the J+6 and J+7 CONS in your IEEEG1 model against the Pmax and Pmin in powerflow model for machine '1' at bus 81213. Try reducing the Pgen of the machine.

Check the J+7, J+8, J+9, and J+10 CONS in your WT3E1 model against the Pmax, Pmin, Qmax, and Qmin of machine '1' at bus 84620. Try reducing Pgen of the machine and making Qgen of the machine closer to zero.

2017-05-29 11:36:17 -0500 answered a question How we model Energy Storage Devices inPSS/E( Power Flow model and Stability model)

The manuals that ship with PSSE are an excellent source for information on the operation of the PSSE software. These can be found in your PSSE installation folder.

There is a section of the Program Application Guide Volume 2 that covers CBEST modelling in PSSE. Please see Section 25.8.4 of PSSE 33.9 Program Application Guide Volume 2:

"25.8.4 CBEST (EPRI Battery Energy Storage)... The BES is modeled in the power flow as a generator with a large ZSORCE impedance... If MBASE is set equal to the battery power rating, Pmax is set to 1. Iacmax is set to Pmax/Power Factor. AVR parameters are set as in the SMES model. Assuming an 80% turnaround efficiency, retrieval (OutEff) and storage (InpEff) efficiencies would typically be set to 1.1 and 0.9, respectively."

Set your dynamic model parameters according to the manufacturers information for your BES. Use the DOCU function to check the data you have entered in your dynamic model is reasonable. Run test simulations to ensure the response of your BES model is reasonable.

Have you considered using the REGCAU1, REECCU1, and REPCAU1 model for BES? These models can give a much more detailed representation of BES. As this is a WECC generic model, there are some good modelling guidelines for these models available on their website. https://www.wecc.biz/Reliability/WECC...

2017-05-29 11:09:52 -0500 answered a question How can i model using WSIEG1

Were you able to successfully initialize the IEEEG1 model using the same data as your WSIEG1 model?

Have you entered any Deadband, NGV, or IBLOCK data in the WSIEG1 model (WSIEG1 CONS J+20 to J+33)? These parameters do not exist in IEEEG1 and the values you have used here may be the cause of the difference you are seeing between the 2 models.

Please indicate the WSIEG1 and IEEEG1 model parameters you used. Also please indicate the machine initial conditions (ETERM, EFD, POWER, VARS, PF, ANGLE, ID, IQ) you got when using both IEEEG1 and WSIEG1 models. These will be helpful for finding the cause of your issue.

2017-05-28 20:07:41 -0500 commented answer How can I get only certain channels from .out file to excel? e.g only angles

FYI using dyntools, the "xlsout" function can also be used to generate an excel file from a .out file.

2017-05-28 19:56:06 -0500 commented answer Data Retrieval for Angle Spread

I am not sure what you mean by "last" angle channel. Can you please clarify?

2017-05-28 19:44:44 -0500 answered a question Print individual contingencies to sliders

Interesting, I like the powerpoint idea. I often need to generate SLDs showing results of overload violations under different contingencies for reports. When there are a lot of overloads it can be very tedious to manually generate an SLD for each one. So I made a python script to do it :)

I use a python script ran from inside the GUI with a SLD and case already open. The code reads and parses the ".con" file used in ACCC. Using the contingency definitions in the ".con" file it applies the contingency to the case, solves, refreshes the open SLD, saves a pdf of it, then reload the original case and repeat for the next contingency. I use sliderpy to add a title to each SLD with the respective contingency name read from the ".con" file before saving the SLD pdf.

Prior to running the code, I make sure the SLD is setup with any diagram annotation or contouring settings I desire in my output files.

Couple issues: user needs to ensure solution settings used in ACCC and SLD automation are same. extra coding is needed to handle dispatch mode, induction machine stalls, and load throwover if required you may want to read the mon and sub files as well if their content is important to your SLD creation

2017-03-10 19:51:01 -0500 answered a question How can i model a synchronous motor in PSS/E 34.1?

Additional information on what you are trying to accomplish would be helpful. Are you using the model for power flow, short-circuit, switching studies, motor starting, transient stability, etc.?

Add a machine with negative Pgen. Read the Program Operation Manual...