I'm trying to reproduce the results from [1], which solve the equations of an elastic ring (a closed loop elastica) under various loadings. Here is the relevant part: 

[![enter image description here][1]][1]

I need to solve the governing equations in (2), with `m0` and `p` as unknown parameters for a range of prescribed values of `f`. They indicate in the text that they solve these equations using Mathematica with `NDSolve` and `FindRoot`.  

I found the following question helpful as an example: [How can I use FindRoot on an expression from NDSolve?][2], and so I implemented my code in a similar manner. However, I'm trying to use `FindRoot` to solve for two parameters, and I'm not sure how to use the results of `NDSolve` to get the necessary two equations. Here is my code:

````
sol[p_?NumericQ, m0_?NumericQ, f_?NumericQ] := \[Theta] /. 
  First@NDSolve[{
     x'[s] == Cos[\[Theta][s]],
     y'[s] == Sin[\[Theta][s]],
     \[Theta]'[s] == m[s] + 2 \[Pi],
     m'[s] == f/2 Cos[\[Theta][s]] - p Sin[\[Theta][s]],
     x[0] == y[0] == \[Theta][0] == 0,
     m[0] == m0
     },
    \[Theta], {s, 0, 2 \[Pi]}]

FindRoot[{sol[p, m0, 200][1]}, {p, 0}, {m0, 10}]
````

It is not working. Clearly, I'm asking `FindRoot` to look for two roots with only one equation. I'm not sure how to use `FindRoot` to satisfy the conditions:      
````
x[1/2] == 0,
\[Theta][1/2] == 0
````
I'm also not sure what a reasonable guess is for `m0`, but that is less of a concern. Any help would be greatly appreciated.


  [1] L.N. Virgin et al., "Deformation and vibration of compressed, nested, elastic rings on rigid base", Thin-Walled Structures, 132, 167-175, (2018). [Link (Paywall)][3]


  [1]: https://i.sstatic.net/H1s67.png
  [2]: https://mathematica.stackexchange.com/questions/23211/how-can-i-use-findroot-on-an-expression-from-ndsolve
  [3]: https://www.sciencedirect.com/science/article/pii/S0263823118304166