Run only the algebraic part of the solver

When you use a model for MPC you do not perform an ordinary open-loop simulation, the controller is free to select the input trajectory during that open-loop simulation in order to optimize the response, if the objective is such that the operating point stays close to the linearization point, you might be fine.

To close the loop I could try to add a simple PID controller to the system?

Anything that prevents exponential divergence from the linearization point would be at least helpful.

A different but somewhat related topic you might find interesting, When are two systems similar? It’s not immediately applicable in your case since the original system is nonlinear, but it suggests that open-loop and closed-loop comparisons may be very different.

1 Like

I came to think of this, if you are interested in linearization around a periodic trajectory, you might find

interesting. They allow you to, e.g., compute periodic stabilizing LQ controllers etc. This might be an attractive complement to standard gain scheduling.

1 Like

Thanks again for interesting links. Could definitely be useful for kite control.

1 Like

When linearizing the model, should this be done around a steady state operating point? Because starting with zero inputs and no deviation from the operating point, the state in the linear model keeps constant.

It depends on what you want to use the model for in the end. The output of any linear model is always zero if both the state and the input is zero.

I was able to make a much better comparison now. The linear and nonlinear system have similar responses, but they are not very close either. I added a P controller from heading outputs to steering inputs, and a jump in the setpoint at t=20.

The fact that the Winch force behaves so different in the beginning is a bit concerning, does the model have any discontinuities that make the linear model very different from the nonlinear?

There are discontinuities in the nonlinear model (if the springs get compressed), but I don’t expect that to happen in this example. But I can check what happens if I remove the discontinuities.

But I think this difference is mostly because I wasn’t able to get the nonlinear system in a fully steady state.