It would be tough to say exactly what is best given the unknowns in this case. However, in general, using blocks should be the way forward for control design in Simulink using a Model Based Design approach. This will allow you to:
- set oprating points
- linearize a model for control design
- find and tune gains for controllers
- use stateflow machines to visually model state machines
- use fuzzy logic toolbox for control methods (if needed)
When you use the Simulink blocks you will find it easier to work between these tools compared to using s-functions, which I would consider a big advantage. S-functions can often be used as well, but there will typically be a bit more work to make sure everything is set to work properly. You will also find more examples/demos that you can utilize for your design process with blocks versus s-functions.