Problem with numerical solution of a system of PDEs

Posted 4 months ago
365 Views
|
0 Replies
|
0 Total Likes
|

I am having a problem with with NDSolve.

Background

There is a fast-moving rope in closed path. The variables are:

T is tension.
a is angle beetwen rope and gorizontal plane.
s is curvelinear coordinates [0,1] (0 - the beggining of the rope, 1 - the ending of the rope).
Dr is drag coefficient.
W is weight coefficient.

My model gives the following differential equations for T, a and s:

D[T[s] Sin[a[s]], s] == W + Dr Sin[a[s]],
D[T[s] Cos[a[s]], s] == Dr Cos[a[s]],


Moreover, boundary conditions comes from equation for beginning and ending of the rope. x[0] = x[1] = 0, y[0] = y[1] = 0, where x[s], y[s]are coordinates of point on the rope with curve distance for the beginnings. It means, that ending and beginning of the rope are in the same place.

Differential equations for coodinates x[s], y[s] are quite easy.

(Tan[a[s]])/Sqrt[1 + Tan[a[s]]^2] == D[y[s], s],
1/Sqrt[1 + Tan[a[s]]^2] == D[x[s], s],
x[0] == 0,
y[0] == 0,
x[1] == ?,
y[1] == ?


Problem

I've solved it, but solution is unreal and contradicts the boundary conditions.

Mathematica's solution plotted with ParametricPlot looks like this:

Fig.1 Obtained soltion

The rope should be closed, but it's not. And it should look like this:

Fig.2 Shape of rope in dependence of Dr/W

Please, help. The final code is:  x[s] =. y[s] =. NumSol = Block[{? = \$MachineEpsilon}, With[{Dr = 9.9, W = 8}, NDSolve[ {D[T[s] Sin[a[s]], s] == W + Dr Sin[a[s]], D[T[s] Cos[a[s]], s] == Dr Cos[a[s]], (Tan[a[s]])/Sqrt[1 + Tan[a[s]]^2] == D[y[s], s], 1/Sqrt[1 + Tan[a[s]]^2] == D[x[s], s], x[?] == 0, y[?] == 0, x[1 - ?] == ?, y[1 - ?] == ?}, {T, a, x, y}, {s, ?, 1 - ?}, Method -> {"StiffnessSwitching", "NonstiffTest" -> False}]]]

ParametricPlot[{x[s], y[s]} /. NumSol // Evaluate, {s, 0, 1}, PlotRange -> Automatic, AspectRatio -> 1, AxesLabel -> {"x", "y"}] `

Community posts can be styled and formatted using the Markdown syntax.