3737#include "../../simulation/options.h"
3838
3939static inline void pickUpDim (OptDataDim * dim , DATA * data );
40- static inline void pickUpTime (OptDataTime * time , OptDataDim * dim , DATA * data );
40+ static inline void pickUpTime (OptDataTime * time , OptDataDim * dim , DATA * data , const double preSimTime );
4141static inline void pickUpBounds (OptDataBounds * bounds , OptDataDim * dim , DATA * data );
4242static inline void check_nominal (OptDataBounds * bounds , const double min , const double max ,
4343 const double nominal , const modelica_boolean set , const int i , const double x0 );
@@ -57,8 +57,8 @@ int pickUpModelData(DATA* data, SOLVER_INFO* solverInfo)
5757 OptDataDim * dim ;
5858
5959 pickUpDim (& optData -> dim , data );
60- pickUpTime (& optData -> time , & optData -> dim , data );
6160 pickUpBounds (& optData -> bounds , & optData -> dim , data );
61+ pickUpTime (& optData -> time , & optData -> dim , data , optData -> bounds .preSim );
6262 setRKCoeff (& optData -> rk , optData -> dim .np );
6363 calculatedScalingHelper (& optData -> bounds ,& optData -> time , & optData -> dim , & optData -> rk );
6464 messageClose (LOG_SOLVER );
@@ -119,7 +119,7 @@ static inline void pickUpDim(OptDataDim * dim, DATA* data){
119119/* pick up information(startTime, stopTime, dt) from model data to optimizer struct
120120 * author: Vitalij Ruge
121121 */
122- static inline void pickUpTime (OptDataTime * time , OptDataDim * dim , DATA * data ){
122+ static inline void pickUpTime (OptDataTime * time , OptDataDim * dim , DATA * data , const double preSimTime ){
123123 const int nsi = dim -> nsi ;
124124 const int np = dim -> np ;
125125 const int np1 = np - 1 ;
@@ -128,7 +128,7 @@ static inline void pickUpTime(OptDataTime * time, OptDataDim * dim, DATA* data){
128128 int i , k ;
129129 double t ;
130130
131- time -> t0 = (long double )data -> simulationInfo .startTime ;
131+ time -> t0 = (long double )fmax ( data -> simulationInfo .startTime , preSimTime ) ;
132132 time -> tf = (long double )data -> simulationInfo .stopTime ;
133133
134134 time -> dt [0 ] = (time -> tf - time -> t0 )/nsi ;
@@ -178,7 +178,7 @@ static inline void pickUpTime(OptDataTime * time, OptDataDim * dim, DATA* data){
178178 */
179179static inline void pickUpBounds (OptDataBounds * bounds , OptDataDim * dim , DATA * data ){
180180 char * * inputName ;
181- double min , max , nominal , x0 , tmpOptTime ;
181+ double min , max , nominal , x0 ;
182182 double * umin , * umax , * unom ;
183183 modelica_boolean nominalWasSet ;
184184 modelica_boolean * nominalWasSetInput ;
@@ -209,7 +209,7 @@ static inline void pickUpBounds(OptDataBounds * bounds, OptDataDim * dim, DATA*
209209 umax = bounds -> vmax + nx ;
210210 unom = bounds -> vnom + nx ;
211211
212- data -> callback -> pickUpBoundsForInputsInOptimization (data ,umin , umax , unom , nominalWasSetInput , inputName , bounds -> u0 , & tmpOptTime );
212+ data -> callback -> pickUpBoundsForInputsInOptimization (data ,umin , umax , unom , nominalWasSetInput , inputName , bounds -> u0 , & bounds -> preSim );
213213
214214 for (i = 0 ; i < nx ; ++ i ){
215215 min = data -> modelData .realVarsData [i ].attribute .min ;
@@ -435,7 +435,7 @@ void res2file(OptData *optData, SOLVER_INFO* solverInfo, double *vopt){
435435 DATA * data = optData -> data ;
436436 SIMULATION_DATA * sData = (SIMULATION_DATA * )data -> localData [0 ];
437437
438- FILE * pFile ;
438+ FILE * pFile = optData -> pFile ;
439439 double * v0 = optData -> v0 ;
440440 double * vnom = optData -> bounds .vnom ;
441441 long double * * t = optData -> time .t ;
@@ -456,14 +456,6 @@ void res2file(OptData *optData, SOLVER_INFO* solverInfo, double *vopt){
456456 optData2ModelData (optData , vopt , 0 );
457457
458458 /******************/
459- pFile = fopen ("optimizeInput.csv" , "wt" );
460- fprintf (pFile , "%s " , "time" );
461- for (i = 0 ; i < nu ; ++ i ){
462- sprintf (buffer , "%s" , optData -> dim .inputName [i ]);
463- fprintf (pFile , "%s " , buffer );
464- }
465- fprintf (pFile , "%s" , "\n" );
466-
467459 fprintf (pFile , "%lf " ,(double )t0 );
468460
469461 for (i = 0 ,j = nx ; i < nu ; ++ i ,++ j ){
0 commit comments