This paper considers a class of non-smooth constrained optimization problems governed by discrete-time nonlinear equations. In these problems, the non-smooth feature comes from the objective function. Our main contributions are as follows. Firstly, by using a smoothing method, the objective function can be approximated by a smooth function, which leads to an approximate optimization problem. Then, based on the idea of l1 penalty function, the state and control constraints are appended to the objective function to form an augmented objective function, which leads to a smooth unconstrained optimization problem. Next, a gradient-based algorithm with a novel line search is proposed for solving this smooth unconstrained optimization problem, and this line search is proved to have a good property similar to the Armijo line search. This is helpful to easily establish convergence results of the proposed algorithm under several mild assumptions. Finally, the proposed algorithm is adopted to solve a long-term hydrothermal optimal scheduling problem, the numerical results show that the proposed algorithm is effective, and the parameter sensitivity analysis results show that the proposed algorithm is also robust.