Trimming simulink models using findop/linear analysis tool
7 views (last 30 days)
Show older comments
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
0 Comments
Answers (2)
Drew Davis
on 12 Jun 2015
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 Comments
Grisha Khodos
on 29 May 2018
Hi I am experiencing similar problem. Have you solved the issue? Thanks
Ilja Pricker
on 28 Nov 2022
Edited: Ilja Pricker
on 29 Nov 2022
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
0 Comments
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!