Parameter optimization without real input-output model

1 visualizzazione (ultimi 30 giorni)
Hello,
I'm building a model of an accelerating engine in SimuLink, and based on real logged data I want to approximate my parameters (Cd, rolling coefficient) such that they reflect reality. To achieve this I'm using the Control and Estimation Tools manager. I think is a suitable tool but I have some problems with the implementation. The examples I've found on internet all concern an input-output based situation, such a DC engine. However, the nature of my model is a bit different. I just supply initial conditions (entry speed, gear etc.) to run the simulation. As such, I do not have a clear input-output model that i can specify for the optimizer, and thus the parameter optimizer says that the object function is in a local minimum.
I hope it's a bit clear what I mean, and you can help me out :)

Risposta accettata

Alexander Efremov
Alexander Efremov il 14 Mag 2012
As I understand the optimization problem, you would like to minimize something at the end of the day (like least square error between an experimental and model time domain data). Keeping that in mind, I suppose you have some real world (or experimental) data. What kind of data is that? I suppose that should be some time domain vectors (input and output, or, as far as you're refering to some non-I\O case, just output by constant input).
I would say you have to repeat the same situation you have in real world in your model and ask Parameter Estimator to tune the parameters.
  3 Commenti
Alec Stothert
Alec Stothert il 14 Mag 2012
Not having an import should not be a problem, the example http://www.mathworks.com/help/toolbox/sldo/ug/brz_xvq.html#brz_xx9-5, walks through a problem with no inputs, and initial state estimation.
Roy Veldhuizen
Roy Veldhuizen il 15 Mag 2012
I managed to do it a bit differently. I specified an input vector of time with sim() command. This allowed me to use the time as an input.
[Time Distance Velocity]=sim(filename,[StartTime EndTime],OPTIONS, [input:timevector, input:timevector)]);
I know it's probably not the most neat way to do it, but it worked for me, as it allows me to specify to only give time and initial states as an input.
I think the example Alec gives is not that suitable either, as it focuses on the estimation of the initial state, which is known in my case.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Manual Performance Optimization in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by