Consider the translated sigmoidal function
s is an increasing function with range (0,1).s(x) = 1/(1+exp(a(d-x))) with a>0 and x in [-inf,inf].
Now, consider the derived function
S is an increasing function too. (The "1/2 +" was not chosen by accident: see below.)S(x) = 1/2 + ( s(x)-s(m) ) / ( s(1)-s(0) ) with x in [0,1] and m in (0,1).
We would like so choose d so that S(0)=0, S(1)=1 and S(m)=1/2, that is, so that the range of S is [0,1] and the midpoint m is sent to 1/2. It turns out that these three conditions are satisfied if
which is equivalent tos(m) = (s(0)+s(1))/2
One consequence is that if this is the approach taken, a cannot be too close to zero, since D->-1 as a->0.d = (ln D) / a, where
D = ( (A+1)M-2A ) / ( A+1-2M ),
A = exp(a),
M = exp(a*m)
P.S. m can't be too close to zero either, since D->-1 as m->0 as well. Since things are symmetric, one expects trouble when m is close to 1, and indeed D->-A as m->1.
P.S. ... and of course, m=1/2 gives d=1/2 irregardless of the value of a, so things check out.
(Checking my algebra/reasoning and figuring what what constraints one must impose to stay away from singularities.)