Is there any documentation some where that talks about the algorithm used to control the step size of the Matlab Ode solvers? How do they calculate the truncation error how do they change the step size... Etc
I am not an expert on the topic, but a safe assumption is: it depends. AFAIK there are Runge-Kutta (ode23, ode45) and Adams-Bashforth-Moulton solvers in use. Information about these algorithms can e.g. be found in the references given in http://www.mathworks.de/de/help/matlab/ref/ode45.html
For instance, ode45 uses a Dormand-Prince pair, ode113 is a variable order Adams-Bashforth-Moulton PECE solver, ode15s is based on numerical differentiation formulas, etc.