An adaptive variational method for data assimilation with imperfect models