  In a separable Hilbert space $X$, we study the controlled evolution equation
\begin{equation*} u'(t)+Au(t)+p(t)Bu(t)=0, \end{equation*} where $A\geq-\sigma
I$ ($\sigma\geq0$) is a self-adjoint linear operator, $B$ is a bounded linear
operator on $X$, and $p\in L^2_{loc}(0,+\infty)$ is a bilinear control.
  We give sufficient conditions in order for the above nonlinear control system
to be locally controllable to the $j$th eigensolution for any $j\geq1$. We also
derive semi-global controllability results in large time and discuss
applications to parabolic equations in low space dimension. Our method is
constructive and all the constants involved in the main results can be
explicitly computed.
