There probably is one but I'm not aware of it. In a nutshell, you can't use "max(<whatever expression>)", but you can define an auxiliary variable and make sure it's higher than all instances of <whatever expression> (say it's indexed on a given set). The catch is that, although z is hypothetically not upper bounded, the fact that you are minimizing it will ensure that the solver makes it has the minimum possible value.
In other words, z is guaranteed (by the constraint) to be larger or equal than all instances of <whatever expression>, and the lowest possible value it can have is effectively max(<whatever expression>).
In your case, if your expression if defined over time, you can imagine z as a horizontal line that has to be at least as large as the highest value of your expression. Your solver will push it down as much as possible, i.e. until it touches the "peak" of your expression.
I'm sure you can find a much better definition somewhere, but I hope it helps.