Error in Parameter Esitmation 'OutputTimes'

6 Ansichten (letzte 30 Tage)
Kevin Chung
Kevin Chung am 1 Jun. 2021
Bearbeitet: Chidvi Modala am 9 Jun. 2021
Dear all,
I am having issue performing 'Parameter Estimation' of my Simulink model.
The model is able to simulate output values of my model in Simulink but not when performing Parameter Estimation. When simulating through 'Parameter Estimation Toolbox' this error is given;
"Invalid OutputTimes specified in the Configuration Parameters dialog for block diagram 'ParameterEstimationSimulink'"
  • The input data is of continous state with variying timesteps
  • The model is using the same 'Simulation time' with attained input data that is loaded into the model
  • Simulink is able to simulate and compare model output and given input
  • The Solver used is ode45
  • All ports and blocks 'Sample time' configurations are given -1 (inherited)
  • In 'Parameter Estimation' the right Outport is chosen, with same array size as the input data
Can the error origin from the Input data? The input time is imported from an external meaasurment where ''Datetime" is converted into "Seconds" - double.
Thanks a lot for the help,
Kevin

Akzeptierte Antwort

Chidvi Modala
Chidvi Modala am 9 Jun. 2021
Bearbeitet: Chidvi Modala am 9 Jun. 2021
A possible root cause of the issue can be repeating time values in the experimental data which get indirectly fed to 'OutputTimes' within Configuration Parameters when called by Simulink.
  • To verify this :
You may check non unique time values in data by executing the following command:
length(unique(Your2dvector(:,1))
To cause the error, this value might be smaller than the length of your experimental data.
  • Approach to removing duplicate entries:
We can average the values of repeating column entries and get a unique array of elements. I would suggest backing up your experimental data before doing the matrix operations below.
array = [1 10; 2 20; 3 30; 4 40; 4 50; 4 60; 5 70; 6 80; 7 90; 7 100; 8 110];
[C,ia,idx] = unique(array(:,1),'stable');
val = accumarray(idx,array(:,2),[],@mean);
your_mat = [C val]

Weitere Antworten (0)

Kategorien

Mehr zu Manual Performance Optimization finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by