Parameter optimization without real input-output model

2 ビュー (過去 30 日間)
Roy Veldhuizen
Roy Veldhuizen 2012 年 5 月 14 日
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 :)

採用された回答

Alexander Efremov
Alexander Efremov 2012 年 5 月 14 日
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 件のコメント
Alec Stothert
Alec Stothert 2012 年 5 月 14 日
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 2012 年 5 月 15 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeManual Performance Optimization についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by