Coder Social home page Coder Social logo

Comments (6)

GordStephen avatar GordStephen commented on August 23, 2024 1

There's no theoretical reason multiple devices should take substantially longer to run than a single device, so this is probably a bug.

When adding the second storage device, does the run finish, just slowly, or does it run forever and never return? If the latter, an error is probably getting thrown silently on one (or more likely all) of the worker threads and causing the finalizer to hang, waiting for results that will never be sent.

from pras.

GordStephen avatar GordStephen commented on August 23, 2024 1

Thanks for the examples, this will help a lot with debugging. I'll try to reproduce the issue and see if I can figure out what's causing it.

from pras.

GordStephen avatar GordStephen commented on August 23, 2024

The singlenode_stor test system includes two storage devices as of last week and runs normally, so the issue may be related to specific parameters in your storage devices? Would you be able to post a minimal example of a SystemModel that experiences the problem?

from pras.

juliebuard avatar juliebuard commented on August 23, 2024

The run runs forever and never return. See below the struct that I am using for storage before creating the StorageAsset. Happy to set up a call too if that could help

@with_kw struct StorageParameters
      name::String
      type::String = "Battery"
      charge_capacity_MW::Int64
      discharge_capacity_MW::Int64
      energy_capacity_MWh::Int64
      charge_efficiency::Float64
      discharge_efficiency::Float64
      carryover_efficiency::Float64 = 1.0
      forced_outage_rate::Float64 = 0.00
      repair_rate::Float64 = 1.0
end

I have 32 generators, 10 being VG as well as 8 storages with capacity of 40MWh on average. Since having 2 generators like that never returns, I tried having a bigger generator, and same here, it is struggling. The only result I got was for 1_000 samples and even with that, I could not replicate.
I am using the Temporal() and Modern()
assess(Modern(samples=1_000), Temporal(), singlenode)

Here are the params for my "aggregated Storages()"

name: String "aggregated_storages"
  type: String "Battery"
  charge_capacity_MW: Int64 1421
  discharge_capacity_MW: Int64 1421
  energy_capacity_MWh: Int64 1180
  charge_efficiency: Float64 0.9486832980505138
  discharge_efficiency: Float64 0.9486832980505138
  carryover_efficiency: Float64 1.0
  forced_outage_rate: Float64 0.0
  repair_rate: Float64 1.0

That I then fit into this asset type: PRASBase.Storages{8760,1,Dates.Hour,PRASBase.MW,PRASBase.MWh}

and here is my system:

ResourceAdequacy.SystemModel{load_params.n_timestamps,1,Hour,ResourceAdequacy.MW,ResourceAdequacy.MWh}(
        assets, storages, emptygenstors,
        DateTime(load_params.datetimes[1]):Hour(1):DateTime(load_params.datetimes[end]), load_params.load_MW)

Thanks.

from pras.

juliebuard avatar juliebuard commented on August 23, 2024

What is interesting is that sometimes with the aggregated generator, I will get a results really fast and without getting stuck but only 1/15 times ...

 4.483385 seconds (5.04 M allocations: 236.421 MiB, 2.25% gc time)
LOLE(result_modern) = LOLE = 10.16±0.10 h/8760h
EUE(result_modern) = EUE = 18300±200 MWh/8760h

from pras.

juliebuard avatar juliebuard commented on August 23, 2024

What is interesting to notice is that the Storage capacityMWh and PowerMW seem to have an impact:
with 4 storages of size (powerMW, capacityMW), it is running but never returns (hanging on some error probably as you suggested above)

B1: (10, 40)
B2: (409, 889)
B3: (30, 120)
B4: (30, 120)

B1, B3, B4 are working individually. B2 is "crashing" / not returning.
It is also working fast if we take all of them but B2. With the below 3 storages, we are getting:

B1: (10, 40)
B2 removed
B3: (30, 120)
B4: (30, 120)
LOLE(result_modern) = LOLE = 60.7±0.2 h/8760h
EUE(result_modern) = EUE = 128900±700 MWh/8760h

Which is coherent with the same system without storage results:

Modern()
EUE = 133000±200 MWh/8760h
LOLE = 62.56±0.07 h/8760h

from pras.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.