Penalty function solutions to optimal control problems with general constraints via a dynamic optimisation method