Trimming simulink models using findop/linear analysis tool

7 次查看(过去 30 天)
Hi all,
I'm having some issues using the findop function/linear analysis tool that Simulink provides. I've built a Simulink model of a quadcopter using simmechanics and now need to analyse its dynamics in the hover, but to do that I first need to trim it there. I've defined the model such that it has 4 inputs: Collective/throttle, pitch, roll and yaw commands.
When I try to trim the model, I set the states I wish to drive to steady-state or a known value (angular/linear velocities of the 6DoF joint that connects the quadcopter to the world to 0) and the trim 'completes' without issue, ie it seems to drive all these states to a steady state. However, the input states remain at their initial zero values so if I initialise the model with these trims, the quadcopter immediately drops out the sky due to having no commanded throttle.
It may be that I'm misunderstanding what this tool is trying to do, but I assumed that it would vary these input parameters to drive the required states to steady state. It definitely doesn't seem to be doing this as the inputs are not being changed at all even though multiple iterations are occurring through the trim process.
Am I using the right tool for the job? And if so, does anyone have any idea what I'm doing wrong?
Many thanks, Chris

回答(2 个)

Drew Davis
Drew Davis 2015-6-12
To determine the steady-state control input, you must ensure that your root level model has an input port feeding as an input into your plant when you trim the model.
  3 个评论
Grisha Khodos
Grisha Khodos 2018-5-29
Hi I am experiencing similar problem. Have you solved the issue? Thanks

请先登录,再进行评论。


Ilja Pricker
Ilja Pricker 2022-11-28
编辑:Ilja Pricker 2022-11-29
Hey all,
I was having a similar issue. In my case it was due to the fact that the information about the trim conditions (inputs, outputs, states - known, steady-state; custom-constrained-fnc) was overdetermined in some way (meaning some of the restrictions were inconsistent / contradicting each other).
I doubt that your trimming yielded actually a meaningful operating point without the inputs considered. Reflect on what you actually want to find out - what exactly is the purpose of your trimming? What is it you want to find given what information? Does it make sense physically? Maybe you actually found a trim condition, which is "falling from the sky", where the variables of interest are indeed in steady-state.
Anyway, there might be multiple reasons for it.
  • Look, whether your mathematical system as you constrain it, is overdetermined - or underdetermined, respectively;
  • maybe you found yourself some local minimum -> thus always try multiple initial conditions (even for states & inputs that are unknown);
  • maybe try some other optimization routine
  • if your model includes PIDs - you might want to look at those and their role within the trim process (specifically integrator & filter)
Another convenient option is to trim via simulation snapshot, if applicable.
Hope that helps,
Ilja

类别

Help CenterFile Exchange 中查找有关 General Applications 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by