DTOcean / dtocean

Download the DTOcean installation wizard, get help and report issues here.
GNU General Public License v3.0
4 stars 6 forks source link

dtocean-reliability crashes for isolated dtocean-moorings simulation with no substation #36

Closed KD379 closed 2 years ago

KD379 commented 3 years ago

Trying to see reliability and economic metrics for one floating wave energy converter. Selected modules: Hydrodynamics, Mooring and Foundations Selected assessments: Economics, Reliability

Using data from wave floating example with changes as outlined below so simulation will run for 1 device only:

Hydrodynamics: array rated power = 0.3 device rated power = 0.3 user option for array layout = rectangular

Mooring and Foundations: umbilical cable seabed connection point (393445, 4521715, -51.2918015)

However, when strategy runs I get this error during reliability assessment:

2020-11-30 14:57:12,180 - CRITICAL - dtocean_app.main - A KeyError occurred: 'array' 2020-11-30 14:57:12,184 - CRITICAL - dtocean_app.main - File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_app\main.py", line 524, in run self._project) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\strategies\basic.py", line 64, in execute allow_unavailable=True) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\menu.py", line 513, in execute_current allow_non_execution=True) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\core.py", line 2095, in auto_execute register_level) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\core.py", line 2026, in execute_interface interface = core.connect_interface(project, interface) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_app\core.py", line 297, in connect_interface interface = super(GUICore, self).connect_interface(project, interface) File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\core.py", line 1508, in connect_interface interface.connect() File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_core\interfaces\reliability.py", line 398, in connect mttf, self.data.rsystime = main() File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_reliability\main.py", line 371, in call self.arrayhiersub() File "C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_reliability\core.py", line 87, in arrayhiersub deviceID]['Substation foundation']

Following this, the strategy stops running. Some results are given but not all.

H0R5E commented 3 years ago

Hi @KD379, that is a bug. You can use the core.py file in the attached zip file to replace the file C:\Users\k-e-d\DTOcean\lib\site-packages\dtocean_reliability\core.py on your machine, and that should fix it.

core.zip

In general, DTOcean is currently poorly tested for single device problems, because it lacks features that are common to single device deployments, such as direct electrical connection to shore (rather than through a substation - the only method DTOcean can simulate).

Let me know how you get on. I will leave this issue open until the fix I have sent you is incorporated into the main code. Thanks for contributing!

KD379 commented 3 years ago

Hi @H0R5E. Thanks for that, the new core.py file did the trick. I ran a simulation identical to one I did before with the new core.py file and the strategy finished without an array error. However, I got the exact same results as before (when the error occurred) i.e. most of the economics assessment such as LCOE, OPEX, etc. is not computed as can be seen in the attached image. Is this because it is one device rather than an array? image

H0R5E commented 3 years ago

@KD379 without running the installation and maintenance modules you won't get a full LCOE calculation. You can turn on the "Estimate Energy Record" switch in the Economics module to calculate LCOE using just the dry CAPEX and AEP without losses. If the installation and maintenance modules are not run you have to manually enter the installation costs (Installation Bill of Materials) and the annual OPEX (OPEX per year) to get a full breakdown (and possibly the energy per year, in this case? Not sure).

KD379 commented 3 years ago

Great, thanks for your help @H0R5E!