numerically solving for the fixed points of a system of nonlinear ODEs

68 Views Asked by At

I was looking at an excellent lecture series on Robotics by Russ Tedrake, and he discusses Linear Quadratic Control (LQR) for system of nonlinear differential equations. So as he suggests, robots are just big collections of coupled pendulums that we are trying to stabilize around their fixed points.

Now, when I look at a small system of nonlinear ODEs, I can find the fixed points of the system by finding the values of the state that return the zero vector. I will make this more precise in a second. My question is, for even slightly larger systems, I might not be able to symbolically solve for the fixed points. So I was wondering what are the current numerical methods for finding all of the fixed points of a larger system of nonlinear ODES?

So let me be a bit more precise now. Say I am looking at a system like the undamped, unforced pendulum. This is a simple 2nd order system.

$$ mL^2\ddot{\theta} = -mgLsin\theta $$

I can linearize this into a first order system in generalized coordinates $[x_1, x_2]$.

$$ \begin{align} \dot{x_1} &= x_2\\ \dot{x_2} &= -\frac{g\sin{x_1}}{L} \end{align} $$

Now I can solve for the fixed points by setting this system equal to the zero vector and solving for the corresponding values of $[x_1, x_2]$, which are $[0,0], [0, \pm \pi]$.

But if I am working with a robot, I might have 36 coupled pendulum equations. Each of those pendulums have different sized masses attached at different lengths. So I will get a pretty complicated system, and I probably can't solve for the fixed points by hand.

One idea is to use something like bracketing search, where I generate random vectors that comply with my state, and then use Newton's method or even a bracketing search to find the approximate zeros of first order system. But it seems like as I move to larger and larger systems, it will be hard to cover the state space with all of these random vectors. I mean 36 dimensional or 72 dimensional phase space is pretty big.

Hence I was wondering what numerical methods are currently used to find the fixed points of these large nonlinear systems of equations. The ostensible goal is that once I can find the fixed points, I can design an LQR controllers to stabilize the dynamics around those fixed points.

Note that I actually did check on google scholar to see if I could find any papers on this. But because the terms I am using like fixed point and nonlinear odes, are very general, I found lots of unrelated papers. Hence I figured I would ask.

1

There are 1 best solutions below

0
On BEST ANSWER

The answer to this question is there are indeed numerical methods for finding fixed points of nonlinear systems of equations that perform better than randomly peppering the domain with initial values and doing Newton solves from there.

These methods are called Continuation methods, and there are different flavors.

  1. Deflated Continuation: https://arxiv.org/abs/1603.00809

  2. Pseudo Arc-length Continuation: https://www.sciencedirect.com/science/article/abs/pii/S0094576523006379

  3. Homotopy Continuation: https://pubsonline.informs.org/doi/abs/10.1287/moor.16.4.754

There are also programming packages for implementing these algorithms, such as PHCPack in python/C, or BifurcationKit.jl and HomotopyContinuation.jl in Julia.