Skip to content

Conversation

@kmruehl
Copy link
Collaborator

@kmruehl kmruehl commented Aug 10, 2023

I'll need to resolve merge conflicts on this, but we have several bugfixes that need to be pulled into dev

dforbush2 and others added 12 commits March 22, 2023 08:47
When MoorDyn is used in WEC-Sim design, it is called as an external DLL executable library, and it runs on a separate console.exe under MATLAB's main process, with its separate process-ID(PID) in the windows task manager. The issue is related to the following scenarios on the Windows platform:
1>> if the lines data text file has an error in it.
2>> MoorDyn fails to converge.
3>> MoorDyn is launched, but the model has some other error.
Under such a scenario, MATLAB fails to terminate the MoorDyn Console and hangs instead, and either crash immediately or crashes if we press the close button on the MoorDyn console window. Either way, there seems to be no way the MATLAB session can recover from MoorDyn failure without crashing. It becomes a major issue if we are trying to tune mooring lines and want to try different lines configurations and stiffnesses, etc., to find an optimal mooring system because some configurations will not work, which will keep crashing MATLAB sessions during the test and trial.
The goal is for MoorDyn's failure not to crash the MATLAB session but instead MoorDyn dll execution to close and the MoorDyn console to close. I've found a solution to that.
For scenarios 1 and 2, the following Fix#01 seems to work on the Windows platform. And to cover scenario 3, an additional Fix#02 is needed.
Fix#01
In the MoorDyn block's 'InitFcn' call, making the following suggested changes check for MoorDyn Initialization failure and terminates the MoorDyn.dll console without crashing the MATLAB Session.
Fix#02
Suppose the MoorDyn console has been launched, but there is an error in the Simulink model. In that case, MATLAB throws an error and terminates the Simulink execution without terminating the MoorDyn console window. A try-catch statement in the wecsim file can address this issue. If a Simulink model error occurs, we can print the error and terminate the MoorDyn Console process.
* updates_docs_on_master

* incorporating_kelleys_minor_edits
Fixes function parsing error
@kmruehl
Copy link
Collaborator Author

kmruehl commented Aug 10, 2023

merge conflicts should be resolved, waiting for tests to pass, then I'll merge

@kmruehl kmruehl self-assigned this Aug 10, 2023
@kmruehl kmruehl added the Bug bug in WEC-Sim source, high priority label Aug 10, 2023
@kmruehl kmruehl merged commit 4e41e33 into dev Aug 10, 2023
@kmruehl kmruehl deleted the merge_conflicts branch August 10, 2023 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug bug in WEC-Sim source, high priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants