Trimming simulink models using findop/linear analysis tool
조회 수: 17(최근 30일)
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
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.
Ilja Pricker 2022년 11월 28일 19:40
편집: Ilja Pricker 2022년 11월 29일 11:39
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,