Parameter optimization without real input-output model

1 visualización (últimos 30 días)
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 :)

Respuesta aceptada

Alexander Efremov
Alexander Efremov el 14 de Mayo de 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 comentarios
Alec Stothert
Alec Stothert el 14 de Mayo de 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 el 15 de Mayo de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Manual Performance Optimization en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by