What is fillSeries?
What is robustSeries?
Generally, how can command lines be used to conduct optimization processes?
anonuser Asked question 24 June 2024
- fillSeries, robustSeries and robustSet are all defined in Runtime/RunScripts/runSeries.js
- Some examples of usage can be found as comments at the top of the optimisation files in the VPP/Configurations/Optimisation folders of the PowerBoat, Gomboc60 or Oceanis51 project samples.
- All of these functions use the ‘runOptimisation’ function of the G.RunController class (see definition in manual section JavaScript API / Global Objects / G.runController). The ‘runOptimisation’ function enables to solve an optimization problem for the current selected parameters, with a given solver. This is the function called when clicking on the single red arrow button in the ‘Commands’ window. The resulting solution is a local minimum but there is no guarantee that it’s the global minimum.
- When using fillSeries, Gomboc will try to find a solution for each of the values of the input parameter (by default ‘Boat.TWS_kts’). So, for each TWs, you end up with a solution (if there is one), but this solution might not be the best solution. Also, when using the MaxEfficiency solver, you want to scan the boat speed rather than the TWS. So you have to specify this parameter in the ‘fillSeries’ input. Please refer to the comments in Runtime/RunScripts/runSeries.js to understand how to specify the ‘fillSeries’ input parameters
- ‘robustSeries’ is, as its name points it out, more “robust” in the sense that for each TWS (or in the MaxEfficiency case for each boat speed), several neighboring points are tested once a solution is found. This function is recommended if there are several local minima.
- Note that ‘robustSeriesWithAdditionalQueue’ is an upgraded version of ‘robustSeries’ as it will stop searching for a solution once it reaches the ‘MaxNTried’ number of times it will try to find a solution with a random starting point. Also, this function allows for an additional input which is the list of solutions that can be used as starting points for the optimisation. This function is also described in Runtime/RunScripts/runSeries.js
- All the functions above can be combined with a ‘forEach’ loop in order to scan another parameter. This is used to find solutions for polar charts: fillSeries solves for each TWS in a given array, while looping through a AWA array
- For a more robust version of this 2D scan, you can use the ‘robustSet’ function. Please note that this will take some time to solve.
Support SumToZero Changed status to publish 24 June 2024