Building a limit cycle from scratch

We want to cook up a simple example of a limit cycle, some kind of toy model. Let us look for a system having the circle of radius one centered at $(0,0)$ as an attracting limit cycle. The trick is to think in terms of polar coordinates $(r,\theta)$. The simplest situation would be to have uncoupled equations for the radial and angular motions:

$$ \begin{cases} \dot{r}=f(r)\\ \dot{\theta}=g(\theta). \end{cases} $$

In the $r$-direction, we want $f(1)=0$, that is $r=1$ to be a fixed point. We also want to have $r(t)$ decreasing down to $1$ if $r(0)>1$, and increasing up to $1$ if $r(0)<1$. Let us take the logistic equation, that is

$$ \dot{r}=r(1-r). $$

In the $\theta$-direction, we can simply take a rotation at constant angular velocity, for instance $\dot{\theta}=-1$ for a clockwise rotation. Combining the radial and the angular motions, we get spiralling trajectories toward the circle, from both sides.

Coming back to cartesian coordinates, this gives much more complicated equations which are coupled:

$$ \begin{cases} \dot{x}= y +x\big(1-\sqrt{x^2+y^2}\big)\\ \dot{y}=-x+ y\big(1-\sqrt{x^2+y^2}\big). \end{cases} $$