Modelling real processes often results in several suitable models. In order to be able to distinguish, or discriminate, which model best represents a phenomenon, one is interested, e.g., in so-called T-optimal designs. These consist of the (design) points from a generally continuous design space at which the models deviate most from each other under the condition that they are best fitted to those points. Thus, the T-criterion represents a bi-level optimization problem, which can be transferred into a semi-infinite one but whose solution is very unstable or time consuming for non-linear models and non-convex lower- and upper-level problems. If one considers only a finite number of possible design points, a numerically well tractable linear semi-infinite optimization problem arises. Since this is only an approximation of the original model discrimination problem, we propose an algorithm which alternately and adaptively refines discretizations of the parameter as well as of the design space and, thus, solves a sequence of linear semi-infinite programs. We prove convergence of our method and its subroutine and show on the basis of discrimination tasks from process engineering that our approach is stable and can outperform the known methods.