I have a simulation in MapleSIM, exported as a compiled procedure in maple using -LinkModel(), and -GetCompiledProc.
I'm trying to do parameter estimation on my MapleSIM model. Within a optimization scheme, I call the MapleSIM model, and it will output a curve. Using a least squares method, I compare this measurements to synthetic experimental data (I know the actual values), and generate an objective function. The optimization algorithm will try different parameter values, and try to minimze the objective function. When the curves are exactly the same, the objective function will be zero.
The problem I am having is certain parameter sets will cause the model to require very small steps. I wish to put a timeout on these experiments, because speed is important. However, I would also like to see the results up to the point of requiring very small steps. For timeout, I was using code along the lines of:
out:= timelimit(30,cProc(params = PData)); #simulate with 30s limit
where PData are the parameter guessses, and cProc is the compiled MapleSim model.
I would like 'out' to be assigned whatever the results were after 30 seconds, even if the model had not finished integrating.
Thanks in advance for any help!