How to scale all PV capacity up at once

How can I scale all my PV generators nameplate capacity by a certain percentage all at once? Must I create an event for each one? Do I need to group them somehow?

thanks!

Hi @smeloney,

An event must be created for each object.

However, there are some shortcuts for handling this. My recommendation would be to use the Excel import template for events. Alternatively, you can select all these objects and add the events all at once via the GUI.

Happy modeling!

@smeloney,

A little trick I like to use for scaling many objects at once by the same value is to create a workspace variable, and introduce it as a scalar in my event values.

Consider, all of the PV in the ENET39 is established with a PSET event that attaches a normalized profile and multiplies by the respective PMAXDEF; i.e., PV.QUINEBAUG.PMAXDEF. If you declare a variable in the workspace (either with an ironpython script or directly in the command window, you can then use that variable in the event value).

For instance, I can set pv_scalar = 2 in the command window, and then change the event value to:
pv_scalar * PV.QUINEBAUG.PMAXDEF.

One critical element you’ll have to include is also changing the PMAX of the PV, otherwise you’ll get curtailment if you’re running a PCM. You can do this with an event (PMAX, with value = pv_scalar * PV.QUINEBAUG.PMAXDEF).

Two things to watch out for:

  1. The variable must be declared before execution, or else the event won’t be respected
  2. You have to explicitly track the way you set these values between scenarios! This method, while simple, doesn’t create a nice trail for comparison the way a dedicated event would.

Enjoy,

  • Wallace

Hi Wallace,

Thank you for this workflow suggestion! I haven’t used the terminal yet in my simulations, but the capability to add a custom variable is very interesting and opens a whole new set of possibilities up.

Correct me if I’m wrong, but this workflow still requires an event (in this case a PMAX event) for each PV external? This is ok for small systems, but for a large system with many PV externals this seems unnecessarily tedious. For the types of projects we are doing in ECEN 5427, it would be really nice to be able to scale all PV in one shot.

Is it not possible to define an event for the entire network, something like ENET.PV.@.PMAX * pv_scalar? If not, this would be a great additional for future versions of SAInt!

Hey @smeloney,

Glad you like the workflow idea!

You are correct that there is no single event to manage the output of multiple externals, but this is great feedback for us and we’ve already been considering it.

That said, I wouldn’t underestimate the capability of the multi-edit feature to achieve what you’re after. You could simply select all of the relevant PV objects (there is no limit here, I’ve done this for a thousand objects) in the model explorer using the shift feature (click top of range, then hold shift and click bottom), then right click and select add event, which will add an event for every single external. Then, select all of these events within the event table (you can use filtering capabilities to make simple work from this), and the property editor will be in multi-edit mode for every event you’ve selected. Just add pv_scalar * PV.@.PMAX for the value (and whatever other shared property), and they’ll all be automatically populated. You’ll then just have to allocate profiles.

Cheers,

  • Wallace
1 Like

Ah yes this is the way! Excellent, thank you Wallace!

2 Likes