+ Two Cycloidal Functions -- another proposed solution

Let's deal with the rise first. Start with the acceleration. It must begin at zero. The acceleration must then become positive. It would be nice for it to end up negative, (at q=p/2) since the follower needs to be starting its downward journey at this point. The sum of two sine functions might be a good starting point to model the acceleration. Acceleration should look something like this.

Input := 

Plot[ -Sin[q] + Sin[2 q], {q,0,Pi/2}]
Output =

-Graphics-

From this proposed acceleration, we can derive velocity by integrating once, and lift (position) by integrating a second time. The constants of integration that arise can be used to ensure that the necessary constraints are met. We generalize our model for acceleration by considering combinations of the sin (2q) and sin (q) functions. This introduces two coefficients, b(1) and b(2). And the integrations introduce two more coefficients b(3) and b(4).

Input := 

a21[q_] = -b[1] Sin[q] + b[2] Sin[2 q];
v21[q_] = Integrate[ a21[q], q] + b[3];
d21[q_] = Integrate[ v21[q],q] + b[4];

We now impose the constraints of the problem on the position and velocity function

Input := 

eq1 = d21[0] == 0;
eq2 = v21[0] == 0;
eq3 = v21[Pi/2] == 0;
eq4 = d21[Pi/2] == .1;
Input := 

sol2 = Solve[{eq1,eq2,eq3,eq4}, {b[1],b[2],b[3],b[4]}]
Output =

{{b[1] -> 0.465979, b[2] -> 0.465979, b[4] -> 0., 
 
   b[3] -> -0.23299}}

And to recover the position, velocity, and acceleration function which we plot

Input := 

d21[q_] = d21[q] /. sol2[[1]] //Chop;
v21[q_] = v21[q] /. sol2[[1]] //Chop;
a21[q_] = a21[q] /. sol2[[1]] //Chop;
Input := 

p1 = Plot[a21[q],{q,0,Pi/2}]
Output =

-Graphics-

- Getting the other half of the function with a reflection

To speed up the process of getting the second function, that is the function describing the drop, we can take advantage of the symmetry of the plots about the line q=p/2. We use a mirroring technique.

Input := 

a22[q_] = a21[Pi - q];
Input := 

p2 = Plot[a22[q],{q,Pi/2,Pi}]
Output =

-Graphics-
Input := 

Show[p1,p2, PlotRange -> All]
Output =

-Graphics-
Input := 

v22[q_] = -v21[Pi - q];  (* Sign flip -- antisym *)
d22[q_] = d21[Pi - q];

- Set up global functions combining the two parts

This is just to allow us to easily plot one function over the whole range of interest.

Input := 

d2[q_] := Which[ 0 <= q < Pi/2, d21[q],
               Pi/2 <= q <= Pi,  d22[q],
                q > Pi, 0];
v2[q_] := Which[ 0 <= q < Pi/2, v21[q],
               Pi/2 <= q <= Pi,  v22[q],
                q > Pi, 0];
a2[q_] := Which[ 0 <= q < Pi/2, a21[q],
               Pi/2 <= q <= Pi,  a22[q],
                q > Pi, 0];
j2[q_] := Which[ 0 <= q < Pi/2, a21'[q],
               Pi/2 <= q <= Pi,  a22'[q],
                q > Pi, 0];                             

- Plots of the lift, velocity, accel and jerk

Input := 

Plot[ d2[q], {q,0,Pi}]
Output =

-Graphics-
Input := 

Plot[v2[q], {q,0, Pi}]
Output =

-Graphics-
Input := 

p2a = Plot[a2[q], {q,0,Pi}, PlotRange -> All]
Output =

-Graphics-

Find maximum acceleration -- compare with the other solution

Input := 

a2max = Abs[a2[N[Pi/2]]]//N
Output =

0.465979
Input := 

a1max
Output =

0.243171
Input := 

p2j = Plot[ j2[q], {q,0,Pi}]
Output =

-Graphics-